更改SQL执行计划
SQL自动优化工具SQL Tuning Expert Pro for Oracle
下载: https://tosska.com/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-download-free-trial/
产品介绍: https://tosska.com/tosska-sql-tuning-expert-pro-tse-pro-for-oracle/
执行计划
具体介绍之前,我们先要了解什么是执行计划。
执行计划是数据库系统根据SQL源码和相关对象的统计资料产生的查询方案。在数据库服务器硬件环境和网络确定的情况下,SQL的执行计划决定了SQL的性能。
不修改原始SQL, 只改变原始SQL的执行计划
如果我们能够实现下面的原理图,不就可以了吗?
步骤一:为原始SQL产生不同的等价SQL, 例如SQL 1, SQL 2... SQL N;
步骤二:选择性能最优的等价SQL, 例如SQL 2;用SQL 2 的执行计划替换原始SQL的执行计划;
步骤三:查看原始SQL的执行计划是否改变,测试原始SQL的性能是否提高;
最佳实践
1. 打开软件Tosska SQL Tuning Expert Pro for Oracle;
2. 连接数据库;
3. 点击 Tune SQL 右边的+号;
4. 输入原始SQL;
关于如何查找数据库中性能差的SQL,参考 SQL优化系列(二)- 不修改SQL源码,如何让SQL飞? 之查找性能差的SQL语句
本例中,我们把之前保存在文件中的SQL语句粘贴到SQL Editor中。
5. 点击Tune按钮, 选择测试运行的方式,点击OK按钮,产生大量的等价SQL;
6. 我们可以看到:
原来的SQL执行时间: 6.22秒
最优的等价SQL执行时间: 2.63秒
7. 点击 Deploy Plan, 用最优的等价SQL的执行计划替换原始SQL的执行计划
8. 在Deploy SQL Patch 窗口中,点击Deploy按钮;
9. 测试原始SQL, 确认优化效果
原始SQL的执行计划已经发生变化,SQL Tuning Expert 提醒我们Test Run来确认调优效果。
点击Test Run, 原始SQL的执行时间由原来的 6.22秒变成了现在的2.56秒。
结论:在不修改SQL源代码的情况下,成功优化了SQL的性能。