如何获得特定索引列首先出现的索引列表?
问题描述:
我注意到我们有很多以某一列开始的索引,并且该列具有较低的基数(即公司和99%的记录属于'活'公司)。如何获得特定索引列首先出现的索引列表?
因此,这些索引是无用的(从我读过的),因为它们没有提供将表中的数据快速分离的手段。
所以,我想运行一个脚本,它会查找数据库中的所有索引,例如索引第一列的列,该列是名为'ROW_COMPANY'的列。
我已经尝试了各种样本和东西,但我没有得到正确的结果(即太多的行,包含索引的行不以'ROW_COMPANY'开头)。
你帮忙赞赏!!
答
尝试了这一点:
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
+1我忘了索引列,即Aakash没有:) – Andrew 2010-02-11 13:25:09
干得好,一等奖为你的好先生! 谢谢安德鲁对你的建议! – 2010-02-11 13:45:44