MSSQL: näita andmebaasi avatud transaktsioone

Täna olen MSSQL 2008 lainel, seetõttu veel näiteid…

Üldiselt Microsoft on ka palju toredaid näiteid kokku pannud, aga enamasti ei leia neid õigel hetkel.

Üks disainiviga, mis võib ilmneda halbadel juhtudel on avatud transaktioon ehk rollbacki – commitit ei järgne. Kaks SQLi:

— seda kasutaks mina, näitab kõiki avatud transaktsioone
SELECT convert(varchar(5000),s.context_info) as sessioonisonum, s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
(
SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id
)

Microsofti näide oli, seal kuvatakse transaktioone, mis IDLE ehk üldse midagi ei toimu…

SELECT convert(varchar(5000),s.context_info) as sessioonisonum, s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
(
SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id
)

AND NOT EXISTS
(
SELECT *
FROM sys.dm_exec_requests AS r
WHERE r.session_id = s.session_id
)

Nii, teeme nüüd näite, mis võite katsetada testserveril !

declare @vb varbinary(128)
set @vb=cast(‘adminn, ma näen sind’ as varbinary)
set context_info @vb
begin tran

Ja, kui adminn esimest päringut sooritab, võite kindel olla, et Teile helistatakse ;))

Üldiselt, kui last_request_start_time näitab, et transaktsioon avatud rohkem, kui 15 min…oleks arukas see lõpetada.

kill on Sinu sõber

Lõpetuseks veel üks hea SQL Microsofti poolt, vägagi efektiivselt leiab päringud, mis serverit koormavad !!!

SELECT TOP 55 total_worker_time/execution_count AS [Avg CPU Time],
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END – qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;

Advertisements

Lisa kommentaar

Täida nõutavad väljad või kliki ikoonile, et sisse logida:

WordPress.com Logo

Sa kommenteerid kasutades oma WordPress.com kontot. Logi välja /  Muuda )

Google+ photo

Sa kommenteerid kasutades oma Google+ kontot. Logi välja /  Muuda )

Twitter picture

Sa kommenteerid kasutades oma Twitter kontot. Logi välja /  Muuda )

Facebook photo

Sa kommenteerid kasutades oma Facebook kontot. Logi välja /  Muuda )

Connecting to %s


%d bloggers like this: