Bagikan melalui


Pengumpulan data dan himpunan data pengamat database (pratinjau)

Berlaku untuk: Azure SQL Database Azure SQL Managed Instance

Pengamat database mengumpulkan data pemantauan dari tampilan sistem SQL dan menyerapnya ke penyimpanan data dalam bentuk himpunan data. Setiap himpunan data dibentuk menggunakan data dari satu atau beberapa tampilan sistem SQL. Untuk setiap himpunan data, ada tabel terpisah di penyimpanan data.

Kumpulan data

Pengamat database mengumpulkan data pemantauan pada interval berkala menggunakan kueri T-SQL. Data yang dikumpulkan dalam setiap eksekusi kueri disebut sampel. Frekuensi pengumpulan sampel bervariasi menurut himpunan data. Misalnya, data yang sering berubah seperti penghitung kinerja SQL mungkin dikumpulkan setiap 10 detik, sementara sebagian besar data statis seperti konfigurasi database mungkin dikumpulkan setiap lima menit. Untuk informasi selengkapnya, lihat Himpunan data.

Pengamat database memanfaatkan penyerapan streaming di Azure Data Explorer dan Real-Time Analytics di Microsoft Fabric untuk menyediakan pemantauan mendekati real time. Biasanya, data pemantauan SQL yang dikumpulkan tersedia untuk pelaporan dan analisis dalam waktu kurang dari 10 detik. Anda dapat memantau latensi penyerapan data di dasbor pengamat database, menggunakan tautan Statistik penyerapan.

Interaksi antara pengamat database dan beban kerja aplikasi

Mengaktifkan pengamat database kemungkinan tidak akan memiliki dampak yang dapat diamati pada beban kerja aplikasi. Kueri pemantauan yang lebih sering biasanya dijalankan dalam rentang sub-detik, sedangkan kueri yang mungkin memerlukan lebih banyak waktu, misalnya untuk mengembalikan himpunan data besar, berjalan pada interval yang jarang terjadi.

Untuk lebih mengurangi risiko dampak pada beban kerja aplikasi, semua kueri pengamat database di Azure SQL Database diatur sumber daya sebagai beban kerja internal. Ketika ada ketidakcocokan sumber daya, konsumsi sumber daya dengan memantau kueri terbatas pada sebagian kecil dari total sumber daya yang tersedia untuk database atau kumpulan elastis. Ini memprioritaskan beban kerja aplikasi daripada kueri pemantauan.

Di Azure SQL Managed Instance, Anda dapat mengaktifkan Resource Governor untuk mengelola konsumsi sumber daya dengan kueri pemantauan dengan cara yang sama, jika perlu.

Contoh berikut mengonfigurasi Resource Governor pada instans terkelola SQL. Ini membatasi konsumsi CPU oleh kueri pengamat database hingga 30% ketika tidak ada ketidakcocokan CPU. Ketika ada ketidakcocokan CPU, konfigurasi ini mencadangkan 5% dari CPU untuk kueri pemantauan dan membatasi penggunaan CPU mereka hingga 10%. Ini juga membatasi ukuran pemberian memori untuk setiap kueri pemantauan hingga 10% dari memori yang tersedia.

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;

Catatan

Untuk membuat konfigurasi Resource Governor segera efektif pada replika sekunder ketersediaan tinggi dari instans terkelola SQL, sambungkan ke replika dan jalankan ALTER RESOURCE GOVERNOR RECONFIGURE;.

Untuk menghindari konflik konkurensi seperti pemblokiran dan kebuntuan antara pengumpulan data dan beban kerja database yang berjalan di sumber daya Azure SQL Anda, kueri pemantauan menggunakan batas waktu penguncian singkat dan prioritas kebuntuan rendah. Jika ada konflik konkurensi, prioritas diberikan ke kueri beban kerja aplikasi. Bergantung pada pola beban kerja aplikasi, ini dapat menyebabkan celah sesekali dalam data yang dikumpulkan untuk beberapa himpunan data.

