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

Pemecahan masalah kebuntuan di Sql Server 2008

SQL Server 2008 memiliki beberapa cara untuk mengidentifikasi proses dan kueri yang terlibat dalam kebuntuan.

  1. Jika kebuntuan mudah direproduksi, frekuensinya lebih tinggi dan Anda dapat membuat profil SQL server (Anda memiliki akses dan biaya kinerja di server ketika profiler diaktifkan) menggunakan SQL Profiler akan memberi Anda tampilan grafis kebuntuan yang bagus. Halaman ini memiliki semua informasi yang Anda perlu menggunakan grafik kebuntuanhttp://sqlmag.com/ database-performance-tuning/gathering-deadlock-information-deadlock-graph

  2. Sebagian besar waktu mereproduksi kebuntuan itu sulit, atau itu terjadi di lingkungan produksi di mana kami tidak ingin melampirkan Profiler ke dalamnya dan memengaruhi kinerja.

Saya akan menggunakan kueri ini untuk mendapatkan kebuntuan:

SELECT
  xed.value('@timestamp', 'datetime') as Creation_Date,
  xed.query('.') AS Extend_Event
FROM
(
  SELECT CAST([target_data] AS XML) AS Target_Data
  FROM sys.dm_xe_session_targets AS xt
  INNER JOIN sys.dm_xe_sessions AS xs
  ON xs.address = xt.event_session_address
  WHERE xs.name = N'system_health'
  AND xt.target_name = N'ring_buffer'
) AS XML_Data
CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xed)
ORDER BY Creation_Date DESC

Saya TIDAK akan menggunakan (NOLOCK) untuk memperbaiki kebuntuan. Itu adalah lereng yang licin dan menyembunyikan masalah aslinya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri SQL Server pilih 1 dari setiap sub-grup

  2. menampilkan kolom non agregat dalam grup dengan kueri dalam SQL

  3. Bagaimana cara mengubah ukuran halaman SQL Server?

  4. Pengenalan SQL Server

  5. Catatan acak dari tabel database (T-SQL)