数据库优化之参数设置

合集下载

MySQL中的参数配置及调优方法

MySQL中的参数配置及调优方法

MySQL中的参数配置及调优方法MySQL是当前最流行的开源关系型数据库管理系统之一。

它的广泛应用和可灵活配置的特点使得它成为许多企业和个人的首选。

然而,未经优化的MySQL可能会面临性能下降、资源浪费等问题,因此正确配置和调优MySQL参数是至关重要的。

本文将介绍MySQL中的参数配置及调优方法,帮助读者解决数据库性能问题。

一、参数配置在MySQL中,有许多参数可以配置,以满足不同应用的需求。

以下是一些重要参数的简要介绍:1. 缓冲区参数- innodb_buffer_pool_size:InnoDB存储引擎使用的缓冲池大小。

增大该值可以提高读写性能,但会占用更多内存。

- key_buffer_size:MyISAM存储引擎使用的键缓冲区大小。

同样,增大该值可以提高性能,但会占用更多内存。

2. 连接参数- max_connections:允许的最大连接数。

该值应根据应用的并发连接数进行适当调整,以避免资源浪费和连接超时问题。

- wait_timeout:连接空闲后等待关闭的时间。

默认值为28800秒,可以根据具体需求进行调整。

3. 查询缓存参数- query_cache_type:查询缓存类型。

0表示禁用查询缓存,1表示启用,2表示只缓存SQL_NO_CACHE标记的查询结果。

- query_cache_size:查询缓存大小。

指定用于存储查询缓存的内存大小。

二、调优方法在配置参数之前,我们需要先了解数据库当前的性能瓶颈。

可以通过以下几种方式进行分析:1. 使用MySQL自带的性能监控工具MySQL提供了一系列的性能监控工具,如:MySQL Performance Schema、MySQL Enterprise Monitor等。

通过这些工具,可以实时监控MySQL的运行状态,获得性能数据。

2. 使用开源的性能监控工具除了MySQL自带的工具,还有一些开源的性能监控工具可以用于MySQL性能分析。

MySQL性能优化之参数配置

MySQL性能优化之参数配置

MySQL性能优化之参数配置1、⽬的:通过根据服务器⽬前状况,修改Mysql的系统参数,达到合理利⽤服务器现有资源,最⼤合理的提⾼MySQL性能。

2、服务器参数:32G内存、4个CPU,每个CPU 8核。

3、MySQL⽬前安装状况。

MySQL⽬前安装,⽤的是MySQL默认的最⼤⽀持配置。

拷贝的是f.编码已修改为UTF-8.具体修改及安装MySQL,可以参考<<Linux系统上安装MySQL 5.5>>帮助⽂档。

4、修改MySQL配置打开MySQL配置⽂件fvi /etc/f4.1 MySQL⾮缓存参数变量介绍及修改4.1.1修改back_log参数值:由默认的50修改为500.(每个连接256kb,占⽤:125M)back_log=500back_log值指出在MySQL暂时停⽌回答新请求之前的短时间内多少个请求可以被存在堆栈中。

也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某⼀连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时.back_log值不能超过TCP/IP连接的侦听队列的⼤⼩。

若超过则⽆效,查看当前系统的TCP/IP连接的侦听队列的⼤⼩命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog⽬前系统为1024。

对于Linux系统推荐设置为⼩于512的整数。

修改系统内核参数,)/html/64/n-810764.html查看mysql 当前系统默认back_log值,命令:show variables like 'back_log'; 查看当前数量4.1.2修改wait_timeout参数值,由默认的8⼩时,修改为30分钟。

MySQL性能优化之max_connections配置参数浅析

MySQL性能优化之max_connections配置参数浅析

MySQL性能优化之max_connections配置参数浅析MySQL的max_connections参数⽤来设置最⼤连接(⽤户)数。

每个连接MySQL的⽤户均算作⼀个连接,max_connections 的默认值为100。

本⽂将讲解此参数的详细作⽤与性能影响。

与max_connections有关的特性MySQL⽆论如何都会保留⼀个⽤于管理员(SUPER)登陆的连接,⽤于管理员连接数据库进⾏维护操作,即使当前连接数已经达到了max_connections。

因此MySQL的实际最⼤可连接数为max_connections+1;这个参数实际起作⽤的最⼤值(实际最⼤可连接数)为16384,即该参数最⼤值不能超过16384,即使超过也以16384为准;增加max_connections参数的值,不会占⽤太多系统资源。

系统资源(CPU、内存)的占⽤主要取决于查询的密度、效率等;该参数设置过⼩的最明显特征是出现”Too many connections”错误;我们先来看下如何查看当前mysql的max_connections的值:如下sql复制代码代码如下:show variables like "max_connections";显⽰的结果如下格式+-----------------+-------+| Variable_name | Value |+-----------------+-------+| max_connections | 100 |+-----------------+-------+可以通过下⾯的sql语句将max_connections的值设置为200,当然前提是当前登录的⽤户有⾜够的权限:set global max_connections = 200;这个设置会马上⽣效,但是当mysql重启时这个设置会失效,更好的办法是修改mysql的ini配置⽂件my.ini找到mysqld块,修改或者添加下⾯的设置:max_connections=200这样修改之后,即便重启mysql也会默认载⼊这个配置了不过为了安全期间,建议⼤家直接到my.ini⾥修改,么有可以加上。

MySQL调优参数配置

MySQL调优参数配置

MySQL调优参数配置MySQL服务器硬件优化硬盘:mysql 对磁盘的要求⽐较⾼,包括随机读写的带宽和IOPS和顺序读写的带宽和IOPS,可以通过使⽤⾼转速磁盘、商业FC存储、固态硬盘等⽅式提⾼IOPS及读写带宽;内存:mysql 服务器内存越⾼,可加载的热点索引数据越多,可提供给操作线程的内存越多。

Mysql 读写操作越快;CPU: mysql正常的查询对CPU要求⽐较低,如果磁盘和内存不⾜CPU配置过⾼更容易引起磁盘吞吐量下降严重导致性能过低,所以硬件优化⾸先优化硬盘和内存,只有硬盘和内存⽆瓶颈后增加CPU才会使mysql性能更⾼如果有⼤量的慢查询则很容易将CPU跑满,所以CPU如果过⾼应⾸先检查慢查询优化慢查询,如慢查询优化完成应⾸先检查是否由于磁盘IO过⾼引起的CPU过⾼。

内存优化-数据索引页共享内存innodb_buffer_pool_size1. 作⽤:pool-size可以缓存索引和⾏数据,值越⼤,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的75-80%2. 调优参考计算⽅法:val = Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100%val > 95% 则考虑增⼤ innodb_buffer_pool_size,建议使⽤物理内存的75%val < 95% 则考虑减⼩ innodb_buffer_pool_size,建议设置为:Innodb_buffer_pool_pages_data * Innodb_page_size *1.05 / (102410241024)innodb_buffer_pool_instances1. 作⽤:innodb_buffer_pool_instances的值主要⽤于将innodb buffer pool进⾏划分,通过划分innodbbuffer pool为多个实例,可以提⾼并发能⼒,并且减少了不同线程读写造成的缓冲页。

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明Oracle数据库内存优化是提高数据库性能的重要手段之一。

通过设置合理的内存参数,可以有效地削减IO操作,提高数据访问速度。

本文将介绍一些常见的Oracle数据库内存优化操作。

一、调整PGA参数PGA(Program Global Area)是每个数据库会话独有的内存区域,用于存储排序、哈希操作等临时数据。

调整PGA参数可以提高排序和连接操作的性能。

1. 设置PGA_AGGREGATE_TARGET参数该参数把握PGA内存的总量,一般建议设置为SGA的1/3到1/2。

可以通过以下命令设置:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM;2. 调整SORT_AREA_SIZE参数该参数把握每个排序操作使用的PGA内存大小,一般建议设置为100MB到200MB。

可以通过以下命令设置:ALTER SESSION SET SORT_AREA_SIZE = XXXM;3. 调整HASH_AREA_SIZE参数第1页/共4页该参数把握每个哈希操作使用的PGA内存大小,一般建议设置为SORT_AREA_SIZE的1/2到1倍。

可以通过以下命令设置:ALTER SESSION SET HASH_AREA_SIZE = XXXM;二、调整SGA参数SGA(System Global Area)是Oracle数据库的全局共享内存区域,用于存储缓存数据、SQL执行方案等。

调整SGA参数可以提高数据访问的速度。

