所以我想知道为什么花这么多时间。
我的查询是
SELECT prd.product_id,prd.product_name,
(prd.product_price+po.additional_price) AS product_price,
prd.date_added,po.discount,cat.category_name,payment_status,
(SELECT COUNT(pi.product_impression_id)
FROM product_impression pi
WHERE pi.product_id = prd.product_id) AS impression_count
FROM products prd
INNER JOIN product_options po
ON po.product_id = prd.product_id
AND po.default_option = 'YES'
INNER JOIN categories cat
ON prd.product_category = cat.category_id
WHERE prd.product_artist_id = 103
ORDER BY prd.product_id DESC
当我删除以下代码表单查询时,没有问题。
(SELECT COUNT(pi.product_impression_id)
FROM product_impression pi
WHERE pi.product_id = prd.product_id) AS impression_count
请告诉我为什么?
答案 0 :(得分:2)
我们可以在oracle中使用解释计划来查找查询的执行计划,即表格的扫描类型。例如:全表扫描,索引唯一扫描等。
尝试使用解释找到上述查询的执行计划。
检查索引是否被使用,并发布解释的输出,以便我们进一步分析。
感谢