0

向外扩展 SQL Server 2005 的权威指南

如果您创建了一个非聚集索引并且还没有聚集索引,SQL Server 会创建一个“幻像”聚集索引,因为非聚集索引总是指向聚集索引键。

  1. SQL Server 使用什么规则来确定将在哪些列/列上创建幻像聚集索引?

  2. 如果它位于该表的主键上(快速猜测),SQL Server 使用什么规则来确定将为没有主键的表在哪些列/列上创建幻像聚集索引?

(针对任何版本的 SQL Server 2005 及更高版本的问题)

4

2 回答 2

3

当您定义主键时,SSMS 默认将其设为聚集索引。但是,如果您专门创建一个没有聚集索引的表,那么您就是在创建一个堆表。SQL Server 使用内部值来引用行,但它不是您的任何列。以下可能会有所帮助:

在堆表上,非聚集索引将什么用作指向行的指针?

http://msdn.microsoft.com/en-us/library/aa964133%28v=sql.90%29.aspx

http://www.mssqltips.com/tip.asp?tip=1254

于 2011-07-23T14:48:54.450 回答
1

您提供的报价是错误的。你可能想读一本高质量的书,比如 Kalen Delaney 的书:http ://www.sqlserverinternals.com/books.html

于 2011-07-23T23:14:43.163 回答