Apakah ada cara untuk membuat daftar transaksi terbuka di database SQL Server 2000?

100

Apakah ada yang tahu cara untuk membuat daftar transaksi terbuka di database SQL Server 2000?

Saya sadar bahwa saya dapat meminta tampilan sys.dm_tran_session_transactionspada versi database SQL 2005 (dan yang lebih baru), namun ini tidak tersedia di SQL 2000.

James Wiseman
sumber

Jawaban:

157

Untuk semua database query sys.sysprocesses

SELECT * FROM sys.sysprocesses WHERE open_tran = 1

Untuk penggunaan database saat ini:

DBCC OPENTRAN
gbn
sumber
34

Anda bisa mendapatkan semua informasi transaksi aktif dengan bantuan kueri di bawah ini

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

dan itu akan memberikan hasil serupa di bawah ini masukkan deskripsi gambar di sini

dan Anda menutup transaksi itu dengan bantuan di bawah kueri KILL dengan merujuk id sesi

KILL 77
Rinoy Ashokan
sumber
Wow, yang ini sangat bagus, saya suka jumlah data yang disediakan, satu-satunya kekurangan adalah Anda perlu menjadi administrator untuk menjalankannya, DBCC OPENTRAN membutuhkan lebih sedikit izin. Tapi tetap ... sangat bagus
Yogurtu
Sangat bermanfaat, terima kasih! Jika itu menjawab pertanyaan OP (SQL 2000), itu seharusnya jawaban yang diterima. Dapatkan suara positif ...
Reversed Engineer
Luar biasa, dapatkan apa yang saya inginkan.
Vipul
23

DBCC OPENTRAN membantu mengidentifikasi transaksi aktif yang mungkin mencegah pemotongan log. DBCC OPENTRAN menampilkan informasi tentang transaksi aktif tertua dan transaksi replikasi terdistribusi dan tidak terdistribusi terlama, jika ada, dalam log transaksi dari database yang ditentukan. Hasil ditampilkan hanya jika ada transaksi aktif yang ada di log atau jika database berisi informasi replikasi.

Pesan informasional ditampilkan jika tidak ada transaksi aktif di log.

OPENTRAN DBCC

codingbadger
sumber
0

Gunakan ini karena setiap kali transaksi membuka lebih dari satu transaksi maka di bawah ini akan berfungsi SELECT * FROM sys.sysprocesses WHERE open_tran <> 0

kanti
sumber