WAIT_AT_LOW_PRIORITY ile Online Index Rebuild ve Partition Switch İşlemlerini Kontrol Edin

24 Eki by NURULLAH ÇAKIR

WAIT_AT_LOW_PRIORITY ile Online Index Rebuild ve Partition Switch İşlemlerini Kontrol Edin

WAIT_AT_LOW_PRIORITY SQL Server 2014 ile beraber gelen bir özelliktir. Online Index Rebuild ve switch partition işlemlerini yaparken süreci kontrol edebiliyoruz.

 

Örneğin Online Index Rebuild işlemi yaptığımızı düşünelim. Online Index Rebuild işlemi bir transaction tarafından lock’lanabilir. Ve bu şekilde uzun bir süre işlem tamamlanmayabilir. 

 

Mesela bir uygulama geliştirici bir transaction açtı ve commit işlemini gerçekleştirmedi. Online Index Rebuild işlemi bu commit gerçekleşene kadar lock’ta bekleyebilir. WAIT_AT_LOW_PRIORITY ile bunu önleyebiliyoruz.

 

Aşağıdaki sorguyu inceleyelim.

WAIT_AT_LOW_PRIORITY ‘den sonra MAX_DURATION = 1 MINUTES kısmında online index rebuild işlemi lock’lı kalırsa 1 dakika beklemesini, ABORT_AFTER_WAIT = SELF kısmında da, 1 dakika bekledikten sonra online index rebuild işlemini cancel etmesini söylemiş oluyoruz.

 

SELF yerine,

 

NONE yapsaydık online rebuild index işlemi devam edecekti.

 

BLOCKERS yapsaydık da online index rebuild işlemini lock’layan sorgu kill edilecekti.

ALTER INDEX IndexIsmi
ON dbo.TabloIsmi
REBUILD WITH (ONLINE = ON (
    WAIT_AT_LOW_PRIORITY ( MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = SELF ))
 );

 

 

Aşağıdaki gibi de switch partition’da kullanabilirsiniz. Switch partition ile ilgili “Sliding Window-Switch Partition-Split Range-Merge Range” isimli makaleyi okumak isteyebilirsiniz.

ALTER TABLE [VeritabaniIsmi].[dbo].[TabloIsmi] 
SWITCH PARTITION 12 TO [VeritabaniIsmi].[dbo].[TabloIsmiArsiv]
WITH (WAIT_AT_LOW_PRIORITY (MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = SELF));

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir