1、业务用户登录数据库服务器
2、SQL>set autot on --显示执行计划
SQL>set timing on --显示执行时间
3、执行速度慢的SQL
4、观察执行计划尾部是否有如下提示:
Note -- plan table is old version
5、在4有提示的情况下(建议在服务器端sqlplus中执行)
SQL>drop table plan_table; --业务用户执行
SQL>@?/rdbms/admin/utlxplan; --具有DBA权限的用户(SYS)执行
6、再次重复执行速度慢的SQL3-5次,观察SQL速度是否有所改善 。
2、SQL>set autot on --显示执行计划
SQL>set timing on --显示执行时间
3、执行速度慢的SQL
4、观察执行计划尾部是否有如下提示:
Note -- plan table is old version
5、在4有提示的情况下(建议在服务器端sqlplus中执行)
SQL>drop table plan_table; --业务用户执行
SQL>@?/rdbms/admin/utlxplan; --具有DBA权限的用户(SYS)执行
6、再次重复执行速度慢的SQL3-5次,观察SQL速度是否有所改善 。
总结:问题SQL执行慢的原因有3个
一是表的统计信息没有及时更新,二是表的索引没有被用上,三是plan_table缓存了执行计划。