DBCC MEMORYSTATUS komutunu Microsoft SQL Server'ın geçerli bellek durumu görüntüsünü sağlar. Bu komutun çıktısı SQL Server'da Bellek tüketim sorunları gidermek için veya belirli bellek yetersiz hatası sorunlarını gidermek için kullanabilirsiniz. (Birçok bellek yetersiz hataları hata günlüğünde bu çıktıyı otomatik olarak yazdırılır.) Microsoft Müşteri Destek Hizmetleri de düşük bellek koşulunu ile ilişkili bir hata yaşıyorsanız, bu komutu belirli Destek olayı sırasında çalıştırmak isteyebilir.
Not Adres Pencereleme uzantılar (AWE) desteği etkinleştirilmişse, Performans İzleyicisi'ni (PerfMon) ve Görev Yöneticisi için bellek doğru hesap değil.
Bu makalede, DBCC MEMORYSTATUS komutunun çıkışından alabilirsiniz verilerin bazıları açıklanmaktadır. Bu makalenin bazı bölümleri burada açıklanmıyor özel uygulama ayrıntılarını içerir. Microsoft Müşteri Destek Hizmetleri'ne değil tüm soruları yanıtlayın veya bu makalede sağlanan bilgilerin ötesinde özel sayaçlar anlamı hakkında daha fazla bilgi sağlar.
Önemli
DBCC MEMORYSTATUS komutu, Microsoft Müşteri Destek Hizmetleri için bir Tanı Aracı olması amaçlanmıştır. Çıktının biçimi ve sağlanan ayrıntı düzeyini olan hizmet paketleri ve ürün sürümleri arasında değişebilir. DBCC MEMORYSTATUS komutunu sağladığı işlevsellik sonraki sürümlerde farklı bir mekanizma tarafından değiştirilebilir. Bu nedenle, daha sonra ürün versiyonlarında bu komut artık çalışmayabilir. Bu komut değiştirildiğinde veya kaldırıldığında önce ek uyarı yapılmayacak. Bu nedenle, bu komutu kullanan uygulamalar uyarı verilmeden kesilebilir.
DBCC MEMORYSTATUS komutu çıktısını SQL Server'ın önceki sürümlerden değişti. Çıktı şimdi önceki ürün sürümlerinde kullanılabilir olan çeşitli bölümler içerir.
Bellek Yöneticisi
İlk çıkış bellek yöneticisi bölümüdür. Bu bölüm, SQL Server tarafından genel bellek kullanımı gösterir.
Memory Manager KB ------------------------------ -------------------- VM Reserved 1761400 VM Committed 1663556 AWE Allocated 0 Reserved Memory 1024 Reserved Memory In Use 0 (5 row(s) affected)
Bu bölümde öğeler şunlardır:
- VM ayrılmış: Bu değer SQL Server ayırdığı sanal adres alanı (VAS) toplam tutarını gösterir.
- VM taahhüt: Bu değer SQL Server taahhüdünde bulunduğu VAS toplam miktarını gösterir. Taahhüt edilen VAS fiziksel bellek ile ilişkilendirilmiş.
- AWE tahsis: Bu değer Genel SQL Server 32-bit sürümü üzerinde AWE mekanizması aracılığıyla ayrılan bellek miktarını gösterir. Veya, bu değer tüketen ürünün 64-bit sürümü üzerinde genel sayfa kilitli bellek miktarını gösterir.
- Ayrılmış bellek: Bu değer adanmış yönetici bağlantısı (DAC) için ayrılmış bellek miktarını gösterir.
- Kullanımda ayrılmış bellek: kullanılan ayrılmış bellek bu değeri gösterir.
Bellek Kullanım Özeti
Bellek Yöneticisi bölümü her bellek düğümü için bellek kullanımının bir özetini tarafından izlenir. Birörnek bellek erişimi (NUMA) etkin sistemde her donanım NUMA düğüm için karşılık gelen bir bellek düğüm giriş olacaktır. SMP sisteminde, tek bir bellek düğüm giriş olacaktır.Not
Bellek düğüm kimliği için donanım düğüm kimliği gelmeyebilir
Memory node Id = 0 KB ------------------------------ -------------------- VM Reserved 1757304 VM Committed 1659612 AWE Allocated 0 MultiPage Allocator 10760 SinglePage Allocator 73832 (5 row(s) affected)Not
Bu değerleri bu NUMA düğümde çalışan iş parçacıkları tarafından ayrılan bellek gösterir. Bu değerler NUMA düğüm için yerel bellek değildir.
Bu bölümde öğeler şunlardır:
NotVM ayrılmış
- VM ayrılmış: Bu değer bu düğümde çalışan iş parçacıkları tarafından ayrılan VAS gösterir.
- VM taahhüt: Bu değer bu düğümde çalışan iş parçacıkları tarafından kabul edilen VAS gösterir.
- AWE tahsis: Bu değer ürünün 32-bit sürümü üzerinde AWE mekanizması aracılığıyla ayrılan bellek miktarını gösterir. Veya bu değeri ürünün 64-bit sürümü üzerinde kilitli sayfaları tarafından tüketilen bellek toplam miktarını gösterir.
NUMA etkinleştirildiği bir sistemde, bu değer hatalı veya negatif olabilir. Ancak, genel AWE ayrılan bellek yöneticisi bölümünde doğru bir değer değerdir. Tek bir NUMA düğümler tarafından ayrılan bellek izlemek için kullanmak SQL Server: arabellek düğüm performans nesneleri. (Daha fazla bilgi için SQL Server Books Online'danbakın.)
- Çok sayfalı ayırıcısı: Bu değer çok sayfalı ayırıcısı ile bu düğümde çalışan iş parçacıkları tarafından ayrılan bellek gösterir. Bu bellek arabellek havuzu dışında gelir.
- SinglePage ayırıcı: Bu değer tek sayfa ayırıcısı ile bu düğümde çalışan iş parçacıkları tarafından ayrılan bellek gösterir. Bu bellek arabellek havuzundan çalınması.
ve tüm bellek düğümlerde VM kabul edilen
değerleri toplamı biraz daha küçük bellek yöneticisi bölümünde bildirilen ilgili değerleri kullanır.
Toplam bellek
Sonraki bölümde her NUMA düğümü ve her memuru türü için toplam bellek bilgileri içerir. NUMA etkin bir sistem için aşağıdakine benzer bir çıktı görebilirsiniz.Not
Aşağıdaki tabloda, çıktı yalnızca bir bölümünü içerir.
MEMORYCLERK_SQLGENERAL (node 0) KB ---------------------------------------------------------------- -------------------- VM Reserved 0 VM Committed 0 AWE Allocated 0 SM Reserved 0 SM Commited 0 SinglePage Allocator 592 MultiPage Allocator 2160 (7 row(s) affected) MEMORYCLERK_SQLGENERAL (node 1) KB ---------------------------------------------------------------- -------------------- VM Reserved 0 VM Committed 0 AWE Allocated 0 SM Reserved 0 SM Commited 0 SinglePage Allocator 136 MultiPage Allocator 0 (7 row(s) affected) MEMORYCLERK_SQLGENERAL (Total) KB ---------------------------------------------------------------- -------------------- VM Reserved 0 VM Committed 0 AWE Allocated 0 SM Reserved 0 SM Commited 0 SinglePage Allocator 728 MultiPage Allocator 2160 (7 row(s) affected)Not
Bu düğüm kimlikleri NUMA düğüm yapılandırması SQL Server çalıştıran bilgisayar için karşılık gelir. Düğüm kimlikleri SMP sistem üstünde ya da donanım NUMA düğümleri üzerinde tanımlı olası yazılım NUMA düğümlerini içerir. Her düğüm için node ID'leri ile CPU'lar arasında eşleme bulmak için olay kimliği numarasını 17152 bilgileri görüntüleyin. SQL Server'ı başlattığınızda, bu olay Olay Görüntüleyicisi'ndeki uygulama günlüğüne kaydedilir.
SMP sistemi her memuru türü için tek bir bölüm göreceksiniz. Bu bölümde aşağıdakilere benzer.
MEMORYCLERK_SQLGENERAL (Total) KB ---------------------------------------------------------------- -------------------- VM Reserved 0 VM Committed 0 AWE Allocated 0 SM Reserved 0 SM Commited 0 SinglePage Allocator 768 MultiPage Allocator 2160 (7 row(s) affected)
Paylaşılan bellek hakkında diğer bilgiler bu bölümlerdeki şöyledir:
Sys.dm_os_memory_clerks
- SM ayrılmış: Bu değer, bellek eşlemeli dosyaları API kullanan tüm elemanı bu tür tarafından ayrılmış olan VAS gösterir. Bu API paylaşılan bellekde denir.
- SM taahhüt: Bu değer, bellek eşlemeli dosyaları API kullanan tüm elemanı bu tür tarafından kabul edilen VAS gösterir.
dinamik yönetim görünümü (DMV) kullanarak, tüm bellek düğümlerin her memuru türü için Özet bilgi edinebilirsiniz. Bunu yapmak için aşağıdaki sorguyu çalıştırın:
select type, sum(virtual_memory_reserved_kb) as [VM Reserved], sum(virtual_memory_committed_kb) as [VM Committed], sum(awe_allocated_kb) as [AWE Allocated], sum(shared_memory_reserved_kb) as [SM Reserved], sum(shared_memory_committed_kb) as [SM Committed], sum(multi_pages_kb) as [MultiPage Allocator], sum(single_pages_kb) as [SinlgePage Allocator]from sys.dm_os_memory_clerks group by type
Arabellek dağıtım
Sonraki bölümde, arabellek havuzu içinde 8 kilobayt (KB) arabellekleri dağılımını gösterir.
Buffer Distribution Buffers ------------------------------ ----------- Stolen 553 Free 103 Cached 161 Database (clean) 1353 Database (dirty) 38 I/O 0 Latched 0 (7 row(s) affected)
Bu bölümde öğeler şunlardır:
- Stolen: Stolen bellek sunucunun kullandığı çeşitli amaçlar için 8 KB arabellek açıklar. Bu arabellekleri genel bellek depolama ayırma hizmet eder. Farklı sunucu bileşenleri bu arabellekleri iç veri yapıları depolamak için kullanın. Stolen arabellek arabellek havuzu temizlemeye lazywriter işlemine izin verilmez.
- Ücretsiz: şu anda kullanılmayan kaydedilen arabellekleri bu değeri gösterir. Bu arabellekleri verileri tutmak için kullanılabilir. Ya da diğer bileşenleri bu arabellekleri isteyin ve sonra bu arabellekleri Stolenişaretleyebilirsiniz.
- Önbelleklenen: çeşitli önbellekleri için kullanılan arabellek bu değeri gösterir.
- (Temiz) veritabanı: veritabanı içeriğe sahiptir ve değişiklik yapılmış değil arabellekleri bu değeri gösterir.
- (Kirli) veritabanı: veritabanı içeriğe sahiptir ve değişiklik yapılmış arabellekleri bu değeri gösterir. Bu arabellekleri kopyalanması gereken değişiklikleri içeren diske.
- G/ç: Bekleyen bir g/ç işlemi için bekliyor arabellekleri bu değeri gösterir.
- Latched: Kilitli arabellekleri bu değeri gösterir. Bir iş parçacığı okunurken ya da bir sayfanın içeriğini değiştirme arabellek kilitli. Sayfanın diskten okunduğunda bir arabellek ayrıca kilitli veya diske yazılmamış. Onu yüklenirken fiziksel sayfa veri tutarlılığını korumak için kullanılan bir Mandal okunabilir veya değiştirilebilir. Kilit mantıksal ve işlem tutarlılık sağlamak için kullanılır.
Arabellek havuzu ayrıntılarıSys.dm_os_buffer_descriptors
DMV kullanarak veritabanı sayfaları için arabellek havuzu arabellekleri hakkında ayrıntılı bilgi edinebilirsiniz. Ve sys.dm_os_memory_clerks
DMV kullanarak sair sunucu amacıyla kullanılan arabellek havuzu sayfaları hakkında ayrıntılı bilgi edinebilirsiniz.
Sonraki bölümde, arabellek havuzu artı ek bilgileri ilgili ayrıntıları listeler.
Buffer Counts Buffers ------------------------------ -------------------- Committed 1064 Target 17551 Hashed 345 Stolen Potential 121857 External Reservation 645 Min Free 64 Visible 17551 Available Paging File 451997 (8 row(s) affected)
Bu bölümde öğeler şunlardır:
- Kabul edilen: Kaydedilmişolan tüm arabellekler bu değeri gösterir. Kaydedilen arabellekleri ilişkili fiziksel belleğe sahip. Arabellek havuzu geçerli boyutunu kabul edilen değerdir. Bu değer, AWE desteği etkinleştirilirse, tahsis edilen fiziksel bellek içerir.
- Hedef: Bu değer arabellek havuzu hedef boyutunu gösterir. Hedef değer kabul edilen değerden büyükse, arabellek havuzu artmaktadır. Hedef değer kabul edilen değerden az ise, arabellek havuzu daraltılması.
- Hashed: Bu değer veri sayfaları ve arabellek havuzu içinde depolanan dizin sayfaları gösterir.
- Çalınmış olası: Bu değer en fazla arabellek havuzundan çalınmış sayfaları gösterir.
- ExternalReservation: Bu değer bir sıralama veya karma işlemi gerçekleştiren sorgular için ayrılmış sayfaları gösterir. Bu sayfaları henüz çalınmış değil.
- Min ücretsiz: Bu değer boş liste için arabellek havuzu çalışır sayfaları gösterilmektedir.
- Görünür: aynı anda görülebilir arabellekleri bu değeri gösterir. Bu arabellekleri, aynı zamanda doğrudan erişilebilir. Bu değer genellikle arabellekler eşittir. Ancak, AWE desteği etkin olduğunda, bu değer tüm arabellekler daha az olabilir.
- Kullanılabilir disk belleği dosyası: Bu değer kabul edilebilmesi kullanılabilir bellek miktarını gösterir. Bu değer, 8 KB arabellek sayısı ifade edilir. Daha fazla bilgi için Windows API belgelerine "GlobalMemoryStatusEx işlev" konusuna bakın.
Yordam önbellek
Yordam önbelleği oluşma şekli sonraki bölümde açıklanmaktadır.
Procedure Cache Value ------------------------------ ----------- TotalProcs 4 TotalPages 25 InUsePages 0 (3 row(s) affected)
Bu bölümde öğeler şunlardır:
- TotalProcs: şu anda yordam önbelleğinde bulunan toplam önbelleğe alınan nesnelerin üzerine bu değeri gösterir. Bu değer girişleri sys.dm_exec_cached_plans DMV eşleşir.
Not Bu bilgileri dinamik yapısı nedeniyle, eşleşme tam olmayabilir. PerfMon izlemek için kullanabileceğiniz SQL Server: Plan önbellek nesnesi ve sys.dm_exec_cached_plans DMV tetikleyiciler, yordamlar ve geçici nesneler gibi önbelleğe alınan nesnelerin türü hakkında ayrıntılı bilgi için.
- Toplam sayfa: yordam önbelleğinde önbelleğe alınan tüm nesneleri depolamak için gereken toplam sayfaları bu değeri gösterir.
- InUsePages: Bu değer, çalışmakta olan yordamlara ait yordam önbelleğinde sayfaları gösterir. Bu sayfalar atılamaz.
Genel bellek nesneleri
Sonraki bölümde çeşitli genel bellek nesneleri hakkında bilgi içerir. Bu bölüm ayrıca ne kadar bellek genel bellek kullanımını nesneleri hakkında bilgi içerir.
Global Memory Objects Buffers ------------------------------ -------------------- Resource 126 Locks 85 XDES 10 SETLS 2 SE Dataset Allocators 4 SubpDesc Allocators 2 SE SchemaManager 44 SQLCache 41 Replication 2 ServerGlobal 25 XP Global 2 SortTables 2 (12 row(s) affected)
Bu bölümde öğeler şunlardır:
- Kaynak: Bu değer kaynak nesnenin kullandığı bellek miktarını gösterir. Kaynak nesne depolama alt yapısı ve çeşitli sunucu çapında yapıları için kullanılır.
- Kilitler: Bu değer, bellek kilit yöneticisi kullanan gösterir.
- XDES: Bu değer, İşlem Yöneticisi'ni kullanan bellek gösterir.
- SETLS: Bu değer, iş parçacığı yerel depolaması kullanır depolama altyapısı özel iş parçacığı başına yapısı ayırmak için kullanılan bellek miktarını gösterir.
- SE Dataset ayırıcılarına: Bu değer yapıları tablo erişim Erişim yöntemleri ayarı ile tahsis etmek için kullanılan bellek miktarını gösterir.
- SubpDesc ayırıcılarına: Bu değer alt işlemler paralel sorgular, yedekleme işlemlerini, geri yükleme işlemleri, veritabanı işlemleri, dosya işlemleri, yansıtma ve zaman uyumsuz imleçleri yönetmek için kullanılan bellek miktarını gösterir.Bu alt işlemler olarak da bilinen paralelişlemlerdir.
- SE SchemaManager: Bu değer şema yöneticisi depolama altyapısı özel meta verileri depolamak için kullandığı bellek miktarını gösterir.
- SQLCache: Bu değer geçici ifadeleri ve hazırlanmış deyimleri metin depolamak için kullanılan bellek miktarını gösterir.
- Çoğaltma: Bu değer sunucunun iç çoğaltma alt sistemler için kullandığı bellek miktarını gösterir.
- ServerGlobal: Bu değer birkaç alt sistemleri tarafından genel olarak kullanılan genel sunucu bellek nesnesi gösterir.
- XP genel: genişletilmiş saklı yordamları kullanmak bellek bu değeri gösterir.
- Sıralama tabloları: Bu değer, bellek gösterir, sıralama tabloları kullanın.
Sorgu bellek nesneleri
Sonraki bölümde sorgu bellek grant bilgilerini açıklar. Bu bölüm, bir anlık sorgu bellek kullanımını içerir. Sorgu bellek olarak da bilinen çalışma
bellektir.
Query Memory Objects Value ------------------------------ ----------- Grants 0 Waiting 0 Available (Buffers) 14820 Maximum (Buffers) 14820 Limit 10880 Next Request 0 Waiting For 0 Cost 0 Timeout 0 Wait Time 0 Last Target 11520 (11 row(s) affected) Small Query Memory Objects Value ------------------------------ ----------- Grants 0 Waiting 0 Available (Buffers) 640 Maximum (Buffers) 640 Limit 640 (5 row(s) affected)
"Küçük" sorgu bellek eşikleri boyutu ve bir sorgu maliyetini karşılamak, sorguyu sorgu küçük sırasına konması. Bu davranış, kuyrukta bulunan büyük sorgular arkasında Gecikmeli küçük sorguları engeller.
Bu bölümde öğeler şunlardır:
- Verir: Bu değer, bellek Bağışlar çalışan sorguları gösterir.
- Bekleniyor: Bu değer, bellek Bağışlar almak için bekleyen sorguları gösterir.
- Kullanılabilir: karma çalışma alanı olarak kullanmak için sorguları için kullanılabilir olan ve çalışma alanı sıralama arabellekleri bu değeri gösterir. Kullanılabilir değeri düzenli olarak güncelleştirilir.
- Maksimum: Bu değer, çalışma alanı olarak kullanmak için tüm sorgulara verilen tüm arabellekler gösterir.
- Sınırı: sorgu yürütme hedef büyük sorgu sırası için bu değeri gösterir. Sıradaki değişiklik kadar (arabellek) maksimum değeri güncelleştirilmemesi nedeniyle, bu değerin (arabellek) en büyük değerinden farklıdır.
- Bir sonraki istek: sonraki bekleyen sorgu için arabellekleri bellek isteği boyutu bu değeri gösterir.
- Bekleyen için: Bu değer, Sonraki istek değerin başvurduğu sorguyu çalıştırmak kullanılabilir bellek miktarını gösterir. Bekleyen için değeri boş alan faktörüyle çarpılmış Sonraki istek değerdir. Bu değer etkin bir şekilde sonraki bekleyen sorgu çalıştırdığınızda, belirli bir miktarda bellek kullanılabilir olmasını garanti eder.
- Maliyet: Bu değer sonraki bekleyen sorgu maliyetini gösterir.
- Zaman aşımı: sonraki bekleyen sorgu için saniye cinsinden zaman aşımı, bu değeri gösterir.
- Bekleme süresi: itibaren sonraki bekliyor sorgu Kuyruğa koymak bu değeri milisaniye cinsinden geçen süreyi gösterir.
- Son hedef: genel bellek sınırı sorgu yürütme için bu değeri gösterir. Büyük sorgu sırası ve küçük sorgu sırası için birleştirilmiş sınır değerdir.
En iyi duruma getirme
Sonraki bölümde aynı anda sorguları en iyi duruma getirmek için çalışan kullanıcılardan oluşan bir özetidir.
Optimization Queue Value ------------------------------ -------------------- Overall Memory 156672000 Last Notification 1 Timeout 6 Early Termination Factor 5 (4 row(s) affected) Small Gateway Value ------------------------------ -------------------- Configured Units 8 Available Units 8 Acquires 0 Waiters 0 Threshold Factor 250000 Threshold 250000 (6 row(s) affected) Medium Gateway Value ------------------------------ -------------------- Configured Units 2 Available Units 2 Acquires 0 Waiters 0 Threshold Factor 12 (5 row(s) affected) Big Gateway Value ------------------------------ -------------------- Configured Units 1 Available Units 1 Acquires 0 Waiters 0 Threshold Factor 8 (5 row(s) affected)
Sorgu derlemesi için sunucuya gönderilir. Derleme işlemi ayrıştırma, algebraization ve en iyi duruma getirme içerir. Sorgu her sorgu derleme işlemi sırasında tüketir bellek miktarına göre sınıflandırılır.Not
Bu tutar, sorguyu çalıştırmak için gereken bellek dahil değildir.
Bir sorgu başlattığında, sınır yoktur kaç sorguları derlenebilir. Sorgu, bellek tüketimini artırır ve bir eşiğe ulaştığında gibi devam etmek için bir ağ geçidi geçmesi gerekir. Her ağ geçidi sonra aynı anda derlenmiş sorgu aşamalı olarak azalan bir sınır yoktur. Platform ve yük her ağ geçidi boyutuna bağlıdır. Ağ geçidi boyutları, ölçeklenebilirlik ve verimi en üst düzeye çıkarmak için seçilir.
Sorgu bir ağ geçidi geçemezse, sorgu bellek kullanılabilir duruma gelene kadar bekler. Ya da sorgu zaman aşımı hata (hata 8628) döndürür. Ayrıca, sorgu bir ağ geçidi Kullanıcı sorguyu iptal ederse veya Kilitlenme algılandı elde değil. Sorguda birden fazla ağ geçitleri geçerse, sorgu derleme işlemi tamamlanıncaya kadar küçük ağ geçitleri serbest bırakmıyor.
Bu davranış, aynı anda yalnızca birkaç bellek yoğun derlemeleri sağlar. Ayrıca, bu davranış daha küçük sorguları için verimi en üst düzeye çıkarır.