用Oracle的tkprof分析SQL执行效率
用Oracle的tkprof分析SQL执行效率
1、打开跟踪
SQL> alter session set sql_trace=true;
2、执行SQL
SQL> select count(*) from xxxx;
3、关闭跟踪
SQL> alter session set sql_trace=false
4、找到trc文件
目标文件目录在:
SQL> select value from v$parameter where
name='user_dump_dest';
5、变换trc文件为可读格式
tkprof ora10g_ora_26292.trc tkprof0702 explain=username/password
sort=exeela
sort有exeela:执行时间;prsela:语法分析时间;fchela:提取时间
相关文档:
由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
&nbs ......
NULL指的是空值,或者非法值。
NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2) ->相等返回NULL,不等返回ex ......
限制索引是一些没有经验的开发人员经常犯的错误之一。在SQL中有很多陷阱会使一些索引无法使用。下面讨论一些常见的问题:
1 使用不等于操作符(<>、!=)
下面的查询即使在cust_rating列有一个索引,查询语句仍然执行一次全表扫描。
  ......
select * from (select t.*,rownum rn from (select * from emp) t where rownum<=10) where rn>=6;
创建分页结果集的游标
create or replace package fenyepackage as
type testcursor is ref cursor;
end fenyepackage;
创建分页存储过程
create or replace procedure fenye3(
tableName varchar2, --表名
......