gpt4 book ai didi

tsql - 我应该删除假设索引吗?

转载 作者:行者123 更新时间:2023-12-04 14:45:34 25 4
gpt4 key购买 nike

我注意到某个数据库中存在假设索引。我四处搜索,似乎这种类型的索引是由 Tuning Advisor 创建的。并且并不总是被删除。

有几个主题包括official关于如何清除/删除这些索引的文档,但我无法找到这些索引是否对服务器本身有任何影响。

我使用下面的脚本检查的是没有关于它们的大小信息:

SELECT OBJECT_NAME(I.[object_id]) AS TableName
,I.[name] AS IndexName
,I.[index_id] AS IndexID
,8 * SUM(A.[used_pages]) AS 'Indexsize(KB)'
FROM [sys].[indexes] AS I
INNER JOIN [sys].[partitions] AS P
ON P.[object_id] = I.[object_id]
AND P.[index_id] = I.[index_id]
INNER JOIN [sys].[allocation_units] AS A
ON A.[container_id] = P.[partition_id]
WHERE I.[is_hypothetical] = 1
GROUP BY I.[object_id]
,I.[index_id]
,I.[name]
ORDER BY 8 * SUM(A.[used_pages]) DESC

有了它们,我决定检查是否有一些关于它们的使用信息,以便留下那些经常使用的人,但同样没有任何返回。 (我使用了来自 this article 的“现有索引使用统计数据”)。

谁能告诉我为什么保留这些索引是错误的,如果我可以定义应该保留哪些索引?

最佳答案

刚刚USE您要清理并运行的数据库:

DECLARE @sql VARCHAR(MAX) = ''

SELECT
@sql = @sql + 'DROP INDEX [' + i.name + '] ON [dbo].[' + t.name + ']' + CHAR(13) + CHAR(10)
FROM
sys.indexes i
INNER JOIN sys.tables t
ON i.object_id = t.object_id
WHERE
i.is_hypothetical = 1


EXECUTE sp_sqlexec @sql

关于tsql - 我应该删除假设索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21111927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com