ITPub博客

首页 > 数据库 > Oracle > SQL优化

SQL优化

原创 Oracle 作者:leon830216 时间:2014-03-01 19:26:08 0 删除 编辑
1. 查询SQL在ShareedPool中的信息
select address, hash_value, executions, sql_text from v$sql where upper(sql_text) like 'SELECT * FROM T%';

2. 查看SQL是否能被共享
select address, auth_check_mismatch, translation_mismatch, optimizer_mismatch from v$sql_shared_cursor where address in (select address from v$sql where upper(sql_text) like 'SELECT * FROM AA%'); 

TRANSLATION_MISMATCH 表示SQL游标涉及到的数据对象是不同的。
AUTH_CHECK_MISMATCH 表示对同样一条SQL语句转换是不匹配的。
optimizer_mismatch 表示会话的优化器环境是不同的。

3. 使用count case语句结合,把多次全扫描改写成一次全扫描
select
    ym,
    count(case when cnt between 1 and 50 then 1 end) count1,
    count(case when cnt between 51 and 100 then 1 end) count2
from history group by ym order by ym;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22558114/viewspace-1097821/,如需转载,请注明出处,否则将追究法律责任。

上一篇: dbms_stats包的使用
请登录后发表评论 登录
全部评论

注册时间:2009-09-18

  • 博文量
    164
  • 访问量
    320472