oracle的性能优化内容摘要:

止非必须的服务。 网络配置是性能调整的一项很重要的内容,而且很容易隐藏性能瓶颈。 ( 1)配置网卡使用最快速度和有效模式 ( 2)删除不需要的网络协议 ( 3)优化网络协议绑定顺序 ( 4)为 Oracle禁止或优化文件共享 网络配置的优化 1.碎片是如何产生的 2.碎片对系统的影响 ( 1)导致系统性能减弱 ( 2)浪费大量的表空间 Oracle碎片整理 3.自由范围的碎片计算 用 fsfi——free space fragmentation index(自由空间碎片索引)值来直观体现: fsfi=100*sqrt(max(extent)/sum(extents))*1/sqrt(sqrt(count(extents))) 4.自由范围的碎片整理 可以将表空间的缺省存储参数 pctincrease改为非 0。 一般将其设为 1,如: alter tablespace temp default storage(pctincrease 1)。 这样 smon便会将自由范围自动合并,达到碎片整理的目的。 也可以采用如下语句,通过手工合并自由范围来达到碎片整理的目的。 alter tablespace temp coalesce。 5.段的碎片整理 段由范围组成,在有些情况下,有必要对段的碎片进行整理。 要查看段的有关信息,可查看数据字典 DBA_segments,范围的信息可查看数据字典DBA_extents。 如果段的碎片过多, 将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。 这个过程可以用 import/export(输入 /输出)工具来完成。 export()命令有一个(压缩)标志,这个标志在读表时会引发 export确定该表所分配的物理空间量,它会向输出转储文件写入一个新的初始化存储参数,等于全部所分配空间。 若这个表关闭, 则使用 import()工具重新生成。 这样,它的数据会放入一个新的、较大的初始段中。 例如: exp user/password file= press=y grants=y indexes=y tables=(table1,table2)。 若输出成功,则从库中删除已输出的表,然后从输出转储文件中输入表: imp user/password file= mit=y buffer=64000 full=y。 这种方法可用于整个数据库。 另外,应该定期 shutdown database,从而清理 momery碎片。 Oracle系统参数的调整 1. Shared Pool and Library Cache Performance Tuning(共享池和 Library Cache) 共享池调整的技巧主要有: ( 1)刷共享池 刷( Flush)共享池可以使小块的内存合并为大块的内存。 当共享池的碎片过多时,能够暂时恢复性能。 刷共享池可以使用语句: alter system flush shared_pool。 ( 2)绑定变量 2. Buffer Cache Performance Tuning(数据库缓存调整) 从缓存调整的角度看,应力求避免以下的问题: ( 1)“缓存的最近最少使用( LRN)链”( cache buffers LRU chain)的加锁竞争; ( 2)“平均写队列”( Average Write Queue)长度过大; ( 3)过多时间花在等待“写完毕等待上”( write plete waits); ( 4)过多时间花在等待“缓冲释放等待”上( free buffer waits)。 3. Latch Contention(加锁或插销竞争) 插销加锁是 SGA中保护共享数据结构的低层的串行化机制。 插销 latch是一类可以非常快的获得和释放的锁。 插销锁的实现是依赖于操作系统的,尤其在关于一个进程是否会等待一个锁,和等多久方面。 有如下的锁(插销)需要调整: ( 1) Redo Copy/Allocation Latch:重写日志的复制 /分配插销 ( 2) Shared Pool Latch:共享池的插销 ( 3) Library Cache Latch: Library Cache插销 4. Redo Log Buffer Performance Tuning(重写日志缓冲的调整) LGWR 将重写日志缓冲中的重写项写到重写日志文件中。 一旦 LGWR将这些项复制到重写日志文件中,用户进程就可以重写这些项。 统计项目“ redo log space requests”反映了用户进程等待重写日志缓冲中空间的时间的数字。 ( 1)设置重写日志大小的提示: “ redo log space requests”的值应该接近 0。 ( 2)设定合适的重写日志的大小,建议每 1530分钟进行一次重写日志的切换。 5. Query Performance Tuning(查询效率的调整) 如果查询运行得很慢,请考虑以下这些方面: ( 1)希望这个查询运行的有多快以及有理由这样要求吗。 ( 2)优化模式 OPTIMIZER_MODE 设为何值。 ( 3)查询涉及的索引都是有效的吗。 ( 4)在数据库中有没有其他的长时间运行的查询(大查询)。 ( 5)表和索引上有统计信息吗。 ( 6)统计信息是被计算出来的还是被估计出来的。 对于查询的性能调整有两个主要的调试工具: TKPROF和AUTOTRACE。 6. Temporary Tablespace Performance Tuning(临时表空间的调整) 临时表空间的调整的技巧如下: 如果即使在稳定的状态下也存在很多的排序扩展锁( Sort Extent Pool latch)的竞争,应该通过修改临时表空间的 DEFAULT STORAGE 子句的 NEXT值来增大扩展块的大小。 如果存在很多的排序扩展锁( Sort Extent Pool latch)的竞争并且这种等待是由于过多的并发的排序造成的,应该增大 SORT_AREA_SIZE参数的大。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。