Arabellek Yönetimi

Birincil amacı, bir SQL Server veritabanı olan depolamak ve yoğun disk g/Ç bir çekirdek özelliği, bu nedenle, veri almak için Veritabanı Altyapısı.Çünkü disk g/Ç işlemlerinin pek çok kaynak tüketen ve nispeten daha uzun zaman alır ve saat bitirmek için SQL Server g/Ç oldukça verimli yaparak odaklanır.Arabellek yönetimi bir anahtar bileşen de bu verimlilik elde etmek.Arabellek Yöneticisi bileşeni iki mekanizma oluşur: erişim ve veritabanı sayfaları ve arabellek önbellek güncelleştirmek için arabellek Yöneticisi (olarak da adlandırılan Arabellek havuzu), veritabanı dosyası g/Ç azaltmak için.

Arabellek yönetimi nasıl çalışır?

Tampon bellekteki veri ile aynı boyutta bir 8 kb sayfa olduğu veya dizin sayfası.Bu nedenle, arabellek önbelleği 8 KB'lık sayfalara bölünür.Arabellek Yöneticisi veritabanından veri veya dizin sayfaları arabellek önbelleğine disk dosyalarını okumak ve değiştirilen sayfaları diske yazmaya fonksiyonları yönetir.Arabellek Yöneticisi arabellek alanı daha fazla veri okumak için gereksinim duyduğu kadar sayfa arabelleğe önbellekte kalır.Veriler, yalnızca değişiklik için diske geri yazılır.Arabellek önbellekteki veriler değiştirilebilir birden çok kez yazılmış önce disk dön.Daha fazla bilgi için bkz: Sayfaları 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.Sorgulama yapabilirsiniz bpool_commit_target ve bpool_committed sütunlarında sys.dm_os_sys_info katalog görünüm bellek hedef ve şu anda arabellek önbelleğe kaydedilen sayfa sayısı olarak ayrılmış sayfa sayısını döndürmek için, sırasıyla.

Arasındaki SQL Server Başlangıç ve ne zaman kendi bellek hedef alır arabellek önbelleği olarak adlandırılır rampası'li.Sırasında bu saat, okuma isteklerini arabellekleri gerektiği gibi doldurun.Örneğin, tek sayfa isteği tek arabellek sayfası doldurur okuyun.Yani, rampa yukarı numarası ve türü istemci isteklerine bağlıdır.Rampa yukarı okuma istekleri hizalanmış sekiz sayfalık isteklerine tek sayfa dönüştürerek hızlanır.Bu, özellikle çok fazla bellek makinelerde çok daha hızlı bitirmek rampa yukarı sağlar.

Arabellek Yöneticisi belleğin çoğunu kullanması nedeniyle SQL Server işlemi, onu cooperates diğer bileşenleri kullanmak izin vermek için bellek Yöneticisi ilekendi arabellekleri. Arabellek Yöneticisi, öncelikle aşağıdaki bileşenlerle etkileşim kurar:

  • Genel bellek kullanımını denetlemek için Kaynak Yöneticisi ve 32-bit platformlar, adres alanı kullanımı kontrol etmek için.

  • Veritabanı Yöneticisi ve alt düzey dosya g/Ç işlemleri için sql Server işletim sistemi (sqlos).

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

Desteklenen Özellikler

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

  • Arabellek Yöneticisi tip olmayan bellek erişimi (numa) haberdar olur.Önbellek arabellek sayfas olanak sağlayan bir arabellek erişmek bir iş parçacığı donanım NUMA düğümüleri arasında dağıtılmış sayfa yabancı bellek yerine yerel NUMA düğümü üzerinde ayrılmış.Daha fazla bilgi için bkz: Nasıl numa SQL Server destekler.Bellek arabellek önbellekten sayfa numa kullanırken nasıl atanacağını öğrenmek için bkz: Büyümesini ve daraltılması numa altında Arabellek havuzu.

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

  • Arabellek Yöneticisi üzerinde dinamik bellek ayırmayı destekleyen Microsoft awe etkin olduğunda Windows xp 32-bit ve Windows 2003 32-bit platformları.Dinamik bellek ayırma sağlar Veritabanı Altyapısı verimli bir şekilde almak ve desteklemek için arabellek önbelleği bellek serbest bırakmak içingeçerli iş yükünü. Daha fazla bilgi Bkz: Dinamik bellek yönetimi.

  • Arabellek Yöneticisi büyük sayfaları 64-bit platformlarda destekler.Özel sayfa boyutu sürüm Windows.Daha fazla bilgi için Windows belgelerine bakın.

  • Arabellek Yöneticisi dinamik yönetimi görünümleri tarafından ek tanılama sağlar.Bu görünümler özgü işletim sistemi kaynakları çeşitli izlemek için kullanabilirsiniz SQL Server.Örneğin, kullanmak sys.dm_os_buffer_descriptors arabellek önbellek sayfaları izlemek için Görünüm.Daha fazla bilgi için bkz: sql Server işletim sistemi ilgili dinamik yönetim görünümleri (Transact-sql).

