Aracılığıyla paylaş


Bir veritabanı küçültme

Her dosya bir veritabanı içinde kullanılmayan sayfaları kaldırmak için azaltılabilir.Ancak Database Engine etkin bir şekilde, alanı yeniden kullanacaksanız zamanlar, dosya artık bir kez haliyle büyük olması gerekir; bu dosya daraltma sonra gerekli hale gelebilir. Verileri hem de işlem günlüğü dosyalarını sınırlı shrunk veya.Veritabanı dosyalarını el ile shrunk küme ya da ayrı ayrı veya veritabanını otomatik olarak belirli aralıklarla daraltmak için ayarlanabilir.

Dosyaları her zaman sondan shrunk.Örneğin, 5 GB BOYUTUNDA bir dosyanız ve 4 GB olarak belirtin, target_size DBCC SHRINKFILE deyim içindeDatabase Engine Dosyanın son 1 GB ile bunun gibi çok boş. Mevcut değilse, yayımlanan dosya bölümünde kullanılan sayfaları Database Engine ilk bölümü için tutulan dosyayı sayfaları yeniden yerleştirir. Yalnızca, bir veritabanı, boş disk alanı kaldı bulunduğu noktaya daraltabilirsiniz.Örneğin, 4 GB veri 5 GB veritabanı vardır ve 3 GB olarak belirttiğiniz target_size bir DBCC SHRINKFILE deyim, yalnızca 1 GB serbest.

Otomatik veritabanı küçültmek

Zaman auto_shrink veritabanı seçeneği yapıldı küme açık, Database Engine otomatik olarak boş alana sahip bir veritabanı küçülür. Bu seçenek, ALTER VERITABANı'nı kullanarak küme deyim.Varsayılan olarak KAPALı küme.The Database Engine periodically examines the space usage in each database.Bir veritabanı varsa auto_shrink seçeneği küme açık, Database Engine veritabanı dosyalarının boyutunu küçültür. Bu faaliyetin, arka planda gerçekleşir ve veritabanı içindeki herhangi bir kullanıcı etkinliği etkilemez.

Bir veritabanı otomatik olarak daraltmak için

ALTER DATABASE Transact-SQL)

El ile veritabanı küçültmek

El ile bir veritabanını veya DBCC SHRINKDATABASE deyim veya DBCC SHRINKFILE deyimini kullanarak bir veritabanı içindeki dosyalar da küçültebilirsiniz.deyim, DBCC SHRINKDATABASE veya DBCC SHRINKFILE bir deyim bir günlük dosyasında belirtilen tüm alanını geri kazanmak olamaz, daha çok alanı serbest uygun hale getirmek için gerçekleştirmelisiniz eylem bilgilendirme iletisi verecek.Günlük dosyalarının daraltılması hakkında daha fazla bilgi için bkz: İşlem günlüğünü daraltma.

Işlemdeki herhangi bir noktada DBCC SHRINKDATABASE ve DBCC SHRINKFILE işlemleri durduruldu ve tüm tamamlanan çalışma korunur.

DBCC SHRINKDATABASE deyimini kullanarak, kendi özgün boyutundan daha küçük olacak şekilde tüm bir veritabanının daraltılamıyor.Bir veritabanı boyutu 10 MB ile oluşturulmuş olan ve 100 MB olarak grew, veritabanındaki tüm verileri sildi bile, bu nedenle, en küçük veritabanı için azaltılabilir 10, MB'dir.

Ancak, tek tek veritabanı dosyalarını kendi başlangıç boyutundan daha küçük bir boyuta DBCC SHRINKFILE deyimini kullanarak daraltabilirsiniz.Tüm veritabanını sıkıştırmak istediğiniz yerine her dosyayı tek tek daraltmanız gerekir.

Not

Veritabanı veya hareket günlüğü sırasında veritabanı daraltılamıyor veya işlem günlüğü yedekleniyor.Tersi durumda, bir veritabanı veya hareket günlüğü oluşturamıyor yedek veritabanı veya hareket günlüğü daraltmanız çalıştığınız sırada.

