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

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • New Scientist

    New Scientis

    27 Kasım 2006
  • thetrollska

    thetrollska

    2 EKİM 2009