MSSQL Server’da Partitioned Table Rebuild, Reorganize ve Incremental Statistics

Büyük veri kümeleriyle çalışırken performansın anahtarı veriyi bölmektir (partitioning). Ancak veriyi bölmek yetmez; bu bölümlerin bakımı da en az tasarım kadar kritiktir. Bu makalede, partition özelinde index bakımı ve istatistik yönetimini detaylandıracağız.

Partition Bazlı Index Rebuild İşlemi:

Geleneksel index rebuild işlemleri tüm tabloyu kilitlerken veya ciddi kaynak tüketirken, partition bazlı rebuild sadece ilgili bölümü (segmenti) hedef alır.

Eğer sadece belirli bir tarih aralığında fragmentation varsa, tüm tabloyu meşgul etmeye gerek yoktur. Aşağıdaki komut ile kilitlenme olmadan online bir şekilde işlem yapılabilir.

ALTER INDEX [Index_Adı] ON [Schema].[Tablo_Adı] 
REBUILD PARTITION = [Partition_Numarası]
WITH (ONLINE = ON, MAXDOP = 4, FILLFACTOR = 90);

Partition tablonun tamamını kapsayan bir bakım planınız varsa ALL ifadesi kullanılır:

ALTER INDEX [Index_Adı] ON [Schema].[Tablo_Adı] 
REBUILD PARTITION = ALL;

Not: ONLINE = ON seçeneği, işlem sırasında tablonun okunabilir kalmasını sağlar. MAXDOP ise işlem sırasında cpu’ya uğrayacak Thread sayısını sınırlayarak sistemin kilitlenmesini önler.

Partition Bazlı Index Reorganize İşlemi:

Rebuild işlemi yeni sayfalar oluşturup eskiyi silerken (heavy-duty), Reorganize işlemi mevcut sayfaları yaprak seviyesinde (leaf level) düzenler. Daha az kaynak tüketir.

ALTER INDEX [Index_Adı] ON [Schema].[Tablo_Adı] 
REORGANIZE PARTITION = [Partition_Numarası];

Partition tablonun tamamını kapsayan bir bakım planınız varsa ALL ifadesi kullanılır:

ALTER INDEX [Index_Adı] ON [Schema].[Tablo_Adı] 
REBUILD PARTITION = ALL;

SQL Server’da istatistikler normal şartlarda tüm tabloyu kapsar. Ancak milyonlarca satırlık partition yapılarında, küçük bir veri değişikliği tüm tablonun istatistiklerini güncellemeyi tetikleyebilir. İşte burada Incremental Statistics devreye girer.

Auto Create Incremental Statistics:

Bu özellik, istatistiklerin partition bazında oluşturulmasını sağlar. Bir partition’daki veri değiştiğinde, sadece o partition’a ait “mercent” (istatistik parçası) güncellenir ve ana istatistikle birleştirilir.

  • Avantajı: Tüm tabloyu taramak yerine sadece ilgili bölümü taradığı için bakım süresini ve kaynak kullanımını dramatik şekilde düşürür.
  • Kullanım: Partition yapısında tablo barındıran veritabanlarında bu özelliğin açılmasında herhangi bir sakınca yoktur; aksine performans için önerilir.

Sektör standardı haline gelen Ola Hallengren index bakım prosedürleri incelendiğinde, partition yapısına sahip tablolar için bu mekanizmaların (Partition Level Maintenance) default olarak desteklendiği görülür.

Bu makalede MSSQL Server’da Partitioned Table Rebuild, Reorganize ve Incremental Statistics konusunu görmüş olduk. Başka makalede görüşmek dileğiyle..

Ey iman edenler, sabırla ve namazla yardım dileyin. Gerçekten Allah, sabredenlerle beraberdir. Bakara Suresi, 153. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

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