1. 调整SHARED_POOL_SIZE参数该参数把握缓存SQL语句的内存大小,一般建议设置为SGA的1/4到1/3。

可以通过以下命令设置:ALTER SYSTEM SET SHARED_POOL_SIZE=XXXM;2. 调整DB_CACHE_SIZE参数该参数把握数据库缓冲区的内存大小,一般建议设置为SGA的1/2到2/3。

可以通过以下命令设置:ALTER SYSTEM SET DB_CACHE_SIZE=XXXM;3. 调整LOG_BUFFER参数该参数把握数据库日志缓冲区的内存大小,一般建议设置为10MB到100MB。

数据库优化器的性能调整与参数配置

数据库优化器的性能调整与参数配置

数据库优化器的性能调整与参数配置数据库优化器是数据库管理系统中非常重要的组件之一,它负责解析SQL语句并决定最佳的执行计划。

这对于提高数据库性能具有至关重要的作用。

为了优化数据库性能,我们需要对数据库优化器进行性能调整和参数配置。

首先,性能调整方面,我们需要考虑以下几个因素。

1. 数据库统计信息收集:优化器依赖于准确的统计信息来生成最优的执行计划。

因此,我们需要定期收集数据库的统计信息,如表的行数、索引的选择度等。

可以通过使用统计收集任务或手动收集统计信息来实现。

2. 自动调整参数:大多数数据库系统提供了自动调整参数的功能,通过监控数据库的性能指标,如CPU利用率、I/O等,系统可以自动调整优化器相关的参数。

这些参数可以控制优化器的行为,如选择成本计算模型、连接方法等。

启用自动调整参数可以有效地提高数据库性能。

3. 执行计划评估:不同的执行计划对查询性能有着不同的影响。

在性能调整过程中,我们需要评估和比较不同的执行计划,并选择性能最好的计划。

可以通过使用特定的SQL调优工具或手动分析执行计划来评估查询的性能。

其次,参数配置方面,我们需要关注以下几个参数。

1. 查询优化:数据库系统提供了一些查询优化相关的参数,如查询的超时时间、缓存的大小等。

根据实际需求,我们可以调整这些参数以获得更好的查询性能。

例如,如果查询负载较高且经常发生超时,可以增加查询的超时时间,或者增加缓存的大小以减少磁盘I/O对查询性能的影响。

2. 内存配置:优化器需要使用一定的内存来进行查询优化和执行计划的生成。

因此,我们需要根据数据库的大小和负载情况来配置数据库系统的内存参数。

如果内存配置不足,可能导致优化器无法生成最优的执行计划,从而影响查询性能。

3. 并行度设置:在性能调优过程中,我们可以考虑使用并行查询来提高查询的执行速度。

并行查询将查询任务分成多个子任务,并在多个CPU上并行执行。

可以通过调整并行度相关的参数来控制并行查询的行为,如最大并行度、并行度阈值等。

MySQL中的动态参数配置与调优技巧

MySQL中的动态参数配置与调优技巧MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序中。

为了确保数据库的性能和稳定性,合理配置和调优数据库参数是至关重要的。

本文将介绍MySQL中的动态参数配置与调优技巧,帮助您优化数据库性能。

1. 动态参数配置的概念MySQL中的动态参数配置是指可以在运行时对数据库参数进行更改和调整,而无需重启数据库服务。

这使得数据库管理员能够根据实际需求动态地调整参数以优化数据库性能。

2. 动态参数的类型MySQL中的动态参数可以分为全局动态参数和会话动态参数两种类型。

全局动态参数是指对整个数据库实例生效的参数。

它可以通过修改f配置文件或者使用SET GLOBAL命令进行设置。

全局动态参数的修改需要重启数据库服务才能生效。

会话动态参数是指只对当前会话生效的参数。

它可以通过修改session或者使用SET SESSION命令进行设置。

会话动态参数的修改在当前会话关闭后会失效。

3. 常见的动态参数配置与调优技巧3.1 innodb_buffer_pool_sizeinnodb_buffer_pool_size是InnoDB存储引擎使用的内存缓冲区大小。

适当调整这个参数的大小可以提高数据库的读取性能。

一般建议将其设置为系统内存的70-80%。

3.2 innodb_log_file_sizeinnodb_log_file_size是InnoDB存储引擎的日志文件大小。

