SQL索引标识列排序顺序

时间:2016-12-06 15:54:25

标签: sql-server indexing primary-key

我有一个交易表:

|rowID|value1|value2|...|
|11111|12    |34    |...|
|11112|23    |123   |...|
|11113|99    |53    |...|
...

RowID是身份,增量为1.索引也没问题。插入了大量新值,发生了更新,有时可能会删除某些行。

但现在我有了第二张桌子:

|rowID|flag1|flag2|...|
|11113|0    |1    |...|
|11111|1    |1    |...|
|11112|0    |1    |...|
...

这是一个用户操作,它将事务表中的行插入到第二个表中。 RowID对应于交易表中的RowID

第二个表的插入不按RowID排序。可以提前插入较高的RowID,而不是较低的RowID

这种表的最佳索引策略是什么?

  • 将第二个表中的RowID定义为主键是明智的,从而产生聚簇索引吗?我认为,这并不理想,因为RowID没有排序。
  • 没有主键,但是合适的非聚集索引更好吗?

我想知道这样的表(第二张表)是否有一般性建议?

1 个答案:

答案 0 :(得分:0)

表格不是有序数据集。在定义PK /索引时,第二个表上的事件RowID不是无关紧要的。

您应RowID PK Table2创建索引的那一刻,还会创建B-TREE并将数据存储在那里以便最快地访问。