我有三个数据库表,其中包含大量的数据(6000)。我为一些正在工作的operaton写了下面的查询。如何提高此oracle查询的性能?
UPDATE productlistprice prl SET prl.value = (
SELECT minprice FROM(
SELECT MIN(prl.value) AS minprice, prv.productmasterid AS masterprid
FROM product pr , productlistprice prl, productvariation prv
WHERE prv.productmasterid = (
SELECT prv.productmasterid FROM productvariation pv
WHERE pv.productid = pr.uuid)
AND prl.productid = pr.uuid AND prl.productid = prv.productid
GROUP BY prv.productmasterid)
WHERE masterprid = (SELECT prv.productmasterid
FROM productvariation prv WHERE prv.productmasterid = prl.productid
GROUP BY prv.productmasterid))
WHERE prl.productid = (
SELECT prv.productmasterid FROM productvariation prv
WHERE prv.productmasterid = prl.productid
GROUP BY prv.productmasterid);
但是这个查询的性能有点慢。它需要21秒来更新记录。我在哪里可以改进此查询。任何建议将会大大增加
你怎么能连看了吗? :)你有什么指数? – GolezTrol
我会开始通过使用'join'关键字重写您的查询。 – podiluska
@podiluska确实加入关键字提高了性能? – user964147