页面“Oracle数据库CPU使用率过高100%”与“Oracle最大连接数查看及修改”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
docker>Evan
 
第1行: 第1行:
 
<pre>
 
<pre>
 +
SQL:
 +
1. 查看当前的数据库连接数
  
今天测试服oracle load 特别高 最终程序得出是死循环和大量update 一个个接口的停止 得出是cron
+
 select count(*) fromv$process  
 +
select count(*) from v$process where program=‘Oracle.EXE(SHAD)’;
  
oracle 查看执行最慢 sql
+
2. 查看数据库允许的最大连接数
+
 select value from v$parameter where name ='processes' 
 
 
select *
 
  from (select sa.SQL_TEXT,
 
              sa.SQL_FULLTEXT,
 
              sa.EXECUTIONS "执行次数",
 
              round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",
 
              round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",
 
              sa.COMMAND_TYPE,
 
              sa.PARSING_USER_ID "用户ID",
 
              u.username "用户名",
 
              sa.HASH_VALUE
 
          from v$sqlarea sa
 
          left join all_users u
 
            on sa.PARSING_USER_ID = u.user_id
 
        where sa.EXECUTIONS > 0
 
        order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)
 
where rownum <= 50;
 
 
 
  执行次数 总执行时间 平均执行时间 COMMAND_TYPE    用户ID
 
---------- ---------- ------------ ------------ ----------
 
用户名                        HASH_VALUE
 
------------------------------ ----------
 
1 1.17       1.17       3 94
 
ZTGO0815       4012756581
 
  
BEGIN prvt_advisor.delete_expired_tasks;  END;
+
3. 查看当前有哪些用户正在使用数据
BEGIN prvt_advisor.delete_expired_tasks;  END;
+
SELECT osuser, a.username,cpu_time/executions/1000000||'s',b.sql_text,machine   
 +
  from v$session a, v$sqlareab  
 +
 where a.sql_address =b.address order by cpu_time/executionsdesc;  
  
SQL_TEXT
+
4. 查看当前的session连接数
--------------------------------------------------------------------------------
+
 select count(*) fromv$session   
SQL_FULLTEXT
 
--------------------------------------------------------------------------------
 
  执行次数 总执行时间 平均执行时间 COMMAND_TYPE    用户ID
 
---------- ---------- ------------ ------------ ----------
 
用户名                        HASH_VALUE
 
------------------------------ ----------
 
  
1 1.15       1.15     47 0
+
5. 查看并发连接数
SYS       1744675339
+
select count(*) from v$session where status='ACTIVE'
 +
 
 +
命令:
 +
1. 查看最大连接数
 +
show parameter processes
  
 +
2. 修改最大连接数 我们用了这个 并重启oracle 201811
 +
 alter system set processes = 300 scope = spfile;
  
50 rows selected.
+
3. 重启数据库
 +
 shutdown immediate;  
 +
 startup;  </pre>
  
正常后的第二次 
+
[https://blog.csdn.net/hongweigg/article/details/61919723 ORACLE 查看当前连接数、修改最大连接数相关SQL]
--------------------------------------------------------------------------------
 
  执行次数 总执行时间 平均执行时间 COMMAND_TYPE    用户ID
 
---------- ---------- ------------ ------------ ----------
 
用户名                        HASH_VALUE
 
------------------------------ ----------
 
      t.type_id AS originalTypeId,
 
      t.name AS n
 
11 12.55       1.14       3 94
 
ZTGO0815       3130536340
 
  
 +
[http://st4024589553.iteye.com/blog/2367373 oracle 查看最大连接数和当前连接数,查看当前有哪些用户正在使用数据]
  
</pre>
+
[[category:oracle]]
 
 
=see also=
 
 
 
[https://blog.csdn.net/chen3888015/article/details/7491245 oracle CPU使用太高 如何诊断和解决CPU高度消耗(100%)的数据库问题]
 
 
 
[https://blog.csdn.net/xyz846/article/details/6862840 Oracle进程导致CPU 100%的具体解决步骤]
 
 
 
[https://www.cnblogs.com/CodingArt/articles/1730325.html oracle查询速度慢的原因总结]
 
 
 
[https://buzheng.org/2015/oracle-slow-sql.html oracle 查看执行最慢 sql]
 
 
 
[http://blog.51cto.com/wukui127/963370 抓取oracle数据库耗费资源的sql语句]
 
 
 
[https://blog.csdn.net/gaobudong1234/article/details/73250338 ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)]
 
 
 
 
 
[https://blog.csdn.net/xujinyang/article/details/8822958 查询oracle比较慢的session和sql]
 
 
 
[http://ah-fu.iteye.com/blog/281551 小记:不明原因的解决了ORACLE慢的问题]
 
 
 
[https://blog.csdn.net/hyfound/article/details/77827270 Oracle数据库CPU使用率过高问题处理]
 
 
 
[http://czmmiao.iteye.com/blog/1577473 Oracle数据库CPU 100%故障诊断实例(原创)]
 
 
 
[http://blog.51cto.com/dl528888/911535 oracle真实案例之oem大量占用cpu与内存问题的解决方法]
 
 
 
[https://blogs.oracle.com/database4cn/sys-cpu-usage-100 关于sys CPU usage 100%问题的分析]
 

2018年11月1日 (四) 06:14的版本

SQL:
1. 查看当前的数据库连接数

 select count(*) fromv$process  
select count(*) from v$process where program=‘Oracle.EXE(SHAD)’; 

2. 查看数据库允许的最大连接数
 select value from v$parameter where name ='processes'  

3. 查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||'s',b.sql_text,machine   
  from v$session a, v$sqlareab  
 where a.sql_address =b.address order by cpu_time/executionsdesc;  

4. 查看当前的session连接数
 select count(*) fromv$session   

5. 查看并发连接数
select count(*) from v$session where status='ACTIVE' 
 
命令:
1. 查看最大连接数
show parameter processes 

2. 修改最大连接数 我们用了这个 并重启oracle 201811
 alter system set processes = 300 scope = spfile;

3. 重启数据库
 shutdown immediate;  
 startup;  

ORACLE 查看当前连接数、修改最大连接数相关SQL

oracle 查看最大连接数和当前连接数,查看当前有哪些用户正在使用数据