Index-Tuning

如何確定索引在外鍵子端的功效

  • January 3, 2015

給定兩個表之間的父子關係,例如:

table ORDER
   order_id PK (already indexed)
   order_name

table ITEM
   item_id PK (already indexed)
   order_id (FK to ORDER.order_id)
   amount

我想確定在ITEM.order_id.

我應該收集哪些資訊來幫助我確定這一點?(例如我的應用程序針對這些表執行的查詢的結構等)我確實知道我的應用程序會定期執行在這兩個表之間執行簡單內部連接的查詢。對於這種情況,是否有任何適用於索引調整的一般原則?

我正在使用 Oracle 11g。

基本上在三種情況下,除了 FK/PK 關係中的父級之外,您還希望索引子級:

  1. 如果您曾經ITEM根據order_id(顯然!)
  2. 如果您曾經在 JOIN 上執行查詢ITEMORDERS使用過濾器ORDERS
  3. 與 2 一樣,但帶有過濾器的過濾器的ITEM選擇性低於打開的過濾器ORDERS

在這兩種情況下,ITEM都將受益於成為連接的內部部分,並且來自子節點的索引將有助於支持循環連接策略。

引用自:https://dba.stackexchange.com/questions/87207