Oracle优化
文章平均质量分 75
就想叫筷子
这个作者很懒,什么都没留下…
展开
-
oracle 管道表(pipelined table)函数与普通表函数简单对比
看资料说管道表函数在返回结果时不是一次性返回全部结果,因此对于某些对响应比较看重的报表程序而言比较友好。而普通表函数要在所有结果都到齐后才一次性返回结果。下面就做一个实验来验证:首先创建一个自定义的集合类型create type test_obj as object(id number,name varchar2(10));用自定义的集合类型创建一个table类型creat...原创 2020-03-14 17:12:27 · 816 阅读 · 1 评论 -
Oracle优化之数据块结构
1、基本组成块头:存放一些基本信息,如物理位置,块所属的段类型(数据段、索引段、回滚段等)表目录:如果块中存储的数据为表数据,则表目录中保存这个表的相关信息行目录:如果块中存储的数据为表数据,则行目录中保存数据行的相关信息。行记录:真正存放数据的区域,这部分空间已被使用。自由空间:未使用的区域,用于新行的插入或者已经存在行的更新。2、自由空间(free spac...原创 2019-01-16 20:07:37 · 718 阅读 · 0 评论 -
Oracle优化之连接方法
nested loop(嵌套循环):存在着两个循环,一个是外部循环,提取驱动表中符合条件的每条记录。另外一个是内部循环,根据外循环中提取的每条记录对内部表进行连接查询相应的记录。由于这两个循环是嵌套进行的,故此种连接方法称为嵌套循环连接。特点:1.一个大表和一个小表(驱动表)连接,连接方式可以是等值或者是不等值2.驱动表数据较小或者内部表已连接的列有唯一性索引或者高度可选的非唯一性...原创 2019-01-16 20:12:15 · 1733 阅读 · 0 评论 -
Oracle优化之10g的统计信息自动收集策略
Oracle 10g中统计信息默认可以自动收集,由GATHER_STATS_JOB作业收集得到,只有当数据库对象没有统计信息或者统计信息已经过期(Oracle 10G中是否过期的标准是数据库对象被修改的记录行数超过10%,该信息由Modification Monitoring来追踪完成)时才对该对象进行信息统计,该作业在数据库创建或升级时由Scheduler自动创建,这些作业可以从视图DBA_...原创 2019-01-16 20:14:39 · 834 阅读 · 0 评论 -
Oracle优化之10g的统计信息手动收集方法
10g的统计信息手动收集方法除系统自动收集统计信息外,还可以通过手动调用包来收集统计信息常用的包如下dbms_stats.gather_table_stats();--收集指定表的统计信息常用参数Tabname –表名称Partname—分区名称estimate_percent—统计的样品比例,默认oracle自动选择method_opt –统计方式,默认FOR A...原创 2019-01-16 20:15:43 · 1106 阅读 · 0 评论 -
Oracle之动态采样
动态取样是为谓词和表/索引统计收集更加精确的信息从而提高服务器性能,信息越精确产生的性能更好。一般发生在生成执行计划阶段。可以使用动态取样的情况: 1.) 在收集的统计不能使用或会导致严重的估计错误时估计单表的谓词选择性; 2.) 估计没有统计的表/索引的统计; 3.) 估计统计过期的表和索引的统计;动态取样特征由参数OPTIMIZER_DYNAMIC_SAMPLI...原创 2019-01-16 20:16:38 · 744 阅读 · 0 评论 -
Oracle优化之B树索引
B树索引目前数据库中最常用的索引,构造类似于二叉树,能根据键值提供一行或一个行集的快速访问,其中的’B’代表平衡, 通常使用在频繁使用查询谓词的列上,一般这类列的选择度都较高。使用场景当我们希望从表中只返回少量的数据(占比很小,这个比例通常经验值是5%,不过根据表的不同也有不用,一个瘦表(通常只有几列)可能在20%-30%,一个胖表(列很多或列很宽)可能在2%-3%)时会使用索引。如下...原创 2019-01-16 20:19:12 · 662 阅读 · 0 评论 -
Oracle优化之位图索引
在B树索引中,索引键值与行之间存在一种一对一的关系,一个索引键值引向一行,而在位图索引中,一个索引键值则对应多行,位图索引通常适用于高度重复(相对于很多的行数,列值可能只有几个,列值/行数越接近0则越适合使用位图索引)而且经常只读的列,通常查询这种列返回的数据占比很大,因此也不适合使用B树索引。对比来看,B树索引通常是选择性的,位图索引位通常不是选择性的。位图索引的键值使用0,1存储,相较B...原创 2019-01-16 20:20:25 · 216 阅读 · 0 评论 -
Oracle中关于8k表空间与16k表空间IO性能对比
Oracle中,当执行FTS时,会触发多块读。而在这个情况下,如果单个oracle块越大装载的数据就越多。由此,对比一下8k与16k的性能差别。--设置db_16k_cache_sizealter system set db_16k_cache_size=100M;--创建16k表空间create tablespace tb1 datafile'/u01/app/oracle/...原创 2019-06-19 09:54:56 · 1568 阅读 · 1 评论