gpt4 book ai didi

sql-server - 最适合短命列的索引

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:44 25 4
gpt4 key购买 nike

在我当前的项目中,一些表有一个名为“changed”的列,它指示自上次检查以来当前行是否已更改。所有插入和更新语句都包含此列。

每小时,我都会运行一个计划任务来查询所有已更改的行,对这些行执行一些操作,然后将 null 设置为其“已更改”列。

这可能是一个性能问题,因为我将在此列中执行大量写入和读取操作,索引将不断重建。

这个场景的最佳选择是什么(而不是不使用这种机制)?

最佳答案

如果您的表很大,请删除该列并创建一个专用表(仅包含主键信息)并将触发器插入到该表中。然后你只需要处理这个小表,并在你完成行时清除它。您需要为要跟踪的每个表执行此操作。

如果您的表很小,该列可能不是个坏主意,但如果您对这些表进行大量选择和更新,并且您的计划处理循环或速度非常慢,您可能会看到阻塞/锁定。

如果你使用一个列,最好有一个 LastChgDate 列,那么你只需处理一个范围内的所有行(你需要每次跟踪要处理的范围),但你不需要更改 LastChgDate 以显示它已“完成”。如果您的预定进程正在更新实际行,但您没有说,这可能没有实际意义。

关于sql-server - 最适合短命列的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865051/

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