【发布时间】:2019-01-31 19:09:46
【问题描述】:
“TestResult”表非常大(超过 20M 行),但并非每个 Test、Student 或 ResultType 都包含在其中。
我想快速获得唯一的TestId、StudentId和ResultTypeId。 我目前的策略是按以下方式在前面的每一列上建立一个索引。
CREATE NONCLUSTERED INDEX [NCI_TestResult_ResultTypeId] ON [dbo].[TestResult]
(
[ResultTypeId] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
我每列都有一个这样的索引。
这是执行此操作的正确方法,还是有更好的方法来执行此操作,所有三列只有 1 个索引?
我正在使用 SqlServer 2016
【问题讨论】:
-
澄清一下,您希望每个独特的
TestId、StudentId和ResultTypeId独立,而不是所有 3 个的独特组合? -
@ESG - 正确。
-
那么我相信创建这 3 个索引是正确的方法
标签: sql sql-server-2008 indexing