MSSQL Server Indexs’i Farklı File Group Altında Oluşturma

SQL Server’da indeks oluştururken, indeksi primary filegroup dışında farklı bir filegroup’ta oluşturabilirsiniz. Varsayılan olarak, indeks, tablonun bulunduğu filegroup’ta oluşturulur. Bu genellikle primary filegroup olur.

Farklı Filegroup’ta İndeks Oluşturmanın Avantajları:

  • İndeks ve tablo verilerini farklı fiziksel disklere yayarak, okuma ve yazma işlemleri paralel olarak gerçekleştirilebilir. Örneğin, yoğun okuma ve yazma işlemleri olan tablolarda, indekslerin ayrı bir filegroup altında yer alması performansı artırabilir.
  •  Yedekleme ve geri yükleme işlemleri daha esnek hale gelir. Belirli bir filegroup’u yedekleyebilir veya geri yükleyebilirsiniz. Bu, büyük tablolar için yedekleme ve geri yükleme sürelerini kısaltabilir.
  • Disk alanı dolduğunda, sadece ilgili filegroup’a yeni disk ekleyerek sorunu çözebilirsiniz. Bu, tüm veritabanını taşımaktan daha kolay ve hızlıdır.
  • İndeks yeniden oluşturma veya yeniden düzenleme gibi bakım işlemleri, sadece ilgili filegroup’u etkiler. Bu, diğer filegroup’larda bulunan tablolar üzerindeki etkileri en aza indirir.

Farklı Filegroup’ta İndeks Oluşturmanın Dezavantajları:

  • Filegroup yönetimi, veritabanı yönetimini biraz daha karmaşık hale getirebilir.
  • Filegroup’lar doğru şekilde yapılandırılmazsa, performans düşüşlerine neden olabilir. Örneğin, indeks ve tablo verileri aynı fiziksel diskte bulunuyorsa, performans avantajı elde edemezsiniz.
  • Filegroup’ları kullanmadan önce, veri erişim modellerinizi ve büyüme tahminlerinizi dikkatlice planlamanız gerekir.

İndeks Oluşturma Sırasında Filegroup Belirtme:

İndeks oluştururken, ON ifadesi ile indeksin hangi filegroup üzerinde yer alacağını belirtebilirsiniz. Eğer filegroup belirtmezseniz, indeks varsayılan filegroup üzerinde oluşturulur.

-- FG2 adlı filegroup'ta non-clustered bir indeks oluşturma:
-- İndeks oluşturma: Filegroup belirtme
CREATE NONCLUSTERED INDEX idx_CustomerName
ON Customers (CustomerName)
ON FG2;  -- İndeksin FG2 filegroup'unda oluşturulmasını sağlar.


-- Clustered index örneği:
CREATE CLUSTERED INDEX IX_SalesOrderDetail_SalesOrderID
ON SalesOrderDetail (SalesOrderID)
ON FG1; -- FG1 filegroup'unu belirttik.

Eğer indeks için ON ifadesini belirtmezseniz, indeks default filegroup altında oluşturulur.

Filegroup’u belirtmezseniz, indeks tablonun bulunduğu filegroup’ta oluşturulur. Filegroup’un önceden oluşturulmuş olması gerekir. Tempdb veritabanında filegroup kullanamazsınız.

Sonuç olarak, farklı filegroup’larda indeks oluşturmak, performans, yönetilebilirlik ve alan yönetimi açısından avantajlar sağlayabilir. Ancak, bu avantajları elde etmek için dikkatli planlama ve doğru yapılandırma gereklidir. Eğer filegroup yönetiminin getirdiği karmaşıklıktan kaçınmak istiyorsanız, indeksleri varsayılan filegroup’ta bırakabilirsiniz.

Not: Clustered index yok ve clustered index yapısını farklı bir File group altında oluşturmak istediğinizde tablomuz yeni file group altında oluşturulmuş olunur.

Bu makalede mssql serverda index farklı bir filegroup altında nasıl oluşturulur görmüş olduk. Başka bir makalede görüşmek dileğiyle..

Dünya hayatı yalnızca bir oyun ve bir oyalanmadan başkası değildir. Korkup-sakınmakta olanlar için ahiret yurdu gerçekten daha hayırlıdır. Yine de akıl erdirmeyecek misiniz? En’am Suresi, 32. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

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