- 浏览: 312705 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (118)
- oracle (16)
- java (13)
- jquery (16)
- hibernate (2)
- spring (14)
- struts (2)
- eclipse (1)
- birt (5)
- integrated skill (13)
- linux (9)
- css+html (5)
- redis (1)
- jqgrid (4)
- mybatis (2)
- multithreading (3)
- jvm (1)
- mvn (3)
- php (2)
- jms (2)
- photoshop (1)
- springmvc (3)
- cluster (1)
- cache (1)
- jquery-ui (2)
- 英语词根 (0)
- svn (0)
- ide (1)
- mysql (3)
- rich-text (1)
- golang (8)
- mac 10 (1)
- android (1)
- react (0)
- bootstrap (2)
- css (2)
- 1 (0)
- beego (1)
- pictures (1)
- java小生转战 (0)
- 转站通知 (0)
- 转站通知,,,啊啊啊 (1)
- threeperson (1)
- unity (1)
最新评论
-
zld406504302:
aaaddddddd
java小生转站threeperson博客 -
zld406504302:
aaaaaddd
java小生转站threeperson博客 -
zld406504302:
aaaaaaaaaaaa
java小生转站threeperson博客 -
乌发舞天:
UEditor 实例 -
van_2013:
请问这是订阅模式的配置吗?
SPRING JMS 整合ACTIVEMQ
oracle tkprof 分析sql执行计划
1)开启系统级sql追踪
alter system set sql_trace= true ;
select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr = b.addr and a.machine='yangyang(计算机名)';
----http://www.iteye.com/topic/19024 (部分引用)
SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr = b.addr and a.machine='yangyang';
SPID SID SERIAL#
------------ ---------- ----------
MACHINE
----------------------------------------------------------------
4007 5487 4
yangyang
4009 5483 1
yangyang
4013 5482 2
yangyang
SQL> execute sys.dbms_system.set_ev(49, 3406,10046,1,'');
SQL> execute sys.dbms_system.set_ev(5487,4,10046,1,'');
PL/SQL procedure successfully completed.
SQL> execute sys.dbms_system.set_ev(5487,4,10046,0,'');
获取本机
2) 访问数据库后,要关闭追踪
alter system set sql_trace= false ;
3)获得追踪计划保存的文件
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_dump_dest') d
可以制作成sql文件放在linux系统下 例如保存为 trace_sql.sql
@/home/netmessage/trace_sql.sql
SQL> @/home/netmessage/trace_sql.sql
17 ;
TRACE_FILE_NAME
--------------------------------------------------------------------------------
/opt/oracle/admin/orcl/udump/orcl_ora_11822.trc
4)分析追踪计划 用tkprof (linux 下tkprof 报错,所以在xp下进行分析了一下,linux 找到tkprof 所在的bin 就可以了,应该是8i 以上 在oracle bin中有存在)
C:\Documents and Settings\Administrator>tkprof d:\sql.trc d:\sql.txt
看一下执行计划的分析结果:
TKPROF: Release 10.2.0.1.0 - Production on 星期一 3月 26 18:39:22 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: d:\sql.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
alter system set sql_trace=true
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.00 0.06 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.00 0.06 0 0 0 0
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS
********************************************************************************
SELECT PT.VALUE
FROM
SYS.V_$SESSTAT PT WHERE PT.SID=:1 AND PT.STATISTIC# IN (7,47,50,54,134,335,
336,337,341,342) ORDER BY PT.STATISTIC#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.00 0.00 0 0 0 0
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS
********************************************************************************
select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1,
spare2
from
obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null
and linkname is null and subname is null
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 4 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 4 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=71 us)
1 INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=50 us)(object id 37)
********************************************************************************
select cols,audit$,textlength,intcols,property,flags,rowid
from
view$ where obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 3 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 3 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.06 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.06 0 0 0 0
Misses in library cache during parse: 1
Misses in library cache during execute: 1
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 7 0 2
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6 0.00 0.00 0 7 0 2
Misses in library cache during parse: 0
2 user SQL statements in session.
2 internal SQL statements in session.
4 SQL statements in session.
********************************************************************************
Trace file: d:\sql.trc
Trace file compatibility: 10.01.00
Sort options: default
2 sessions in tracefile.
3 user SQL statements in trace file.
2 internal SQL statements in trace file.
4 SQL statements in trace file.
4 unique SQL statements in trace file.
45 lines in trace file.
82 elapsed seconds in trace file.
发表评论
-
java 调用oracle 管道表函数
2013-07-10 22:11 2062需求:用户导入100万白名单 ... -
sql实现多行数据比对更新或插入操作
2013-05-29 14:41 4944Merge语法 MERGE [hint] INTO [sche ... -
oracle conn /as sysdba 找不到实例
2013-03-07 11:47 1023oracle conn /as sysdba 找不到实例 ... -
oracle 维护、监控、优化常用sql
2013-03-06 09:46 9401) sql监控 SELECT SE.sid, schema ... -
oracle 编码修改
2013-03-05 15:40 686SQL> shutdown immediate; ... -
oracle10 用户无法连接到指定实例
2013-03-05 14:32 1299问题1:tns:could‘not find the iden ... -
oracle10 千万级数据存取优化
2013-02-27 21:34 6243[list] 今天对一个存有1000万数据的大表进 ... -
oracle sql 转义
2012-07-26 18:15 2374今天要在字段里查找'%',涉及到oracle的转义 ... -
获得每个班的前两名学生
2012-06-27 12:33 970群里有个朋友问了一个是sql查询的问题:“获得每个班的两名学 ... -
oracle procdure loop 内异常后继续下一次循环
2012-05-21 22:35 22711)oracle procdure 内异常处理 ... -
java调用 数组作为参数的管道表函数
2012-05-03 17:29 495需求:用户导入100万白 ... -
oracle sql执行计划autotrace 安装
2012-03-23 14:25 935小生对or ... -
oracle 管道表函数2
2012-01-06 15:47 1041由于上一篇关于管道表函数写的有些粗糙,追 ... -
oracle 管道表函数
2011-05-24 17:24 1105------创建一个类型 create or r ... -
oracle 函数返回一个集合
2011-01-10 23:23 1028create or repla ... -
oracle 存储过程
2011-01-06 11:20 869create or replace procedure ...
相关推荐
假设我们需要分析以下SQL语句的执行计划: ```sql SELECT d.dname, e.ename, e.sal FROM dept d, emp e WHERE d.deptno = e.deptno; ``` 我们可以按照以下步骤操作: 1. 开启AUTOTRACE: ```sql SQL> set ...
使用TKPROF分析时,它会提供详细的执行计划、执行时间、I/O信息以及可能的优化建议。通过这些信息,可以识别出低效的SQL语句,并进行相应的优化,比如调整索引、重写SQL或者修改应用程序逻辑,以提升数据库性能。 ...
资源名称:Oracle高性能SQL调整内容简介:本书由Oracle公司授权,向读者详尽阐述如何调整SQL语句、查看内部执行计划和更改执行计划以提高语句性能。主要内容包括:理解SQL调整在Oracle总体微调中地地位,使用诸如...
使用 Tkprof 分析 ORACLE 跟踪文件 Tkprof 是一个功能强大的工具,用于分析 Oracle 跟踪文件...通过 Tkprof 工具,可以对 Oracle 跟踪文件进行分析,找出有问题的 SQL 语句,并对其进行优化,从而提高系统的执行效率。
通过EXPLAIN PLAN或DBMS_XPLAN可以查看执行计划,分析其效率。 2. **索引优化**:索引能显著提升查询速度,但过度使用或错误使用可能导致写操作变慢。选择合适的数据类型和索引类型(如B树、位图、函数索引等)至关...
使用语如内嵌视图和BIF扩展提高QraleSQL性能,确定并报告程序库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索为OracleSQL语句更改执行计划,使用Oracle8i优化...
《Oracle执行计划与SQL优化实例》这一主题深入探讨了数据库管理与优化的关键方面,尤其针对Oracle数据库环境。本文旨在解析并扩展此PPTX文件中提及的重要知识点,涵盖执行计划的概念、获取方法、解读技巧以及SQL优化...
tkprof通过解析跟踪文件中的SQL语句,生成包含执行计划、统计信息和性能指标的输出文件。它还可以帮助识别绑定变量,但其功能相对有限,尤其是在处理大量数据或复杂查询时,tkprof可能无法提供足够的细节,特别是...
了解和分析执行计划对于提升SQL语句的性能至关重要。 一、生成执行计划的方法 1. **使用EXPLAIN PLAN** 在`SQL*Plus`环境中,可以使用`EXPLAIN PLAN FOR`命令来生成执行计划。例如: ``` SQL> explain plan for...
- 当使用 `explain=` 参数时,tkprof 会为每一个 SQL 语句生成 EXPLAIN PLAN 结果,这些结果可以帮助分析 SQL 语句的执行计划,了解每一步操作的具体情况,包括使用的索引、访问的数据量等信息。 3. **TRACE 文件...
EXPLAIN PLAN 是一种分析执行计划的工具,可以帮助开发者了解 SQL 语句的执行计划和成本。SQL_TRACE 是一种追踪 SQL 语句执行的工具,可以帮助开发者了解 SQL 语句的执行时间和资源消耗。TKPROF 是一种格式化 SQL_...
SQL性能分析是调优的第一步,它包括识别慢查询、理解执行计划和资源消耗。通过工具如Explain Plan或SQL Trace,我们可以分析SQL语句的执行路径和成本,找出可能导致性能问题的因素。 二、索引策略 索引是提高查询...
在实际操作中,我们还可以结合`explain=`选项来查看这些SQL语句的执行计划,进一步分析其性能问题的原因。此外,使用`insert=`选项将SQL语句以INSERT格式输出,可以帮助我们更快地重现问题,并进行针对性的测试和...
在Oracle数据库系统中,SQL语句跟踪能够帮助我们收集关于SQL执行的详细信息,包括执行计划、资源消耗、等待事件等,这对于理解和改进数据库的性能至关重要。 首先,我们来了解Oracle SQL语句跟踪的基础知识。在...
了解并监控优化器的行为,如通过EXPLAIN PLAN分析执行计划,可以帮助我们理解查询优化过程,并找到潜在的性能问题。 此外,绑定变量、执行计划稳定性、物化视图、分区策略等也是SQL调整的重要方面。绑定变量可以...
理解SQL调整在Oracle总体微调中地地位,使用诸如内嵌视图和BIF扩展提高Oracle SQL性能,确定并报告程式库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索 ...
通过分析执行计划,我们可以识别潜在的性能瓶颈,例如高成本的操作,然后针对这些环节进行优化。 二、索引策略 索引是提高查询速度的重要手段。合理创建单列索引、复合索引、唯一索引和函数索引,可以显著提升查询...
**SQL Trace** 是 Oracle 数据库提供的一种性能分析工具,它能够收集执行 SQL 语句时的相关统计信息,如 CPU 时间、等待时间等。通过这些信息,DBA 或开发人员可以对数据库性能进行更深入的诊断和优化。 **SQL ...
在数据库管理系统领域中,Oracle数据库是其中的佼佼者,特别是在企业级应用中。...对于任何希望深化对Oracle数据库优化理解的数据库管理员或开发者来说,学会读懂和分析执行计划是实现高效数据库管理的基础。
优化阶段,Oracle的查询优化器会分析SQL语句,选择最有效的执行计划;最后是执行阶段,按照优化后的执行计划执行SQL语句。 二、识别问题SQL 识别问题SQL是调优的第一步。通常,可以通过监控工具或日志文件来识别...