Aracılığıyla paylaş


Bir veritabanı daraltma

Her dosya bir veritabanı içinde kullanılmayan sayfaları kaldırmak için azaltılabilir.Ancak Veritabanı Altyapısı tekrar alan etkin bir şekilde, ne zaman bir dosya artık gerekiyor olması gibi bir kez olduğu; büyük zamanlar Dosya daraltma sonra gerekli hale gelebilir.Hem veri ve hareket kütüğü dosyaları sınırlı, şu kadar küçülttü veya.Veritabanı dosyalarını el ile daraltılabilecek grup halinde veya tek tek veya veritabanı olabilir küme belirli aralıklarla otomatik olarak daraltmak için.

Dosyaları her zaman sondan küçültülür.5 gb dosya varsa ve 4 gb olarak belirtin, örneğin, target_size dbcc SHRINKFILE deyim içinde Veritabanı Altyapısı boş kadar alan gibi olabilir son 1 GB dosya.Kullanılan sayfalarında yayımlanan, dosyanın parçası ise Veritabanı Altyapısı ilk şağıdaki dosyanın bir parçası sayfaları yeniden yerleştirir.Yalnızca, bir veritabanı, boş alan kalan bulunduğu noktaya daraltabilir.4 gb veri 5 gb veritabanı vardır ve/3 gb olarak belirtin, örneğin, target_size dbcc SHRINKFILE, deyim, yalnızca 1 gb serbest kalır.

Otomatik veritabanı daraltılması

Zaman AUTO_SHRINK veritabanı seçeneği on olarak küme Veritabanı Altyapısı otomatik olarak, veritabanları, var. boş alanı daraltıralter database kullanarak bu seçeneği ayarlamak deyim.Varsayılan olarak, off için küme.The Veritabanı Altyapısı periodically examines the space usage in each database.Bir veritabanı varsa, AUTO_SHRINK seçeneği on olarak küme Veritabanı Altyapısı veritabanı dosyalarının boyutunu azaltırBu faaliyetin, arka planda gerçekleşir ve herhangi bir veritabanı içinde kullanıcı etkinliği etkilemez.

İçin küme bir veritabanı otomatik olarak daraltmak için

ALTER DATABASE (Transact-SQL)

El ile veritabanı daraltılması

Bir veritabanı veya deyim dbcc SHRINKDATABASE veya dbcc SHRINKFILE deyimi kullanarak bir veritabanı içindeki dosyaları el ile daraltabilirsiniz.dbcc SHRINKDATABASE veya dbcc SHRINKFILE deyim tüm belirtilen günlük dosyasına yerinizi alamazsınız, deyim, daha çok alanı serbest uygun hale getirmek için gerçekleştirmeniz gereken eylem belirten bir bilgi iletisi verecek.Günlük dosyalarını daraltma hakkında daha fazla bilgi için bkz: İşlem günlüğünü daraltma.

dbcc SHRINKDATABASE ve dbcc SHRINKFILE işlemleri işlem herhangi bir noktada durdurulur ve Tamamlanan bir çalışma korunur.

dbcc SHRINKDATABASE kullanırken, deyim, kendi özgün boyutundan daha küçük olması için tüm veritabanını daraltamazsınız.Bir veritabanı dosya boyutu 10 mb ile oluşturulmuş ve 100 mb olarak söylemişti, veritabanındaki tüm verileri silmiş olsanız bile, bu nedenle, en küçük bir veritabanı için azaltılabilir 10 mb değildir.

Ancak, tek tek veritabanı dosyalarını başlangıç kendi boyutundan daha küçük bir boyuta dbcc SHRINKFILE deyim kullanarak daraltabilirsiniz.Tüm veritabanını küçültmek çalışmak yerine her dosya ayrı ayrı daraltmanız gerekir.

Not

Veritabanı veya hareket günlüğü veritabanı sırasında daraltılamıyor veya işlem günlüğü yedekleniyor.Bunun tersine, bir veritabanı veya hareket oluşturamazsınız günlük yedeği veritabanı veya hareket günlüğü daraltmak çalıştığınız sırada.

