DBCC UPDATEUSAGE, SQL Server’da veritabanı üzerindeki depolama bilgilerini (metadata)güncellemek için kullanılan bir komuttur. Page ve row sayılarındaki hataları tespit etmektedir. Bu bilgilerin doğru olmaması durumunda düzeltilmesini sağlar.
Tablo, dizin veya veritabanı seviyesinde kullanılan veri sayfaları ve boş sayfalarla ilgili bilgileri kontrol eder ve doğru olmayanları günceller. sp_spaceused gibi sorguların doğru depolama istatistikleri raporlamasını sağlar. Eğer tablolar veya dizinler için kullanılan alanla ilgili değerler yanlışsa, bu komut bu değerleri düzeltir.
DBCC UPDATEUSAGE şu şekilde çalıştırılır:
DBCC UPDATEUSAGE ('VeritabanıAdı');
Belirli bir tablo veya dizin çalıştırmak için aşağıdaki komut kullanılmaktadır.
DBCC UPDATEUSAGE ('VeritabanıAdı', 'TabloAdı');
Aşağıdaki komut belirli bir veritabanı altında bulunan tablonun belirtilen index için kontrol yapılmaktadır.
DBCC UPDATEUSAGE ('VeritabanıAdı', 'TabloAdı',IX_TabloAdı_IndexName);
WITH NO_INFOMSGS bilgilendirme mesajlarını devre dışı bırakır ve yalnızca hataları gösterir:
DBCC UPDATEUSAGE ('VeritabanıAdı') WITH NO_INFOMSGS;
Ne Zaman Kullanılır?
1. Yanlış Depolama Bilgisi Şüphesi:
sp_spaceused komutu yanlış sayfa sayısı veya boş alan miktarını raporluyorsa. Hangi tablo veya veritabanı üzerindeyse yukarıdaki ilgili komut çalıştırılır.
2. Veritabanı Bozulma Kontrolü Sonrası:
DBCC CHECKDB veya DBCC CHECKALLOC gibi komutların ardından depolama istatistiklerini güncellemek için.
3. Tablolar/Dizinler Üzerinde Yoğun Güncellemeler:
Çok fazla veri ekleme veya silme işlemleri sonrası SQL Server’ın tahsis bilgileri bozulabilir. Bu durumda bilgileri güncellemek gerekebilir.
4. Disk Alanı Yönetimi:
Veritabanının gerçekten ne kadar yer kapladığını doğru bir şekilde görmek için.
Eğer herhangi bir düzeltilme yapıldıysa:
Msg 17588, Level 16, State 1
Space usage information for table ‘TableName’ has been updated.
Depolama bilgileri zaten doğru ise, genelde herhangi bir mesaj gösterilmez(NO_INFOMSGS kullanılmadıysa standart bilgilendirme mesajı döner).
Büyük veritabanlarında çalıştırılması uzun sürebilir. Sistem kaynakları üzerinde belirli bir yük oluşturabilir. Bu yüzden düşük trafiğin olduğu zamanlarda çalıştırılması önerilir.
DBCC UPDATEUSAGE, veri üzerinde herhangi bir değişiklik yapmadığı için genelde tablo kilitleme problemi yaratmaz. Ancak büyük tablolar üzerinde çalışırken dikkatli olunmalıdır.
DBCC UPDATEUSAGE sadece istatistikleri günceller, veritabanı üzerinde fiziksel bir değişiklik yapmaz.
Bu komut veritabanı bakım işlemlerinin bir parçası olarak düzenli aralıklarla çalıştırılabilir. Büyük veritabanlarında sık çalıştırılması önerilmez, sadece gerektiğinde kullanılır.
Kısacası DBCC UPDATEUSAGE, SQL Server’da veritabanı nesnelerinin (özellikle tabloların ve dizinlerin) kullanım istatistiklerini güncellemek için kullanılan bir komuttur.
Bu makalede DBCC UPDATEUSAGE komutunu detaylı bir şekilde görmüş olduk . Başka bir makalede görüşmek dileğiyle.
“Şüphesiz iman edenler, hicret edenler ve Allah yolunda cihad edenler; işte onlar, Allah’ın rahmetini umabilirler. Allah bağışlayandır, esirgeyendir.” Bakara Suresi, 218. Ayet