百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Oracle数据库性能调优实践(二)——优化连接数及会话数

mhr18 2024-12-27 16:22 14 浏览 0 评论

摘要:上周,办公系统出现打开页面缓慢,甚至登陆不了的问题,经过检查log日志,发现是Oracle会话数超过最大值500,于是修改了数据库的会话数,重启数据库服务后,办公系恢复正常。现将这个过程整理出来,供参考。详细内容请看下文。

1、分析问题

(1)、执行下面语句分析活动会话数变化趋势

SQL> select to_char(ash.sample_time, 'YYYY-MM-DD HH24:MI:SS') SAMPLE_TIME,count(*) cnt from dba_hist_active_sess_history ash where ash.instance_number=1 and ash.wait_class <> 'Idle' /* 非空闲回话 **/ and ash.sample_time between sysdate -1/2 and sysdate group by SAMPLE_TIME having count(*) >80 order by SAMPLE_TIME;

(2)、抽一个时间点分析等待事件及SQL执行情况

SQL> select to_char(ash.sample_time, 'YYYY-MM-DD HH24:MI:SS') SAMPLE_TIME,ash.sql_id,ash.event,count(*) CNT /* SQL的数量 **/,TRUNC(SUM(TIME_WAITED) / 1000000,2) SECONDS_IN_WAIT /* SQL的等待时间 **/,SUM(to_number(CAST(ash.sample_time AS DATE)-ash.sql_exec_start) *24*60*60 ) SECONDS_IN_EXECUTE /* SQL的执行时间 **/ from dba_hist_active_sess_history ash where ash.instance_number=1 and ash.wait_class <> 'Idle' and to_char(ash.sample_time,'YYYY-MM-DD HH24:MI:SS') = '2016-12-01 09:28:27' group by ash.sample_time,ash.sql_id,ash.event having count(*) > 5 order by SAMPLE_TIME,4;

(3)、根据SQL_ID分析SQL语句的执行过程

SQL> select to_char(ash.sample_time, 'YYYY-MM-DD HH24:MI:SS') SAMPLE_TIME,ash.event,ash.sql_id ,ash.blocking_inst_id,ash.blocking_session,ash.blocking_session_serial#,count(*) cnt from dba_hist_active_sess_history ash where ash.instance_number=1 and ash.wait_class <> 'idle' and ash.sql_id = '输入上面语句查出来的SQL_ID号' and to_char(ash.sample_time,'YYYY-MM-DD HH24:MI:SS') = '2022-04-06 11:24:20' group by sample_time,ash.event,ash.sql_id,ash.blocking_inst_id,ash.blocking_session,ash.blocking_session_serial# order by sample_time,7;

(4)、根据BLOCKING_INST_ID分析该会话的历史执行情况

SQL> select to_char(ash.sample_time, 'YYYY-MM-DD HH24:MI:SS') sample_time,to_char(ash.sql_exec_start,'YYYY-MM-DD HH24:MI:SS') SQL_START_TIME,ash.instance_number inst_id,ash.session_id sid,ash.session_serial# serial ,ash.blocking_inst_id b_inst_id,ash.blocking_session b_sid,ash.blocking_session_serial# b_serial,ash.sql_id,ash.event,to_number(CAST(ash.sample_time AS DATE)-ash.sql_exec_start) *24*60*60 SECONDS_IN_EXECUTE,ash.xid from dba_hist_active_sess_history ash where ash.instance_number=1 and ash.session_id = **** and ash.session_serial# = ***** order by sample_time;

2、解决问题

(1)、查看最大连接数:

SQL> show parameter processes;

显示的界面如下:

这个查询界面不直观,需要进行调整,设置界面的相关参数如下:SQL> set pages 80; SQL> set lines 120; SQL> col event for a40;

重新执行SQL> show parameter processes;其显示界面如下

(2)、修改最大连接数:

SQL> alter system set processes=1000 scope=spfile;

(3)、查看最大会话数:

SQL> show parameters sessions;

(4)、修改最大会话数:

SQL> alter system set sessions=1105 scope=spfile;

(5)、重启Oracle服务

SQL> shutdown immediate; --关闭数据库服务

SQL> startup; --启动数据库服务

3、注意事项

(1)、操作系统的参数区别:Linux和Windows系统,对sessions的处理是有区别的。Linux系统1会话对应1个进程处理,而Windows系统1会话对应1个线程处理。

