SQL Server tempdb veritabanında küçültme

Makale çevirileri Makale çevirileri
Makale numarası: 307487 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Microsoft SQL Server tempdb veritabanında daraltmak için kullanabileceğiniz çeşitli yöntemler açıklanır. Bu makalede açıklanan yöntemleri kullanarak tempdb veritabanı daraltma önce lütfen aşağıdakilere dikkat edin:
  • Tempdb boyutu son yapılandırılmış boyutuna Sıfırla (diğer bir deyişle, varsayılan boyutu ya da alter veritabanıkullanılarak ayarlanmış olan son boyutu) her yeniden başlatma sonrasında. Bu nedenle, farklı değerler kullanmak hemen respite elde etmek veya yoksa, bu makalede açıklanan yordamları kullanmak gerekmez. Boyutunu azaltmak için SQL Server hizmeti yeniden başlatıldığında bekleyebilirsiniz. Büyük tempdb veritabanı boyutları SQL Server performansını olumsuz yönde etkilemez.
  • SQL Server 2005 ve sonraki sürümlerinde, tempdb veritabanı daraltma olgu dışında bir kullanıcı veritabanı daraltma daha farklı değildir, tempdb her SQL Server örneği yeniden başladıktan sonra yapılandırılmış boyutuna sıfırlar.
  • Tempdb sürekli etkinliktir shrink tempdb içinde çalışmasını güvenlidir. Ancak, engelleme, Kilitlenmeler ve shrink tamamlamanıza engel vb. gibi diğer hatalarla karşılaşabilirsiniz. Bu nedenle, tempdb küçültme başarılı olur emin olmak için sunucuyu tek kullanıcı modunda veya tüm tempdb etkinliği durduruldu olmakla birlikte, bunu yapmanızı öneririz.

Tempdb bilgileri

Geçici bir çalışma alanı tempdb veritabanıdır. SQL Server, tempdb birçok görevi gerçekleştirmek için kullanır. Bu görevler arasında şunlardır:
  • Açıkça oluşturulan geçici tablo depolama
  • İşlem ve sıralama sorgu sırasında oluşturulan ara sonuçları basılı worktables
  • Statik imleçler materialized
  • Anlık görüntü yalıtım düzeyleri veya okuma kaydedilmiş anlık görüntü yalıtım düzeyleri kullanıldığında sürüm kayıt depolama
SQL Server, tempdb hareket günlüğüne bir hareket geri almak için ancak hareketleri veritabanı kurtarma sırasında yineleme değil yalnızca yeterli bilgi kaydeder. Bu özellik Insert ifadelerini tempdb içinde performansını artırır. Ayrıca, günlük bilgileri tempdb, SQL Server her başlatışınızda yeniden oluşturulur, çünkü tüm işlemleri yeniden yapmak gerekmez. Bu nedenle, ileri geri veya geri almak için hiçbir hareket yok. SQL Server başladığında, tempdb model veritabanının bir kopyasını kullanarak yeniden oluşturulur ve tempdb son yapılandırılmış boyutuna sıfırlayın. Yapılandırılmış boyut değiştirme işlemi Dosya değiştirme seçeneği veya DBCC SHRINKFILE deyimi kullanan ALTER DATABASE gibi bir dosya boyutu kullanılarak ayarlanmış olan son açık boyutudur.

Varsayılan olarak, tempdb veritabanı otomatik büyüme için gerektiği şekilde yapılandırılmış. Bu nedenle, bu veritabanı beklenmedik şekilde zamanında bir boyuta istenen boyutundan daha büyüyebileceğini. SQL Server'ın basit bir yeniden başlatma tempdb boyutunu son yapılandırılmış boyutuna sıfırlar.

SQL Server 2005 ve sonraki sürümlerinde, tempdb boyutunu değiştirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz.

Bu tabloyu kapaBu tabloyu aç
YöntemYeniden başlatma gerekir?Daha fazla bilgi
ALTER VERİTABANIEvetTam denetim üzerinde (tempdev ve templog) varsayılan tempdb dosyalarının boyutunu verir.
DBCC SHRINKDATABASEHayırVeritabanı düzeyinde çalışır.
DBCC SHRINKFILEHayırTek tek dosyaları sıkıştırmak sağlar.
SQL Server Management StudioHayırBu temelde GUI üzerinden veritabanı dosyaları sıkıştırmak için bir yoludur.

