简体   繁体   English

SQL慢查询执行

[英]SQL Slow Query Execution

SELECT s.supplier_id, s.supplier_name, o.order_date
FROM suppliers s, orders o
WHERE s.supplier_id = o.supplier_id
AND o.cust_reference = 9
ORDER BY o.order_date;

This query was supposedly executing slowly and was taking close to 10 minutes to execute how could query time be improved? 据推测,该查询的执行速度很慢,并且要花费近10分钟才能执行,如何才能缩短查询时间?

Check the execution plan. 检查执行计划。 Look for table scans. 查找表扫描。 Make sure that the relevant indexes exist on the tables. 确保相关索引存在于表中。 And change from the 'FROM X,Y' with the expensive WHERE clause syntax to an INNER JOIN 然后从使用昂贵的WHERE子句语法的'FROM X,Y'更改为INNER JOIN

SELECT s.supplier_id, s.supplier_name, o.order_date
FROM suppliers s
INNER JOIN orders o ON s.supplier_id = o.supplier_id
WHERE o.cust_reference = 9
ORDER BY o.order_date;

Try Below Query because o.cust_reference = 9 Also use in join so its execution is fast because join occur only on that rows which have cust_reference = 9 请尝试以下查询,因为o.cust_reference = 9也可在联接中使用,因此它的执行速度很快,因为联接仅发生在cust_reference = 9的行上

SELECT s.supplier_id, s.supplier_name, o.order_date
FROM suppliers s
INNER JOIN orders o ON s.supplier_id = o.supplier_id
AND o.cust_reference = 9
ORDER BY o.order_date;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM