摘要: 数据库优化的讨论可以说是一个永恒的主题。资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等。还有的人认为要抓出执行最慢的语句来进行优化。但实际情况是,提出疑问的人很可能根本不懂执行计划,更不要说statspack了。而我认为,数据库优化,应该首先从大的方面考虑:网络、服务器硬件配置、操作系统配置、Oracle服务器配置、数据结构组织、然后才是具体的调整。实际上网络、硬件等往往无法决定更换,应用程序一般也无法修改,因此应该着重从数据库配置、数据结构上来下手,首先让数据库有一个良好的配置,然后再考虑具体优化某些过慢的语句。我在给我的用户系统进行 阅读全文
posted @ 2010-12-21 16:34 无双的小宝 阅读(5180) 评论(0) 推荐(0) 编辑
摘要: oracle性能不好,首要检查数据库服务器的硬件配置。包括内存参数调整,oracle9i以后可以在 企业管理器 enterprise manager 中 例程--配置--内存 中查看内存以及pool的大小,通过建议值来设置,该工作应该隔段时间就检查一次,因为pool的设置和实际的数据量是相关的。一般windows32位服务器上,分配给oracle的内存不必超过1.7G,因为寻址能力就这么大,多余了也是浪费。整个物理内存的70%应该分配给oracle。在 例程--配置--内存 中,可以看到共享池share pool,它里面存放的是package,procedure,function,常用sql, 阅读全文
posted @ 2010-12-21 16:30 无双的小宝 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 查找运行系统里bad sql是一个古老的话题, 我们要根据自己的实际情况来分析。绝不能教条的运用下面介绍的这些方法。使用这些SQL语句时,会对系统表产生分组操作,当然也增大了系统的负载。建议大家在系统启动了一段时间后,在半夜负载较轻的时间定时(例如:一个月)来查一查。一定要具体问题具体分析。 下面是我收藏的一些查找bad sql的方法: select * from (select buffer_gets, sql_text from v$sqlarea where buffer_gets > 500000 order by buffer_gets desc) where rownum&l 阅读全文
posted @ 2010-12-21 16:27 无双的小宝 阅读(506) 评论(0) 推荐(0) 编辑
摘要: Partition Pruning 在数据仓库中分区修剪是一种非常有效的性能特性。分析修剪分析SQL中的WHERE 和FROM字句,从而在查询中消除不不必要分区。分区修剪技术能大大的减少从磁盘上读取的数据量,从而缩短运行时间,改善查询性能,减少资源浪费。即使你的索引分区和表分区不同,分区修剪也可以在索引上生效(global partition index),从而消除不必要的索引分区。 分区修剪的特性依赖SQL语句,Oracle 有两种分区修剪:动态修剪和静态修剪。静态修剪发生在编译时期,在执行计划指定的时候,已经知道那些分区会被使用。而动态修剪发生在运行时,也就是说在运行的时候,才会知道那些分 阅读全文
posted @ 2010-12-21 16:11 无双的小宝 阅读(888) 评论(0) 推荐(0) 编辑
摘要: oracle的逻辑读和物理读 1.物理读即是把数据从磁盘读入到buffer catch的过程。 通常情况下是,如果需要数据的时候发现不存在于buffer catch当中,即oracle就会执行物理读。 例子如下: C:/Documents and Settings/Administrator>sqlplus jenny/jenny SQL> set autotrace traceonly; SQL> select * from t_test1; ---------------------------------------------------------- Plan ha 阅读全文
posted @ 2010-12-21 15:47 无双的小宝 阅读(10995) 评论(3) 推荐(0) 编辑
摘要: Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、First rows、All rows这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的项,执行计划就变了?1、优化器的优化方式Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule- 阅读全文
posted @ 2010-12-21 15:44 无双的小宝 阅读(5176) 评论(0) 推荐(0) 编辑