Pengumpulan data dalam kumpulan elastis

Untuk memantau kumpulan elastis, Anda harus menunjuk satu database di kumpulan sebagai database jangkar. Pengamat database tersambung ke database jangkar. Karena pengamat memegang VIEW SERVER PERFORMANCE STATE izin, tampilan sistem dalam database jangkar menyediakan data pemantauan untuk kumpulan secara keseluruhan.

Tip

Anda dapat menambahkan database kosong ke setiap kumpulan elastis yang ingin Anda pantau, dan menunjuknya sebagai database jangkar. Dengan cara ini, Anda dapat memindahkan database lain masuk dan keluar dari kumpulan, atau di antara kumpulan, tanpa mengganggu pemantauan kumpulan elastis.

Data yang dikumpulkan dari database jangkar berisi metrik tingkat kumpulan, dan metrik performa tingkat database tertentu untuk setiap database di kumpulan. Misalnya, ini termasuk pemanfaatan sumber daya dan metrik tingkat permintaan untuk setiap database. Untuk beberapa skenario, memantau kumpulan elastis secara keseluruhan membuatnya tidak perlu memantau setiap database individu di kumpulan.

Data pemantauan tertentu seperti CPU tingkat kumpulan, memori, dan pemanfaatan penyimpanan, dan statistik tunggu hanya dikumpulkan pada tingkat kumpulan elastis karena tidak dapat dikaitkan dengan database individual dalam kumpulan. Sebaliknya, data tertentu lainnya seperti statistik runtime kueri, properti database, metadata tabel dan indeks hanya tersedia di tingkat database.

Jika Anda menambahkan database individual dari kumpulan elastis sebagai target pengamat database, Anda juga harus menambahkan kumpulan elastis sebagai target. Dengan cara ini, Anda mendapatkan tampilan yang lebih lengkap dari database dan performa kumpulan.

Memantau kumpulan elastis yang padat

Kumpulan elastis yang padat berisi sejumlah besar database, tetapi memiliki ukuran komputasi yang relatif kecil. Konfigurasi ini memungkinkan pelanggan mencapai penghematan biaya yang besar dengan menjaga alokasi sumber daya komputasi minimal pada asumsi bahwa hanya sejumlah kecil database dalam kumpulan yang aktif pada saat yang sama.

Sumber daya komputasi yang tersedia untuk kueri pengamat database di kumpulan elastis yang padat dibatasi lebih lanjut untuk menghindari memengaruhi kueri aplikasi. Karena itu, pengamat database mungkin tidak dapat mengumpulkan data pemantauan dari setiap database dalam kumpulan elastis yang padat.

Tip

Untuk memantau kumpulan elastis yang padat, aktifkan pemantauan di tingkat kumpulan dengan menambahkan kumpulan elastis sebagai target.

Tidak disarankan untuk memantau lebih dari beberapa database individu dalam kumpulan elastis yang padat. Anda mungkin melihat celah dalam data yang dikumpulkan atau lebih besar dari interval yang diharapkan antara sampel data karena sumber daya komputasi yang tidak mencukupi yang tersedia untuk kueri pengamat database.

Himpunan data

Bagian ini menjelaskan himpunan data yang tersedia untuk setiap jenis target, termasuk frekuensi pengumpulan dan nama tabel di penyimpanan data.

Catatan

Selama pratinjau, himpunan data mungkin ditambahkan dan dihapus. Properti himpunan data seperti nama, deskripsi, frekuensi pengumpulan, dan kolom yang tersedia dapat berubah.

