Interessantes Script zum Thema Lock,läuft nicht unter SQL2000

18/11/2009 - 10:33 von uwe schuh | Report spam
Hallo zusammen,

Ich habe das mit mit SQL-Server 2005 getestet, da tut es, aber unter 2000
tut es nicht.

Is a bissel blöd.


Kann man das so umschreiben bzw. was muß ich daran veràndern das es unter
SQL-Server 2000 làuft.

Ich stelle das mal hier rein.
Vielleicht kann das ja jemand veràndern.
Wàre super, da meine Versuche "cross apply" durch "inner Join" und
"sys.dm_exec_sql_text" durch "sys.fn_get_sql" gescheitert sind. ;-) ;-)
Passiert wenn man keine Ahnung hat. ;-)



USE MASTER
GO

CREATE PROCEDURE [dbo].[sp_LockDetail]
AS
BEGIN
SELECT
SessionID = s.Session_id,
resource_type,
DatabaseName = DB_NAME(resource_database_id),
request_mode,
request_type,
login_time,
host_name,
program_name,
client_interface_name,
login_name,
nt_domain,
nt_user_name,
s.status,
last_request_start_time,
last_request_end_time,
s.logical_reads,
s.reads,
request_status,
request_owner_type,
objectid,
dbid,
a.number,
a.encrypted ,
a.blocking_session_id,
a.text
FROM
sys.dm_tran_locks l
JOIN sys.dm_exec_sessions s ON l.request_session_id = s.session_id
LEFT JOIN
(
SELECT *
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
) a ON s.session_id = a.session_id
WHERE
s.session_id > 50
END
 

Lesen sie die antworten

#1 Uwe Ricken
18/11/2009 - 11:00 | Warnen spam
Hallo Uwe,

wie bereits im von Dir zuvor gestarteten Thread (wàre schön, wenn Du auch
darin weiter posten würdest) von Elmar bemerkt und von mir zuvor
"überlesen": In SQL 2000 gibt es diese dynamischen Views leider nicht.
Verwende doch sp_who2.
Ansonsten ginge es auch so, dass Du Deadlocks ins Errorlog aufzeichnest und
anschließend ausliest:
DBCC TRACEON (1204, 3605, -1)

DBCC TRACEOFF(1204, 3605, -1)
EXEC master.dbo.sp_readerrorlog

HTH ;-)

Uwe Ricken
db Berater GmbH

MCTS: Microsoft SQL Server 2005
MCDBA: Microsoft SQL Server 2005

Ähnliche fragen