Sql 索引大表以在每列中查找不同的值

Sql 索引大表以在每列中查找不同的值,sql,sql-server-2008,indexing,Sql,Sql Server 2008,Indexing,“TestResult”表非常大,有2000多行,但不是每个测试、学生或结果类型都在其中 我想快速获得唯一的TestId、StudentId和ResultTypeId。 我目前的策略是按以下方式在前面的每一列上建立索引 CREATE NONCLUSTERED INDEX [NCI_TestResult_ResultTypeId] ON [dbo].[TestResult] ( [ResultTypeId] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_N

“TestResult”表非常大,有2000多行,但不是每个测试、学生或结果类型都在其中

我想快速获得唯一的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
我每列有一个这样的索引

这是正确的方法吗?还是有更好的方法可以做到这一点,所有三列都只有一个索引

我正在使用SQLServer2016


正如ESG所说,创建这三个指数是正确的方法, 但是,如果您在此数据量较大的表上进行批量插入/删除/更新,
您可能会遇到性能问题。

我只是想澄清一下,您希望每个唯一的TestId、StudentId和ResultTypeId都是独立的,而不是所有3个的唯一组合?@ESG-正确。那么我相信创建这3个索引是正确的方法