Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric SQL veritabanı
SQL Server buffer havuzunda bulunan tüm veri sayfaları hakkında bilgi döndürür. Bu görünümün çıktısı, veritabanı sayfalarının tampon havuzundaki dağılımını veritabanı, nesne veya türe göre belirlemek için kullanılabilir. SQL Server'da bu dinamik yönetim görünümü, tampon havuz uzantısı dosyasındaki veri sayfaları hakkında da bilgi döndürür. Daha fazla bilgi için Buffer Pool Extension'a bakınız.
Bir veri sayfası diskten okunduğunda, sayfa SQL Server tampon havuzuna kopyalanır ve yeniden kullanılmak üzere önbelleğe alınır. Her önbelleğe alınan veri sayfasının bir tampon tanımlayıcısı vardır. Buffer tanımlayıcıları, şu anda SQL Server örneğinde önbelleklenmiş her veri sayfasını benzersiz şekilde tanımlar. sys.dm_os_buffer_descriptors, tüm kullanıcı ve sistem veritabanları için önbelleklenmiş sayfaları döndürür. Bu, Kaynak veritabanı ile ilişkili sayfaları da kapsar.
Uyarı
Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_os_buffer_descriptors adını kullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
| Sütun adı | Veri türü | Description |
|---|---|---|
| veritabanı_kimlik | int | Tampon havuzundaki sayfayla ilişkili veritabanının kimliği. Boş değer atanabilir. Azure SQL Veritabanı'nda değerler tek bir veritabanı veya elastik havuz içinde benzersizdir, ancak mantıksal sunucu içinde değildir. |
| dosya_kimlik | int | Sayfanın kalıcı görüntüsünü saklayan dosyanın kimliği. Boş değer atanabilir. |
| page_id | int | Dosya içindeki sayfanın kimliği. Boş değer atanabilir. |
| page_level | int | Sayfanın dizin seviyesi. Boş değer atanabilir. |
| allocation_unit_id | bigint | Sayfanın tahsis biriminin kimliği. Bu değer sys.allocation_units birleştirmek için kullanılabilir. Boş değer atanabilir. |
| page_type | nvarchar(60) | Sayfanın türü, örneğin: Veri sayfası veya İndeks sayfası. Boş değer atanabilir. |
| row_count | int | Sayfadaki satır sayısı. Boş değer atanabilir. |
| free_space_in_bytes | int | Sayfadaki boş alan miktarı, bayt cinsinden. Boş değer atanabilir. |
| is_modified | bit | 1 = Sayfa, diskten okunduktan sonra değiştirilmiştir. Boş değer atanabilir. |
| numa_node | int | Tampon için Uniform Olmayan Bellek Erişim düğümü. Boş değer atanabilir. |
| read_microsec | bigint | Sayfanın tampona okunması için gereken gerçek zaman (mikrosaniye cinsinden). Bu sayı, buffer tekrar kullanıldığında sıfırlanır. Boş değer atanabilir. |
| is_in_bpool_extension | bit | 1 = Sayfa tampon havuzu uzantısındadır. Boş değer atanabilir. |
| pdw_node_id | int |
için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW) Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı. |
Permissions
SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.
SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.
SQL Server 2022 ve üzeri için izinler
Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.
Açıklamalar
sys.dm_os_buffer_descriptors, Kaynak veritabanı tarafından kullanılan sayfaları döndürür. sys.dm_os_buffer_descriptors, ücretsiz veya çalınan sayfalar hakkında ya da okunduğunda hata bulunan sayfalar hakkında bilgi geri göndermez.
| Kaynak | İçin | On | İlişki |
|---|---|---|---|
| sys.dm_os_buffer_descriptors | sys.databases | veritabanı_kimlik | çoka bir |
| sys.dm_os_buffer_descriptors | <userdb>.sys.allocation_units | allocation_unit_id | çoka bir |
| sys.dm_os_buffer_descriptors | <userdb>.sys.database_files | dosya_kimlik | çoka bir |
| sys.dm_os_buffer_descriptors | sys.dm_os_buffer_pool_extension_configuration | dosya_kimlik | çoka bir |
Örnekler
A. Her veritabanı için önbelleğe alınmış sayfa sayısı döndürülüyor
Aşağıdaki örnek, her veritabanı için yüklenen sayfa sayısını geri döndürür.
SELECT COUNT(*)AS cached_pages_count
,CASE database_id
WHEN 32767 THEN 'ResourceDb'
ELSE db_name(database_id)
END AS database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY cached_pages_count DESC;
B. Mevcut veritabanındaki her nesne için önbelleklenmiş sayfa sayısını döndürmek
Aşağıdaki örnek, mevcut veritabanındaki her nesne için yüklenen sayfa sayısını döndürür.
SELECT COUNT(*)AS cached_pages_count
,name ,index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
,index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
,index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
GROUP BY name, index_id
ORDER BY cached_pages_count DESC;
Ayrıca bakınız
sys.allocation_units (Transact-SQL)
SQL Server İşletim Sistemiyle İlgili Dinamik Yönetim Görünümleri (Transact-SQL)
Kaynak Veritabanı
sys.dm_os_buffer_pool_extension_configuration (Transact-SQL)