Aracılığıyla paylaş


system_health oturumunu kullanma

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Oturum system_health , SQL Server ve Azure SQL Yönetilen Örneği'ne varsayılan olarak dahil edilen bir Genişletilmiş Olaylar oturumudur. Bu oturum, Veritabanı Altyapısı başlatıldığında otomatik olarak başlar ve fark edilebilir bir performans yükü olmadan çalışır. Oturum, Veritabanı Altyapısı'ndaki performans sorunlarını gidermeye yardımcı olmak için kullanabileceğiniz sistem verilerini toplar.

Önemli

system_health oturumunu durdurmamanızı, değiştirmemenizi veya silmemenizi öneririz. Oturum ayarlarında yapılan system_health tüm değişikliklerin üzerine gelecekteki bir ürün güncelleştirmesi yazılabilir.

Oturum aşağıdaki bilgileri içeren bilgileri toplar:

  • Önem derecesi >= 20 olan bir hatayla karşılaşan tüm oturumlar için sql_text ve session_id.
  • Bellekle ilgili bir hatayla karşılaşan tüm oturumlar için sql_text ve session_id. Hatalar 17803, 701, 802, 8645, 8651, 8657 ve 8902'yi içerir.
  • Verimsiz zamanlayıcı sorunlarının kaydı. Bunlar SQL Server hata günlüğünde hata 17883 olarak görünür.
  • Algılanan tüm kilitlenmeler, kilitlenme grafiği de dahil olmak üzere.
  • 15 saniye boyunca mandallarda (veya diğer ilginç kaynaklarda) bekleyen oturumlar için callstack, sql_text ve session_id.
  • callstackKilitlerde 30 saniye boyunca bekleyen tüm oturumlar için > , sql_textvesession_id.
  • callstackÖnalımlı beklemeler için uzun süre bekleyen tüm oturumlar için , sql_textvesession_id. Süre, bekleme türüne göre değişir. Önleyici bekleme, SQL Server'ın dış API çağrılarını beklediği durumdur.
  • callstack CLR ayırma hataları ve session_id sanal ayırma hataları için.
  • Bellek aracısı, zamanlayıcı izleyicisi, bellek düğümü OOM, güvenlik ve bağlantı için kademe arabellek olayları.
  • Sistem bileşeninin sp_server_diagnostics sonuçları.
  • tarafından scheduler_monitor_system_health_ring_buffer_recordedtoplanan örnek durumu.
  • CLR Ayırma hataları.
  • kullanarak connectivity_ring_buffer_recordedbağlantı hataları.
  • Güvenlik hataları security_error_ring_buffer_recorded kullanımıyla.

Uyarı

Kilitlenmeler hakkında daha fazla bilgi için Kilitlenmeler kılavuzuna bakın. SQL hata iletileri hakkında daha fazla bilgi için bkz. Veritabanı Altyapısı olayları ve hataları.

system_health oturum verilerini görüntüleme

Oturum, verileri depolamak için hem kademe arabelleği hedefini hem de olay dosyası hedefini kullanır. Olay dosyası hedefi, en fazla 5 MB boyuta ve 4 dosyalık bir dosya bekletme ilkesine sahip olarak yapılandırılır. SQL Server Standard ve Enterprise sürümlerinde, olay dosyası hedefi sınırları artırmıştır: en fazla 100 MB boyut ve 10 dosyalık dosya saklama ilkesi.

SQL Server Management Studio'da kullanılabilen Genişletilmiş Olaylar kullanıcı arabirimiyle kademe arabelleği hedefinden oturum verilerini görüntülemek için bkz. SQL Server'da Genişletilmiş Olaylardan Hedef Verilerin Gelişmiş Görüntülenmesi - Canlı verileri izleme.

Transact-SQL ile kademe arabelleği hedefinden oturum verilerini görüntülemek için aşağıdaki sorguyu kullanın:

SELECT CAST(xet.target_data as xml) AS target_data
FROM sys.dm_xe_session_targets xet
JOIN sys.dm_xe_sessions xe
ON xe.address = xet.event_session_address
WHERE xe.name = 'system_health'

Olay dosyasındaki oturum verilerini görüntülemek için SQL Server Management Studio'da kullanılabilen Genişletilmiş Olaylar olay görüntüleyici kullanıcı arabirimini kullanın. Daha fazla bilgi için bkz. SQL Server Management Studio'da olay verilerini görüntüleme.

system_health oturumunu geri yükleme

Oturumu system_health silerseniz, u_tables.sql betiği yürüterek silinen oturumu geri yükleyebilirsiniz. Bu dosya, C: SQL Server program dosyalarını yüklediğiniz sürücüyü ve MSSQLnn SQL Server'ın ana sürümünü temsil eden aşağıdaki klasörde bulunur:

C:\Program Files\Microsoft SQL Server\MSSQLnn.\<instanceid>\MSSQL\Install

Oturumu geri yükledikten sonra, ALTER EVENT SESSION ifadesini kullanarak veya Nesne Gezgini'ndeki Genişletilmiş Olaylar düğümünü kullanarak başlatmanız gerekir. Aksi takdirde, SQL Server hizmetini bir sonraki yeniden başlattığınızda oturum otomatik olarak başlatılır.

Azure SQL'de system_health oturumu

Azure SQL Yönetilen Örneği'nde oturum verileri, system_health Nesne Gezgini'nde event_file veya ring_buffer hedefe sağ tıklayıp Hedef Verileri Görüntüle seçilerek görüntülenebilir.

Azure SQL Veritabanı'nda system_health yerleşik Genişletilmiş Olay oturumu yoktur, ancak kendi oluşturduğunuz ve Azure Depolama'da depoladığınız Genişletilmiş Olay oturumlarından okumak için işlevini kullanabilirsiniz sys.fn_xe_file_target_read_file() . Detaylı anlatım için bkz Azure SQL Veritabanı'nda Genişletilmiş Olaylar için Olay Dosyası hedef kodu.