Share via


Veritabanı izleyicisi veri toplama ve veri kümeleri (önizleme)

Şunlar için geçerlidir:Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Veritabanı izleyicisi, SQL sistem görünümlerinden izleme verilerini toplar ve veri kümeleri biçiminde veri deposuna alır. Her veri kümesi, bir veya daha fazla SQL sistem görünümündeki veriler kullanılarak oluşturulur. Her veri kümesi için veri deposunda ayrı bir tablo vardır.

Veri toplama

Veritabanı izleyicisi, T-SQL sorgularını kullanarak düzenli aralıklarla izleme verileri toplar. Sorgunun her yürütülmesinde toplanan veriler örnek olarak adlandırılır. Örnek toplama sıklığı veri kümesine göre değişir. Örneğin, SQL performans sayaçları gibi sık değişen veriler 10 saniyede bir toplanabilirken, veritabanı yapılandırması gibi statik veriler çoğunlukla beş dakikada bir toplanabilir. Daha fazla bilgi için bkz . Veri kümeleri.

Veritabanı izleyicisi, neredeyse gerçek zamanlı izleme sağlamak için Azure Veri Gezgini ve Microsoft Fabric'te Gerçek Zamanlı Analiz'de akış alımındanyararlanır. Genellikle, toplanan SQL izleme verileri 10 saniyeden kısa sürede raporlama ve analiz için kullanılabilir hale gelir. Veri alımı istatistikleri bağlantısını kullanarak veritabanı izleyicisi panolarında veri alımı gecikmesini izleyebilirsiniz.

Veritabanı izleyicisi ile uygulama iş yükleri arasındaki etkileşim

Veritabanı izleyicisini etkinleştirmenin uygulama iş yükleri üzerinde gözlemlenebilir bir etkisi olmayabilir. Daha sık izlenen sorgular genellikle alt saniye aralığında yürütülürken, örneğin büyük veri kümelerini döndürmek için daha fazla zaman gerektirebilecek sorgular seyrek aralıklarla çalıştırılır.

Uygulama iş yükleri üzerindeki etki riskini daha da azaltmak için, Azure SQL Veritabanı'deki tüm veritabanı izleyici sorguları bir iç iş yükü olarak kaynak yönetimine tabi olur. Kaynak çekişmesi olduğunda, sorguların izlenmesiyle kaynak tüketimi, veritabanı veya elastik havuz için kullanılabilir toplam kaynakların küçük bir bölümüyle sınırlıdır. Bu, uygulama iş yüklerini izleme sorgularına göre önceliklendirir.

Azure SQL Yönetilen Örneği'da Resource Governor'ın gerekirse izleme sorguları tarafından kaynak tüketimini benzer şekilde yönetmesini sağlayabilirsiniz.

Aşağıdaki örnekte, SQL yönetilen örneğinde Resource Governor yapılandırılır. CPU çekişmesi olmadığında veritabanı izleyicisi sorgularının CPU tüketimini %30 ile sınırlar. CPU çekişmesi olduğunda, bu yapılandırma izleme sorguları için CPU'nun %5'ini ayırır ve CPU kullanımını %10 ile sınırlar. Ayrıca her izleme sorgusu için bellek verme boyutunu kullanılabilir belleğin %10'unu sınırlar.

USE master;
GO

CREATE OR ALTER FUNCTION dbo.dbw_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN

DECLARE @WorkloadGroupName sysname = 'default';

IF APP_NAME() IN (N'SQLExternalMonitoring',N'x_ms_reserved_sql_external_monitoring')
    SET @WorkloadGroupName = N'database_watcher_workload_group'

RETURN @WorkloadGroupName;

END;
GO

BEGIN TRY

IF EXISTS (
          SELECT 1
          FROM sys.resource_governor_configuration
          WHERE classifier_function_id <> 0 OR is_enabled <> 0
          )
    THROW 50001, 'Resource Governor is already configured. No changes were made.', 1;

CREATE RESOURCE POOL database_watcher_resource_pool
WITH (MIN_CPU_PERCENT = 5, MAX_CPU_PERCENT = 10, CAP_CPU_PERCENT = 30);

CREATE WORKLOAD GROUP database_watcher_workload_group
WITH (REQUEST_MAX_MEMORY_GRANT_PERCENT = 10)
USING database_watcher_resource_pool;

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.dbw_classifier);

ALTER RESOURCE GOVERNOR RECONFIGURE;

END TRY
BEGIN CATCH
    THROW;
END CATCH;

Not

