SQL Server行不按聚簇索引的顺序排列

时间:2015-01-15 10:26:03

标签: sql-server clustered-index

我有一个在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]

我以前从未遇到过这个问题,有没有人知道发生了什么以及如何解决这个问题。

由于

1 个答案:

答案 0 :(得分:1)

如果您没有指定订单,则无法依赖订单。添加order by子句。

否则数据库将尽快获取结果,并不总是按索引的顺序。