适当调整日志文件大小可以提高数据库的写入性能。

一般建议将其设置为1GB。

3.3 max_connectionsmax_connections是MySQL服务器支持的最大并发连接数。

如果应用程序需要处理大量并发请求,可以适当增加这个参数的值。

但是要注意,增加max_connections会增加服务器资源的消耗,需要根据实际情况进行调整。

3.4 query_cache_type和query_cache_sizequery_cache_type是指查询缓存的类型,query_cache_size是指查询缓存的大小。

Oracle数据库参数优化

千里之行,始于足下。

Oracle数据库参数优化Oracle数据库参数优化是指通过调整数据库的配置参数,提高数据库的性能和稳定性。

下面是一些常见的Oracle数据库参数优化技巧:1. SGA参数优化:- 调整sga_target参数以控制SGA的大小。

SGA包括数据库缓冲区、共享池、重做日志缓冲区等,适当调整SGA的大小可以减少IO操作,提高数据库性能。

- 调整db_cache_size参数以增大数据库缓冲区的大小,提高数据块的访问速度。

- 调整shared_pool_size参数以增大共享池的大小,提高SQL语句的解析和执行效率。

2. PGA参数优化:- 调整pga_aggregate_target参数以控制PGA的大小。

PGA是用于处理SQL查询和排序的内存区域,适当调整PGA的大小可以减少磁盘IO操作,提高查询和排序的性能。

3. Redo日志参数优化:- 调整log_buffer参数以增大重做日志缓冲区的大小,减少频繁的重做日志刷新操作,提高数据库的写入性能。

- 调整log_checkpoint_timeout参数以控制重做日志刷新的频率,避免过于频繁的刷新。

4. 并行处理参数优化:- 调整parallel_max_servers参数以增大并行处理的资源限制,提高并行查询和并行DML操作的性能。

第1页/共2页锲而不舍,金石可镂。

- 调整parallel_min_servers参数以设置最小的并行处理资源数,避免并行操作的启动延迟。

5. SQL优化:- 使用合适的索引和优化的SQL语句,优化查询的执行计划。

- 使用绑定变量而不是直接将参数传递到SQL语句中,避免SQL重解析,提高性能。

6. 服务器参数优化:- 调整processes参数以增加数据库的并发连接数。

- 调整sessions参数以控制数据库的最大会话数。

- 调整open_cursors参数以增大打开游标的数量,避免游标溢出。

以上是一些常见的Oracle数据库参数优化技巧,但具体的优化策略需要根据实际情况进行调整,可以参考Oracle官方文档和专业的DBA建议。

Oracle数据库参数优化和调整参数主要有以下内容

Oracle数据库参数优化和调整参数主要有以下内容:(1)优化初始参数(2)优化内存(3)优化I/O(4)优化资源争用(5)其它参数优化可变参数的优化参数按其作用可以分为两大类,一大类是起限制作用的,如OPEN_CURSORS;另一大类是影响系统性能的,如DB_BLOCK_BUFFERS。

在进行数据库系统性能优化时,需要熟练掌握和了解一些可变参数。

本文讨论了一些对系统性能有较大影响的参数。

限制类可变参数(1)DML_LOCKS该参数表明多少个用户,可同时能修改多少张表。

例如:有三个用户同时修改二张表,则要求表上的总数为6。

若置为0,则组织队列不起作用,其性能会稍有提高。

使用该参数时不能用DROP TABLE、CREATE INDEX或显式封锁。

(2)LICENSE_MAX_SESSION该参数指出允许并发用户会话的最大数。

若此参数为0,则不能实施并发。

若并发的用户会话数已达到此极限,则只有具有RESTRICTED SESSION权限的用户才能连接到服务器。

(3)LICENSE_MAX_USERS该参数指出在一个数据库上可建立的最大用户数。

当达到最大值时,便不能再建新用户,可改变此值以放松限制。

在LICENSE_MAX_SESSION 或LICENSE_MAX_USER为0时,则并发会话或任何用户都不能用。

若对不同的实例,此参数不同时,则以第一个登录的数据库实例的参数为准。

(4)MAX_DUMP_FILE_SIZE该参数指定操作系统中写跟踪文件的块的最大值。

可用此值来限制跟踪文件的空间。