Resource Governor yapılandırmasını SQL yönetilen örneğinin yüksek kullanılabilirlik ikincil çoğaltması üzerinde hemen etkili hale getirmek için çoğaltmaya bağlanın ve komutunu yürütebilirsiniz ALTER RESOURCE GOVERNOR RECONFIGURE;.

Azure SQL kaynaklarınızda çalışan veri toplama ve veritabanı iş yükleri arasında engelleme ve kilitlenme gibi eşzamanlılık çakışmalarını önlemek için, izleme sorguları kısa kilitleme zaman aşımları ve düşük kilitlenme önceliği kullanır. Eşzamanlılık çakışması varsa, uygulama iş yükü sorgularına öncelik verilir. Uygulama iş yükü desenlerine bağlı olarak, bu durum bazı veri kümelerinde toplanan verilerde ara sıra boşluklara neden olabilir.

Elastik havuzlarda veri toplama

Elastik havuzu izlemek için havuzdaki bir veritabanını yer işareti veritabanı olarak belirtmeniz gerekir. Veritabanı izleyicisi yer işareti veritabanına bağlanır. İzleyici izinlere VIEW SERVER PERFORMANCE STATE sahip olduğundan, yer işareti veritabanındaki sistem görünümleri havuzun tamamı için izleme verileri sağlar.

İpucu

İzlemek istediğiniz her elastik havuza boş bir veritabanı ekleyebilir ve bunu yer işareti veritabanı olarak belirleyebilirsiniz. Bu şekilde, elastik havuz izlemesini kesintiye uğratmadan diğer veritabanlarını havuz içinde ve dışında veya havuzlar arasında taşıyabilirsiniz.

Yer işareti veritabanından toplanan veriler havuz düzeyinde ölçümler ve havuzdaki her veritabanı için belirli veritabanı düzeyinde performans ölçümleri içerir. Örneğin bu, her veritabanı için kaynak kullanımı ve istek oranı ölçümlerini içerir. Bazı senaryolarda bir elastik havuzun bir bütün olarak izlenmesi, havuzdaki her veritabanının izlenmesini gereksiz kılar.

Havuz düzeyinde CPU, bellek ve depolama kullanımı ve bekleme istatistikleri gibi bazı izleme verileri, havuzdaki tek bir veritabanına bağlanamadığından yalnızca elastik havuz düzeyinde toplanır. Buna karşılık, sorgu çalışma zamanı istatistikleri, veritabanı özellikleri, tablo ve dizin meta verileri gibi diğer bazı veriler yalnızca veritabanı düzeyinde kullanılabilir.

Elastik havuzdan veritabanı izleyicisi hedefleri olarak tek tek veritabanları eklerseniz, elastik havuzu da hedef olarak eklemeniz gerekir. Bu şekilde, veritabanı ve havuz performansının daha eksiksiz bir görünümünü elde edersiniz.

Yoğun elastik havuzları izleme

Yoğun bir elastik havuz çok sayıda veritabanı içerir, ancak görece küçük bir işlem boyutuna sahiptir. Bu yapılandırma, havuzdaki yalnızca az sayıda veritabanının aynı anda etkin olduğu varsayımı üzerine işlem kaynağı ayırmayı en düşük düzeyde tutarak müşterilerin önemli maliyet tasarrufları elde etmesini sağlar.

Yoğun bir elastik havuzdaki veritabanı izleyicisi sorgularının kullanabileceği işlem kaynakları, uygulama sorgularını etkilememek için daha da sınırlıdır. Bu nedenle, veritabanı izleyicisi yoğun bir elastik havuzdaki her veritabanından izleme verileri toplayamıyor olabilir.

İpucu

Yoğun bir elastik havuzu izlemek için elastik havuzu hedef olarak ekleyerek havuz düzeyinde izlemeyi etkinleştirin.

Yoğun bir elastik havuzdaki birden çok veritabanının izlenmesi önerilmez. Veritabanı izleyicisi sorgularında kullanılabilir işlem kaynaklarının yetersiz olması nedeniyle, toplanan verilerde boşluklar veya veri örnekleri arasında beklenenden daha büyük aralıklar görebilirsiniz.

Veri Kümeleri

Bu bölümde, veri deposundaki koleksiyon sıklıkları ve tablo adları da dahil olmak üzere her hedef türü için kullanılabilen veri kümeleri açıklanmaktadır.

Not

Önizleme sırasında veri kümeleri eklenebilir ve kaldırılabilir. Ad, açıklama, koleksiyon sıklığı ve kullanılabilir sütunlar gibi veri kümesi özellikleri değiştirilebilir.

