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ÅŸ:
ElasticSearch server üzerinde tüm dizi...
Tablonun kimlik sütunu için açık bir d...
SQL büyük bir tablo üzerinde sorgu per...
Nasıl bir hizmet Android üzerinde çalı...
Nasıl (sorgu dizesi) Node.js üzerinde ...