您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将记录移到另一个表与“滞后”列的SQL性能

将记录移到另一个表与“滞后”列的SQL性能

可能没关系,但是如果是我,我将使用一张桌子。这是我的理由:

首先,我们必须在此表上假设良好的索引,这将使查找快速。使用适当的索引,如果要查询排队的任务,“完成”任务的数量是10还是100亿都无关紧要,DBMS只会查看排队的任务。

其次,随着任务从“排队”移动到“完成”,您将要更新其状态。这需要DBMS对索引进行一些重组,但是没关系,他们已经高效地执行了30多年了。

如果将它们分成单独的表,则将记录从一个位置移动到另一位置的维护工作基本上将放在 而不是在DBMS索引重组代码中。哪些代码库经过了更好的测试且性能更高?:)

最后一个论点- 如果将它们全部放在一个大表中,则对这些任务的管理进行进一步的性能调整将成为DBMS配置问题,而不是软件开发问题。那是我书中的一大胜利。您可以采取各种疯狂的配置工作来提高任何DBMS的性能包括垂直和水平分区。如果您通过软件中嵌入的某种方案分配数据的方式,那么这些事情就不会成为选择。

因此,最重要的是- 如果您使用2表方法,那么我认为它的性能将与您使用单表方法非常相似,一旦考虑到额外的工作,您的代码将需要执行一些工作来移动记录。如果从一个表中删除“打开”任务并将其粘贴到“完成”表中,请记住,DBMS仍将必须更新源表上的“打开”索引。因为可能不会有很大的性能差异,所以应该使用一个表的方法,因为它对您的工作较少,并且以后为您提供了更大的灵活性(通过配置和副软件来提高速度)

SQLServer 2022/1/1 18:35:44 有409人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