Büyük Tablo için Performans Ayarlama (SQL Server 2008 R2)


14

Tarihsel Bilgiler:
UAT Aşamasında bir olgu masam var. Prod'a 5 yıllık veri yükleme amacı (beklenen boyut 400 Mn kayıt). Şu anda Test'te sadece 2 yıllık veri var.

Tablo Özellikleri:

  1. Boyut Sayısı ~ 45
  2. Önlemler ~ 30
  3. Katkısız önlemler ve diğer sütunlar ~ 25
  4. Mevcut veri boyutu ~ 200 Milyon (2 yıllık veri)
  5. Zaman Görünümü: 3 farklı Ay görüntüleme: Mali / Takvim / Düzeltilmiş (yani aynı satır, hangi görünümü aradığına bağlı olarak farklı aylarda düşebilir)
  6. Bir kullanıcı için aynı anda yalnızca bir görünüm gerekir. (yani, sorguda yalnızca bir Ay Sütunu kullanılır, zaman görünümünde bölümleme yapmamızı durdurur)
  7. Dizinler: 1 Doğal Anahtarlar üzerinde Kümelenmiş Dizin (8 sütun) .Kümelenmemiş Dizinleri kapsayan, her bir Boyut sütununda, birkaç Boyut SK'si (FK) ve tüm önlemleri içeren) oluşturulan 3 dizin oluşturuldu.
  8. Bu nedenle dizinler çok büyük (toplam 190 GB).
  9. Alan kısıtlaması yok (1 TB ayrıldı)
  10. Sunucuda 64 GB RAM kullanılabilir.
  11. Tablo sıkıştırma da yapılır.

Gereksinim:
Bu Olgu tablosundaki sorgular 30 saniye içinde sonuç vermelidir (Genel sorgular, Dim Dims değerlerine göre birkaç Dims grubuna katılan toplamı (ölçü) seçer). Raporlar doğrudan bu Olgu tablosunun üstünde yapılır.

Sorun:
Dizin'de bulunan sütunları içeren herhangi bir sorgu düzgün çalışıyor, ancak include..It içinde olmayan başka sütunları da eklersek berbat. 5-10 dakikadan fazla sürer. Seçtiğimiz herhangi bir boyut / sütun için iyi çalıştığı bazı çözümler önerilebilir mi? Dizin görüntüleme bu durumda yardımcı olabilir mi?

Yanıtlar:


6

SQL Server 2012'ye yükseltin ve sütun depolarını kullanın . Bu şartlarda gelişirler. Ciddi olarak, değerlendirme sürümünü indirin ve bir deneyin. Tüm dizinleri bırakın, kümelenmiş dizini bırakın, tüm sütunlara kümelenmemiş bir sütun deposu dizini ekleyin ve bir girdap verin. Tıpkı sizin gibi, çoğunlukla segment eliminasyonu başladığı için yürütme süresini 2-3 saniyeye düşüren vakalar gördüm . Bazı ek okumalar:


0

Dizine alınmış bir görünüm sorununuzu çözecek mi? Verilerin ne kadar güncel olması gerekiyor? Birkaç permütasyon için dizine alınmış bir görünüm oluşturabilirsiniz. Ancak bu kadar çok boyut ve önlemle alanınız hızla tükenebilir!

SSD'leri kullanmaya ne dersiniz?


Veriler her ay güncellenecektir. Görünümü güncellemek ne kadar zaman alır?

Mevcut sorgunuz 5-10 dakika sürüyorsa, dizine eklenen görünüm 5-10 dakika sürecektir. Tamamlandığında, aynı sorguyu çalıştırdığınızda, bir tablodan geliyormuş gibi geri gelecektir (yani hemen). Dizinlenmiş görünüm belirli bir SQL bitini önceden çalıştırır. Eşleşen SQL'i gönderirseniz, yeniden çalıştırmak yerine dizine alınmış görünümden alır. Dizine alınmış bir görünümün en büyük avantajı, mevcut sorgularınızı değiştirmeniz gerekmemesi, otomatik olarak kullanmalarıdır. Dezavantajı, birkaç farklı kombinasyon için bir tane oluşturmanız gerektiğidir.
Nick.McDermaid

Ancak işleri hızlandırmak için birden fazla dizine alınmış görünüm oluşturmanızı önermiyorum - sonunda zamanınız ve disk alanınız tükenecek. Cephaneliğine koymak sadece bir şey olabilir.
Nick.McDermaid

ve lütfen ... önerildiği gibi sütun depolarına bakın!
Nick.McDermaid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.