我对 SQLServer 相当陌生,有一件事让我很困扰。希望你们中的一个可以向我解释发生了什么。
当我在索引过程中运行活动监视器时,我意识到包括弱实体在内的一些查询花费的时间比预期的要长,而且 - 甚至更奇怪 - SQLServer 建议在表单的弱实体上创建索引
CREATE NONCLUSTERED INDEX [<INDEXNAME>]
ON [dbo].[<TABLE>] ([<ID1>])
INCLUDE ([<ID2>])
GO
这样做(实际上我索引了两列,但我认为结果几乎相同)确实提高了查询速度(至少从我在活动监视器中看到的)。
CREATE UNIQUE NONCLUSTERED INDEX [<INDEXNAME>] ON [dbo].[<TABLE>]
(
[<ID1>] ASC,
[<ID2>] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
我现在的问题是:SQLServer 是否忽略聚集索引?如果是,为什么?我能以某种方式解决这个问题吗?添加另一个实际上应该与主键索引具有完全相同内容的索引对我来说似乎很奇怪。