数据库优化
1. Oracle
1)查询和修改数据库最大连接数
查看当前的数据库连接数:
select count(*) from v$process;
数据库允许的最大连接数:
select value from v$parameter where name ='processes';
修改数据库最大连接数:
----设置数据库最大连接数为2000
alter system set processes=2000 scope = spfile;
----关闭/重启数据库
SQL> shutdown immediate
SQL> startup
- 优化SGA和PGA大小
Ø SGA: System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。
Ø PGA: Process Global Area是为每个连接到Oracle database的用户进程保留的内存。
SGA的大小:一般物理内存20%用作操作系统保留,其他80%用于数据库。
SGA普通数据库可以分配40%-60%之间,PGA可以分配20%-40%之间。
1、以dba身份登录
并查看SGA信息:
SQL>show parameter sga;
查看PGA信息:
SQL>show parameter pga;
2、修改sga_target
SQL>alter system set sga_target=436M;
3、修改sga_max_size
SQL> alter system set sga_max_size=436M scope=spfile;
4、重启数据库使其生效:
SQL>shutdown immediate;
##注意,重启前一定先完成上述两部操作,且sga_target不得大于sga_max_size,一般保持两者相等。否则可能导致数据库无法启动。
SQL>startup
5、查看SGA是否生效:
SQL>show parameter sga
- 优化缓冲区高速缓存
1、 增大缓存大小
----检查当前缓存大小
SELECT name, value FROM v$parameter WHERE name LIKE ‘%buffer%’;
----修改缓存大小
ALTER SYSTEM SET db_cache_size = 200M scope = both;
2、 增大重做日志缓存大小
----检查当前重做日志缓存的大小
SELECT name, value FROM v$parameter WHERE name LIKE ‘%log_buffer%’;
----修改重做日志缓存的大小
ALTER SYSTEM SET log_buffer = 200M scope = both;
2. 数据库配置文件
- 数据库配置文件\WEB-INF\classes\datasource.properties中最大连接数默认是20,建议修改为200
2)配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
在spring-jdbc.xml里加
<property name="useUnfairLock" value="true" /> <!-- 设置druid 连接池非公平锁模式 -->