Aracılığıyla paylaş


sys.dm_os_memory_objects (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric'te SQL Veritabanı

SQL Server tarafından şu anda tahsis edilen bellek nesnelerini döndürür. sys.dm_os_memory_objects kullanarak bellek kullanımını analiz edebilir ve olası bellek sızıntılarını tespit edebilirsiniz.

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform System (PDW) olarak adlandırmak için sys.dm_pdw_nodes_os_memory_objects 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
memory_object_address varbinary(8) Hafıza nesnesinin adresi. Null olamaz.
parent_address varbinary(8) Ebeveyn bellek nesnesinin adresi. Boş değer atanabilir.
pages_allocated_count int Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ile SQL Server 2008 R2 (10.50.x) arasında.

Bu nesne tarafından tahsis edilen sayfa sayısı. Null olamaz.
pages_in_bytes bigint için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Bu bellek nesnesinin bu örneği tarafından tahsis edilen bayt cinsinden bellek miktarı. Null olamaz.
creation_options int Yalnızca iç kullanım. Boş değer atanabilir.
bytes_used bigint Yalnızca iç kullanım. Boş değer atanabilir.
type nvarchar(60) Hafıza nesnesi türü.

Bu, bu bellek nesnesinin ait olduğu bir bileşeni veya bellek nesnesinin işlevini gösterir. Boş değer atanabilir.
name varchar(128) Yalnızca iç kullanım. Nullable.
memory_node_id smallint Bu bellek nesnesi tarafından kullanılan bir bellek düğümünün kimliği. Null olamaz.
creation_time datetime Yalnızca iç kullanım. Boş değer atanabilir.
max_pages_allocated_count int Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ile SQL Server 2008 R2 (10.50.x) arasında.

Bu bellek nesnesi tarafından tahsis edilen maksimum sayfa sayısı. Null olamaz.
page_size_in_bytes int için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

Bu nesne tarafından tahsis edilen bayt cinsinden sayfa boyutu. Null olamaz.
max_pages_in_bytes bigint Bu bellek nesnesi tarafından şimdiye kadar kullanılan maksimum bellek miktarı. Null olamaz.
page_allocator_address varbinary(8) Sayfa ayırıcısının hafıza adresi. Null olamaz. Daha fazla bilgi için sys.dm_os_memory_clerks (Transact-SQL) sayfasına bakınız.
creation_stack_address varbinary(8) Yalnızca iç kullanım. Boş değer atanabilir.
sequence_num int Yalnızca iç kullanım. Boş değer atanabilir.
partition_type int için geçerlidir: SQL Server 2016 (13.x) ve üzeri.

Bölünme türü:

0 - Bölünemez bellek nesnesi

1 - Bölünebilir bellek nesnesi, şu anda bölünmemiş

2 - NUMA düğümü tarafından bölünmüş bölünebilir bellek nesnesi. Tek bir NUMA düğümü olan bir ortamda bu 1'e eşdeğerdir.

3 - CPU tarafından bölünmüş bölünebilir bellek nesnesi.
contention_factor Gerçek için geçerlidir: SQL Server 2016 (13.x) ve üzeri.

Bu bellek nesnesi üzerinde çekişme belirten bir değer, 0 ise çatışma yok anlamına gelir. Değer, o dönemde çatışmayı yansıtan belirli sayıda bellek tahsisi yapıldığında güncellenir. Yalnızca iş parçacığı güvenli bellek nesneleri için geçerlidir.
waiting_tasks_count bigint için geçerlidir: SQL Server 2016 (13.x) ve üzeri.

Bu bellek nesnesi üzerindeki bekleme sayısı. Bu sayaç, bu bellek nesnesinden bellek tahsis edildiğinde artar. Artış, şu anda bu bellek nesnesine erişim için bekleyen görev sayısıdır. Yalnızca iş parçacığı güvenli bellek nesneleri için geçerlidir. Bu, doğruluk garantisi olmadan en iyi çaba değeridir.
exclusive_access_count bigint için geçerlidir: SQL Server 2016 (13.x) ve üzeri.

Bu bellek nesnesine ne sıklıkla yalnızca erişildiğini belirtir. Yalnızca iş parçacığı güvenli bellek nesneleri için geçerlidir. Bu, doğruluk garantisi olmadan en iyi çaba değeridir.
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ı.

partition_type, contention_factor, waiting_tasks_count ve exclusive_access_count henüz SQL Veritabanı'nda uygulanmamıştır.

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

Hafıza nesneleri yığınlardır. Bunlar, hafıza memurlarının sağladığı dağıtımlardan daha ince bir ayrıntıya sahip tahsisler sağlar. SQL Server bileşenleri, bellek memurları yerine bellek nesneleri kullanır. Bellek nesneleri, sayfaları tahsis etmek için bellek memurunun sayfa ayırıcı arayüzünü kullanır. Bellek nesneleri sanal veya paylaşılan bellek arayüzleri kullanmaz. Tahsis desenlerine bağlı olarak, bileşenler farklı türde bellek nesneleri oluşturarak rastgele boyuttaki bölgeleri tahsis edebilir.

Bir bellek nesnesi için tipik sayfa boyutu 8 KB'dır. Ancak, artan bellek nesnelerinin sayfa boyutları 512 bayttan 8 KB'a kadar değişebilir.

Uyarı

Sayfa boyutu maksimum bir tahsis değildir. Bunun yerine, sayfa boyutu, bir sayfa ayırıcısı tarafından desteklenen ve bir bellek memuru tarafından uygulanan tahsis granülerliğidir. Bellek nesnelerinden 8 KB'den büyük tahsis talep edebilirsiniz.

Örnekler

Aşağıdaki örnek, her bellek nesne türü tarafından tahsis edilen bellek miktarını geri getirir.

SELECT SUM (pages_in_bytes) as 'Bytes Used', type   
FROM sys.dm_os_memory_objects  
GROUP BY type   
ORDER BY 'Bytes Used' DESC;  
GO  

Ayrıca bakınız

SQL Server İşletim Sistemiyle İlgili Dinamik Yönetim Görünümleri (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)