配置Oracle最大并发数调整实践(oracle最大并发数)
数据库应用越来越重要且大多设计时初步性能缺乏考虑,以至于要求我们必须经常处理应用的性能问题,提高数据库的最大并发数(Concurrent)是优化数据库性能的有效手段。比如,Oracle试图支持多并发,但它本质上是一种资源分配机制,如果配置不当,可能会影响数据库性能。
调整数据库最大并发数可行手段有关参数MAX_DB_CONCURRENCY和分级存取控制(DLM)。MAX_DB_CONCURRENCY 参数设置的值定义了服务器可以同时处理的最大并发数,缺省值是128,可以根据不同场景控制,以最小值根据业务需要设置出一个合理值。
分级存取(DLM)主要用于控制数据库文件和事务的占用,DLM控制着多用户并发操作的访问特性,比如如果系统中已有多用户同时操作,事务之间如何获得资源,等待事务如何获得资源等,因此可以通过调整DLM参数来调整系统中的最大并发数。
在Oracle中,我们可以使用以下SQL脚本来查看当前的最大并发数:
SELECT s.qs_value AS "上次重启以来的最大并发连接数",CASE
WHEN s.current_value = 0 THEN '未启动' WHEN s.current_value = 65535 THEN '无限制'
ELSE s.current_value END AS "当前最大并发连接数"
FROM (SELECT * FROM v$parameter WHERE name='sessions') s;
要修改最大并发数,可以使用如下SQL脚本:
alter system set sessions=128;
但如果设置过大,会导致系统运行资源耗尽,影响服务性能,因此在调整Oracle最大并发数时要小心,结合实际场景,采取合理调整方式,让服务器服务能够更加优秀。