我注意到某个数据库中存在假设索引。我一直在搜索,似乎这种类型的索引是由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)中的“现有索引使用统计信息”。
有人能告诉我们为什么要保留这些索引是错误的,如果我可以定义应该保留哪些索引?
答案 0 :(得分:3)
只是删除它们,它们实际上并没有占用任何空间或导致任何性能损失/利益,但是如果您正在查看在表上定义了哪些索引而忘记排除假设索引,则可能会导致一些混乱,也是在您尝试创建与这些索引之一具有相同名称的索引的情况下,它将失败,因为它已经存在。
答案 1 :(得分:0)
如果您使用自定义架构并选中了分析索引视图,则需要对上述脚本进行一些进一步的改进:
<template>
<div>
<navbar></navbar>
<sub-nav></sub-nav>
<filter-section></filter-section>
<section class="shoes">
<shoe></shoe>
</section>
</div>
</template>
<script>
import Navbar from "../components/Navbar.vue";
import SubNav from "../components/SubNav.vue";
import FilterSection from "../components/FilterSection.vue";
import Shoe from "../components/Shoe.vue";
export default {
components: {
Navbar,
SubNav,
FilterSection,
Shoe
}
};
</script>
<style lang="scss" scoped>
@import "../sass/views/men";
</style>