我有一个交易表和一个库存表,我想一起'加入'。表需要在三个主键上“加入”。
我的问题是:我应该创建一个唯一的密钥(三个字段的串联)并在唯一键上创建一个'INDEX',还是只在所有三个字段上创建一个非聚集的'INDEX'?
我目前正在使用SQL Server 2014
答案 0 :(得分:1)
我猜测交易表是最大的,而库存是较小的。很大程度上取决于您希望连接返回的数据的比例 - 如果它大多数时候可能会发生表扫描,那么索引就不会有多大帮助。如果您要尝试获取一小部分日期,则在两个表的3列上创建索引,并在3列上创建从Trans到Inventory的外键。 (SQL Server需要一个索引以及一个FK) 选择最精细的列作为索引中的第一列,因为这将鼓励SQL Server Optimiser使用索引。