文档介绍:I'm calvin
专注技术,专注未来
Oracle 数据库优化总结
分类: oracle管理 2013-06-07 17:25 309人阅读评论(0) 收藏举报
Oracle优化
,这个是最重要的。
。一般情况下,对于频繁访问但是不频繁修改的数据,
内部设计应当物理不规范化;对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。
,优化sga、pga等(11g已经实现了sga+pga自动化,但有的时候仍然需要手动
进行调整),适当的将小表keep到cache中。
1)减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分
布式数据库对象可以减少对数据库的查询次数。
2)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分
析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。
3)限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查
询值,动态SQL也会重新进行语法分析。
4)避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行时,通常要进行
FTS,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个漫长的
过程。
5)如果对有些表中的数据有约束,最好在建表的SQL语句用描述完整性来实现,而不是用SQL
程序中实现。
6)可以通过取消自动提交模式,将SQL语句汇集一组执行后集中提交,程序还可以通过显式地
用COMMIT和ROLLBACL进行提交和回滚该事务。
7)检索大量数据时费时很长,设置行预取数则能改善系统的工作表现,设置一个最大值,当
SQL语句返回行超过该值,数值库暂时停止执行,除非用户发出新的指令,开始组织并显示数据,
而不是让用户继续等待。
,将不同的数据文件、控制文件、日志文件放在不同的磁盘,表和索引放在不同的表空
间,设置合适的block大小,设置异步io等。
,减少数据块头的更新和数据库故障的发生。
1
1)分区
2)压缩
3)建立合适的索引
4)设置合适的pctfree,减少行连接和行迁移
5)设置合适的storage,控制表碎片
6)其他等
,使用Parallel Query Option(PQO,并行查询选择)方式进行数据查询,
使用PQO方式不仅可以在多个CPU间分配SQL语句的请求处理,当所查询的数据处于不同的磁盘
时,一个个独立的进程可以同时进行数据读取。
1)使用直接的OLE DB数据库连接方式。
通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLE DB方式。ADO
是建立在OLE DB技术上的,为了支持ODBC,必须建立相应的OLE DB到ODBC的调用转换,而
使用直接的OLE DB方式则不需转换,从而提高处理速度。
2)使用Connection Pool机制
在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时
间。