我注意到我们有很多以特定列开头的索引,并且该列的基数较低(即公司和 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
关于sql-server - 我怎样才能得到一个特定索引列首先出现的索引列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2244173/