Arabellek yönetimi

Birincil amacı, bir SQL Server Depolama ve çekirdek özelliği, yoğun disk g/Ç olacak şekilde verileri almak için veritabanıdır Database Engine. Ve disk g/Ç işlemleri pek çok kaynak kullanan ve bitirmek için oldukça uzun saat alıyor SQL Server g/Ç çok verimli hale odaklanır. Arabellek, bu etkinlik sağlandığı anahtar bir bileşeni yönetimidir.Arabellek yönetim bileşeni iki mekanizma oluşur: Arabellek Yöneticisi, veritabanı sayfalarının ve (olarak da bilinir arabellek önbellek güncelleştirmek içinarabellek havuzuveritabanı dosyası g/Ç. azaltmak için )

Arabellek Yönetim'nasıl çalışır?

Arabellek bir bellek 8 KB sayfasında, aynı veri boyutu veya sayfa dizini.Bu nedenle, arabellek önbellek 8 KB sayfalarına ayrılır.Arabellek Yöneticisi işlevleri, veritabanından veri veya dizin sayfası arabellek önbelleğine disk dosyalarını okuma ve değiştirilen sayfaların, diske geri yazmaya yönetir.Arabellek Yöneticisi daha fazla veri okumak için arabellek alanı gerekiyor kadar sayfa arabellek önbelleğinde kalır.Veriler, yalnızca değiştirilmiş, diske geri yazılır.Arabellek önbellekteki veriler yazılmadan önce birden çok kez değiştirilebilir diske geri.Daha fazla bilgi için bkz: Sayfa Okuma ve Sayfa Yazma.

When SQL Server starts, it computes the size of virtual address space for the buffer cache based on a number of parameters such as the amount of physical memory on the system, the configured number of maximum server threads, and various startup parameters.SQL Server reserves this computed amount of its process virtual address space (called the memory target) for the buffer cache, but it acquires (commits) only the required amount of physical memory for the current load.Sorgu yürütebilir bpool_commit_target and bpool_committed sütunlarsys.dm_os_sys_info katalog bellek hedef ve şu anda arabellek önbelleğinde sırasıyla tamamlanmış sayfa sayısı rezerve sayfa sayısını döndürmek için görüntüleyin.

Arasındaki aralığı SQL Server başlatma ve bellek hedef arabellek Önbelleği'ne zaman alır olarak adlandırılır Rampa yukarı.Bu saat boyunca, gerektiğinde arabellekleri istekleri dolgu okuyun.Örneğin, tek bir arabelleğe sayfa isteği doldurur tek sayfalı okuyun.Yani, pisti yukarı sayısını ve türünü, istemci istekleri bağlıdır.Tek-CVE-2006-dönüştürerek pisti yukarı expedited sayfa okuma istekleri hizalanmış sekiz-sayfa istekleri.Bu, özellikle makinelerde çok miktarda bellek çok daha hızlı bitiş pisti-up sağlar.

Arabellek yöneticisini belleğin çoğunu kullanması nedeniyle SQL Server Bu işlemi diğer bileşenler, arabellekleri kullanmak izin vermek için bellek yöneticisi ile cooperates. Arabellek Yöneticisi, öncelikle aşağıdaki bileşenlerle etkileşime girer:

  • Genel bellek kullanımını denetlemek için kaynak yöneticisi ve adres alanı kullanımı denetlemek için 32-bit platformlar.

  • Veritabanı Yöneticisi ve alt düzey dosya g/Ç işlemleri için SQL Server Operating System (SQLOS).

  • Yazma ön üretim günlüğü için Günlük Yöneticisi.

Desteklenen Özellikler