Disk g/Ç

Arabellek Yöneticisi yalnızca okuma yapar ve veritabanına yazar.Open, close, gibi diğer dosya ve veritabanı işlemleri genişletmek ve küçültme veritabanı yöneticisi tarafından gerçekleştirilir ve Dosya Yöneticisi bileşenleri.

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

  • Tüm g/ç işlemleri sırasında g/Ç işlemi gerçekleştikten arka planda işleme devam etmek iş parçacığı veren zaman uyumsuz olarak gerçekleştirilir.

  • Tüm g/Ç iş içinde sürece verilen I/o Benzeşme seçeneği kullanılıyor.Benzeşme maskesi seçeneği g/Ç bağlar SQL Server disk g/Ç için belirtilen alt küme küme CPU.Yüksek kaliteli, SQL Server Çevrimiçi işlem işleme (oltp) ortamlarda, bu uzantı performansını geliştirir SQL Server iş parçacığı veren g/ç işlemleri.

  • Birden çok sayfa giriş çıkışları verilerin içine veya bitişik olmayan bellek alanlarının dışına aktarılmasına izin veren dağıtma toplama I/o ile gerçekleştirilebilir.Bunun anlamı SQL Server hızlı bir şekilde doldurabileceğiniz veya kaçınma sırasında arabellek önbelleği temizlemebirden çok fiziksel g/Ç istekleri.

Uzun g/Ç istekleri

En az 15 saniye boyunca bekleyen herhangi bir g/Ç isteği üzerinde 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 veritabanı [% ls] (% d) [% ls] dosya üzerinde tamamlamak için g/Ç istekleri %d saniyeden daha uzun sürüyor yerde %d karşılaştı.Olduğunda işletim sistemi dosya tanıtıcı 0 x % p.En son uzun g/ç uzaklığı şöyledir: % # 016I64x.

Uzun bir g/Ç okuma ya da yazma olabilir; şu anda iletide gösterilmez.Uzun-ı/o, değil hatalar uyarılar iletilerdir.Sorunları belirtmek SQL Server.İletileri kötü nedenini bulmak Sistem Yöneticisi Yardımı'na bildirilen SQL Server daha hızlı yanıt zaman ve denetimi dışında olan sorunları ayırt etmek için SQL Server.Böylece, herhangi bir eylem gerektirmez, ancak Sistem Yöneticisi neden g/Ç isteği kadar uzun sürdü ve saat justifiable olup olmadığını araştırmanız gerekir.

Uzun-ı/o istekleri nedenleri

Bir g/Ç kalıcı olarak engellenir ve hiçbir zaman tamamlayacak bir uzun-ı/o ileti gösterebilir (olarak bilinen kayıp bir g/Ç), veya yalnızca onu yalnızca henüz tamamlanmadı.Kayıp bir g/Ç sık sık neden olur, ancak hangi senaryo ise böyle bir iletiden söylemek mümkün değil bir mandal saat aşımı.

Genellikle uzun giriş çıkışları gösteren bir SQL Server iş yükü çok yoğun disk alt sistemi.Yetersiz disk alt olabilir ne zaman gösterilir:

  • Uzun birden çok g/Ç ileti görünür hata günlüğü sırasında yoğun SQL Server iş yükü.

  • Perfmon sayaçları Göster uzun disk gecikmeleri, uzun disk sıraları veya disk boş saat.

