0
這是架構:我們可以優化這個sql查詢嗎?
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
產品表包含製造商的數據,型號,產品類型(「PC」,「筆記本電腦」或「打印機」)。假定產品表中的型號對於所有制造商和產品類型都是唯一的。在PC表中的每一個人計算機明確地由一個唯一的編碼標識,並通過它的模型(外鍵指的是產品表),處理器速度(單位爲MHz)的另外特徵在於 - 速度場,RAM容量(MB) - 夯,硬盤驅動器容量(Gb) - 高清,CD-ROM速度(例如'4x') - cd及其價格。現在
的要求是,以找到打印機廠商也生產具有最低的RAM容量,並具有最低的RAM容量所有PC的最高處理器速度的電腦。
我寫此查詢:
WITH outp AS
(
SELECT
P.Maker, MAX(PC.Speed) AS Speed
FROM
PC
JOIN
Product P ON P.model = PC.Model
WHERE
P.maker IN (SELECT maker FROM Product WHERE type = 'Printer')
AND PC.Ram = (SELECT MIN(ram) FROM PC)
GROUP BY
Maker
)
SELECT maker
FROM outp
WHERE speed = (SELECT MAX(speed) FROM outp)
這是工作,但我想優化這個查詢或另謀查詢比這更笨重。任何幫助?
感謝球員...
請運行'解釋計劃your_query'然後運行'SELECT * FROM表(DBMS_XPLAN.DISPLAY)',然後最後一個查詢的結果複製爲文本(而不是位圖),並將它添加到你的問題(使用編輯選項)。 – krokodilko