Veri kümesi adı Tablo adı Toplama sıklığı (ss:dd:ss) Açıklama
Etkin oturumlar sqldb_database_active_sessions 00:00:30 Her satır, istek çalıştıran, engelleyici olan veya açık bir işlemi olan bir oturumu temsil eder.
Yedekleme geçmişi sqldb_database_sql_backup_history 00:05:00 Her satır başarıyla tamamlanmış bir veritabanı yedeğini temsil eder.
Değişiklik işleme sqldb_database_change_processing 00:01:00 Her satır, Değişiklik Verileri Yakalama veya Değişiklik Akışı (Azure Synapse Link) gibi bir değişiklik işleme özelliği için toplu günlük tarama istatistiklerinin anlık görüntüsünü temsil eder.
Değişiklik işleme hataları sqldb_database_change_processing_errors 00:01:00 Her satır, Değişiklik Verileri Yakalama veya Değişiklik Akışı (Azure Synapse Link) gibi bir değişiklik işleme özelliği kullanılırken değişiklik işleme sırasında oluşan bir hatayı temsil eder.
Bağlantı sqldb_database_connectivity 00:00:30 Her satır, veritabanı için bir bağlantı araştırmasını (oturum açma ve sorgu) temsil eder.
Coğrafi çoğaltmalar sqldb_database_geo_replicas 00:00:30 Her satır, coğrafi çoğaltma meta verileri ve istatistikler de dahil olmak üzere birincil veya ikincil bir coğrafi çoğaltmayı temsil eder.
Dizin meta verileri sqldb_database_index_metadata 00:30:00 Her satır bir dizin bölümünü temsil eder ve dizin tanımını, özellikleri ve işlem istatistiklerini içerir.
Bellek kullanımı sqldb_database_memory_utilization 00:00:10 Her satır bir bellek katibini temsil eder ve veritabanı altyapısı örneğindeki katip tarafından bellek tüketimini içerir.
Eksik dizinler sqldb_database_missing_indexes 00:15:00 Her satır, oluşturulursa sorgu performansını geliştirebilecek bir dizini temsil eder.
Yetersiz bellek olayları sqldb_database_oom_events 00:01:00 Her satır, veritabanı altyapısında bellek dışı bir olayı temsil eder.
Performans sayaçları (yaygın) sqldb_database_performance_counters_common 00:00:10 Her satır, veritabanı altyapısı örneğinin performans sayacını temsil eder. Bu veri kümesi yaygın olarak kullanılan sayaçları içerir.
Performans sayaçları (ayrıntılı) sqldb_database_performance_counters_detailed 00:01:00 Her satır, veritabanı altyapısı örneğinin performans sayacını temsil eder. Bu veri kümesi, ayrıntılı izleme ve sorun giderme için gerekli olabilecek sayaçları içerir.
Properties sqldb_database_properties 00:05:00 Her satır bir veritabanını temsil eder ve veritabanı seçeneklerini, kaynak idare sınırlarını ve diğer veritabanı meta verilerini içerir.
Sorgu çalışma zamanı istatistikleri sqldb_database_query_runtime_stats 00:15:00 Her satır bir Sorgu Deposu çalışma zamanı aralığını temsil eder ve sorgu yürütme istatistiklerini içerir.
Sorgu bekleme istatistikleri sqldb_database_query_wait_stats 00:15:00 Her satır bir Sorgu Deposu çalışma zamanı aralığını temsil eder ve bekleme kategorisi istatistiklerini içerir.
Çoğaltmalar sqldb_database_replicas 00:00:10 Her satır, çoğaltma meta verileri ve istatistikler de dahil olmak üzere bir veritabanı çoğaltmasını temsil eder. Birincil çoğaltmada toplandığında birincil çoğaltmayı ve coğrafi çoğaltmaları ve ikincil çoğaltmalarda toplandığında ikincil çoğaltmaları içerir.
Kaynak kullanımı sqldb_database_resource_utilization 00:00:15 Her satır bir zaman aralığındaki bir veritabanı için CPU, Veri GÇ, Günlük GÇ ve diğer kaynak tüketimi istatistiklerini temsil eder.
Oturum istatistikleri sqldb_database_session_stats 00:01:00 Her satır, bir veritabanının oturum istatistiklerinin özetini temsil eder ve oturum adı, konak adı, uygulama adı vb. gibi eksiz oturum öznitelikleri tarafından toplanır.
SOS zamanlayıcıları sqldb_database_sos_schedulers 00:01:00 Her satır bir SOS zamanlayıcısını temsil eder ve zamanlayıcı, CPU düğümü ve bellek düğümü istatistiklerini içerir.
GÇ'Depolama sqldb_database_storage_io 00:00:10 Her satır bir veritabanı dosyasını temsil eder ve dosya için toplu IOPS, aktarım hızı ve gecikme süresi istatistiklerini içerir.
Depolama kullanımı sqldb_database_storage_utilization 00:01:00 Her satır bir veritabanını temsil eder ve , Sorgu Deposu ve Kalıcı Sürüm Deposu gibi tempdbdepolama kullanımını içerir.
Tablo meta verileri sqldb_database_table_metadata 00:30:00 Her satır bir tabloyu veya dizine alınan bir görünümü temsil eder ve satır sayısı, alan kullanımı, veri sıkıştırma, sütunlar ve kısıtlamalar gibi meta verileri içerir.
Bekleme istatistikleri sqldb_database_wait_stats 00:00:10 Her satır bir bekleme türünü temsil eder ve veritabanı altyapısı örneğinin toplu bekleme istatistiklerini içerir. Elastik havuzdaki veritabanları için yalnızca veritabanı kapsamlı bekleme istatistikleri toplanır.

