Düzeltme: SQL Server işleminin sanal adres alanı kullanılabilir bellek çok düşük olduğunda, bellek yetersiz hatası

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 3074434
Duyuru
Bu güncelleştirmeyi uyguladıktan sonra eklemek zorunda izleme bayrağı - T8075 bu değişiklik yapabilmek için bir başlangıç parametresi olarak.
Belirtiler
Microsoft SQL Server 2014 veya Microsoft SQL Server 2012, bir 64-bit sürümünde bir sorgu çalıştırdığınızda, SQL Server hata günlüğünde aşağıdakine benzer bir bellek yetersiz hatası iletisi alırsınız:

Başarısız ayırma sayfaları: 513 FAIL_PAGE_ALLOCATION

Sorguları yürütme bitiş ve SOS_MEMORY_TOPLEVELBLOCKALLOCATOR bekler karşılaşma için uzun zaman alıyor.

Aşağıdaki bilgi noktaları incelediğinizde, çok düşük kullanılabilir sanal adres alanı olduğunu göreceksiniz:

  • DBCC MEMORYSTATUS - bölüm işlem/sistem sayar - kullanılabilir sanal bellek
  • DMV: sys.dm_os_process_memory - sütun virtual_address_space_available_kb
Bu değerler yaklaşık 8 terabayt (TB) bir x64 üzerinde kapalı başlatmak işlemek ve climb ve birkaç gigabayt (GB) ulaşmak devam edin.

Kullanılabilir sanal adres alanı yetersiz olduğu aşamada olduğunuzda, sorguları, bellek ayırma CMEMTHREAD bekleme türünü de karşılaşabilirsiniz gerçekleştirmeyi deneyin.

Aşağıdaki veri noktalarını zamanla artmaya devam edecektir:
  • DMV: sys.dm_os_process_memory ve sys.dm_os_memory_nodes - sütun virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - bellek yöneticisi bölüm - VM ayrılmış

Bu değerler genellikle neredeyse 8 TB'a kadar "en fazla sunucu belleği" değerinin katları olarak artar.
Neden
Ne zaman SQL Server işleminin ulaştı durumu burada toplam sunucu belleği = hedef sunucu belleği en fazla sunucu belleği = yeni ayırmaları geçici olarak başarılı olması için birden fazla 8 KB sayfa isteği bildirmek için SQL Server Bellek Yöneticisi'nde ilkeleri vardır. Böyle bir koşul altında tahsisat yinelenen desen bellek bloklarının parçalanma ve sanal adres alanı tüketimi neden olabilir. Birçok kez bu işlemi yineler, SQL Server sanal adres alanı bitti ve daha önce bahsedilen belirtilerin fark edeceksiniz.
Çözüm

Düzeltme bilgileri

Bu sorunu çözmek için düzeltmeyi şu konumdan yükleyin. Düzeltme: SQL Server 2014 bağlantılı bir sunucu üzerinde başka bir saklı yordam, saklı yordam çağrıları ile faks gönderirken hata.

Önkoşullar

Bilgisayarınızda yüklü olmalıdır Toplu güncelleştirme 3 SQL Server 2014 Service Pack bu düzeltmeyi uygulamak için 1 için.

Uyarı

Bu güncelleştirmeyi uyguladıktan sonra eklemek zorunda izleme bayrağı - T8075 bu değişiklik yapabilmek için bir başlangıç parametresi olarak.

Toplu güncelleştirme bilgileri

Sorun ilk olarak SQL Server aşağıdaki toplu güncelleştirmede giderilmiştir.

Öneri: SQL Server için en son toplu güncelleştirmeyi yükleyin.
Her yeni bir toplu güncelleştirme SQL Server için tüm düzeltmeleri içerir ve tüm güvenlik, düzeltmelerini önceki toplu güncelleştirme ile birlikte. Karşıdan yükleyin ve SQL Server için en son toplu güncelleştirmeleri yüklemeniz önerilir:


Bu düzeltme, bellek yetersiz hem de sürekli azaltma karşılaşabileceğiniz kullanılabilir sanal adres alanının engeller.
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Daha fazla bilgi
  • Windows 2012 R2 sanal adres alanı 128 TB büyüklüğünde büyümesine izin verir. Bu nedenle, bu sorun Windows 2012 R2 ortamlarda göremeyebilirsiniz. Daha fazla bilgi için aşağıdaki Windows Geliştirme Merkezi konusuna bakın:

    Windows ve Windows Server sürümleri için bellek sınırları
  • Hatta, düzeltmeyi uyguladıktan sonra sanal adres alanında sürekli büyüme görürseniz, hangi sorgular veya işlemler büyük boyutta bellek kullanarak isteyen belirleyebilirsiniz Page_allocated Genişletilmiş olay. Bir örnek komut dosyası şöyle görünür:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO
    Bunlar normal günlüğü yedekleri ve sık sık ortaya dizin bakım işlemleri uygulanır.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 3074434 - Son İnceleme: 10/10/2016 02:06:00 - Düzeltme: 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMttr
Geri bildirim