(5)OPEN_CURSORS该参数指明一个用户进程能同时打开光标的最大数,它能限制每个用户进程占用的内存空间量。

(6)OPEN_LINKS该参数指定并发连接到远程数据库的最大用户进程数。

若同时引用多个数据库,则应该增大该值。

例如:同时交替访问A、B和C三个数据库时,若OPEN_LINKS设置为2,则需花费等待连接时间。

数据库_DB2数据库优化

数据库_DB2数据库优化DB2数据库是一种关系型数据库管理系统,由IBM开发和维护。

为了提高DB2数据库的性能和效率,需要进行一系列的优化操作。

下面将介绍一些常见的DB2数据库优化方法。

1.确保合适的硬件配置:DB2数据库的性能很大程度上依赖于底层硬件的性能。

因此,为了获得最佳性能,需要确保数据库运行在合适的硬件配置下。

这包括选择合适的处理器、内存和磁盘配置。

2.优化数据库设计:良好的数据库设计可以提高数据库的性能。

可以通过合理的表设计、索引设计和关联设计来减少数据的冗余和重复,从而提高查询和更新的效率。

3.数据库分区:当数据库中的数据量增加时,可以考虑对数据库进行分区,将数据划分为多个分区存储。

这样可以提高查询和更新的效率,减少锁冲突,并且可以利用多个处理器并行处理多个分区。

4.合理使用索引:索引是提高数据库查询性能的重要手段。

在创建索引时,需要根据实际情况选择合适的列和索引类型,并避免创建过多的索引,以防止影响更新操作的性能。

5.定期收集统计信息:收集数据库表的统计信息可以帮助DB2优化器生成更高效的查询计划。

可以使用DB2提供的统计信息收集工具来定期收集表的统计信息,并确保统计信息是最新的。

6.合理设置数据库参数:DB2数据库有很多参数可以进行优化配置。

这些参数包括缓冲池大小、日志文件大小和数据库连接数等。

通过合理设置这些参数,可以提高数据库的性能和响应速度。

7.优化SQL查询语句:SQL查询语句的性能直接影响数据库的性能。

可以通过使用合适的连接方式、避免使用不必要的子查询和关联查询等方式来优化查询语句。

8.避免长事务:长时间运行的事务会占用数据库资源,影响其他查询和更新操作的性能。

因此,需要尽量避免长时间运行的事务,或者使用事务分解等方式将长事务分解为多个短事务。

9.定期清理无用数据:数据库中的无用数据会占用磁盘空间,并影响查询和更新操作的性能。

因此,需要定期清理无用数据,例如删除过期的日志文件、归档数据和临时表等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、SGA1、Shared pool tunningShared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。

Gets:(parse)在namespace中查找对象的次数;Pins:(execution)在namespace中读取或执行对象的次数;Reloads:(reparse)在执行阶段library cache misses的次数,导致sql需要重新解析。

1)检查v$librarycache中sql area的gethitratio是否超过90%,如果未超过90%,应该检查应用代码,提高应用代码的效率。

Select gethitratio from v$librarycache where namespace=’sql area’;2) v$librarycache中reloads/pins的比率应该小于1%,如果大于1%,应该增加参数shared_pool_size的值。

Select sum(pins) “executions”,sum(reloads) “cachemisses”,sum(reloads)/sum(pins) from v$librarycache;reloads/pins>1%有两种可能,一种是library cache空间不足,一种是sql中引用的对象不合法。

3)shared pool reserved size一般是shared pool size的10%,不能超过50%。

V$shared_pool_reserved中的request misses=0或没有持续增长,或者free_memory大于shared pool reserved size的50%,表明shared pool reserved size过大,可以压缩。

4)将大的匿名pl/sql代码块转换成小的匿名pl/sql代码块调用存储过程。

5)从9i开始,可以将execution plan与sql语句一起保存在library cache中,方便进行性能诊断。

从v$sql_plan中可以看到execution plans。

6)保留大的对象在shared pool中。

大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。

因此需要将一些常用的大的对象保留在shared pool中,下列对象需要保留在shared pool中:a. 经常使用的存储过程;b. 经常操作的表上的已编译的触发器c. Sequence,因为Sequence移出shared pool后可能产生号码丢失。

