Bu yüzden db tasarımım üzerinde tam bir kontrole sahip olmadığımı söyleyerek önsöz edelim, bu nedenle mevcut sistemin yönlerinin birçoğu bu senaryonun amaçları için değiştirilemez .
Tasarımın yönlerini nasıl yeniden düşünmemiz gerektiğine dair yorumlar muhtemelen doğru ama yararsızdır :)
Çok sayıda işlemi yürüten çok büyük bir masam var, yaklaşık 150 alan genişliğinde ve yaklaşık 600m sıralarım var. Bu bir veri ambarı durumunda olduğundan, zamanlanan yükleme işlemi dışında HİÇBİR güncellememiz / eklememiz yok, bu nedenle büyük ölçüde dizine eklenmiş.
Bu tabloyu bölümlemeye çalışmamaya karar verildi ve bölümlenmiş bir tabloyu indeksleme konusunda bazı endişelerim var. Bölümleme ile ilgili herhangi bir deneyimim yok, bu yüzden herhangi bir giriş veya bağlantı takdir ediliyor. BOL veya msdn üzerinde özellikle ne olduğumu bulamadım.
Şu anda biz diyeceğiz ki sahada küme IncidentKey
bir olan varchar(50)
aynı ile 1-100 kayıtları arasında olabilir - ve benzersiz IK
(hiç yorum lütfen). Eski IncidentKey
kayıtlarla ilgili sık sık yeni veriler alırız, bu yüzden de sıralı değildir.
IncidentDate
Bölümün düzgün çalışması için kümelenmiş dizin anahtarımda bölüm alanımı eklemem gerektiğini anlıyorum . Olacağını düşünüyorum IncidentKey, IncidentDate
.
Soru, "yeni" bir bölümdeki bir kayıt, kümelenmiş dizindeki "eski" bir bölümdeki bir kayıttan önce olursa, kümelenmiş bir dizinin mekaniği bölümlenmiş bir tabloda 2 bölümlü bir anahtar üzerinde nasıl çalışır?
Örneğin, 5 kaydım var:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
Yeni bir kayıt ABC123, 2/1/2011
alırsam ÖNCE kümelenmiş dizin içinde olması gerekir XYZ999, 1/1/2010
. Bu nasıl çalışıyor?
Parçalanma ve işaretçiler varsayıyorum, ancak fiziksel depolama ve çift bölüm anahtarları ile bölümlenmiş tablolarda bölümlenmiş kümelenmiş dizin yapılandırması hakkında herhangi bir bilgi bulamıyorum.