我注意到我们有很多索引以某个列开头,而且该列的基数较低(即公司和99%的记录都属于'live'公司)。
因此,这些索引几乎没用(从我读过的内容),因为它们没有提供一种分离表中数据的方法,可以快速找到。
所以,我想运行一个脚本来查找数据库中的所有索引,其中索引第一列的索引是一个名为'ROW_COMPANY'的列。例如。
我尝试了各种样本和东西,但是我没有得到正确的结果(即包含太多行,包含不以'ROW_COMPANY'开头的索引的行)。
你帮助欣赏!!
答案 0 :(得分: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