oracle查询第三行,如何为Oracle优化此查询

我正在使用索引、索引集群、哈希集群等结构学习查询优化。我有一位客人,正在订餐。我需要优化两个查询

查询1:

SELECT BOOKING.BID, CUSTOMER.CID, BOOKING.SEAT_PRICE

FROM BOOKING, CUSTOMER

WHERE BOOKING.CID= CUSTOMER.CID

AND BOOKING.SEAT_PRICE>200;

查询2:

SELECT BOOKING.BID, CUSTOMER.CID

FROM BOOKING, CUSTOMER

WHERE BOOKING.CID= CUSTOMER.CID

AND CUSTOMER.CID>1900;

从理论上讲,为了提高性能,我们需要索引/索引集群/散列集群中的所有谓词,包括where、join、order by…条款。但是,当我尝试对上述查询遵循该规则时,它没有任何性能改进。

例如,对于第一个查询,我在预订和客户表的CID列上创建索引。我也在预订表的列座位价格上创建索引。我运行的脚本如下:

CREATE INDEX BOOKING_SEAT_PRICE ON BOOKING(SEAT_PRICE);

CREATE INDEX BOOKING_CID ON BOOKING(CID);

CREATE INDEX CUSTOMER_CID ON CUSTOMER(CID);

请注意,我创建跟踪文件是为了查看查询的统计信息。在创建这些索引之前,我运行查询来创建跟踪文件。做了这些索引之后,我再次运行它来创建另一个跟踪文件。但是,新的跟踪文件在时间、CPU、运行时间、查询等方面没有任何改进,甚至性能最差。

有人能帮我吗?这真的让我很沮丧,因为我不明白为什么,我严格遵守规则。我做了谷歌,但没有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值