亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

外鍵是否可以提高查詢性能?

外鍵是否可以提高查詢性能?

慕妹3146593 2019-12-17 10:53:22
假設我有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)上創建索引?
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

外鍵是用于確保數據庫完整性的DBMS概念。

對性能的任何影響/改進都將特定于所使用的數據庫技術,并且僅次于外鍵。

在SQL Server中,優良作法是確保所有外鍵上至少都具有非聚集索引。

我希望這可以為您解決問題,但請隨時索取更多詳細信息。


查看完整回答
反對 回復 2019-12-17
  • 3 回答
  • 0 關注
  • 1503 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號