WEB开发网
开发学院数据库Oracle SQL语句性能调整 阅读

SQL语句性能调整

 2007-05-06 12:05:38 来源:WEB开发网   
核心提示: PCTUSED存储参数PCTUSED存储参数告诉ORACLE什么时候将以前满的数据块加到空闲列表中,当记录从数据表中删除时,SQL语句性能调整(4),数据库的数据块就有空间接受新的记录,但只有当填充的空间降到PCTUSED值以下时,3、 同优化器下的调整;基于成本优化器(CBO):(1)O

PCTUSED存储参数

PCTUSED存储参数告诉ORACLE什么时候将以前满的数据块加到空闲列表中。当记录从数据表中删除时,数据库的数据块就有空间接受新的记录,但只有当填充的空间降到PCTUSED值以下时,该数据块才被连接到空闲列表中,才可以往其中插入数据。PCTUSED的默认值是PCTUSED=40。

存储参数规则小结

(1)PCTUSED较高意味着相对较满的数据块会被放置到空闲列表中,从而有效的重复使用数据块的空间,但会导致I/O消耗。PCTUSED低意味着在一个数据块快空的时候才被放置到空闲列表中,数据块一次能接受很多的记录,因此可以减少I/O消耗,提高性能。

(2)PCTFREE的值较大意味着数据块没有被利用多少就从空闲列表中断开连接,不利于数据块的充分使用。PCTFREE过小的结果是,在更新时可能会出现数据记录迁移(Migration)的情况。(注:数据记录迁移(Migration)是指记录在是UPDATE操作扩展了一个VARCHAR2类型的列或BLOB列后,PCTFREE参数所指定的空间不够扩展,从而记录被ORACLE强制迁移到新的数据块,发生这种情况将较严重的影响ORACLE的性能,出现更新缓慢)。

(3)在批量的插入、删除或者更新操作之前,先删除该表上的索引,在操作完毕之后在重新建立,这样有助于提高批量操作的整体速度,并且保证B树索引在操作之后有良好的性能。

3、 同优化器下的调整;

基于成本优化器(CBO):

(1)ORACLE 8i 以上版本更多地使用成本优化器,因为它更加智能;

(2)通过optimizer_mode=all_rows 或 first_rows来选择CBO;通过alter session set optimizer_goal=all_rows 或 first_rows来选择CBO;通过添加hint来选择CBO;

(3)使用基于成本优化的一个关键是:存在表和索引的统计资料。通过analyze table 获得表的统计资料;通过analyze index获得索引的统计资料。

上一页  1 2 3 4 5  下一页

Tags:SQL 语句 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接