Nama himpunan data Nama tabel Frekuensi pengumpulan (hh:mm:ss) Deskripsi
Sesi aktif sqldb_database_active_sessions 00:00:30 Setiap baris mewakili sesi yang menjalankan permintaan, adalah pemblokir, atau memiliki transaksi terbuka.
Riwayat pencadangan sqldb_database_sql_backup_history 00:05:00 Setiap baris mewakili pencadangan database yang berhasil diselesaikan.
Mengubah pemrosesan sqldb_database_change_processing 00:01:00 Setiap baris mewakili rekam jepret statistik pemindaian log agregat untuk fitur pemrosesan perubahan seperti Ubah Penangkapan Data atau Umpan Perubahan (Azure Synapse Link).
Mengubah kesalahan pemrosesan sqldb_database_change_processing_errors 00:01:00 Setiap baris mewakili kesalahan yang terjadi selama pemrosesan perubahan, saat menggunakan fitur pemrosesan perubahan seperti Ubah Penangkapan Data atau Umpan Perubahan (Azure Synapse Link).
Konektivitas sqldb_database_connectivity 00:00:30 Setiap baris mewakili pemeriksaan konektivitas (login dan kueri) untuk database.
Geo-replika sqldb_database_geo_replicas 00:00:30 Setiap baris mewakili geo-replika primer atau sekunder, termasuk metadata dan statistik replikasi geografis.
Metadata indeks sqldb_database_index_metadata 00:30:00 Setiap baris mewakili partisi indeks dan mencakup definisi indeks, properti, dan statistik operasional.
Penggunaan memori sqldb_database_memory_utilization 00:00:10 Setiap baris mewakili petugas memori dan menyertakan konsumsi memori oleh petugas pada instans mesin database.
Indeks yang tidak ada sqldb_database_missing_indexes 00:15:00 Setiap baris mewakili indeks yang mungkin meningkatkan performa kueri jika dibuat.
Peristiwa kehabisan memori sqldb_database_oom_events 00:01:00 Setiap baris mewakili peristiwa di luar memori di mesin database.
Penghitung kinerja (umum) sqldb_database_performance_counters_common 00:00:10 Setiap baris mewakili penghitung kinerja instans mesin database. Himpunan data ini mencakup penghitung yang umum digunakan.
Penghitung kinerja (terperinci) sqldb_database_performance_counters_detailed 00:01:00 Setiap baris mewakili penghitung kinerja instans mesin database. Himpunan data ini mencakup penghitung yang mungkin diperlukan untuk pemantauan dan pemecahan masalah terperinci.
Properti sqldb_database_properties 00:05:00 Setiap baris mewakili database dan menyertakan opsi database, batas tata kelola sumber daya, dan metadata database lainnya.
Statistik runtime kueri sqldb_database_query_runtime_stats 00:15:00 Setiap baris mewakili interval runtime Query Store dan menyertakan statistik eksekusi kueri.
Statistik tunggu kueri sqldb_database_query_wait_stats 00:15:00 Setiap baris mewakili interval runtime Query Store dan menyertakan statistik kategori tunggu.
Replika sqldb_database_replicas 00:00:10 Setiap baris mewakili replika database, termasuk metadata replikasi dan statistik. Termasuk replika utama dan replika geografis saat dikumpulkan pada replika utama, dan sekunder saat dikumpulkan pada replika sekunder.
Pemanfaatan sumber daya sqldb_database_resource_utilization 00:00:15 Setiap baris mewakili CPU, IO Data, IO Log, dan statistik konsumsi sumber daya lainnya untuk database dalam interval waktu.
Statistik sesi sqldb_database_session_stats 00:01:00 Setiap baris mewakili ringkasan statistik sesi untuk database, yang dikumpulkan oleh atribut sesi non-aditif seperti nama login, nama host, nama aplikasi, dll.
Penjadwal SOS sqldb_database_sos_schedulers 00:01:00 Setiap baris mewakili penjadwal SOS dan menyertakan statistik untuk penjadwal, node CPU, dan simpul memori.
IO Penyimpanan sqldb_database_storage_io 00:00:10 Setiap baris mewakili file database dan menyertakan statistik IOPS, throughput, dan latensi kumulatif untuk file tersebut.
Pemanfaatan penyimpanan sqldb_database_storage_utilization 00:01:00 Setiap baris mewakili database dan menyertakan penggunaan penyimpanannya, termasuk tempdb, Penyimpanan Kueri, dan Penyimpanan Versi Persisten.
Metadata tabel sqldb_database_table_metadata 00:30:00 Setiap baris mewakili tabel atau tampilan terindeks, dan menyertakan metadata seperti jumlah baris, penggunaan ruang, pemadatan data, kolom, dan batasan.
Statistik Tunggu sqldb_database_wait_stats 00:00:10 Setiap baris mewakili jenis tunggu dan menyertakan statistik tunggu kumulatif instans mesin database. Untuk database dalam kumpulan elastis, hanya statistik tunggu yang tercakup database yang dikumpulkan.

