için tercih Endeksi Özellikleri/Nitelikler Ben bölümleme için aday tabloları aramak için bir komut dosyası oluşturulur ve dizin bilgileri kullanarak ettik, ben bölme ideal sütununu bulmak istiyorum. En çok sorgulanan sütunları (şimdilik) görmezden geliyorum. Aşağıda, kümelenmiş dizinlerin parçası olan sütunlara öncelik veren temel bir sorgu var ve daha sonra bunların birincil anahtar olup olmadığı. onlar iyi bölümleme sütun olup olmadığını SQL Server: Bölme Sütun
yüzden de belirlemek için içerebilen endeksli sütunun en iyi kriterleri/niteliklerdir bu kuşkusuz kaba bir yaklaşım kullanılarak? Bu nitelikler için akıl yürütme de sağlayabilirseniz lütfen.Eğer bu yaklaşıma tamamen katılmıyorsanız, bu iyi, lütfen yorum yapın, ancak bunun en iyi uygulamalara başvurmadan önce bölümlendirme sonucunun ön analizi için olduğunu unutmayın.
;WITH cte AS
(
SELECT
t.name AS TableName, ind.name AS IndexName,
ind.type_desc AS TypeDesc, col.name AS ColumnName,
st.name AS DataType, ind.is_unique AS IsUnique,
ind.is_primary_key AS IsPrimaryKey,
ind.is_unique_constraint AS IsUniqueCons,
ROW_NUMBER() OVER (PARTITION BY t.name
ORDER BY
CASE WHEN ind.type_desc = 'CLUSTERED' THEN 1 ELSE 2 END,
CASE WHEN ind.is_primary_key = 1 THEN 1 ELSE 2 END) AS row_num
FROM
sys.indexes ind
INNER JOIN
sys.index_columns ic ON ind.object_id = ic.object_id
AND ind.index_id = ic.index_id
INNER JOIN
sys.columns col ON ic.object_id = col.object_id
AND ic.column_id = col.column_id
INNER JOIN
sys.tables t ON ind.object_id = t.object_id
INNER JOIN
sys.types st ON col.system_type_id = st.system_type_id
WHERE
t.is_ms_shipped = 0
AND st.name IN ('datetime', 'smalldatetime')
)
SELECT *
FROM cte
WHERE row_num = 1
yaklaşım benim durumumda oldukça iyi. Dediğim gibi, şimdilik sadece bir bölümleme senaryosunda metrikler almaya çalışıyorum (sol/sağ toplamlar vb.) Kümelenmiş dizinler genellikle bölümlemeye karar verirsek bölümleme yapacağımız tarih alanlarını içerir. bu masa. Fakat bir şey yapmadan önce, farklı tarihlerle metrikler istiyorum ve kayıt sayıları, toplam boyut vb. Ile belirli tabloları dahil veya hariç tutuyorum, bu yüzden bu yaklaşım şu ana kadar gayet iyi çalışıyor. Ve sorguların çoğu dizinlere bağlı kalmalıdır. Bu tablolar çok büyük, olmasaydı şaşırırdım. – John
Aradığınız kriterleri sordunuz. Cevabım: Hiçbiri yok. Bunun, belirttiğim nedenlerden dolayı doğru olduğunu göreceksiniz. 'yalnızca iyi bölümleme sütunları olup olmadığını belirleyin 'Yalnızca şema bilgilerini kullanarak imkansız. Yaklaşımınız mahkum. Bu cevap, bu nedenle sorduğunuz soruyu çözer. – usr