Filegroups Nedir? Avantajları Nelerdir
SQL Server Filegroups Nedir?
Bir FileGroup, temel olarak yönetim amaçları için veritabanı nesnelerini ve veritabanı veri dosyalarını gruplamak için kullanılabilen bir kapsayıcıdır.
Bir veritabanının ikincil veri dosyalarından yalnızca bir varsayılan filegroup olabilir, birden çok filegroup bir veritabanı nesnesi yerleştiremezsiniz. Tüm sistem nesneleri birincil dosya grubuna yerleştirilir, tüm ikincil veri dosyaları bir filegrouptan başka bir dosya grubuna taşınabilir veya bir veri dosyasının dosya grubunu oluştururken manuel olarak belirtebilirsiniz.
Genel olarak SQL Server veritabanı en az iki dosya, birincil veri dosyası (.mdf) ve log dosyası (.ldf) oluşur. Veri dosyası tablolarınızı, views, stored procedure vb. içerir. Veri dosyası ve log dosyasına ek olarak, ikincil veri dosyası (.ndf) dosyaları bulunur.
Sunucunuzun, veritabanınızı depolamak için tek bir disk kullanmak yerine 6 diski olduğunu düşünün; burada aynı diske okuma ve yazma yapmanız gerekecek, yüksek işlem veritabanı için I / O sorunları olacaktır. Bunu çözmek için veritabanınızın birden çok dosyaya (dosyaların verilerin depolandığı fiziksel konumu temsil ettiği) ve dosya gruplarına (yani dosyaların mantıksal bir gruplandırmasına) girmesini sağlayabilirsiniz. Dosyalar farklı disklerde olabilir, böylece veritabanınız disklerinizden en iyi şekilde yararlanacaktır.
Neden Filegroups Kullanırız ?
Filegroups neden kullanırız sorusuna örneklerle cevap verebiliriz.
- Yoğun olarak erişilen veritabanı nesneleriniz var; SQL Server threads kullanarak verilere erişiriz, her threads disklerde belirli bir konumdaki belirli sayfalardaki verileri almaktan veya güncellemekten sorumludur. Birden fazla dosya grubunuz varsa ve veriler diske yayılmışsa, SQL Server veri alabilir. Paralelde iş parçacıklarının avantajı, bu veritabanınızın performansını artırır.
- Örneğin, bir veritabanındaki çeşitli tabloları içeren bir birleştirme işleminiz varsa, tablolar tek bir dosya grubunun altına yerleştirilirse, SQL Server’ın çalışmasını paralel bir şekilde yapmaya devam eder, ancak birleştirme içindeki tablolar farklı dosya gruplarında bulunuyorsa ve farklı disklere yerleştirilmişse, SQL Server’ın çalışmasını paralel bir şekilde yapmaya devam eder. SQL Server paralel iş parçacıklarından yararlanabileceğinden, farklı dosya gruplarında bulunan yoğun olarak erişilen tablolara karşı yürütmeyi artıracaktır.
- Veritabanınız hazır durumdayken veya veritabanını güncellerken kötü performans gösteriyor ise birden fazla işlemi aynı anda farklı dosya gruplarından yayılan verileri almaya çalışabilir. Bu sebepten dolayı filegroups oluştururuz.
- Birkaç yıllık veri içeren bir tablonuz var diyelim, ancak son birkaç yıllık veri kullanıyorsunuz; Bu, tabloyu ve dizinleri bölümleyeceğiniz zaman çok kullanışlıdır.
- Verileri arşivlemeyi kolaylaştırır ve bu kayıtların gereksiz yere taranmasına yardımcı olur.
- Büyük bir veritabanınız var ve full yedekleme veya farklı yedekleme kullanarak kurtarma süresi kabul edilemez; Belirli bir dosya grubuyla ilgili nesnelerin veritabanı bozulması bulursanız, verileri çok hızlı bir şekilde kurtarmak için yalnızca o dosya grubunu geri yükleyebilirsiniz.
Bunlar gibi problemlerinizi gidermek için filegroups kullanabiliriz
Filegroups, bir DBA için yönetimi kolaylaştırır. Birden fazla dosya grubu kullanarak aşağıdaki avantajları elde edebiliriz;
- Kullanıcı verilerini birden çok dosya grubu kullanarak dahili sistem verileriyle ayırabiliriz.
- Arşivlenmiş (hatta salt okunur) verileri kendi dosya gruplarına ve ayrılmış disk kümelerine koyarak bakım yükünün üstesinden gelebiliriz.
- Kendi dosya gruplarına ve / veya ayrılmış disk kümelerine daha büyük tablolar / dizinler koyarak performans artışı sağlayabiliriz.
- Veritabanının bazı bölümlerini hızlı bir şekilde çevrimiçi hale getirebiliriz (parça parça geri yükleme).
- FileGroups (dosya gruplarının) en büyük yararı veritabanı nesnelerini ayırmaktır.
- Aynı anda birçok dosyayı yönetmek için kullanabilirsiniz.
Kaynakça
https://www.experts-exchange.com/articles/23159/SQL-Server-Storage-Basics-Database-Filegroups.html
https://www.techbrothersit.com/2014/09/what-is-filegroup-in-sql-server-when-to.html