Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana menemukan alasan kebuntuan di sql server ro14?

Informasi kebuntuan ditangkap oleh system_health Pelacakan Peristiwa yang Diperpanjang secara default. Tidak perlu mengaktifkan tanda pelacakan tambahan.

Informasi dari xml_deadlock acara dapat dilihat dari SSMS Object Explorer (Management-->Extended Events-->Sessions--system_health) atau dengan T-SQL. Di bawah ini adalah contoh query untuk mendapatkan deadlock xml dari file target. Anda juga dapat menyimpan xml kebuntuan ke file dengan xdl ekstensi dan buka file di SSMS untuk tampilan grafis dari kebuntuan.

--get xml_deadlock_report from system_health session file target
WITH
      --get full path to current system_health trace file
      CurrentSystemHealthTraceFile AS (
        SELECT CAST(target_data AS xml).value('(/EventFileTarget/File/@name)[1]', 'varchar(255)') AS FileName
        FROM sys.dm_xe_session_targets
        WHERE
            target_name = 'event_file'
            AND CAST(target_data AS xml).value('(/EventFileTarget/File/@name)[1]', 'varchar(255)') LIKE '%\system[_]health%'
    )
      --get trace folder name and add base name of system_health trace file with wildcard
    , BaseSystemHealthFileName AS (
        SELECT 
            REVERSE(SUBSTRING(REVERSE(FileName), CHARINDEX(N'\', REVERSE(FileName)), 255)) + N'system_health*.xel' AS FileNamePattern
        FROM CurrentSystemHealthTraceFile
        )
      --get xml_deadlock_report events from all system_health trace files
    , DeadLockReports AS (
        SELECT CAST(event_data AS xml) AS event_data
        FROM BaseSystemHealthFileName
        CROSS APPLY sys.fn_xe_file_target_read_file ( FileNamePattern, NULL, NULL, NULL) AS xed
        WHERE xed.object_name like 'xml_deadlock_report'
    )
--display 10 most recent deadlocks
SELECT TOP 10
      DATEADD(hour, DATEDIFF(hour, SYSUTCDATETIME(), SYSDATETIME()), event_data.value('(/event/@timestamp)[1]', 'datetime2')) AS LocalTime
    , event_data AS DeadlockReport
FROM DeadLockReports
ORDER BY LocalTime ASC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat RAND() Deterministik di SQL Server

  2. SSRS - Setara Group_Concat menggunakan Ekspresi?

  3. Bagaimana cara membuat indeks unik pada kolom NULL?

  4. Buat Database SQL Server dengan Azure Data Studio

  5. Perbaiki Msg 512 "Subquery mengembalikan lebih dari 1 nilai" di SQL Server