Catatan

Untuk database dalam kumpulan elastis, himpunan data database SQL yang berisi data tingkat kumpulan tidak dikumpulkan. Ini termasuk pemanfaatan Memori, Peristiwa di luar memori, Penghitung kinerja (umum), dan Himpunan data Penghitung kinerja (terperinci ). Himpunan data Statistik tunggu dikumpulkan tetapi hanya berisi tunggu cakupan database. Ini menghindari pengumpulan data yang sama dari setiap database di kumpulan.

Data tingkat kumpulan dikumpulkan dalam himpunan data kumpulan elastis SQL. Untuk kumpulan elastis tertentu, penghitung kinerja (umum) dan himpunan data Penghitung kinerja (terperinci) berisi metrik tingkat kumpulan dan metrik tingkat database tertentu seperti CPU, IO Data, Penulisan log, Permintaan, Transaksi, dll.

Kolom umum

Untuk setiap jenis target, himpunan data memiliki kolom umum, seperti yang dijelaskan dalam tabel berikut.

Nama kolom Deskripsi
subscription_id ID langganan Azure dari database SQL.
resource_group_name Nama grup sumber daya database SQL.
resource_id ID sumber daya Azure dari database SQL.
sample_time_utc Waktu ketika nilai dalam baris diamati, dalam UTC.
collection_time_utc Waktu ketika baris dikumpulkan oleh pengamat, di UTC. Kolom ini ada dalam himpunan data di mana waktu pengumpulan mungkin berbeda dari waktu sampel.
replica_type Salah satu: Primer, HA sekunder, Penerus replikasi geografis, Bernama sekunder.
logical_server_name Nama server logis di Azure SQL Database yang berisi database atau kumpulan elastis yang dipantau.
database_name Nama database yang dipantau.
database_id ID database database yang dipantau, unik dalam server logis.
logical_database_id Pengidentifikasi database unik yang tetap tidak berubah selama masa pakai database pengguna. Mengganti nama database atau mengubah tujuan layanannya tidak mengubah nilai ini.
physical_database_id Pengidentifikasi database unik untuk database fisik saat ini yang sesuai dengan database pengguna. Mengubah tujuan layanan database menyebabkan nilai ini berubah.
replica_id Pengidentifikasi unik untuk replika komputasi Hyperscale.

Himpunan data memiliki kolom sample_time_utc dan collection_time_utc jika berisi sampel yang diamati sebelum baris dikumpulkan oleh pengamat database. Jika tidak, waktu pengamatan dan waktu pengumpulan sama, dan himpunan data hanya sample_time_utc berisi kolom.

Misalnya, himpunan sqldb_database_resource_utilization data berasal dari tampilan manajemen dinamis (DMV) sys.dm_db_resource_stats . DMV berisi end_time kolom, yang merupakan waktu pengamatan untuk setiap baris yang melaporkan statistik sumber daya agregat untuk interval 15 detik. Kali ini dilaporkan dalam sample_time_utc kolom. Saat pengamat database mengkueri DMV ini, kumpulan hasil mungkin berisi beberapa baris, masing-masing dengan yang berbeda end_time. Semua baris ini memiliki nilai yang sama collection_time_utc .