2010-02-11 97 views
3

我注意到我們有很多以某一列開始的索引,並且該列具有較低的基數(即公司和99%的記錄屬於'活'公司)。如何獲得特定索引列首先出現的索引列表?

因此,這些索引是無用的(從我讀過的),因爲它們沒有提供將表中的數據快速分離的手段。

所以,我想運行一個腳本,它會查找數據庫中的所有索引,例如索引第一列的列,該列是名爲'ROW_COMPANY'的列。

我已經嘗試了各種樣本和東西,但我沒有得到正確的結果(即太多的行,包含索引的行不以'ROW_COMPANY'開頭)。

你幫忙讚賞!!

回答

4

嘗試了這一點:

SELECT 
    o.name TableName 
    , c.name ColumnName 
    , i.name IndexName 
FROM 
    sys.index_columns ic 
    INNER JOIN sys.indexes i ON ic.object_id = i.object_id 
          AND ic.index_id = i.index_id 
    INNER JOIN sys.columns c ON ic.object_id = c.object_id 
          AND ic.column_id = c.column_id 
    INNER JOIN sys.objects o ON ic.object_id = o.object_id 
WHERE 
    o.is_ms_shipped = 0 
    AND c.name = 'ROW_COMPANY' 
    AND ic.index_column_id = 1 
+0

+1我忘了索引列,即Aakash沒有:) – Andrew 2010-02-11 13:25:09

+0

幹得好,一等獎爲你的好先生! 謝謝安德魯對你的建議! – 2010-02-11 13:45:44

相關問題