假設我有2個表格,產品和產品類別。兩個表在CategoryId上都有關系。這就是查詢。SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS CategoryFROM Products pINNER JOIN ProductCategories c ON p.CategoryId = c.CategoryIdWHERE c.CategoryId = 1;當我創建執行計劃時,表ProductCategories會執行群集索引查找,這與預期的一樣。但是對于表Products,它執行集群索引掃描,這使我感到懷疑。為什么FK不能幫助提高查詢性能?因此,我必須在Products.CategoryId上創建索引。當我再次創建執行計劃時,兩個表都執行索引查找。并且估計的子樹成本大大降低了。我的問題是:除了FK有助于關系約束之外,它還有其他用途嗎?它會提高查詢性能嗎?是否應該在所有表的所有FK列(如Products.CategoryId)上創建索引?
外鍵是否可以提高查詢性能?
慕妹3146593
2019-12-17 10:53:22