Bir veritabanını küçültmek için

Bir veri daraltmak veya günlük dosyası için

İşlem günlüğünü daraltma

Orada bir işlem günlük dosyası daraltılabilecek sınırları sabittir.Günlük içindeki sanal günlük dosyalarının boyutunu boyut olası tutarlarındaki belirler.Bu nedenle, günlük dosyası hiçbir zaman bir boyuta daraltılabilecek'den küçük sanal günlük dosyası.Ayrıca, günlük dosyası boyutuna eşit aralıklarla sınırlı sanal günlük dosyası boyutu.Örneğin, beş sanal günlük dosyaları her 200 MB 1 GB bir işlem günlük dosyası oluşabilir.İşlem günlük dosyası daraltılması kullanılmayan sanal günlük dosyaları siler, ancak en az iki sanal günlük dosyaları bırakır.Bu örnekte her sanal günlük dosyası 200 mb olduğundan, işlem günlüğü en az 400 MB ve yalnızca 200 MB'lık artışlarla için sadece azaltılabilir.İşlem günlüğü dosyasını daha küçük bir boyuta küçültebilirsiniz için küçük bir işlem günlüğü oluşturun ve tümünü bir defada büyük işlem günlük dosyası oluşturmak yerine otomatik olarak, büyümesini sağlar.

dbcc SHRINKDATABASE veya dbcc SHRINKFILE işlemi hemen işlem günlük dosyasını istenen boyuta (tabi yuvarlama) indirmek çalışır.Size gereken yedek mantıksal günlük boyutunu azaltmanıza ve herhangi bir bölümünü mantıksal günlük tutan olarak etkin olmayan sanal günlükleri işaretlemek üzere dosya daraltma önce günlük dosyası.Daha fazla bilgi için bkz: İşlem günlüğünü daraltma.

En iyi yöntemler

Bir veritabanı veya dosya daraltma planlarken aşağıdaki bilgileri göz önüne alın:

  • Küçültme işlemi çok fazla truncate table veya tablo bırakma işlemini gibi kullanılmayan alan yaratan bir operasyondan sonraki en etkili olandır.

  • Çoğu veritabanı, günlük normal işlemler için bir miktar boş alan gerektirir.Sürekli olarak bir veritabanı daraltma ve fark veritabanı boyutu yeniden büyür, şu kadar küçülttü alanı normal işlemler için gerekli olduğunu gösterir.Bu durumda, veritabanı sürekli küçülterek bir harcanan işlemdir.

  • Küçültme işlemi veritabanında dizinler parçalanma durumunu korumaz ve genellikle parçalanması için bir ölçüde artar.Örneğin, bir veritabanı veya veri dosyası dizinleri yeniden oluşturuluyor sonra küçültmek değil.Sürekli olarak veritabanını küçültmek değil başka bir nedeni budur.

  • Belirli bir gereksinim yoksa yapmak küme AUTO_SHRINK veritabanı seçeneği açık.

Satır sürüm oluşturma tabanlı yalıtım düzeyleri ve küçültme işlemleri

Satır sürüm oluşturma tabanlı yalıtım düzey altında çalışan bir hareket tarafından engellenmesi küçültme işlemleri için mümkündür.Örneğin, bir satırın altında sürüm oluşturma tabanlı çalışan bir büyük silme işlemi yalıtım düzey ise devam eden dbcc veritabanı DARALTMA işlemi yürütüldüğünde, küçültme işlemi silme işlemi dosyalarının daraltılması önce tamamlamak bekler.Bu durumda, bilgilendirici bir ileti (5202 SHRINKDATABASE için ve 5203 SHRINKFILE için) sql Server dbcc SHRINKFILE ve dbcc SHRINKDATABASE işlemleri yazdırmak hata günlüğü ilk saati ve her saat sonra sonra her beş dakikada.Daha fazla bilgi için bkz: dbcc SHRINKDATABASE (Transact-sql).