Not SQL Server Management Studio'yu SQL Server 2005'te doğru tempdb dosyalarının boyutunu küçültme işlemi sonra göstermez. "Şu anda tahsis edilen alan" değeri her zaman DMV sys.master_files çekilen ve tempdb veritabanı için bir küçültme işlemi gerçekleştikten sonra bu değer güncelleştirilmez. Tempdb dosyalarını doğru boyutunu küçültme işlemi sonra bulmak için SQL Server Management Studio'da aşağıdaki deyimini yürütün:

use tempdb

select (size*8) as FileSizeKB from sys.database_files
İlk üç yöntem aşağıda açıklanmıştır.

Not SQL Server 2000 kurulumları için SQL Server Management Studio'da Query Analyzer kullanmanız gerekir. Ayrıca, DBCC komutlarını veritabanını tek kullanıcı moduna sokun gerektirecektir.

Kendi yapılandırılmış boyutundan daha küçük bir boyuta tempdb daraltmak için aşağıdaki üç yöntemi kullanabilirsiniz.

Yöntem 1: Kullanma Transact-SQL komutları

Yöntem 2: DBCC SHRINKDATABASE komutunu kullanma

Yöntem 3: DBCC SHRINKFILE komutunu kullanma

küçültme işlemleri çalıştırdığınızda, 2501 ve 8909 hataları

Tempdb kullanılıyorsa ve DBCC SHRINKDATABASE veya DBCC SHRINKFILE komutu kullanarak küçültmek çalışırsanız, kullanmakta olduğunuz SQL Server sürümüne bağlı olarak, aşağıdakine benzer bir ileti alabilirsiniz:

SQL Server 2005 ve sonraki sürümleri

Sunucu: Msg 8909, Level 16, State 1, satır 1 tablo hata: nesne kimliği dizin kimliği -1, 0, 0, 0 (türü bilinmiyor) ayırma birim kimliği kimliği bölümü, sayfa kimliği (6:8040), sayfa üstbilgisindeki yanlış sayfa kimliği içerir. Sayfa üstbilgisinde PageId = (0:0).

SQL Server 2000
Sunucu: Msg 2501, düzey 16, State 1, satır 1 verebilir '1525580473' adlı tablo bulamaz. Sysobjects denetleyin.

Sunucu: Msg 8909, Level 16, State 1, satır 0 bozuk tablosu: nesne kimliği 1, 0, dizin kimliği sayfa kimliği % S_PGID. Sayfa üstbilgisinde PageId = % S_PGID.



Notlar
  • Bu hataları tempdb içinde gerçek bozuklukları göstermez. Ancak, fiziksel veri bozulması hataları hata 8909 gibi diğer nedenlerle olabilir ve bu nedenlerin g/ç alt sisteminin sorunları dahil olduğunu unutmayın. Bu nedenle, hata küçültme işlemleri dışında olursa, daha fazla araştırma yapmanız gerekir.
  • Uygulamaya veya küçültme işlemi yürüten kullanıcının 8909 iletisi döndürülür, ancak SQL Server 2005 ve sonraki sürümlerinde, küçültme işlemleri başarısız olmaz.
  • SQL Server 2000 ve önceki sürümlerinde, bu hatalar küçültme işlemleri başarısız olmasına neden olur. Bu nedenle tempdb veritabanını küçültmek için tempdb yeniden oluşturmak için SQL Server'ı yeniden başlatmanız gerekir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    277848 SQL Server DBCC DBREINDEX çalıştırdığınızda hata iletisi "Tablo bozuk nesne kimliği 0, 0, dizin kimliği sayfa kimliği" oluşuyor


Referanslar

Bir veritabanı daraltma

Özellikler

Makale numarası: 307487 - Last Review: 30 Nisan 2014 Çarşamba - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Parallel Data Warehouse
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Parallel Data Warehouse
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Anahtar Kelimeler: 
kbsqlsetup kbhowtomaster kbmt KB307487 KbMttr
Machine-translated Article
Ö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: 307487

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com