【发布时间】:2011-06-01 05:30:41
【问题描述】:
Clustered Index和Order by Clause有什么区别吗?
我必须从主表中填充下拉列表,然后是查询。
Select Id, Name from Table Order by Name
我应该使用 Order by Clause 还是 Clustered Index 来完成上述任务?
编辑
下面是表的架构
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[lookup]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[lookup](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL,
CONSTRAINT [PK_lookup_ID] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[lookup]') AND name = N'IX_lookup_Name')
CREATE CLUSTERED INDEX [IX_lookup_Name] ON [dbo].[lookup]
(
[Name] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
我在Name 上也有一个聚集索引。但现在它没有显示在模式中。抱歉,我不知道为什么。
【问题讨论】:
-
我猜,您应该按任何要求(ID 或名称)订购。对我来说,名称看起来像是正确的订单字段。
标签: sql-server sql-server-2005 sql-server-2008