Guid作为Sql Server Table的PK

时间:2015-06-18 14:20:03

标签: sql-server database-design uuid

默认情况下,SQLServer表聚簇索引是PK。如果我定义:

  • 这样的密钥是GUID和
  • 我会随机生成a.k.a Guid.NewGuid()
  • 忘记将聚集索引设置为更有意义的列

SQLServer会在新记录进入表格时对页面进行重新排序,还是只会忽略"索引的聚集部分?

2 个答案:

答案 0 :(得分:0)

我认为你反过来了:默认情况下,PK也是聚集索引。您必须选择数据类型以及要包含在PK中的列。 SQL Server不会为您设置默认PK。没有PK,表就是堆。

使用GUID作为PK是不好的做法。您将在INSERT上导致不必要的页面拆分。如果数据没有自然键,请改用IDENTITY列。

答案 1 :(得分:0)

因此,您创建PK并默认为群集。您将其更改为非聚集索引。是什么让你觉得有一个聚集索引?如果您将其更改为非群集,则索引没有聚集的部分。