高分求 测试SQL语句性能和运行时间的工具

yangjia21_2007 2008-09-11 04:57:27
小弟最近研究SQL优化语句
可是在PL/SQL中的命令窗口执行的语句时间不确定。
看不出优化完与优化前的差距,哪个语句性能更好
请大家帮忙
...全文
225 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sleepzzzzz 2008-09-12
  • 打赏
  • 举报
回复
走过
cuixiuqin1954 2008-09-12
  • 打赏
  • 举报
回复
不会……只能帮顶
火星求索 2008-09-12
  • 打赏
  • 举报
回复

就是这样
ePower518 2008-09-11
  • 打赏
  • 举报
回复
所有工具均只能得到SQL的开销,具体不会给出任何优化建议。
所以,需要懂得那些数据是对性能有较大影响的。是可以花费较少的
成本得到较好的优化效果的。
如:
统计信息
----------------------------------------------------------
28 recursive calls
0 db block gets
17 consistent gets
0 physical reads
0 redo size
407 bytes sent via SQL*Net to client
400 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
中的:
17 consistent gets 表示逻辑读,如果读取很少几条 rows ,而数据很大,则重点优化
对应步骤中的最多逻辑读的SQL。
utpcb 2008-09-11
  • 打赏
  • 举报
回复
有如下查看执行计划方式:
1.sqlplus中autotrace
2.dbms_system.set_sql_trace_in_session()
3.statspack
4.explain plan for your sql
5.10046
yangjia21_2007 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mantisXF 的回复:]
SQL> SET TIMING ON
SQL> SET AUTOTRACE TRACEONLY


OR

OPEN "PL\SQL DEVELOPER TOOL" -> F5
[/Quote]


这几个我知道怎么用
但就是有点看不太懂 不知道有没有跟直接的工具
yangjia21_2007 2008-09-11
  • 打赏
  • 举报
回复
OPER@tl>
这个是在什么里?
用的是PL/SQL么
mantisXF 2008-09-11
  • 打赏
  • 举报
回复
SQL> SET TIMING ON
SQL> SET AUTOTRACE TRACEONLY


OR

OPEN "PL\SQL DEVELOPER TOOL" -> F5
vc555 2008-09-11
  • 打赏
  • 举报
回复
OPER@tl>create table test(aaa number);

表已创建。

OPER@tl>set autotrace on
OPER@tl>insert into test values(10);

已创建 1 行。


执行计划
----------------------------------------------------------

-------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------


统计信息
----------------------------------------------------------
3 recursive calls
22 db block gets
5 consistent gets
0 physical reads
0 redo size
913 bytes sent via SQL*Net to client
936 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
1 rows processed

OPER@tl>select * from test;

AAA
----------
10


执行计划
----------------------------------------------------------
Plan hash value: 1357081020

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| TEST | 1 | 13 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement


统计信息
----------------------------------------------------------
28 recursive calls
0 db block gets
17 consistent gets
0 physical reads
0 redo size
407 bytes sent via SQL*Net to client
400 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

OPER@tl>
vc555 2008-09-11
  • 打赏
  • 举报
回复
还有:alter session|system set sql_trace=true
yangjia21_2007 2008-09-11
  • 打赏
  • 举报
回复
怎么看 ?能说的详细点么
最好能看出来准备的执行顺序
和执行的时间
oracledbalgtu 2008-09-11
  • 打赏
  • 举报
回复
显示时间用:
set timing on

执行计划用:
set autotrace on

[Quote=引用楼主 yangjia21_2007 的帖子:]
小弟最近研究SQL优化语句
可是在PL/SQL中的命令窗口执行的语句时间不确定。
看不出优化完与优化前的差距,哪个语句性能更好
请大家帮忙
[/Quote]
vc555 2008-09-11
  • 打赏
  • 举报
回复
有如下查看执行计划方式:
1.sqlplus中autotrace
2.dbms_system.set_sql_trace_in_session()
3.statspack
4.explain plan for your sql
5.10046
hebo2005 2008-09-11
  • 打赏
  • 举报
回复
看执行计划

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