Follow Us

Soluții pentru problemele tale IT

Home /Servicii baze de date/SQL Server/Monitorizare sql server login
Home /Servicii baze de date /Monitorizare sql server login

Monitorizare sql server login

  • Data 13/07/2023
  • Autor Bogdan Dumitru
  • Categorie Servicii baze de date, SQL Server
  • 5
  • 727
Configurare noua (How To)

Situatie

Mai jos este o procedura ce primeste ca parametru numele unui login de pe un server Microsoft SQL Server si pentru acest login, returneaza informatii despre activitatea lui pe serverul sql.

Solutie

alter PROCEDURE ActivityByLogin_prc
@Login varchar(max)

as

SELECT
[Session ID] = s.session_id,
[User Process] = CONVERT(CHAR(1), s.is_user_process),
[Login] = s.login_name,
[Database] = ISNULL(db_name(p.dbid), N”),
[Task State] = ISNULL(t.task_state, N”),
[Command] = ISNULL(r.command, N”),
[Application] = ISNULL(s.program_name, N”),
[Wait Time (ms)] = ISNULL(w.wait_duration_ms, 0),
[Wait Type] = ISNULL(w.wait_type, N”),
[Wait Resource] = ISNULL(w.resource_description, N”),
[Blocked By] = ISNULL(CONVERT (varchar, w.blocking_session_id), ”),
[Head Blocker] =
CASE
WHEN r2.session_id IS NOT NULL AND (r.blocking_session_id = 0 OR r.session_id IS NULL) THEN ‘1’
ELSE ”
END,
[Total CPU (ms)] = s.cpu_time,
[Total Physical I/O (MB)] = (s.reads + s.writes) * 8 / 1024,
[Memory Use (KB)] = s.memory_usage * 8192 / 1024,
[Open Transactions] = ISNULL(r.open_transaction_count,0),
[Login Time] = s.login_time,
[Last Request Start Time] = s.last_request_start_time,
[Host Name] = ISNULL(s.host_name, N”),
[Net Address] = ISNULL(c.client_net_address, N”),
[Execution Context ID] = ISNULL(t.exec_context_id, 0),
[Request ID] = ISNULL(r.request_id, 0),
[Workload Group] = ISNULL(g.name, N”)
FROM sys.dm_exec_sessions s LEFT OUTER JOIN sys.dm_exec_connections c ON (s.session_id = c.session_id)
LEFT OUTER JOIN sys.dm_exec_requests r ON (s.session_id = r.session_id)
LEFT OUTER JOIN sys.dm_os_tasks t ON (r.session_id = t.session_id AND r.request_id = t.request_id)
LEFT OUTER JOIN
(

SELECT *, ROW_NUMBER() OVER (PARTITION BY waiting_task_address ORDER BY wait_duration_ms DESC) AS row_num
FROM sys.dm_os_waiting_tasks
) w ON (t.task_address = w.waiting_task_address) AND w.row_num = 1
LEFT OUTER JOIN sys.dm_exec_requests r2 ON (s.session_id = r2.blocking_session_id)
LEFT OUTER JOIN sys.dm_resource_governor_workload_groups g ON (g.group_id = s.group_id)–TAKE THIS dmv OUT TO WORK IN 2005
LEFT OUTER JOIN sys.sysprocesses p ON (s.session_id = p.spid)
where s.login_name = @Login
ORDER BY s.session_id;

Tip solutie

Permanent
Etichetare: activity by sql server login

Voteaza

Up Down
(19 din 33 persoane apreciaza acest articol)
Share
Tweet
Share

Despre Autor

Bogdan Dumitru

Solutii Asemanatoare

  • Listarea rapoartelor din Reporting Services de pe un server MSSQL 1
  • Listarea tuturor indexilor de pe o baza de date 1
  • Listare joburi inactive 5
  • Listare fisiere baze de date ce stau pe o anumita partitie 2
  • Listare cea mai recenta data de accesare a bazelor de date de pe MSSQL Server 1
  • Listare tabele si informatii despre compresie 3

Leave A Comment? × Cancel Reply

31234

Soluții Disponibile

0 Articole

In ultima saptamana

Cele mai recente soluții

  • Combina nume+prenume in Excel
    • 10
    • 10 hours ago
  • Colorare automată a mesajelor in Outlook
    • 12
    • 12/03/2026
  • Improve AI answers by asking it to Self-Review
    • 11
    • 12/03/2026
  • Improve AI Code Generation with simple constraints
    • 9
    • 12/03/2026
  • Turn rough ideas into a structured plan with AI
    • 13
    • 12/03/2026
© Askit.ro, 2014 - 2026. All rights reserved. Done by Class IT
Share
Tweet
Share