Bagikan melalui


sys.dm_hs_database_log_rate (Transact-SQL)

Berlaku untuk: Azure SQL Database

Fungsi sys.dm_hs_database_log_rate manajemen dinamis (DMF) mengembalikan informasi tentang laju pembuatan log di Azure SQL Database Hyperscale.

Setiap baris dalam tataan hasil mewakili komponen yang mengontrol (mengurangi) laju pembuatan log dalam database Hyperscale. Ada beberapa komponen dalam arsitektur tingkat Hyperscale yang dapat mengurangi laju pembuatan log untuk menjaga performa database tetap stabil dan seimbang.

Jenis komponen tertentu, seperti replika komputasi sekunder atau server halaman, dapat mengurangi laju pembuatan log untuk sementara pada replika komputasi utama untuk memastikan kesehatan dan stabilitas database secara keseluruhan.

Jika laju pembuatan log tidak dikurangi oleh komponen apa pun, baris dikembalikan untuk komponen replika komputasi utama, memperlihatkan tingkat pembuatan log maksimum yang diizinkan untuk database.

Fungsi manajemen dinamis ini mengembalikan baris hanya ketika sesi tersambung ke replika utama.

Syntax

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id

database_id adalah bilangan bulat yang mewakili ID database, tanpa nilai default. Input yang valid adalah ID database atau NULL.

database_id Saat disediakan, sys.dm_hs_database_log_rate mengembalikan baris untuk database tertentu tersebut.

Ketika tidak disediakan atau kapan NULL disediakan, untuk database tunggal, mengembalikan baris untuk database saat ini. Untuk database dalam kumpulan elastis, mengembalikan baris untuk semua database di kumpulan tempat penelepon memiliki izin yang memadai.

Fungsi bawaan DB_ID dapat ditentukan.

Tabel Dikembalikan

Nama kolom Jenis data Description
database_id Int BUKAN NULL Pengidentifikasi database. Nilainya unik dalam satu database atau kumpulan elastis, tetapi tidak dalam server logis.
replica_id pengidentifikasi unik BUKAN NULL Pengidentifikasi replika komputasi yang sesuai dengan replica_id kolom di sys.dm_database_replica_states. NULL ketika component_id sesuai dengan server halaman Hyperscale.

Nilai ini dikembalikan oleh DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') panggilan fungsi saat tersambung ke replika.
file_id Int NOL ID file database dalam database yang sesuai dengan server halaman yang membatasi laju pembuatan log. Akan diisi hanya jika perannya adalah server halaman, jika tidak, mengembalikan NULL. Nilai ini sesuai dengan file_id kolom di sys.database_files.
current_max_log_rate bigint BUKAN NULL Batas laju log maks saat ini untuk laju pembuatan log pada replika komputasi utama, dalam byte/detik. Jika tidak ada komponen yang mengurangi laju pembuatan log, laporkan batas laju pembuatan log untuk database Hyperscale.
component_id pengidentifikasi unik BUKAN NULL Pengidentifikasi unik komponen Hyperscale seperti server halaman atau replika komputasi.
role smallint BUKAN NULL Semua peran komponen yang ada yang dapat mengurangi pembuatan log.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Ketika laju pembuatan log terbatas, jenis tunggu berikut yang sesuai dengan setiap peran mungkin diamati pada replika komputasi utama:
1 - RBIO_RG_STORAGE
4 - RBIO_RG_REPLICA
5 - RBIO_RG_LOCALDESTAGE
6 - RBIO_RG_DESTAGE
10 - RBIO_RG_GEOREPLICA
12 - RBIO_RG_STORAGE_CHECKPOINT
14 - RBIO_RG_MIGRATION_TARGET
Untuk informasi selengkapnya, lihat Menunggu pembatasan laju log
role_desc nvarchar(60) BUKAN NULL Unknown = Peran komponen tidak diketahui
Storage = Server halaman
Primary = Replika komputasi utama
Replica = Replika komputasi sekunder seperti replika ketersediaan tinggi (HA) atau replika bernama.
LocalDestage = Layanan log
Destage = Penyimpanan log jangka panjang
GeoReplica = Replika geo-sekunder
StorageCheckpoint = Titik pemeriksaan di server halaman
MigrationTarget = Database target selama migrasi terbalik dari Hyperscale ke database non-Hyperscale.
catchup_rate bigint BUKAN NULL Laju Penangkapan dalam byte/detik. Mengembalikan nol ketika laju log tidak berkurang.
catchup_bytes bigint BUKAN NULL Jumlah log transaksi, dalam byte, yang harus diterapkan komponen untuk mengejar ketinggalan dengan replika komputasi utama. Mengembalikan 0 ketika komponen tertangkap.
last_reported_time tanggalwaktu Terakhir kali layanan log Hyperscale melaporkan nilai.

Komentar

Fungsi sys.dm_hs_database_log_rate manajemen dinamis hanya berlaku untuk tingkat Hyperscale Azure SQL Database.

Di tingkat layanan Hyperscale Azure SQL Database, layanan log memastikan bahwa komponen terdistribusi tidak jauh tertinggal dalam menerapkan log transaksi. Hal ini diperlukan untuk menjaga kesehatan dan stabilitas sistem secara keseluruhan. Ketika komponen berada di belakang dan tingkat ketinggalannya kurang dari laju pembuatan log saat ini, layanan log mengurangi tingkat pembuatan log pada primer. sys.dm_hs_database_log_rate() DMF dapat digunakan untuk memahami komponen mana yang menyebabkan pengurangan laju log dan sejauh mana, dan berapa lama pengurangan laju log mungkin berlangsung.

Untuk konteks selengkapnya tentang pengurangan laju log, lihat Diagnostik performa di Hyperscale.

Permissions

Fungsi manajemen dinamis ini memerlukan izin TAMPILKAN STATUS PERFORMA DATABASE .

Examples

J. Mengembalikan komponen yang menyebabkan pengurangan laju log dalam database tertentu

Contoh berikut mengembalikan baris untuk komponen yang menyebabkan pengurangan laju log. Jika tingkat pembuatan log tidak dikurangi oleh komponen apa pun, baris akan dikembalikan untuk komputasi utama, memperlihatkan tingkat pembuatan log maksimum yang diizinkan untuk database.

SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(DB_ID(N'Contosodb'));                   

B. Mengembalikan komponen yang menyebabkan pengurangan laju log

Saat tersambung ke database dalam kumpulan elastis, contoh berikut mengembalikan baris untuk komponen yang menyebabkan pengurangan laju log, untuk setiap database di kumpulan tempat Anda memiliki izin yang memadai. Saat tersambung ke database tunggal, mengembalikan baris untuk database.

SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes 
FROM sys.dm_hs_database_log_rate(NULL);