分类 sql 优化 下的文章

定制执行计划

在Oracle数据库中,执行计划是树形结构,因此我们可以利用树形查询来定制执行计划。我们打开PLSQL dev SQL窗口,登录示例账户Scott并且运行如下SQL。explain plan for select /*+ use_hash(a,dept) */ * from emp a, dept where a.deptno = dept.deptno and a.sal > 3000; 然后执行下面的脚本,结果如图3-2所示。select case when (filter_predicates is not null or ...

查看正在执行的SQL的执行计划

有时需要抓取正在运行的SQL的执行计划,这时我们需要获取SQL的SQL_ID以及SQL的CHILD_NUMEBR,然后将其代入下面SQL,就能获取正在运行的SQL的执行计划。select * from table(dbms_xplan.display_cursor('sql_id',child_number)); 在一个会话中执行如下SQL。select count(*) from a,b where a.owner=b.owner; 在另外一个会话中执行如下SQL。select a.sid, a.event, a.sql_id, a.sql_child_number, b.sql_te...

转载 sql优化

转载:https://www.cnblogs.com/ddzj01/p/11365541.html 一、前言生产中偶尔会碰到一些sql,有多种执行计划,其中部分情况是统计信息过旧造成的,重新收集下统计信息就行了。但是有些时候重新收集统计信息也解决不了问题,而开发又在嗷嗷叫,没时间让你去慢慢分析原因的时候,这时临时的解决办法是通过spm去固定一个正确的执行计划,等找到真正原因后再解除该spm。