Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, SQL Server'daki tempdb veritabanı için G/Ç alt sistemi gereksinimleri açıklanır.
Özgün ürün sürümü: Microsoft SQL Server
Özgün KB numarası: 917047
Özet
Microsoft SQL Server, sistem ve kullanıcı veritabanlarını depolamak için kullanılan G/Ç alt sisteminin belirli G/Ç sorumluları aracılığıyla Önceden Yazma Günlüğü (WAL) gereksinimlerini tam olarak karşılamasını gerektirir. Bu gereksinimler, işlemlerin ACID özelliklerine uyması için gereklidir: Atomik, Tutarlı, Yalıtılmış ve Dayanıklı. G/Ç alt sistemi uyumluluk gereksinimleriyle ilgili ayrıntılar SQL Server G/Ç temel bilgileri bölümünde verilmiştir.
Aşağıdaki listede gereksinimlerin hızlı bir özeti verilmiştir:
- Yazma sıralaması korunmalıdır.
- Bağımlı yazma tutarlılığı korunmalıdır.
- Yazma işlemleri her zaman kararlı medyada/ortamda güvenli hale getirilmelidir.
- Yırtılmış G/Ç önlemesi gerçekleşmelidir.
Dayanıklılık bakımı diğer tüm veritabanları için kritik olmaya devam eder, ancak tempdb veritabanı için gevşetilebilir. Aşağıdaki tabloda, SQL Server veritabanları için kritik G/Ç gereksinimlerinin birkaçı özetlenmiştir.
| G/Ç gereksinimi | Kısa açıklama | Sistem veya kullanıcı | tempdb (geçici veri tabanı) |
|---|---|---|---|
| Yazma sırası Bağımlı yazma tutarlılığı |
Alt sistemin yazma işlemlerinin doğru sırasını koruyabilme özelliği. Bu özellikle çözümleri yansıtma, grup tutarlılığı gereksinimleri ve SQL Server WAL protokolü kullanımı için önemli olabilir. | Zorunlu | Önerilir |
| Yazdıktan sonra oku | Herhangi bir yazma işlemi başarıyla tamamlandıktan sonra okuma işlemi yapıldığında alt sistemin okuma isteklerine en son veri görüntüsüyle hizmet verebilmesi. | Zorunlu | Zorunlu |
| Kesintiler arasında hayatta kalma | Sistemin yeniden başlatılması gibi bir kesintide verilerin tam olarak bozulmadan (Dayanıklı) kalma özelliği. | Zorunlu | Uygulanamaz |
| Yırtılmış G/Ç önleme | Sistemin tek tek G/Ç isteklerini bölmekten kaçınma özelliği. | Zorunlu | Önerilir |
| Kesim yeniden yazma | Kesim yalnızca bütün olarak yazılabilir ve yakındaki bir kesimde yazma isteği nedeniyle yeniden yazılamaz. | * Önerilmez, yalnızca işlemselse izin verilir | * Önerilmez, yalnızca işlemselse izin verilir |
| Sağlamlaştırılmış veriler | Yazma isteği veya FlushFileBuffers işlemi başarıyla tamamlandığında verilerin kararlı medyaya kaydedilmesi beklentisi. | Zorunlu | Uygulanamaz |
| Fiziksel kesim hizalaması ve boyutu | SQL Server, verileri ve günlük dosyası depolama konumlarını sorgular. Sql Server'ın fiziksel kesimle hizalanmış sınırlarda ve kesim boyutunun katlarında yazma işlemleri gerçekleştirmesine izin vermek için tüm cihazların kesim özniteliklerini desteklemesi gerekir. | Zorunlu | Zorunlu |
İşlem kesimi yeniden yazma işlemleri, alt sistem tarafından bir kesimin tamamen taşınmasına, değiştirilmesine veya özgün görüntüye geri alınmasına izin vermek için tam olarak günlüğe kaydedilen işlemleri içerir. Bu tür eylemleri gerçekleştirmek için gereken ek ek yük nedeniyle bu yeniden yazma işlemleri genellikle önerilmez. Bunun bir örneği, dosya verilerinin taşındığı bir defragmentation yardımcı program olabilir. Dosyadaki özgün kesim, yeni kesim ve veriler güvenli hale getirilene kadar yeni kesim konumuyla değiştirilemez. Kesimin yeniden eşlemesi işlemsel bir şekilde gerçekleşmelidir, böylece güç kesintisi de dahil olmak üzere tüm hatalar özgün verilerin yeniden oluşturulmasına neden olur. Geçersiz veri erişimini önlemek için bu tür bir işlem sırasında kilitleme mekanizmalarının kullanılabilir olduğundan emin olun ve böylece SQL Server G/Ç'nin diğer kiracılarını destekleyin.
Kesintiler arasında hayatta kalma
Tempdb veritabanı SQL Server için bir karalama alanıdır ve her SQL Server başlangıcında yeniden oluşturulur. Başlatma işlemi, verilerin yeniden başlatma işleminden sonra devam etme gereksiniminin yerini alır.
İşlem kesimi yeniden yazma işlemleri
Geri alma ve kilitlenme kurtarma gibi kurtarma işlemlerinin başarısını garanti etmek için, veri sayfası depolanmadan önce günlük kayıtlarının kararlı medyada doğru şekilde depolanması gerekir ve işlem özelliklerine saygı gösterilmeden yeniden yazılamaz. Bunun için alt sistemin ve SQL Server'ın yazma sırası, kesime göre hizalanmış ve boyutlandırılmış yazmalar gibi belirli öznitelikleri ve daha önce bahsedilen belgelerde özetlenen diğer G/Ç güvenlik özniteliklerini koruması gerekir. Sql Server başlatma sırasında veritabanı her zaman başlatıldığından tempdb veritabanı için kilitlenme kurtarması gereksizdir. Ancak tempdb veritabanı hala geri alma özellikleri gerektirir. Bu nedenle, WAL protokolünün bazı öznitelikleri gevşetilebilir.
tempdb veritabanının depolama konumu, yerleşik disk sürücüsü protokollerine tam olarak uygun şekilde hareket etmelidir. Her şekilde, tempdb veritabanının depolandığı cihaz görünmelidir ve yazma özelliklerinden sonra okuma sağlayan fiziksel bir disk olarak hareket etmelidir. İşlem kesimi yeniden yazma işlemleri, belirli uygulamaların ek bir gereksinimi olabilir. Örneğin, NTFS sıkıştırması önceden yazılmış ve sağlamlaştırılmış olarak kabul edilen günlüğün kesimlerini yeniden yazabileceğinden, SQL Server NTFS dosya sistemi sıkıştırması kullanılarak veritabanı değişikliklerini desteklemez. Bu tür bir yeniden yazma sırasında oluşan bir hata veritabanının kullanılamaz olmasına ve SQL Server'ın zaten güvenli olarak kabul edilen verilere zarar vermesine neden olabilir.
Not
SQL Server, salt okunur veritabanları ve dosya grupları için sıkıştırma ve genişletilmiş destek sunar. Tüm ayrıntılar için bkz. SQL Server Books Online.
İşlem kesimi yeniden yazma işlemleri, tempdb veritabanını içeren tüm SQL Server veritabanlarına yöneliktir. Artan çeşitli genişletilmiş depolama teknolojileri, SQL Server'ın güvenli olarak kabul ettiğini düşündüğü verileri yeniden yazabilen cihazları ve yardımcı programları kullanır. Örneğin, gelişmekte olan teknolojilerden bazıları bellek içi önbelleğe alma veya veri sıkıştırma işlemi gerçekleştirir. Ciddi veritabanı hasarlarını önlemek için, herhangi bir sektör yeniden yazma işlemi, bir hata oluşursa veriler önceki sektör görüntülerine geri alınacak şekilde tam işlem desteğine sahip olmalıdır. Bu, SQL Server'ın hiçbir zaman beklenmeyen bir kesintiye veya veri hasar durumuna maruz kalmadığını garanti eder.
Tempdb veritabanını RAM diskleri, katı hal veya diğer veritabanları için kullanılamayabilecek diğer yüksek hızlı uygulamalar gibi özel alt sistemlere yerleştirebilirsiniz. Ancak, bu seçenekleri değerlendirirken Daha Fazla Bilgi bölümünde sunulan temel faktörler dikkate alınmalıdır.
Not
Yük Devretme Kümelenmiş ortamlarındaki yerel diskler yalnızca katı hal veya yüksek hızlı uygulamalarla desteklenir. Bunun nedeni, RAM diskinin yalnızca bir iSCSI hedefi üzerinden oluşturulabilmesidir. Ayrıca, iSCSI hedefi ve Yük Devretme Kümesi özellikleri aynı konakta kullanılamaz.
Daha Fazla Bilgi
Tempdb veritabanının depolama konumunu değerlendirirken birkaç faktör dikkatle incelenmelidir. Örneğin tempdb veritabanı kullanımı bellek ayak izi, sorgu planı ve G/Ç kararlarını içerir ancak bunlarla sınırlı değildir. Tempdb veritabanının uygun şekilde ayarlanması ve uygulanması, sistemin ölçeklenebilirliğini ve yanıt hızını artırabilir. Bu bölümde tempdb veritabanı için depolama gereksinimlerini belirlemedeki temel faktörler ele alınmaktadır.
Yüksek hızlı alt sistemler
Piyasada SQL Server G/Ç alt sistemi protokol gereksinimleri sağlayan ancak medyanın dayanıklılığını sağlamayan çeşitli yüksek hızlı alt sistem uygulamaları vardır.
Önemli
SQL Server G/Ç gereksinimleriyle tam uyumluluğu garanti etmek için ürün satıcısıyla her zaman onaylayın.
RAM diski, böyle bir uygulamanın yaygın örneklerinden biridir. RAM diskleri gerekli sürücüleri yükler ve ana RAM diskinin bir kısmının sisteme bağlı herhangi bir disk sürücüsü gibi görünmesini ve çalışması için etkinleştirir. Tüm G/Ç alt sistemleri SQL Server G/Ç gereksinimleriyle tam uyumluluk sağlamalıdır. Ancak, RAM diskin dayanıklı medya olmadığı açıktır. Bu nedenle, RAM diski gibi bir uygulama yalnızca tempdb veritabanının konumu olarak kullanılabilir ve başka bir veritabanı için kullanılamaz.
Uygulama ve dağıtımdan önce göz önünde bulundurulacak anahtarlar
Bu tür bir alt sistemde tempdb veritabanının dağıtımından önce dikkate alınması gereken çeşitli noktalar vardır. Bu bölümde tartışmanın temeli olarak bir RAM diski kullanılır, ancak diğer yüksek hızlı uygulamalarda benzer sonuçlar elde edilir.
G/Ç güvenliği
Yazma ve işlem kesimi yazma işlemlerinden sonra okuma uyumluluğu şarttır. SQL Server G/Ç gereksinimlerini tam olarak desteklemeyen veya verilerinizin zarar görmesine ve kaybolmasına neden olan herhangi bir sistemde SQL Server'ı asla dağıtmayın.
Zaten önbelleğe alınmış sayfalar (Çift RAM önbelleği)
Geçici tablolar, veritabanındaki diğer tüm tablolar gibidir. Bunlar arabellek havuzu tarafından önbelleğe alınır ve gecikmeli yazma işlemleri tarafından işlenir. Geçici tablo sayfalarının bir RAM diskinde depolanması, biri arabellek havuzunda ve diğeri RAM diskinde olmak üzere çift RAM önbelleğe alma işlemine neden olur. Bu, arabellek havuzunun toplam olası boyutunu doğrudan ortadan kaldırır ve genellikle SQL Server'ın performansını azaltır.
RAM'i verme
RAM diski, adından da anlaşılacağı gibi ana RAM'in bir bölümünü gösterir. RAM disklerinin ve RAM tabanlı dosya önbelleklerinin çeşitli uygulamaları vardır. Bazıları fiziksel G/Ç yedekleme işlemlerini de etkinleştirir. RAM tabanlı dosya önbelleğinin temel öğesi, SQL Server tarafından kullanılabilecek fiziksel belleği doğrudan almasıdır. RAM tabanlı dosya önbelleği eklemenin uygulama performansını artırdığını ve diğer sorgu veya uygulama performansını azaltmadığını her zaman güçlü kanıtlara sahip olur.
Önce ayarla
Bir uygulama tempdb veritabanının kullanılmasına neden olabilecek gereksiz ve istenmeyen sıralamaları ve karmaları kaldırmak için ayar yapmalıdır. Çoğu zaman bir dizinin eklenmesi plandaki sıralama veya karma gereksinimini tamamen kaldırabilir ve tempdb veritabanının kullanılmasına gerek kalmadan en iyi performansa yol açabilir.
Olası avantaj noktaları
Tempdb veritabanını yüksek hızlı bir sisteme yerleştirmenin avantajları yalnızca uygulama iş yüklerinin sıkı test ve ölçümleriyle belirlenebilir. Tempdb veritabanının yararlanabileceği özellikler için iş yükünün dikkatle incelenmesi ve G/Ç güvenliğinin dağıtımdan önce onaylanması gerekir.
Sıralama ve karma işlemleri SQL Server bellek yöneticileriyle birlikte çalışarak her sıralama veya karma işlemi için bellek içi karalama alanının boyutunu belirler. Sıralama veya karma veriler ayrılan bellek içi karalama alanını aşar aşmaz veriler tempdb veritabanına yazılabilir. Bu algoritma, SQL Server'ın önceki sürümlerine göre tempdb veritabanı kullanım gereksinimlerini azaltarak SQL Server'da genişletilmiştir.
Dikkat
SQL Server, tempdb veritabanı işlemlerinin kullanımını içeren sorgu planı kararları alırken bellek düzeylerini ve geçerli sorgu etkinliklerini hesaba katacak şekilde tasarlanmıştır. Bu nedenle performans kazanımları, iş yüklerine ve uygulama tasarımına göre önemli ölçüde farklılık gösterir. Bu tür bir dağıtımdan önce olası kazançları belirlemek ve G/Ç güvenlik gereksinimlerini değerlendirmek için tercih edilen çözümle test işlemini tamamlamanızı kesinlikle öneririz.
SQL Server sıralamalar, karmalar, satır sürümü deposu ve geçici tablolar gibi çeşitli etkinlikleri işlemek için tempdb veritabanını kullanır:
- Geçici tablolar, veri sayfaları için ortak arabellek havuzu yordamları tarafından korunur ve genellikle özel alt sistem uygulamalarından performans avantajları sergilemez.
- Tempdb veritabanı, karmalar ve sıralamalar için karalama alanı olarak kullanılır. Bu tür işlemler için G/Ç gecikme süresini azaltmak yararlı olabilir. Ancak, karma veya sıralamadan kaçınmak için dizin eklemenin benzer bir avantaj sağlayabileceğini bilin.
Avantajları karşılaştırmak için yüksek hızlı alt sistemde depolanan tempdb veritabanı ile ve olmadan temelleri çalıştırın. Testin bir bölümü sıralamalar, karmalar veya geçici tablolar içermeyen kullanıcı veritabanına yönelik sorguları içermeli ve ardından bu sorguların olumsuz etkilenmediğini onaylamalıdır. Sistemi değerlendirirken aşağıdaki performans göstergeleri yararlı olabilir.
| Gösterge | Açıklama/kullanım |
|---|---|
| Sayfa okuma ve yazma işlemleri | Tempdb veritabanı G/Ç'sinin performansının artırılması, tempdb veritabanı G/Ç ile ilişkili gecikme süresinin azalması nedeniyle kullanıcı veritabanları için sayfa okuma ve yazma hızını değiştirebilir. Kullanıcı veritabanı sayfaları için, genel sayı aynı iş yükünde değişmemelidir. |
| Tempdb veritabanına fiziksel okuma ve yazma baytları | Tempdb veritabanını RAM diski gibi bir cihaza taşımak tempdb veritabanının gerçek G/Ç değerini artırırsa, arabellek havuzundan alınan belleğin tempdb veritabanı etkinliğinin artmasına neden olduğunu gösterir. Bu düzen, veritabanı sayfalarının sayfa ömrü beklentisinin de olumsuz bir şekilde etkilenebileceğini gösteren bir göstergedir. |
| Sayfa ömrü beklentisi | Sayfa ömrü beklentisindeki bir düşüş, kullanıcı veritabanı için fiziksel G/Ç gereksinimlerinde artış olduğunu gösterebilir. Hız düşüşleri büyük olasılıkla arabellek havuzundan alınan belleğin veritabanı sayfalarını arabellek havuzundan erken çıkmaya zorladığını gösterebilir. Diğer göstergelerle birleştirin ve parametre sınırlarını tam olarak anlamak için test edin. |
| Genel aktarım hızı CPU kullanımı Ölçeklenebilirlik Yanıt süresi |
Tempdb veritabanı yapılandırma değişikliğinin birincil hedefi genel aktarım hızını artırmaktır. Testiniz, aktarım hızının nasıl etkilendiğini belirlemek için ölçeği genişletilebilen tekrarlanabilir iş yüklerinin bir karışımını içermelidir. Sıkıştırma tabanlı RAM disk uygulaması gibi bir şey 10 kullanıcıyla iyi çalışabilir. Ancak, artan iş yüküyle bu, CPU düzeylerini istenen düzeylerin ötesine itebilir ve iş yükleri yüksek olduğunda yanıt süresi üzerinde olumsuz etkilere neden olabilir. Gerçek stres testleri ve gelecekteki yük tahmin testleri teşvik edilir. |
| İş dosyaları ve iş tablosu oluşturma eylemleri | Tempdb veritabanını RAM diski gibi bir cihaza taşımak, iş dosyalarının veya iş tablolarının sayısını veya boyutunu artırarak sorgu planını değiştirirse, arabellek havuzundan alınan belleğin tempdb veritabanı etkinliğinin artmasına neden olduğunu gösterir. Bu düzen, veritabanı sayfalarının sayfa ömrü beklentisinin de olumsuz yönde etkilenebileceğinin bir göstergesidir. |
İşlem kesimi yeniden yazma örneği
Aşağıdaki örnek, SQL Server veritabanları için gerekli olan veri güvenliğini açıklar.
RAM disk satıcısının bellek içi sıkıştırma uygulaması kullandığını varsayalım. Sql Server'ın farkında olmadan ve temel alınan uygulamadan doğru şekilde korunacak şekilde kesim hizalanmış ve boyutlandırılmış gibi dosya akışının fiziksel görünümü sağlanarak uygulama doğru şekilde kapsüllenmelidir. Sıkıştırma örneğine daha yakından bakın.
- Sektör 1 cihaza yazılır ve alandan tasarruf etmek için sıkıştırılır.
- Sektör 2 cihaza yazılır ve alandan tasarruf etmek için sektör 1 ile sıkıştırılır.
Cihaz, 2. kesim verileriyle birleştirildiğinde 1. kesim verilerinin güvenliğini sağlamaya yardımcı olmak için aşağıdaki eylemleri gerçekleştirebilir.
- 1 ve 2 kesimlerine yapılan tüm yazmaları engelleyin.
- Sektör 1'i bir karalama alanına sıkıştırarak geçerli sektör 1 depolama alanını alınacak etkin veri olarak bırakın.
- 1 ve 2 kesimlerini yeni bir depolama biçimine sıkıştırır.
- 1. ve 2. kesimlerin tüm okuma ve yazmalarını engelleyin.
- 1. ve 2. kesimler için eski depolamayı yeni depolama alanıyla değiştirme. Değişim girişimi başarısız olursa (geri alma):
- 1. ve 2. kesimler için özgün depolama alanını geri yükleyin.
- Kesim 1 ve 2 birleşik verilerini sıfırdan kaldırın.
- Kesim 2 yazma işlemi başarısız olur.
- 1. ve 2. kesimler için okuma ve yazma engelini kaldırın.
Sektör değişiklikleriyle ilgili kilitleme mekanizmaları sağlayabilme ve sektör değişimi girişimi başarısız olduğunda değişiklikleri geri alma özelliği geçişle uyumlu olarak kabul edilir. Genişletilmiş yedekleme için fiziksel depolama kullanan uygulamalar için, SQL Server veritabanı dosyalarının bütünlüğünü korumak için disk içi yapılara uygulanan değişikliklerin güvenliğini sağlamaya ve geri alınmasına yardımcı olacak uygun işlem günlüğü yönlerini içerir.
Kesimlerin yeniden yazılmasını sağlayan tüm cihazlar, SQL Server'ın veri kaybına maruz kalmaması için yeniden yazma işlemlerini işlemsel bir şekilde desteklemelidir.
Not
Tempdb veritabanında çevrimiçi G/Ç ve geri alma hataları oluştuğunda SQL Server örneği yeniden başlatılır.
tempdb veritabanını taşırken dikkatli olun
tempdb veritabanını taşırken dikkatli olun çünkü tempdb veritabanı oluşturulamazsa SQL Server başlatılmaz. tempdb veritabanı oluşturulamıyorsa, (-f) başlangıç parametresini kullanarak SQL Server'ı başlatın ve tempdb veritabanını geçerli bir konuma taşıyın.
Tempdb veritabanının fiziksel konumunu değiştirmek için şu adımları izleyin:
ALTER DATABASEYeni disk gibi yeni fiziksel konuma başvurmak üzere tempdb veritabanındaki her dosyanın fiziksel dosya adlarını değiştirmek için deyimini veMODIFY FILEyan tümcesini kullanın.ALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'C:\MyPath\tempdb.mdf') ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'C:\MyPath\templog.ldf')SQL Server'ı durdurun ve yeniden başlatın.
İş ortağı ürün sertifikaları, uyumluluk veya güvenlik garantisi değildir
Üçüncü taraf bir ürün veya belirli bir satıcı Microsoft logo sertifikası alabilir. Ancak, iş ortağı sertifikası veya belirli bir Microsoft logosu SQL Server'da belirli bir amaca uygunluk veya uyumluluğu onaylamaz.
Destek
SQL Server ile bu makalede açıklandığı gibi işlemsel veritabanı kullanımı için G/Ç garantilerini destekleyen bir alt sistem kullanıyorsanız, Microsoft SQL Server ve SQL Server tabanlı uygulamalar için destek sağlayacaktır. Ancak, alt sistemle ilgili sorunlar veya neden olduğu sorunlar üreticiye başvurulacaktır.
tempdb veritabanıyla ilgili sorunlar için Microsoft Desteği Hizmetleri tempdb veritabanını yeniden yer değiştirmenizi ister. Cihazı işlemsel veritabanı kullanımı için doğru şekilde dağıtıp yapılandırdığınızdan emin olmak için cihaz satıcınıza başvurun.
Microsoft, üçüncü taraf ürünlerinin SQL Server ile düzgün çalıştığını onaylamaz veya doğrulamaz. Buna ek olarak, Microsoft herhangi bir üçüncü taraf ürünün SQL Server ile kullanılmaya uygun olup olmadığının garantisini, garantisini veya bildirimini sağlamaz.
Başvurular
Daha fazla bilgi için bakınız:
Hata iletisi 823, SQL Server'da donanım sorunlarını veya sistem sorunlarını gösterebilir
SQL Server'da ağ veritabanı dosyaları için desteğin açıklaması
Microsoft, üçüncü taraf ürünlerinin Microsoft SQL Server ile çalışacağını onaylamaz
Azure Sanal Makineleri'nde SQL Server için performans yönergeleri
SQL Server 2014 Kardinalite Tahmin Aracı ile Sorgu Planlarınızı İyi hale getirme
SQL Server Veritabanı Altyapısı Disk Giriş/Çıkış (G/Ç) gereksinimleri