(2)、Oracle的连接数process是没有上限的,理论上设置多少都是允许的。不过,实际上连接数上限的设置与服务器的配置有关,配置越强悍,连接数可以设置的上限越高,连接数设置的值会占用oracle内存的,上限设置过大的话,如果SGA中没有足够的内存分配,数据库便无法启动。下面语句可以查询连接数的设置需要占用的Oracle内存:SQL> select * from v$sgastat where pool='shared pool' and name='processes'。

(3)、连接数和会话数计算关系:会话数sessions是个派生值,由连接数processes的值决定,公式sessions=1.1*process + 5。

说明:修改了连接数和会话数参数,必须重启Oracle服务才会生效。

相关推荐

我凭借这份pdf,最终拿到了阿里,腾讯,京东等八家大厂offer

怎样才能拿到大厂的offer,没有掌握绝对的技术,那么就要不断的学习我是如何笑对金九银十,拿到阿里,腾讯等八家大厂的offer的呢,今天分享我的秘密武器,美团大神整理的Java核心知识点,面试时面试官...

高并发 异步解耦利器:RocketMQ究竟强在哪里?

本文带大家从以下几个方面详细了解RocketMQ:RocketMQ如何保证消息存储的可靠性?RocketMQ如何保证消息队列服务的高可用?如何构建一个高可用的RocketMQ双主双从最小集群?Rock...

阿里最新Java架构师成长笔记开源

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从JVM说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!JVM多线程与高并发Sp...

程序员失业2个月找不到工作,狂刷了5遍这份pdf终获字节跳动offer

写在前面1月初失业,找了近2个多月的工作了,还没找到心仪的工作,感觉心好慌,不知道该怎么办了?找不到工作的时候压力很大,有人说自信会很受打击,还有人说会很绝望,是人生的低谷……尽管很多时候我们自己知道...

Spring AI 模块架构与功能解析

SpringAI是Spring生态系统中的一个新兴模块,专注于简化人工智能和机器学习技术在Spring应用程序中的集成。本文将详细介绍SpringAI的核心组件、功能模块及其之间的关...

Nginx从入门到精通,超详细整理,含项目实战案例|运维必学

Nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务器。因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名。Nginx可以做静态HT...

用Java实现RAG的3大核心模块与7个必知细节

一、真实场景驱动:某制造企业的知识管理之痛某汽车零部件企业有超过20万份技术文档(PDF/HTML/Word),工程师每天平均花费2小时查找资料。我们为其构建的Java版RAG系统,将查询耗时缩短至1...

一线大厂Java八股文合集PDF版分享,内容多达700多页

《Java八股文合集》这份资料而我给他分成了:Java语言、Java框架、计算机基础、数据库、中间件五大部分,而这五大部分在分为多个小模块,内容多达711页,不管你是新手还是精英,都应该拿下好好看看,...

SpringBoot五步构建RAG服务:2025最新AI+向量数据库实战

引言:RAG为何成为2025年AI落地核心?在2025年,检索增强生成(RAG)技术已成为企业级AI应用的标配。传统大模型受限于知识更新慢、业务适配性差,而RAG通过动态外接知识库,结合向量数据库与A...

Java工程师必看!2025字节跳动面试最全参考答案,内卷终结者!

在当今竞争激烈的技术职场,Java工程师们犹如在汹涌波涛中奋力前行的勇士。而2023年字节跳动的面试,就像是一座难以跨越却又充满诱惑的高峰。此刻,一份号称“内卷终结者”的最全参考答案即将为您揭晓...

耗时半个月,终于把十几个大厂的python面试题整理成了PDF合集

为此我专门整理了一份《企业级python面试大全PDF》分享给大家,内容涵盖:1.python基础面试题41道文件操作(2题)模块与包(2题)数据类型(10题)企业级面试题(27题)2.python高...

Java菜鸡手撕520页PDF高级文档,成功“挤掉”7年开发架构师,牛逼!

前言拿到一份offer比什么都重要,所以笔者专门花了近一个月的时间整理好了一份专门为java面试而生的总结,注意的是笔者仅仅对面试技术方面的题目进行的总结,至于如何去和面试官去聊,怎么聊,聊得嗨,这里...

Github霸榜的SpringBoot全套学习教程,从入门到实战,内容超详细

前言本书从SpringBoot的特性与基本原理讲起,逐步深入到SpringBoot与其他微服务开发组件的集成使用,并在最后配合实际的项目案例,重点讲解SpringBoot的微服务开发,能够让读者...

Elasticsearch(三):实战

一、背景前面已经对elasticsearch的核心概念进行比较详细的介绍,但是在实际生产中我们如何使用elasticsearch呢?本篇文章我们先介绍一些elasticsearch常见的使用方法,然后...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

取消回复欢迎 发表评论: