
Performance Tuning
xpan
这个作者很懒,什么都没留下…
展开
-
获取执行计划——使用动态性能视图和AWR、Statspacks
上一篇中讲了如何使用EXPLAIN PLAN方法来获取sql执行计划,这篇继续讲另一种方法:使用动态性能视图。查询动态性能视图我们可以获取丰富的信息,包括执行计划与游标信息等等。下面罗列几个常用的v$视图。 ① v$sql_plan ②v$sql_plan_statistics ③v$sql_wo原创 2013-12-23 13:55:35 · 1177 阅读 · 0 评论 -
userenv和sys_context函数
本文转自userenv和sys_context函数。这两个函数用来记录连接的session信息,经常用于触发器中,记录客户端的连接信息(比如IP)。我比较关注的是sessionid和ip,但是 select userenv('sessionid')得到的并不是用户的sid,而是v$session中的audsid,sid根据audsid再得到:SQL> select sid fr转载 2014-01-02 22:46:30 · 845 阅读 · 0 评论 -
获取执行计划——EXPLAN PLAN
一般获取执行计划有四种途径:1、执行explain plan,查询结果输出表。2、查询动态性能视图,它显示缓存在库缓存中的执行计划(有时查不出结果是因为执行计划已经不在库缓存中)。3、查询AWR或Statspack表。4、启动提供执行计划的跟踪功能(set autotrace trace explain)。使用得比较多的是第四种,简单又好用~本篇讲第一种方法。 首先,expla原创 2013-12-18 22:45:06 · 989 阅读 · 0 评论 -
Oracle收集索引统计信息
相信大家对索引结构非常熟悉了,它是由根、支、叶组成。当然这里指的是常用的B+树索引。我们依然使用《Oracle收集表与列统计信息》里的测试表。下面分析索引统计信息的相关内容。一、如何查询索引统计信息 查询索引统计信息需要用到user_ind_statistics,下面是典型的查询语句。SELECT INDEX_NAME AS N原创 2013-12-11 22:44:01 · 4794 阅读 · 0 评论 -
Oracle收集直方图信息
直方图在列数据分布不均匀时非常有用,查询优化器需要直方图信息才能做出正确的估算。有频度直方图与等高直方图两种。本篇依然使用上一篇的测试表。一、频度直方图频度直方图使用的不是频度,而是使用累积频度。下面的endpoint_number是取值的累计次数。SELECT ENDPOINT_VALUE, ENDPOINT_NUMBER, ENDPOINT_NUMBER原创 2013-12-05 22:14:33 · 2724 阅读 · 0 评论 -
Oracle收集表与列统计信息
我们在分析某些语句的性能时,会分析一些信息。像表、列、索引、直方图等等,本篇主要讲表与列的统计信息收集与分析。一、表统计信息首先创建一个测试表,更新一些数据,加入一些约束:CREATE TABLE tASSELECT rownum AS id, round(dbms_random.normal*1000) AS val1, 100 + round(ln(原创 2013-12-04 10:04:23 · 3541 阅读 · 0 评论 -
如何清理AWR数据
清理AWR数据利用dbms_swrf_internal包就可以很容易实现。找出awr在你数据库中的dbid,不管你的awr dump文件是普通环境还是RAC环境,我们只需要清理一次,清理语法如下:SQL> exec dbms_swrf_internal.unregister_database(‘你的dbid’);PL/SQL procedure successfully completed转载 2013-12-09 17:06:51 · 1938 阅读 · 0 评论 -
Oracle扩展的统计信息
我们在收集列的统计信息与直方图时,往往都是对某一列的收集。当谓词使用多个相关列时,会导致约束条件的冗余。这几个相关的列也被称作关联列。出现这种情况时,查询优化器也会做出不准确的判断。所以我们必须对这些相关列收集统计信息或直方图来描述这种依赖关系。 幸运的是,从Oracle11g开始,数据库可以收集基于表达式或者一组列上的对象统计信息和直方图,从而解决这种问题。这种原创 2013-12-06 13:37:17 · 1811 阅读 · 0 评论 -
使用oradebug开启10046
sys@ORCL> oradebug setmypid Statement processed. sys@ORCL> oradebug unlimit Statement processed. sys@ORCL> oradebug event 10046 trace name context forever,level 8 Statement processed.转载 2016-12-09 13:56:27 · 384 阅读 · 0 评论