gpt4 book ai didi

sql-server - 我应该在删除数据之前禁用聚簇索引吗?

转载 作者:行者123 更新时间:2023-12-01 06:25:28 26 4
gpt4 key购买 nike

我知道这已经像任何事情一样被讨论过,但找不到我可以接受的可靠答案。

假设我有一个包含 100 亿条记录的表,需要删除 where 子句中带有标识列的记录。我应该选择哪个?

选项1:禁用索引,这将节省删除后重新排列索引的开销,但将需要更长的时间来搜索需要删除的行。

选项 2:不会对索引执行任何操作,这将非常快速地定位行,但重新排列索引可能需要一些时间。

我更倾向于2选项,但想看看专家会说些什么? :)

最佳答案

Suppose i have a table with 10 billion records and need to delete records with identity column in where clause. which option should i go with?



如果要删除(或插入)超过 10% 的表(10 亿条记录),则应删除所有 非集群 索引,删除记录,然后重建 非集群 索引。

如果您删除的表少于 10%,请保留索引。

您可以自由地进行性能测试,看看 10% 规则是否适用于您的 SQL Server 数据库引擎。

关于sql-server - 我应该在删除数据之前禁用聚簇索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942573/

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