Arabellek Yöneticisi aşağıdaki özellikleri destekler:

  • Arabellek olmayan tekdüze bellek erişimi (NUMA) uyumlu yöneticisidir.Arabellek önbelleği sayfalarının, yabancı bellek yerine yerel NUMA düğümde ayrılmış bir arabellek sayfasına erişmek bir iş parçacığı sağlayan donanım NUMA düğümler arasında dağıtılır.Daha fazla bilgi için bkz:Nasıl NUMA SQL Server destekler.Arabellek önbelleğinden bellek sayfalarının NUMA kullanırken nasıl atanacağını anlamak için bkz: Büyüyen ve arabellek havuzu NUMA altında küçültmek.

  • Arabellek Yöneticisi kısayol Ekle sunucuyu yeniden başlatmadan, fiziksel bellek eklemek, kullanıcıların sağlayan bellek, destekler.Daha fazla bilgi için bkz:Çalışırken bellek ekleme.

  • Arabellek Yöneticisi üzerinde dinamik bellek ayırma destekler. Microsoft Windows XP 32-bit) ve Windows 2003 (32-bit platformlar AWE etkinleştirildiğinde. Dinamik bellek ayırma verir Database Engine için verimli bir şekilde almak ve geçerli iş yükünü desteklemek için arabellek önbelleğindeki belleği serbest. Daha fazla bilgi için bkz: Dinamik bellek yönetimi.

  • Arabellek Yöneticisi büyük sayfaları 64 bitlik platformlarda destekler.Sayfa boyutunu, Windows sürüm için geçerlidir.Daha fazla bilgi için Windows belgelerine bakın.

  • Arabellek Yöneticisi dinamik yönetimi görünümleri sunulan için ek tanılamalar sağlar.Özel bir işletim sistemi kaynaklarının çeşitli izlemek için bu görünümler kullanabilirsiniz... SQL Server. Örneğin, kullanabileceğiniz sys.dm_os_buffer_descriptors görünüm arabellek önbelleğindeki sayfa izlemek için.Daha fazla bilgi için bkz:SQL Server işletim sistemi ile ilgili dinamik yönetimi görünümleri (Transact-SQL).

Disk g/Ç

Arabellek yöneticisini, yalnızca okuma gerçekleştirir ve veritabanına yazar.Diğer dosya ve veritabanı işlemleri gibi açma, kapatma, genişletmek ve küçültme veritabanı yöneticisi tarafından gerçekleştirilir ve Yöneticisi bileşenleri dosya.

Disk g/Ç işlemlerini arabellek Yöneticisi tarafından aşağıdaki özelliklere sahiptir:

  • Tüm g/Ç, zaman uyumsuz g/Ç işlemi gerçekleştikten arka planda çalışırken işleme devam etmek arama iş parçacığı parçacığının veren gerçekleştirilir.

  • Tüm g/Ç arama iş parçacıkları sürece verilen g/Ç benzeşimi seçeneği kullanılır.Benzeşme maskesi seçeneği g/Ç bağlar. SQL Server Disk g/Ç, CPU belirtilen alt küme küme. ' De Gelişmiş SQL Server çevrimiçi işlem işleme (OLTP) ortamlarında, bu uzantıyı performansını geliştirebilirsiniz SQL Server iş parçacıkları, g/ç işlemleri gerçekleştirme.

  • Birden çok sayfa g/Ç içine veya dışına, birbirini izlemeyen alanları bellek transfer edilecek verileri dağılım toparla ı/o ile gerçekleþtirilir.Bunun anlamı SQL Server hızlı bir şekilde doldurun veya birden çok fiziksel g/Ç istekleri önleme sırasında arabellek önbelleğini temizler.

Uzun bir g/Ç istekleri

En az 15 saniye boyunca beklemede olduğu tüm g/Ç isteğini, arabellek yöneticisine bildirir.Bu, sistem yöneticisinin ayırt yardımcı olur SQL Server sorunlar ve g/Ç alt sisteminin sorunları. Hata iletisi 833 bildirilir ve SQL Server'da görünür hata günlüğü aşağıdaki gibi:

SQL Server, dosyanın [% ls] [% ls] (% d) veritabanında tamamlamak için %d saniyeden daha uzun sürüyorsa g/Ç istekleri, %d yerde karşılaştı.Işletim SISTEMI dosya tanıtıcı 0'dır % p x.Mahsup hesabı'nın en son uzun g/Ç şöyledir: % # 016I64x.

Uzun BIR g/Ç okuma veya yazma olabilir; bu, şu anda iletide belirtilen değil.Uyarıları, hataları değil uzun-ı/O iletilerdir.Sorunları belirtin SQL Server. Iletiler, Sistem Yöneticisi düşük nedenini bulmak amacıyla bildirilir SQL Server yanıt daha hızlı, zaman ve denetimi dışında olan sorunları ayırt etmek için SQL Server. Herhangi bir eylem gerektirmez, ancak sistem yöneticiniz neden g/Ç isteği kadar uzun sürdü ve saat justifiable olup olmadığını araştırmak.

Uzun-ı/O istekleri nedenleri

Bir uzun-ı/O iletinin, bir g/Ç kalıcı olarak engellendi ve hiçbir zaman olarak bilinen (tamamlayacak gösterebilir. Kayıp g/Ç), veya yalnızca, yalnızca henüz tamamlanmadı.Kaybolmuş bir g/Ç genellikle mandal saat aşımı için yol açacaktır, ancak büyük/küçük durum, hangi bir senaryodur iletiden söyleyin olanaklı değildir.

Uzun giriş çıkışları genellikle gösteren bir SQL Server disk alt sistemi için çok yoğun olan iş yükünü. Bir yetersiz disk alt sistemi olabilir, belirtilen:

  • Birden çok uzun g/Ç iletileri sırasında bir ağır hata günlüğünde görünür... SQL Server iş yükü.

  • Perfmon sayaçlarını uzun disk gecikmeleri var mı, uzun disk sıraları veya disk boş göster saat.

Uzun giriş çıkışları da g/Ç yol (örneğin, bir sürücü, denetleyici veya üretici yazılımı), bir bileşen tarafından kaynaklanabilir sürekli eski bir g/Ç isteği yerine geçerli disk kafası konuma yakın olan daha yeni isteklerine hizmet verirken hizmet erteleme.Temel öncelik işleme istekleri genel teknik okuma/yazma kafası geçerli konumu için en yakın olanlardır "Asansör arayan olarak." bilinen Bu, çoğu giriş çıkışları hemen hizmet verilen için Windows sistem izleyicisi'ni (PERFMON.EXE) aracıyla corroborate zor olabilir. Uzun bir g/Ç istekleri, büyük miktarda bir ardışık g/Ç'gerçekleştiren gibi yedek ve geri yükleme, tablo taramaları, sıralama, dizinler, oluşturma yükleri, toplu iş olarak aggravated ve dosyaları zeroing olabilir.

G/ç önceki durumlardan birine ilgili görünmeyen yalıtılmış uzun işlemleri, bir sürücü ya da donanım sorunu neden olabilir.Sistem olay günlüğüne sorunu tanılamanıza yardımcı ilgili bir olay içerebilir.

Hata algılama

Veritabanı sayfaları sağlamak yardımcı olmak ve isteğe bağlı iki mekanizma kullanabilirsiniz bütünlük zamandan yeniden okumaya kadar diske yazılan sayfa: bozuk sayfa koruması ve sağlama toplamı koruma. Bu mekanizmalar, yalnızca veri depolama, ancak denetleyicileri, sürücü, kabloları ve hatta işletim sistemi gibi donanım bileşenlerini doğruluğunu doğrulanıyor bağımsız bir yöntem sağlar.Korumayı sayfa hemen diske yazmayı önce eklenen ve diskten okunur sonra doğrulandı.

Bozuk sayfa koruması

Bozuk sayfa koruması sunulan,SQL Server 2000, sayfa bozulmaları güç hatası yüzünden algılama birincil yoludur. Örneğin, yazılmış bir sayfanın yalnızca bir kısmını bir beklenmeyen bir güç kesintisi bırakabilir diske.Bozuk sayfa koruma kullanıldığında, 2 bit imza (özgün iki bit sayfa üstbilgisine kopyalanır sonra) sayfa 512 baytlık her kesiminde sonuna yerleştirilir.Imza diğerleri arasında ikili 01 ve 10 Her Yaz, bu nedenle, her zaman zaman yalnızca bir kısmını kesimleri, diske yapılan söyleyin mümkündür: Sayfa, sayfanın üstü olduğunda biraz yanlış durumda okursanız, yanlış yazılmış ve bozuk bir sayfa algıladı. Bozuk sayfa yakalama en az kaynak kullanır; ancak, tüm hatalar disk donanım hataları nedeniyle algılamaz.

Sağlama toplamı koruma

Sağlama toplamı koruma sunulan,SQL Server 2005, daha güçlü veri bütünlüğü denetimi sağlar. Yazılan ve sayfa üstbilgisinde saklanan her bir sayfadaki veriler için BIR sağlama toplamı hesaplanır.Diskten okunan sayfa saklanan bir sağlama toplamı ile her veritabanı altyapısı sayfasındaki veriler için sağlama toplamı yeniden hesaplar ve yeni sağlama toplamı saklanan sağlama toplamı ' farklıysa, hata 824 yükseltir.Sayfanın her bayt etkilenen için sağlama toplamı koruma bozuk sayfa korumasından daha fazla hata catch, ancak bunu Orta kaynak yoğundur.Sağlama toplamı etkinleştirilmişse, hataları tarafından güç kesintileri nedeniyle ve donanım flawed veya üretici yazılımı her saat algılanabilir arabellek yöneticisine bir sayfanın diskten okur.

Sayfa koruma kullanılan tür sayfa içeren veritabanının bir özniteliktir.Sağlama toplamı koruma oluşturulan veritabanlarında varsayılan koruma olur. SQL Server 2005 ve daha yeni. Sayfa koruma mekanizması, veritabanı oluşturma sırasında belirtilir ve ALTER DATABASE kullanılarak değiştirilmiş.Sorgulayarak, geçerli sayfa koruma ayarları belirleyebilirsiniz page_verify_option sütunsys.Databases kataloğunu görüntüleme ya daIsTornPageDetectionEnabled özellikdatabasepropertyex işlev.Sayfa koruma ayarını değiştirdiyseniz, yeni ayarı tüm veritabanına hemen etkilemez.Bunun yerine, bu sayfa geçerli koruma benimsemesine düzey sonraki yazılan her veritabanı.Bu, veritabanı sayfalarının farklı tür bir koruma ile oluştuğu, anlamına gelir.