如何检查 table 是否有列存储索引?
How to check if a table has columnstore index?
我需要建立一些机制来检查 table X 是否存储在列中以及是否不转换它。
我知道要将 table X 转换为聚簇列存储索引,我们可以使用以下代码:
CREATE CLUSTERED COLUMNSTORE INDEX MyColumnStoreIndex
ON Table_X
我想进行查询以检查 table 是否包含列存储索引。
提前致谢。
您可以查询 sys.indexes 并检查类型和 type_desc 列。 According to the documentation 值 5 和 6 包含索引是聚集列存储还是非聚集列存储的信息:
select *
from sys.indexes
where type in (5, 6)
你可以查询sys.indexes如Rigerta的回答中提到的
要同时获取属于找到的索引的表名,您可以执行以下查询
select i.name as indexname,
t.name as tablename
from sys.indexes i
join sys.tables t on i.object_id = t.object_id
where i.type in (5, 6)
我需要建立一些机制来检查 table X 是否存储在列中以及是否不转换它。 我知道要将 table X 转换为聚簇列存储索引,我们可以使用以下代码:
CREATE CLUSTERED COLUMNSTORE INDEX MyColumnStoreIndex
ON Table_X
我想进行查询以检查 table 是否包含列存储索引。 提前致谢。
您可以查询 sys.indexes 并检查类型和 type_desc 列。 According to the documentation 值 5 和 6 包含索引是聚集列存储还是非聚集列存储的信息:
select *
from sys.indexes
where type in (5, 6)
你可以查询sys.indexes如Rigerta的回答中提到的
要同时获取属于找到的索引的表名,您可以执行以下查询
select i.name as indexname,
t.name as tablename
from sys.indexes i
join sys.tables t on i.object_id = t.object_id
where i.type in (5, 6)