sql tuning
文章平均质量分 81
事后诸葛亮
深入浅出!
展开
-
(2)解读执行计划
1、内部函数与操作访问条件可以帮助操作从物理对象上定位到符合条件的数据,然后再读取数据;过滤条件是操作已经从物理存储上读取到了数据,然后将不符合条件的数据过滤掉。实际上,在Oracle 内部,执行计划的每一个数据源(Row Source)操作都与一个内部函数(qer)相对应,而操作对象、谓词条件都是这些函数的参数。这些函数之间可以相互调用,也正是这些函数的调用关系,映射成为执行计划的树原创 2013-03-08 16:31:23 · 1185 阅读 · 0 评论 -
SQL Profiles-PartIII -- profile的控制
第二部分:profile的控制 对profile的控制比较简单:修改和删除。包DBMS_SQLTUNE提供了两个存储过程来完成这两个操作:ALTER_SQL_PROFILE和DROP_SQL_PROFILE。 BEGIN DBMS_SQLTUNE.DROP_SQL_PROFILE(name => 'my_sql_profile');END;/1.Profile的修转载 2013-11-27 13:00:50 · 1720 阅读 · 0 评论 -
如何用 SQL Tuning Advisor (DBMS_SQLTUNE) 优化SQL语句
在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等。在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning Advisor :STA),它是新的DBMS_SQLTUNE包。使用STA一定要保证优化器是CBO模式下。执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限。原创 2013-11-21 13:14:57 · 6120 阅读 · 0 评论 -
使用sqltrpt自动调优sql。
在10gR2中,提供了$ORACLE_HOME/rdbms/admin/sqltrpt.sql脚本,用于抽取占用资源较多的sql,并可以为指定的sql生成执行计划,资源占用较多的sql分为两部分1) 15 Most expensive SQL in the cursor cache2) 15 Most expensive SQL in the workload repository转载 2013-11-19 16:27:13 · 5445 阅读 · 0 评论 -
coe_xfr_sql_profile.sql 从shared pool、awr中提取指定的SQL ID的Outline Data并创建SQL Profile。
SPO coe_xfr_sql_profile.log;SET DEF ON TERM OFF ECHO ON FEED OFF VER OFF HEA ON LIN 2000 PAGES 100 LONG 8000000 LONGC 800000 TRIMS ON TI OFF TIMI OFF SERVEROUT ON SIZE 1000000 NUMF "" SQLP SQL>;REM转载 2013-11-19 16:00:35 · 2329 阅读 · 0 评论 -
SQL Profiles-PartII
在上一篇《SQL Profiles-Part I》,我向大家介绍了什么是SQL Profiles及其作用,如何使用SQL Tuning Advisor来生成SQL Profile,以及生成的SQL Profile产生的Hint。同时也介绍了SQL的signature。那么在今天,将向大家介绍如何手工创建SQL Profiles(即不通过SQL Tuning Advisor)来达成2个目的:转载 2013-11-19 11:17:10 · 1169 阅读 · 0 评论 -
SQL Profiles-Part I
Oracle 11g从发布到现在,也有几个年头了。而在国内来说,Oracle 10g仍然是主流,甚至一些电信运营商的核心系统仍然在使用9i。作为Oracle 10g的一项新特性,SQL Profiles被使用得并不太多。不管是在论坛、个人的BLOG还是其他一些地方,SQL Profiles的介绍也相对较少。对我个人来说,已经在多个优化场合中使用SQL Profiles,在这里向大家介绍SQL Pr转载 2013-11-19 10:53:01 · 1095 阅读 · 0 评论 -
(5)执行计划的代价估算
存在两种代价模型:一种是IO代价模型;另一种是CPU代价模型。通过初始化参数_optimizer_cost_model控制。该参数允许以下值:IO:IO代价模型,在这种模式下仅估算IO次数而不考虑时间因素。例如,完成一次单数据块读和完成一次多数据块读所需的时间是不同的,但这种模式下两者是等价的。CPU:CPU代价模型,计算IO代价的同时,计算CPU代价,并使用系统统计数据计算出CPU代价向原创 2013-03-19 09:59:25 · 1574 阅读 · 0 评论 -
(4)统计数据
统计数据可以分为两个层次:系统统计数据和对象统计数据。1、系统统计数据系统统计数据由dbms_stats.get_system_stats存储过程来收集。系统收集到的系统统计数据会被存储在系统数据字典aux_stats$中。SQL> select * from aux_stats$ order by pname;SNAME PN原创 2013-03-18 12:49:28 · 708 阅读 · 0 评论 -
(3)查 询 转 换
查询转换(Query Transformation),又称为逻辑优化(Logical Optimization),也称为软优化,即查询转换器在逻辑上对语句做一些语义等价转换,从而能使优化器生成效率更高的执行计划。语句在被提交到Oracle 后,解析器(Parser)会对SQL 语句的语法、语义进行分析,并将查询中的视图展开、划分为小的查询块(Query Block)。它们是嵌套或者相互关联的,原创 2013-03-15 16:14:38 · 794 阅读 · 0 评论 -
(1)生成(抓取)和显示(解释)执行计划
1、dbms_xplan.display:用于显示Explain Plan 命令解释的计划DISPLAY 函数用于显示存储在PLAN_TABLE 中的执行计划,或与PLAN_TABLE 拥有相同结构的表中的执行计划。此外,如果从视图v$sql_plan_statistics_all 可以获得该执行计划的相关统计数据,DISPLAY 也可以格式化输出这些数据。function displ原创 2013-03-08 11:48:01 · 1604 阅读 · 0 评论 -
获取sql的执行计划总结!
1、使用autotrace获取执行计划、解释计划要查看oracle sql 的执行计划有很多种方法:查看执行计划表、使用oracle第三方工具、使用sql*plus、利用sql trace跟踪文件、诊断事件10046等。这里介绍使用sql*plus的autotrace功能来查看sql的执行计划。autotrace功能的启用:SQL> @?/rdbms/admin/utlxp原创 2011-10-26 20:11:15 · 1039 阅读 · 0 评论