Sql 索引大表以在每列中查找不同的值
“TestResult”表非常大,有2000多行,但不是每个测试、学生或结果类型都在其中 我想快速获得唯一的TestId、StudentId和ResultTypeId。 我目前的策略是按以下方式在前面的每一列上建立索引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
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个索引是正确的方法