क्या SQL Server 2000 डेटाबेस पर खुले लेनदेन को सूचीबद्ध करने का एक तरीका है?


100

क्या किसी को SQL Server 2000 डेटाबेस पर खुले लेनदेन को सूचीबद्ध करने का कोई तरीका पता है?

मुझे पता है कि मैं sys.dm_tran_session_transactionsSQL 2005 (और बाद में) डेटाबेस संस्करणों पर दृश्य को क्वेरी कर सकता हूं , हालांकि यह SQL 2000 पर उपलब्ध नहीं है।

जवाबों:


157

सभी डेटाबेस क्वेरी के लिए sys.sysprocesses

SELECT * FROM sys.sysprocesses WHERE open_tran = 1

वर्तमान डेटाबेस उपयोग के लिए:

DBCC OPENTRAN

34

आप नीचे दिए गए क्वेरी की मदद से सक्रिय लेनदेन की सभी जानकारी प्राप्त कर सकते हैं

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

और यह समान परिणाम के नीचे देगा यहां छवि विवरण दर्ज करें

और आप सत्र आईडी को संदर्भित करके KILL क्वेरी के नीचे की मदद से उस लेनदेन को बंद कर दें

KILL 77

वाह, यह एक बहुत अच्छा है, मुझे प्रदान किए गए डेटा की मात्रा पसंद है, एकमात्र चोर यह है कि आपको इसे चलाने के लिए व्यवस्थापक होने की आवश्यकता है, DBCC OPENTRAN को कम अनुमतियों की आवश्यकता है। लेकिन फिर भी ... बहुत अच्छा
योगर्टु

बहुत उपयोगी है, धन्यवाद! यदि यह ओपी के प्रश्न (एसक्यूएल 2000) का उत्तर देता है, तो इसे स्वीकृत उत्तर होना चाहिए। एक उत्थान किया है ...
उल्टा इंजीनियर

बहुत बढ़िया, जो मुझे चाहिए था वह मिल गया।
विपुल

23

DBCC OPENTRAN सक्रिय लेनदेन की पहचान करने में मदद करता है जो लॉग ट्रंकेशन को रोक सकता है। DBCC OPENTRAN सबसे पुराने सक्रिय लेनदेन के बारे में जानकारी प्रदर्शित करता है और निर्दिष्ट डेटाबेस के लेन-देन लॉग के भीतर सबसे पुराना वितरित और nondistributed प्रतिकृति लेनदेन, यदि कोई हो, के बारे में जानकारी प्रदर्शित करता है। परिणाम केवल तभी प्रदर्शित होते हैं जब लॉग में मौजूद एक सक्रिय लेनदेन होता है या यदि डेटाबेस में प्रतिकृति जानकारी होती है।

लॉग में कोई सक्रिय लेनदेन नहीं होने पर एक सूचना संदेश प्रदर्शित होता है।

DBCC OPENTRAN


0

इसका उपयोग करें क्योंकि जब भी लेन-देन एक से अधिक लेन-देन से खुलेगा तो नीचे काम करेगा चयन करें * Fys से sys.sysprocesses कहाँ खुला_ट्रेन <> 0

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.