我有一个在 id 上有聚簇索引的表
[SomeID] [bigint] IDENTITY(1,1) NOT NULL,
当我做的时候
select top 1000 * from some where date > '20150110'
我的记录乱七八糟
当我这样做时:
select top 1000 * from some where date > '20150110' and date < '20150111'
它们是有序的吗?
索引是:
CONSTRAINT [PK_Some] PRIMARY KEY CLUSTERED
(
[SomeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
我以前从未遇到过这个问题,有没有人知道发生了什么以及我该如何解决这个问题。
谢谢
最佳答案
如果不指定订单,则不能依赖订单。添加一个 order by
子句。
否则数据库会尽可能快地抓取结果,而结果并不总是按照索引的顺序。
关于sql-server - SQL Server 行不按聚集索引的顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27961330/