Oracle捕获问题SQL解决CPU过渡消耗
正在看的ORACLE教程是:Oracle捕获问题SQL解决CPU过渡消耗。本文通过实际业务系统中调整的一个案例,试图给出一个常见CPU消耗问题的一个诊断方法.大多数情况下,系统的性能问题都是由不良SQL代码引起的,那么作为DBA,怎样发现和解决这些SQL问题就显得尤为重要.
本案例平台为UNIX,所以不可避免的应用了一些Unix下常用的工具.如vmstat,top等.
本文适宜读者范围:中高级.
系统环境:
OS: Solaris8
Oracle: 8.1.7.4
问题描述:
开发人员报告系统运行缓慢,已经影响业务系统正常使用.请求协助诊断.
1.登陆数据库主机
使用vmstat检查,发现CPU资源已经耗尽,大量任务位于运行队列:
2.使用Top命令
观察进程CPU耗用,发现没有明显过高CPU使用的进程
3.检查进程数量
发现系统存在大量Oracle进程,大约在300左右,大量进程消耗了几乎所有CPU资源,而正常情况下Oracle连接数应该在100左右.
相关推荐
-
Oracle捕获问题SQL解决CPU过渡消耗
正在看的ORACLE教程是:Oracle捕获问题SQL解决CPU过渡消耗.本文通过实际业务系统中调整的一个案例,试图给出一个常见CPU消耗问题的一个诊断方法.大多数情况下,系统的性能问题都是由不良SQL代码引起的,那么作为DBA,怎样发现和解决这些SQL问题就显得尤为重要. 本案例平台为UNIX,所以不可避免的应用了一些Unix下常用的工具.如vmstat,top等. 本文适宜读者范围:中高级. 系统环境: OS: Solaris8 Oracle: 8.1.7.4 问题描述: 开发人员报告系统运
-
Oracle环境通过SQL*PLUS本地登录时报错的解决过程
一. 问题描述 今天在新机子(WINDOWS)上搭建Oracle环境,完了之后通过SQL*PLUS本地登录时报错: ora-01031 insufficient privileges ---权限不足 二. 解决过程 错误排除 1. 当时首先想到的是oracle不允许用sqlplus工具登录,但随即想法打消 sqlplus sys/admin as sysdba –成功登录! sqlplus sys/admin as sysdba --成功登录! 2. 带详细信息指定本机IP和实例登录 sqlpl
-
oracle数据库ORA-01196错误解决办法分享
上一篇文章中我们了解到oracle常见故障类别及规划解析,接下来,我们看看oracle数据库ORA-01196错误解决的相关内容,具体如下: 问题现象 在使用shutdown abort停DataGuard备库后,备库不能open,报ORA-01196错误. 发现一备库不能应用日志,查看备库日志没发现报错,怀疑是备库应用日志服务停止,于是尝试重启备库: 可能因为备库是读业务比较繁忙,在shutdown immediate关闭备库时等时间过长,于是使用了shutdown abort命令: 但后面在
-
Oracle数据库中SQL语句的优化技巧
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
-
用Oracle并行查询发挥多CPU的威力
正在看的ORACLE教程是:用Oracle并行查询发挥多CPU的威力.参数 让我们进一步看看CPU的数量是如何影响这些参数的. 参数fast_start_parallel_rollback Oracle并行机制中一个令人兴奋之处是在系统崩溃时调用并行回滚得能力.当Oracle数据库发生少有的崩溃时,Oracle能自动检测未完成的事务并回滚到起始状态.这被称为并行热启动,而Oracle使用基于cpu_count的fast_start_parallel_rollback参数来决定未完成事务的秉性程度
-
Oracle数据库中SQL开窗函数的使用
开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成.为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决.目前在 MSSQLServer.Oracle.DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL 暂时还未对开窗函数给予支持. 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值
-
Oracle对PL/SQL中的异常处理
目录 一.异常处理 1.三种的异常类型: 2.异常的SQLCode 和 SQLERRM 二.处理预定义例外 常见错误预定义的名称 三.处理非预定义例外(exception_init) 四.处理自定义例外(通过Raise ) 五.应用程序的异常处理.(通过Raise_Application_Error ) 一.异常处理 PL/SQL提供了良好的异常处理机制,当程序运行出现错误时就会触发异常.异常被触发时,程序执行即终止,在PL/SQL块中提供了异常处理的部分,从而可以捕获一个异常进行特殊处理. 1
-
Oracle中PL/SQL的用法总结
目录 一.PLSQL基本结构 1.基本数据类型变量 1. 基本数据类型 2. 基本数据类型变量的定义方法 2.表达式 1. 数值表达式 2. 字符表达式 3. 关系表达式 4. 逻辑表达式 3.PLSQL函数 4.系统输出打印 5.PL/SQL中的变量声明 二.变量赋值方式 三.PLSQL复合类型 1.记录类型record 2.表类型变量table 1. 定义一维表类型变量 2. 定义多维表类型变量 四. %type和%rowtype 五.PLSQL变量的可见空间 六.PLSQL流程控制 if判
-
oracle数据库中sql%notfound的用法详解
SQL%NOTFOUND 是一个布尔值.与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true.否则返回false.这样的语句在实际应用中,是非常有用的.例如要update一行数据时,如果没有找到,就可以作相应操作.如: begin update table_name set salary = 10000 where emp_id = 10; if sql%notfound then insert into
-
Oracle批量执行sql语句之禁用所有表的外键
在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name
随机推荐
- python监控linux内存并写入mongodb(推荐)
- DVI 视频接口图文解析
- Linux 修改 etc/hosts文件详细介绍
- 服务器安全设置_初级篇
- java中多态概念、实现原理详解
- Oracle 自增(auto increment) 或 标识字段的建立方法
- 浅谈Python类的__getitem__和__setitem__特殊方法
- ajax的定时调用每5秒调用一次
- node.js中的fs.writeFile方法使用说明
- JSP开发入门(二)----JSP语法的基本原理
- 木马最喜欢隐藏在系统的哪些地方
- oracle学习笔记(二)
- 使用JQuery实现的分页插件分享
- 『jQuery』.html(),.text()和.val()的概述及使用
- html+javascript实现可拖动可提交的弹出层对话框效果
- Java网络编程之简单的服务端客户端应用实例
- Android 文件选择器详解及实例代码
- Android APP启动方式、启动流程及启动优化分析
- layui框架中layer父子页面交互的方法分析
- 详解SpringBoot+Lucene案例介绍