SORU
2 HAZİRAN 2009, Salı


Sorgu SQL Server üzerinde çalışan listesi

Bir şekilde şu anda SQL Server (Enterprise Manager veya SQL) ve MS üzerinde çalışan veya bağlantısı olan sorguların listesi var mı?

Çok uzun süren bir sorguyu veritabanı sunucuları üzerinde çalıştırmak ediliyor buldum ve onu izlemek ve onu durdurmak için (ya da başlangıç tutan kişi) istiyorum.

CEVAP
5 HAZİRAN 2009, Cuma


Bu SQL 2000 üzerinde uzun soluklu Spıd'ler göstermek veya SQL server 2005

select
    P.spid
,   right(convert(varchar, 
            dateadd(ms, datediff(ms, P.last_batch, getdate()), '1900-01-01'), 
            121), 12) as 'batch_duration'
,   P.program_name
,   P.hostname
,   P.loginame
from master.dbo.sysprocesses P
where P.spid > 50
and      P.status not in ('background', 'sleeping')
and      P.cmd not in ('AWAITING COMMAND'
                    ,'MIRROR HANDLER'
                    ,'LAZY WRITER'
                    ,'CHECKPOINT SLEEP'
                    ,'RA MANAGER')
order by batch_duration desc

Eğer SQL sonuçlarından belirli bir spid için çalışan görmek istiyorsanız, bu gibi bir şey kullanabilirsiniz:

declare
    @spid int
,   @stmt_start int
,   @stmt_end int
,   @sql_handle binary(20)

set @spid = XXX -- Fill this in

select  top 1
    @sql_handle = sql_handle
,   @stmt_start = case stmt_start when 0 then 0 else stmt_start / 2 end
,   @stmt_end = case stmt_end when -1 then -1 else stmt_end / 2 end
from    master.dbo.sysprocesses
where   spid = @spid
order by ecid

SELECT
    SUBSTRING(  text,
            COALESCE(NULLIF(@stmt_start, 0), 1),
            CASE @stmt_end
                WHEN -1
                    THEN DATALENGTH(text)
                ELSE
                    (@stmt_end - @stmt_start)
                END
        )
FROM ::fn_get_sql(@sql_handle)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • ImBluecams

    ImBluecams

    25 Kasım 2012
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008