Yaklaşık 30 tablo olacak bir veritabanı oluşturuyorum, her tablo on milyonlarca satır içeren ve her tablo ağır karşısında sorgu verimliliğini en üst düzeye çıkarmak için tek bir önemli sütun ve birincil / yabancı anahtar sütun içeren güncellemeler ve eklemeler ve kümelenmiş dizinlerin yoğun şekilde kullanılması. Tablolardan ikisi değişken uzunlukta metin verileri içerecek ve bunlardan biri yüz milyonlarca satır içerecek, ancak geri kalanı yalnızca sayısal veriler içerecektir.
Gerçekten sahip olduğum donanımın (yaklaşık 64GB RAM, çok hızlı bir SSD ve 16 çekirdek) her son performans düşüşünü sıkmak istediğim için, her tablonun kendi dosyasına sahip olmasına izin vermeyi düşünüyordum, 2, 3, 4, 5 veya daha fazla masaya katılıyorum, her tablo her zaman ayrı bir iş parçacığı kullanılarak okunacak ve her dosyanın yapısı, umarım parçalanmayı en aza indirecek ve daha hızlı hale getirecek olan tablo içeriğiyle yakından hizalanacaktır. SQL Server için herhangi bir tablonun içeriğine eklemek için.
Bir uyarı, SQL Server 2008 R2 Web Edition'da kaldım . Bu da, performans artışı olarak ortaya çıkan otomatik yatay bölümlemeyi kullanamayacağım anlamına geliyor.
Tablo başına bir dosya kullanmak aslında performansı en üst düzeye çıkaracak mı yoksa bu kadar gereksiz hale getirecek yerleşik SQL Server motor özelliklerini mi görüyorum?
İkincisi, tablo başına bir dosya kullanmak avantajlıysa, neden create table
tabloyu belirli bir mantıksal dosyaya değil de yalnızca bir dosya grubuna tahsis etme seçeneği veriyor? Bu, benim senaryomdaki her dosya için ayrı bir dosya grubu oluşturmamı gerektirecek, bu da bana SQL Server'ın önerdiğim şeyi yapmaktan geleceğini düşündüğüm avantajları öngörmediğini gösteriyor.