主要读取表上的聚簇索引或2个索引

时间:2014-02-10 19:05:53

标签: sql-server database-design indexing sql-server-2012-express

  

注意:如果重要的话,我在SQL Server 2012上使用Entity Framework。

我有一个主要阅读的表,它很少更新。数据库大小不是问题,速度是。

有一个标准的PK ID字段。在选择中,始终在

上查询这两个
int PersonID
int NationID

如果我在每个单独放置一个索引,或者在这两个上放置一个NONCLUSTERED,那么查询是否更快:

 CREATE NONCLUSTERED INDEX IX_mytable_Nation_person ON dbo.mytable
  (
   NationId,
   PersonId
   ) WITH( STATISTICS_NORECOMPUTE = OFF, 
    IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,  ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

1 个答案:

答案 0 :(得分:0)

取决于您查询的

如果你有......

WHERE PersonID = ... AND NationID = ...

...使用复合索引。


如果你有......

WHERE PersonID = ... OR NationID = ...

...使用单独的索引。