bakım etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
bakım etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Mart 2014 Cuma

DBCC CHECKDB çalıştırdım, ne kadar sürecek acaba?

Konu başlığında yazan sorunun cevabı tabii ki bu komutu çalıştırdığınız veritabanının büyüklüğüne, DBCC CHECKDB ile birlikte kullanacağınız parametrelere (NOINDEX, REPAIR_FAST gibi) ve donanım kaynaklarınıza bağlı.

Bununla birlikte, henüz DBCC CHECKDB'yi çalıştırmadan da, eğer daha önceden bir SQL Agent Job çalıştırdıysanız ne kadar sürdüğünü o Job'ın History'sinden de öğrenebilirsiniz.

Fakat benim özellikle paylaşmak istediğim şey ise, DBCC CHECKDB'yi çalıştırdıktan kısa bir süre sonra ne kadar süreceğini bir DMV yardımıyla görebileceğinizdir, bazılarını belki tahmin etti bile: sys.dm_exec_requests!

Ortamınıza uygun (ki umarım bir test ortamıdır bu!) DBCC CHECKDB komutunu çalıştırdıktan bir süre sonra başka bir Query Editor penceresinde aşağıdaki komutu çalıştırıp "percent_complete" ile "start_time" alanındaki değerlere bakıp, işlemin yaklaşık ne kadar sürede tamamlanacağını hesaplayabilirsiniz.


SELECT [session_id], [start_time], [status], [command], db_name([database_id]) AS [db_name], [wait_type], [wait_resource], [percent_complete] FROM sys.dm_exec_requests WHERE [session_id] > 50

Sorgunun sonucu
Yukarıdaki ekran görüntüsüne göre demek ki veritabanım için bu test ortamında DBCC CHECKDB sorgulamam ortalama 3 saat sürecek.

sys.dm_exec_requests DMV'sindeki "percent_complete" alanı aşağıdaki komutların tamamında işlemlerin ne kadarının tamalandığını söyleyecektir.

  • ALTER INDEX REORGANIZE
  • AUTO_SHRINK option with ALTER DATABASE
  • BACKUP DATABASE
  • DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC CHECKTABLE
  • DBCC INDEXDEFRAG
  • DBCC SHRINKDATABASE
  • DBCC SHRINKFILE
  • RECOVERY
  • RESTORE DATABASE,
  • ROLLBACK
  • TDE ENCRYPTION

sys.dm_exec_requests DMV'si hakkında daha ayrıntılı bilgi için: http://technet.microsoft.com/en-us/library/ms177648.aspx

Ekrem Önsoy