SQL Server中索引的最佳实践

SQL Server中索引的最佳实践,sql,sql-server,indexing,Sql,Sql Server,Indexing,我有一个事务表和一个库存表,我想“连接”在一起。这些表需要在三个主键上“连接” 我的问题是:我应该创建一个唯一键(三个字段的串联)并在唯一键上创建一个“索引”,还是在所有三个字段上创建一个非聚集“索引” 我目前使用的是SQL Server 2014我猜事务表是最大的,而库存是较小的。这在很大程度上取决于您希望联接返回的数据的比例——如果最多,则可能会进行表扫描,所以索引不会有多大帮助。如果您要尝试获取日期的一小部分,请在两个表的3列上创建一个索引,并在3列上创建一个从Trans到Inventor

我有一个事务表和一个库存表,我想“连接”在一起。这些表需要在三个主键上“连接”

我的问题是:我应该创建一个唯一键(三个字段的串联)并在唯一键上创建一个“索引”,还是在所有三个字段上创建一个非聚集“索引”


我目前使用的是SQL Server 2014

我猜事务表是最大的,而库存是较小的。这在很大程度上取决于您希望联接返回的数据的比例——如果最多,则可能会进行表扫描,所以索引不会有多大帮助。如果您要尝试获取日期的一小部分,请在两个表的3列上创建一个索引,并在3列上创建一个从Trans到Inventory的外键。(SQL Server需要索引和FK)
选择最细粒度的列作为索引中的第一列,因为这将鼓励SQL Server Optimizer使用索引。

Pk通常是表的聚集索引(默认情况下)。因此,如果你需要加入两个PK,并且它们是聚集索引,你不需要做任何事情。为混淆道歉。树字段在DB结构中没有标记为PK。我的意思是,这三个字段使一个记录唯一,并且应该用于连接。然后在那里添加索引可能会很有趣,是的。不过,我不会走到创建这种连接的地步。