Oracle应用索引来改进此查询

时间:2014-03-23 15:33:34

标签: database oracle indexing

您好我在应用索引时遇到问题,以提高后续查询的速度。

   SELECT SUM(OL.QTY) FROM ORDER_LINE OL, PRODUCT P, ORDERS O 
   WHERE
   O.O_DATE BETWEEN '01-FEB-2014' AND '28-FEB-2014'
   AND
   O.ID = OL.ORDER_ID
   AND
   P.ID = OL.PRODUCT_ID
   AND
   P.NAME = 'APRICOT JAM'
   ;

任何建议都将非常感谢!目前我已经尝试将一个连锁索引应用于订单表,因为(O_DATE,ID)没有多大帮助!

桌子设计如下!三江源!

  ORDERS
  ID         NOT NULL     NUMBER(38)
  CUSTID     NOT NULL     NUMBER(38)
  O_DATE     NOT NULL     DATE

  ORDER_LINE
  ORDER_ID   NOT NULL     NUMBER(38)
  PRODUCT_ID NOT NULL     NUMBER(38)
  QTY        NOT NULL     NUMBER(4)

  PRODUCT
  ID         NOT NULL     NUMBER(38)
  NAME       NOT NULL     VARCHAR(30)
  PRICE      NOT NULL     NUMBER(3,2)

1 个答案:

答案 0 :(得分:1)

为此字段创建索引

PRODUCT.NAME

ORDER_LINE.PRODUCT_ID
ORDER_LINE.ORDER_ID

ORDERS.O_DATE

我假设您已经拥有主键字段。如果没有,首先为主键创建唯一索引

ORDER.ID
PRODUCT.ID