Not

Elastik havuzdaki veritabanları için havuz düzeyinde veri içeren SQL veritabanı veri kümeleri toplanmaz. Buna Bellek kullanımı, Yetersiz bellek olayları, Performans sayaçları (yaygın) ve Performans sayaçları (ayrıntılı) veri kümeleri dahildir. Bekleme istatistikleri veri kümesi toplanır ancak yalnızca veritabanı kapsamlı beklemeleri içerir. Bu, havuzdaki her veritabanından aynı verilerin toplanmasını önler.

Havuz düzeyindeki veriler SQL elastik havuz veri kümelerinde toplanır. Belirli bir elastik havuz için Performans sayaçları (ortak) ve Performans sayaçları (ayrıntılı) veri kümeleri havuz düzeyinde ölçümler ve CPU, Veri GÇ, Günlük yazma, İstekler, İşlemler vb. gibi belirli veritabanı düzeyinde ölçümler içerir.

Ortak sütunlar

Her hedef türü için, aşağıdaki tablolarda açıklandığı gibi veri kümelerinin ortak sütunları vardır.

Sütun adı Açıklama
sample_time_utc Satırdaki değerlerin UTC olarak gözlemlendiği saat.
collection_time_utc Satırın izleyici tarafından UTC olarak toplandığı saat. Bu sütun, toplama süresinin örnek saatten farklı olabileceği veri kümelerinde bulunur.
replica_type Bunlardan biri: Birincil, HA ikincil, Coğrafi çoğaltma ileticisi, Adlandırılmış ikincil.
logical_server_name İzlenen veritabanını veya elastik havuzu içeren Azure SQL Veritabanı mantıksal sunucunun adı.
database_name İzlenen veritabanının adı.
database_id mantıksal sunucu içinde benzersiz olarak izlenen veritabanının veritabanı kimliği.
logical_database_id Kullanıcı veritabanının ömrü boyunca değişmeden kalan benzersiz bir veritabanı tanımlayıcısı. Veritabanını yeniden adlandırmak veya hizmet amacını değiştirmek bu değeri değiştirmez.
physical_database_id Kullanıcı veritabanına karşılık gelen geçerli fiziksel veritabanı için benzersiz bir veritabanı tanımlayıcısı. Veritabanı hizmeti hedefinin değiştirilmesi bu değerin değişmesine neden olur.
replica_id Hiper Ölçek işlem çoğaltması için benzersiz tanımlayıcı.

Veri kümesinde, satır veritabanı izleyicisi tarafından toplanmadan önce gözlemlenen örnekler varsa hem hem de sample_time_utccollection_time_utc sütunları vardır. Aksi takdirde, gözlem süresi ve toplama süresi aynıdır ve veri kümesi yalnızca sample_time_utc sütunu içerir.

Örneğin, sqldb_database_resource_utilization veri kümesi sys.dm_db_resource_stats dinamik yönetim görünümünden (DMV) türetilir. DMV, 15 saniyelik bir aralık için toplam kaynak istatistiklerini bildiren her satır için gözlem süresi olan sütunu içerir end_time . Bu süre sütunda sample_time_utc bildirilir. Veritabanı izleyicisi bu DMV'yi sorguladığında, sonuç kümesi her birinin farklı end_timeolduğu birden çok satır içerebilir. Bu satırların tümü aynı collection_time_utc değere sahiptir.