查找没有保存在library cache中的大对象:Select * from v$db_object_cache where sharable_mem>10000 and type in('PACKAGE','PROCEDURE','FUNCTION','PACKAGE BODY') and kept='NO';将这些对象保存在library cache中:Execute dbms_shared_pool.keep(‘package_name’);对应脚本:dbmspool.sql7)查找是否存在过大的匿名pl/sql代码块。

两种解决方案:A.转换成小的匿名块调用存储过程B.将其保留在shared pool中查找是否存在过大的匿名pl/sql块:Select sql_text from v$sqlarea where command_type=47 and length(sql_text)>500;8)Dictionary cache的优化避免出现Dictionary cache的misses,或者misses的数量保持稳定,只能通过调整shared_pool_size来间接调整dictionary cache的大小。

Percent misses应该很低:大部分应该低于2%,合计应该低于15%Select sum(getmisses)/sum(gets) from v$rowcache;若超过15%,增加shared_pool_size的值。

2、Buffer Cache1)granule大小的设置,db_cache_size以字节为单位定义了default buffer pool的大小。

如果SGA<128M,granule=4M,否则granule=16M,即需要调整sga的时候以granule为单位增加大小,并且sga的大小应该是granule的整数倍。

2) 根据v$db_cache_advice调整buffer cache的大小SELECTsize_for_estimate,buffers_for_estimate,estd_physical_read_factor,estd_physical_ reads FROM v$db_cache_advice WHERE NAME='DEFAULT' AND advice_status='ON' AND block_size=(SELECT Value FROM v$parameter WHERE NAME='db_block_size');estd_physical_read_factor<=13) 统计buffer cache的cache hit ratio>90%,如果低于90%,可以用下列方案解决:增加buffer cache的值;使用多个buffer pool;Cache table;为 sorting and parallel reads 建独立的buffer cache;SELECT NAME,value FROM v$sysstat WHERE NAME IN ('session logical reads','physical reads','physical reads direct','physical reads direct(lob)');Cache hit ratio=1-(physical reads-physical reads direct-physical reads direct (lob))/session logical reads;Select 1-(phy.value-dir.value-lob.value)/log.value from v$sysstat log, v$sysstat phy, v$sysstat dir, v$sysstat LOB where ='session logical reads' and ='physical reads' and ='physical reads direct' and='physical reads direct (lob)';影响cache hit ratio的因素:全表扫描;应用设计;大表的随机访问;cache hits的不均衡分布4)表空间使用自动空间管理,消除了自由空间列表的需求,可以减少数据库的竞争3、其他SGA对象1)redo log buffer对应的参数是log_buffer,缺省值与 OS相关,一般是500K。

检查v$session_wait中是否存在log buffer wait,v$sysstat中是否存在redo buffer allocation retriesA、检查是否存在log buffer wait:Select * from v$session_wait where event=’log buffer wait’ ;如果出现等待,一是可以增加log buffer的大小,也可以通过将log 文件移到访问速度更快的磁盘来解决。

B、Select name,value from v$sysstat where name in (‘redo buffer allocation retries’,’redo entries’)Redo buffer allocation retries接近0,小于redo entries 的1%,如果一直在增长,表明进程已经不得不等待redo buffer的空间。

如果Redo buffer allocation retries过大,增加log_buffer的值。

C、检查日志文件上是否存在磁盘IO竞争现象Select event,total_waits,time_waited,average_wait from v$system_event where event like ‘log file switch completion%’;如果存在竞争,可以考虑将log文件转移到独立的、更快的存储设备上或增大log文件。

D、检查点的设置是否合理检查alert.log文件中,是否存在‘checkpoint not complete’;Select event,total_waits,time_waited,average_wait from v$system_event where event like ‘log file switch (check%’;如果存在等待,调整log_checkpoint_interval、log_checkpoint_timeout的设置。

E、检查log archiver的工作Select event,total_waits,time_waited,average_wait from v$system_event where event like ‘log file switch (arch%’;如果存在等待,检查保存归档日志的存储设备是否已满,增加日志文件组,调整log_archiver_max_processes。

F、DB_block_checksum=true,因此增加了性能负担。

(为了保证数据的一致性,oracle的写数据的时候加一个checksum在block上,在读数据的时候对checksum进行验证)2)java pool对于大的应用,java_pool_size应>=50M,对于一般的java存储过程,缺省的20M已经够用了。

相关文档
最新文档