Uzun giriş çıkışları da neden olabilir bir g/Ç bileşenini tarafından yol (örneğin, bir sürücü, denetleyici veya ürün bilgisi) edilerek disk kafası geçerli konumuna yakın yeni isteklere hizmet veren eski bir g/Ç isteği Bakımı sürekli erteleme.Ortak teknik öncelik istekleri işleme dayalı okuma/yazma kafası geçerli konumuna en yakın yer "Asansör arayan olarak." denir Bu, Windows Sistem Monitörü (perfmon. Onama zor olabilirexe) çünkü çoğu giriş çıkışları hemen serviste araç.Uzun g/Ç istekleri gibi yedek ve geri yükleme, sıralama, tablo taramaları, dizinleri oluşturma yükleri, toplu olarak sıralı g/Ç, büyük miktarlarda gerçekleştiren iş yükleri ile aggravated ve zeroing dosyaları olabilir.

Önceki koşullardan birini ilgili görünmez yalıtılmış uzun giriş çıkışları bir sürücü ya da donanım sorunu neden olabilir.Sistem olay günlüğüne sorunu tanılamak için yardımcı olan ilgili bir olay içeriyor olabilir.

Hata algılama

Veritabanı sayfas bütünlüğünü sağlamak yardımcı isteğe bağlı iki mekanizma birini kullanabilirsiniz sayfa saat kadar yeniden okumak için diske yazılır: bozuk sayfa koruması ve koruma sağlama toplamı toplamı.Bu mekanizmalar, yalnızca veri depolama, ancak denetleyicileri, sürücüler, kabloları ve hatta işletim sistemi gibi donanım bileşenleri doğruluğunu doğrulamak için bağımsız bir yöntem sağlar.Koruma hemen diske yazmayı önce sayfa eklenen ve diskten okunur sonra doğrulandı.

Yırtık sayfa koruması

Sayfa koruma parçalanmış, içinde sunulan SQL Server 2000, öncelikle bir yolu, algılama sayfası bozulmaları yüzünden güç hatası sayısı.Örneğin, beklenmeyen bir güç kesintisi yazılmış bir sayfa yalnızca bir kısmını bırakabilir diske.Bozuk sayfa koruması kullanıldığında 2-bit imza (özgün iki bit sayfa üstbilgisine kopyalanır sonra) her sayfa 512 baytlık kesiminde sonunda yerleştirilir.Diğerleri arasında ikili imza 01 ve 10 ile her Yaz, bu nedenle, her zaman ne zaman yalnızca bir kısmını kesimler bu diske yapılan söylemek mümkün: Sayfa üstü olduğunda biraz yanlış durumda okunursa, sayfanın hatalı yazıldığı ve bozuk bir sayfa buldu.Bozuk sayfa yakalama en az kaynak kullanır; Ancak, yok algılamak disk donanım arızaları tüm hataları.

Sağlama toplamı koruma

CHECKSUM koruma, içinde sunulan SQL Server 2005, daha güçlü sağlar veri bütünlük denetimi.Her sayfasında yazılan ve sayfa üstbilgisinde saklanan veriler için bir sağlama toplamı hesaplanır.Her bir sayfa saklanan bir sağlama toplamı ile okuma diskten, veritabanı altyapısı sağlaması için verileri yeniden hesaplar içinde sayfa ve yeni sağlama saklanan sağlama toplamı farklı ise 824 hata yükseltir.Sayfanın her bayt tarafından etkilenir çünkü checksum koruma bozuk sayfa Koruması'den daha fazla hataları yakalamak, ancak kaynak yoğun derecede olur.Sağlama toplamı etkinleştirildiğinde, güç kesintileri ve kusurlu donanım veya üretici yazılımı tarafından kaynaklanan hataları olabilir herhangi bir algılanan saat arabellek Yöneticisi bir sayfanın diskten okur.

Sayfa koruma kullanılan bir öznitelik içeren sayfa veritabanı türüdür.Oluşturulan veritabanları için varsayılan koruma sağlama koruması, SQL Server 2005 ve sonrası.Sayfa koruma mekanizması veritabanı oluşturulması sırasında belirtilen saatve alter database kullanarak değiştirilebilir.Sorgulayarak, geçerli sayfa koruma ayarını belirleyebilirsiniz page_verify_option sütun , sys.databases Katalog görünümü veya IsTornPageDetectionEnabled özellik databasepropertyex işlev.Sayfa koruma ayarını değiştirdiyseniz, yeni ayarı veritabanının tamamı hemen etkilemez.Bunun yerine, ardından yazılan her veritabanının geçerli koruma düzey sayfaları benimsenir.Bu, veritabanı sayfalarının farklı türde koruma ile oluşan anlamına gelir.