首页 > 解决方案 > 优化 SQL 中不断增加的键

问题描述

问题本身很简单:

我怎样才能强制数据库系统尝试将值插入到末尾,如果它失败(没有在 B 树中最右边(大边),可以检查 const time),然后才进行二进制搜索正确的位置?

目标系统:MSSQL 2016 或 2017

标签: sqlsql-server

解决方案


要么你想timestampt成为一个聚集索引,要么你不想。没有“中途”聚集索引。

因此,如果您希望它聚集在一起,请在每个页面上留出额外的空间,以防以后插入新值。您可以通过使用fill_factor在此处记录)来控制它。这允许聚集索引(更)有效地插入不在末尾的值。

如果您不希望在 上使用聚集索引timestampt,请使用identity列来标识每一行。这将确保仅在表的“末尾”(即最后一页)插入行,从而提高插入效率。您仍然可以使用常规索引以timestampt进行有效访问。

其实我更喜欢第二种方法。我会担心 中的重复timestampt,我更喜欢有一个唯一标识每一行的聚集索引。


推荐阅读