用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:提取时间
相关文档:
数学函数
在oracle 中distinct关键字可以显示相同记录只显示一条
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
......
由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1); //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
Object o = rs1.getObject(1);
&nbs ......
CASE表达式可以在SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。CASE的工作方式与DECODE()类似,但应该使用CASE,因为它与ANSI兼容。
CASE有两种表达式:
1. 简单CASE表达式,使用表达式确定返回值.
语法:
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN ......
先构造一个表:
create table emp2(
id number(2),
name varchar(10),
currdate date,
action varchar2(1)
)
创建触发器:
create or replace trigger d_i_u_emp2
after insert or update or delete on mysort
begin
if inserting then
insert into emp2 values (12,'dog',sysdate,'i');
elsif deleting then ......