表“ TestResult”非常大(超过2000万行),但其中没有每个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
答案 0 :(得分:1)
正如ESG所说,创建这三个索引是正确的方法, 但是如果您对此表进行批量插入/删除/更新,且数据量很大, 您可能会遇到性能问题。