
Tuning
文章平均质量分 61
nsj820
这个作者很懒,什么都没留下…
展开
-
表连接方式的分析与优化
连接是通过SQL语句中FROM从句的多个表名,以及WHERE从句里定义的表之间的连接条件来实现的。如果一个SQL语句的关联表超过两个:ORACLE首先连接其中的两个表,产生一个结果集;然后将产生的结果集与下一个表再进行关联;继续这个过程,直到所有的表都连接完成;最后产生所需的数据。下面都以两个表的连接为例create table user_info(user_name char(10),user_id char(10));create table dev_info(dev_no char(10),use原创 2010-06-11 22:06:00 · 1645 阅读 · 0 评论 -
例说一个ORACLE执行计划的查看
此例是不借助第三方工具,进行SQL执行计划的查看:Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as irsadmin SQL> explain plan for select * from loan_contract; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OU原创 2010-06-22 07:05:00 · 607 阅读 · 0 评论 -
Oracle Parallel Query
<br />Oracle Parallel Query(OPQ)可以将一个SQL statement分成多个片(chunks),然后在独自的CPU上通过多个process(子查询)进行并行运行。每个子查询同时读取一个大型表中的一块。所有子查询完毕以后,Oracle将结果会传给并行查询调度器,他会重新安排数据,如果需要则进行排序,并且将结果传递给最终用户。OPQ具有无限的伸缩性,因此,以前需要花费几分钟的全表检索,目前的响应时间却不到1秒。<br />OPQ 严重依赖于处理器的数量,通过并行运行之所以能极大地原创 2010-09-04 08:47:00 · 4353 阅读 · 0 评论 -
刷新ORACLE缓存
<br />很多时候,为了排除Cache对于调优测试的影响,我们常常需要手动刷新Buffer Cache,以促使Oracle重新执行物理访问。<br />在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache,其语法为:<br />1、alter session set events 'immediate trace name flush_cache level 1';<br />或者:<br />2、alter session set events = 'immedia原创 2010-09-05 08:15:00 · 5417 阅读 · 0 评论 -
in 和 exists性能研究
in 和exists从sql编程角度来说,in直观,exists不直观多一个select;in可以用于各种子查询,而exists好像只适宜于关联子查询。in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。一直以来认为exist原创 2011-07-14 18:58:53 · 4560 阅读 · 0 评论 -
Oracle 执行计划中一些参数的含义
card是指计划中这一步所处理的行数;cost指cbo中这一步所耗费的资源,这个值是相对值;bytes指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。·Cost:The cost assigned to each step of the query plan by原创 2011-08-13 07:52:49 · 3029 阅读 · 0 评论