Veritabanını sıkıştırmak için

Bir veri daraltmak veya günlük dosyası

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

Orada sınırları içinden bir işlem günlük dosyası shrunk giderilmiştir.Günlük içinde sanal günlük dosyalarının boyutunu olası iskontolarındaki indirimleri'boyutu belirler.Bu nedenle, günlük dosyası her zaman sanal günlük dosyası'den küçük bir boyuta shrunk.Ayrıca, günlük dosyası, sanal günlük dosyası boyutu boyutuna eşit artışlarla düşürülür.Örneğin, bir işlem günlüğü dosyası 1 GB beş sanal günlük dosyaları her 200 MB oluşabilir.Işlem günlüğü dosyasını daraltma, kullanılmayan sanal günlük dosyaları siler, ancak en az iki sanal günlük dosyaları bırakır.Bu örnekte, sanal her günlük dosyası 200 MB olduğundan, işlem günlüğü yalnızca az 400 MB ve 200 MB'lık artışlarla yalnızca azaltılabilir.Daha küçük bir bir işlem günlük dosyası boyutunu yapabilmek için , küçük bir işlem günlüğü oluşturun ve bunu otomatik olarak büyük bir işlem günlük dosyası oluşturmak yerine tümünü bir seferde genişlemesine izin verir.

Bir işlem günlüğü dosyasını istenen boyuta (tabi yuvarlama) azaltmak BIR DBCC SHRINKDATABASE veya DBCC SHRINKFILE işlemini hemen çalışır.Günlük dosyası, mantıksal günlük boyutunu ve herhangi bir bölümünü mantıksal günlük tutan sanal günlükleri etkin olarak işaretlemek için dosyayı daraltma önce yedeklemek.Daha fazla bilgi için bkz:İşlem günlüğünü daraltma.

En iyi yöntemler

Bir veritabanı veya dosyayı sıkıştırmak planlarken, aşağıdaki bilgileri göz önüne alın:

  • Bir küçültme işlemi çok sayıda kullanılmayan boşluk, kesme tablo ya da bir açılan tabloda işlemi oluşturan bir operasyondan sonraki en etkili olur.

  • Çoğu veritabanlarında, günlük normal işlemler için bazı boş alan gerektirir.Veritabanı art arda küçültmek ve veritabanı boyutunu yeniden büyüyor dikkat edin, shrunk alanı normal işlemler için gerekli olduğunu gösterir.Bu durumda, tekrar tekrar veritabanı daraltma bir harcanan işlemdir.

  • Bir küçültme işlemi dizin veritabanında parçalanma durumunu korumak ve genellikle bir derecede parçalanma artırır.Örneğin, bir veritabanı veya veri dosyası dizinleri yeniden oluþturma sonra daraltmanız değil.Art arda veritabanı daraltmanız değil, başka bir nedeni budur.

  • Belirli bir gereksinim yoksa, AUTO_SHRINK veritabanı seçeneği ON olarak ayarlamayın.

Güncelleştirme tabanlı yalıtım düzeyleri ve Shrink işlem satır

Küçültme işlemlerinde bir satır sürüm tabanlı bir yalıtım düzey altında çalışan bir işlem tarafından engellenmiş olasıdır.Bir DBCC DATABASE DARALTMA işlemi çalıştırıldığında, örneğin, sürüm oluşturma-based satır altında çalışan bir büyük silme işlemi, yalıtım düzey küçültme işlemi silme işlemi dosyaları daraltma önce tamamlanması için bekleyeceği sürüyor.Bu, bir bilgi iletisi (5203 için SHRINKFILE ve SHRINKDATABASE için 5202) SQL Server DBCC SHRINKFILE ve DBCC SHRINKDATABASE operasyonlar yazdırmak durumda hata günlüğü ilk saat ve sonra her saat sonra her beş dakikada.Daha fazla bilgi için bkz:DBCC SHRINKDATABASE (Transact-SQL).