SQL Server 2000 veritabanında açık işlemleri listelemenin bir yolu var mı?


100

SQL Server 2000 veritabanında açık işlemleri listelemenin herhangi bir yolunu bilen var mı?

Görünümü sys.dm_tran_session_transactionsSQL 2005 (ve sonrası) veritabanı sürümlerinde sorgulayabileceğimi biliyorum , ancak bu SQL 2000'de mevcut değil.

Yanıtlar:


157

Tüm veritabanları için sys.sysprocesses sorgusu

SELECT * FROM sys.sysprocesses WHERE open_tran = 1

Mevcut veritabanı kullanımı için:

DBCC OPENTRAN

34

Aşağıdaki sorgu yardımı ile aktif işlemin tüm bilgilerini alabilirsiniz.

SELECT
trans.session_id AS [SESSION ID],
ESes.host_name AS [HOST NAME],login_name AS [Login NAME],
trans.transaction_id AS [TRANSACTION ID],
tas.name AS [TRANSACTION NAME],tas.transaction_begin_time AS [TRANSACTION 
BEGIN TIME],
tds.database_id AS [DATABASE ID],DBs.name AS [DATABASE NAME]
FROM sys.dm_tran_active_transactions tas
JOIN sys.dm_tran_session_transactions trans
ON (trans.transaction_id=tas.transaction_id)
LEFT OUTER JOIN sys.dm_tran_database_transactions tds
ON (tas.transaction_id = tds.transaction_id )
LEFT OUTER JOIN sys.databases AS DBs
ON tds.database_id = DBs.database_id
LEFT OUTER JOIN sys.dm_exec_sessions AS ESes
ON trans.session_id = ESes.session_id
WHERE ESes.session_id IS NOT NULL

ve aşağıda benzer sonuç verecektir görüntü açıklamasını buraya girin

ve bu işlemi, oturum kimliğine başvurarak KILL sorgusunun altındaki yardımla kapatırsınız.

KILL 77

Vay canına, bu çok güzel, sağlanan veri miktarını beğendim, tek eksi, onu çalıştırmak için yönetici olmanız gerektiğidir, DBCC OPENTRAN'ın daha az izne ihtiyacı vardır. Ama yine de ... çok iyi
Yogurtu

Çok faydalı, teşekkürler! OP'nin sorusuna (SQL 2000) cevap verdiyse, kabul edilen cevap olmalıydı. Bir olumlu oy alın ...
Reversed Engineer

Harika, istediğimi aldım.
Vipul

23

DBCC OPENTRAN , günlük kesilmesini engelleyebilecek etkin işlemleri belirlemeye yardımcı olur. DBCC OPENTRAN, en eski etkin işlem ve varsa en eski dağıtılmış ve dağıtılmamış çoğaltılmış işlemler hakkındaki bilgileri belirtilen veritabanının işlem günlüğünde görüntüler. Sonuçlar, yalnızca günlükte var olan etkin bir işlem varsa veya veritabanı çoğaltma bilgileri içeriyorsa görüntülenir.

Günlükte etkin işlem yoksa bilgi mesajı görüntülenir.

DBCC OPENTRAN


0

Bunu kullanın çünkü işlem birden fazla işlem açtığında, aşağıdaki SEÇ * Sys.sysprocesses NEREDE open_tran <> 0 çalışacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.