033.笔记:使用EXPLAIN和STORED OUTLINES
1.oracle的sql trace实用程序 1.1对简单查询使用SQL_TRACE的简单步骤 1)初始化参数 SQL_TRACE --在10G中SQL_TRACE是不建议(向下兼容、将来不用)使用参数。 TIMED_STATISTICS=TRUE --收集时间统计 MAX_DUMP_FILE_SIZE=unlimited USER_DUMP_DEST 2)对SQL*Plus会话启用SQL_TRACE alter session set SQL_TRACE true; alter session set SQL_TRACE false; 3)查找跟踪文件 orcl_ora_3372.trc--3372是进程ID号(SPID) select spid,s.sid,s.serial#,p.username,p.program from v$process p,v
034.笔记:基本的提示语法
1.最常用的提示 最常用的10个提示: INDEX ORDERED PARALLEL FIRST_ROWS RULE FULL LEADING USE_NL APPEND USE_HASH 1.1 谨慎使用提示 提示可以分为两个主要类别:应用指令(usage directive)和编译器指令(compliler directive)。 应用指令是指在init.ora级别或系统参数文件(SPFILE)而不是语句级别中设置的提示(比如FIRST_ROWS到ALL_ROWS)。 如果您有一个OLTP(在线事务处理)数据库,那就是可以直接设置CHOOSE到FIRST_ROWS为优化器(在实例 级别中),使得优化器可以更快地返回最初的几行 (对于大多
032.笔记:表的连接和其他高级调整技术(3.其他高级调整技术)(未完成。。。)
1.第三方性能调整工具 有时候,可借助第三方工具。尽管不能修改代码,但您可以修改索引的使用方法。 2.调整分布式查询 如果编写的不好,分布式查询(SQL中使用DBLINK)有候会成为灾难,并导致极其糟糕的性能。特别是一个分布式数据库两个结点上的两张表的嵌套循环连接会非常慢,因为Oracle 将所有的数据移到本地机器来处理(取决于查询语句)。 【技巧】当不能避免使用分布式查询的时候,使用IN子句,设置操作符(例如UNION,或者MINUS),并采用任何可以降低数据库结点间的网络拥塞的技术。所定的查询如果将引起分布 式结点间
031.笔记:表的连接和其他高级调整技术(2.双表连接等)
1.双表连接:等尺寸表(基于成本) 书中这一节主要是介绍,在无索引的情况下。表的执行顺序和表的连接方法。 示例: select small1.col1,small2.col1 from small1,small2 where small1.col1=small2.col1; 如果示例中任何一张表都没有经过分析,Oracle将借助于以前版本的方法,即读取FROM子句中的最后一张表并使用排序合并连接(即使在Oracle 10g中也这样)。此 处强调这一点可以让您在遇到这种现象时,能意识到没有分析表。 【技巧】使用基于成本的优化器,并使用ORDERED提示时,FROM子句中的第一张表将作为驱动表。这取代了
030.笔记:表的连接和其他高级调整技术(1.连接方法)
前言:驱动表或者查询中的第一张访问的表是获得更佳性能的关键。如果优化器指定了错误的表作为查询中的驱动表,那么造成的差异会有天壤之别。通常,基于成本的优化器会选择正确的表,但在表中建立的的索引将影响它的正常工作。如果需要使用提示改变驱动表,这个现象说明需要改进索引计划。在一个有10张表的连接表中,将可能有3628800种组合,尝试所有的组合是非常耗时的举措。虽然可以使用LEADING提示来处理这个烦人的事,但与一开始就建立正确的索引模式相比,其代价仍然非常巨大。1.连接方法【必须了解的知识】1)哪张表将驱动查询(即访
029.笔记:基本的索引原理-索引的类型
1.B树索引 1.1 B树索引是树形结构,包括树根块(root block)、树枝块(branch block)、叶块(leaf block)。 branch block中,树枝行包含链中下一个叶块的ID号。 leaf block包含了索引值、ROWID,以及指向前一个和后一个树叶块的指针。Oracle可以从两个方向遍历这个树。 Oracle不会对索引列上包含null值的行进行索引。如果索引是多个列的组合索引,而其中列上包含NULL值,这一行就会处于包含NULL值的索引列中,且将被处理为空(视为NULL)。 【技巧】索引列的值都存储在索引中。因此,可以建立一个组合索引,这些索引可以直接满足查询
028.笔记:基本的索引原理1
1.基本的索引概念 【索引的五种扫描类型】 INDEX UNIQUE SCAN INDEX RANGE SCAN INDEX FAST FULL SCAN INDEX FULL SCAN index full scan(max/min)--10g后出现的索引扫描方法 INDEX SKIP SCAN BITMAP INDEX SINGLE VALUE BITMAP INDEX FAST FULL SCAN 2.组合索引 组合索引的扫描类型:UNIQUE SCAN、RANGE SCAN。如果组合索引的首列包括在查询中,就可以使用这两种扫描类型。 组全索引的特殊扫描类型:FAST FULL SCAN、INDEX FULL SCAN(FFS完全可以代替IFS)、INDEX SKIP SCAN 。如果组合索引的首列不包含在查询中
027.笔记:10g新功能
0.前言 可寻址内存的理论限制。 内存 直接可寻址 16位 64K(2的16次方字节) 32位 4G (2的32次方字节) 64位 16E(2的64次方字节)(1EB=1024PB,1PB=1024GB) 目前的ORACLE 10G数据库的容量可以达到8E。1.【网格计算】当完全实现网络计算时,这些网络资源可以存在于不同类型的硬件和操作系统上,即可以存在于完全不同的环境中。2.SYSAUX表空间 Oracle提供了新的视图V$SYSAUX_OCCUPANTS,其中显示了每个组件使用的空间数量以及Oracle提供的存储过程的名称,可以使用 这些存储过程将对象移入和移出SYSAUX