0

我正在使用 SQL Server 2008。

我有两个这样的表:

订单项

OrderItemID
InventoryItemID

和 :

库存物品

InventoryItemID
ItemCode

我的查询计划显示很多时间都花在加入InventoryItemIDs 以获取ItemCode每个订单项目的。

我已经有一个包含两个表上的两个列的非聚集索引,但希望它更快——我可以将关系“导入”ItemCodeOrderItems表的索引中吗?

4

1 回答 1

1

不,您不能包含另一个表中的列。但是,一个“框外”建议是创建一个连接 OrderItems 和 InventoryItems 的索引视图。您可以在视图上设置聚集索引以实现最快的性能,并且订单和库存项目似乎都在同一个“表”中,而无需进行连接。结果将是数据的某种非规范化视图。

当然,索引视图有许多限制,但允许内部连接。我经常使用索引视图,它们非常有用。这里有一个插入/更新/删除性能考虑,因为每个操作都需要更新视图。但是,这可能是值得的。

于 2012-07-19T20:20:54.997 回答