隐式类型转换(SYS_OP_C2C)-记一次SQL调优
对客户数据库生成的AWR报告中发现的一个简单的SQL引起了我的注意:SELECT* FROM t_ol_srcorder_m WHERE olorderno =:olorderno1 AND ROWNUM
使用USE_HASH Hint调优一个SQL语句
开发的同事写了个很长的SQL, 执行效率低下,于是找到我:SQL如下:点击(此处)折叠或打开SELECT w.wareid, w.warename, w.warespec, ...
记一次数据库高CPU占用率处理过程
接到同事电话之后,反馈说数据库CPU占用率居高不下, 上午9点以后基本在90%以上。零售前端操作较卡。第一反应获取了一份AWR报告。报告显示,DB Time与平时相比,达到了2,3倍之多。
ORA-08104 指定的索引正在被联机重建或...
ORA-08104: this index object 索引# is being online built or rebuilt尝试在一个表上通过create index .. online创建索引, 之后,因耗时太长,把session杀掉了drop索引时, 得到错误信息:ORA-08104可以通过如下脚本进行清理:DECLARE isclean BOOLEAN;BEGIN isclean := FALSE; WHI...
Oracle Regexp_Replace
SELECT regexp_replace('13,453,5', '([0-9]{2,3})', '''\1''') FROM dual;SQL> SELECT regexp_replace('13,453,5', '([0-9]{2,3})', '''\1''') FROM dual;REGEXP_REPLA------------'13','453',5这里的\1表示向后引用匹配要讲数字替换成前后均有单引号,正则表达式应该两侧都有括号, 否则,\1会被认为是...
只对某个特定的SQL语句开启10046 trace
原文地址:https://blogs.oracle.com/Database4CN/entry/%E5%8F%AA%E5%AF%B9%E6%9F%90%E4%B8%AA%E7%89%B9%E5%AE%9A%E7%9A%84sql%E8%AF%AD%E5%8F%A5%E5%BC%80%E5%90%AF10046_trace最近碰到了这样一个有趣的问题: 有一条SQL语句,大部分时间它的执行时间是几十个毫秒; 但是偶尔某次的执行时间会长于2秒钟。因为...
学习Oracle内核(cursor: pin S)
Oracle的buffer cache是SGA的一个重要组成部分,因此当遇到并发访问时,都需要通过锁机制来保护()。这个锁就是buffer pin。如果要读一个buffer, 先要获得共享的buffer pin锁。写则要获取独占的buffer pin锁。这里buffer pin锁就有了两种模式,一种是S(共享模式),另外则是X(排他模式或独占模式)。等待事件cursor: pin ...
【LOCK】V$LOCK视图中的ID1和ID2含义
在诊断有关锁等待这种数据库等常见故障的时候经常会用到V$LOCK视图,这个视图中的ID1和ID2的含义经常被提及。了解这两个字段的含义对理解V$LOCK视图很有意义。 本文简单对V$LOCK视图中的ID1和ID2含义进...
RMAN异机恢复异操作系统(Linux到Windows)
1. 在Windows上创建Oracle实例,服务 C:\Windows\system32>oradim-new -sid prod 实例已创建。2. 恢复spfile 启动数据库实例至nomount状态 pfile是从原数据库实例拷贝而来 #Oracle init.ora parameter file generated by instance prod on 06/22/201610:33:41...
Oracle PL/SQL INDICES
Indices关键字主要用于处理稀疏数组的处理。FORALL..IN 1..array.count, 当array稀疏时,会提示错误,某个元素不存在。这个时候,使用indices可以跳过此影响 FORALL i IN INDICES OF l_tab INSERT INTO forall_test VALUES l_tab (i);测试脚本:DECLARE TYPE t_forall_test_tab IS TABLE...
修改域名之后的数据库服务不能启动的问题解决过程
在客户现场这边,因客户网络调整,修改域名,重启了开发所使用的数据库服务器。重启完成后,Oracle数据库服务不能启动,手动启动时提示错误1053。 尝试改动了sqlnet.ora,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改成了SQLNET.AUTHENTICATION_SERVICES= (NONE)。这个改动造成了“sqlplus / as sysdba”时提...
OGG强制删除replicat
GGSCI (WINDOWS-0QO8SQ0) 6> dblogin userid system, password *****Successfully logged into database.GGSCI (WINDOWS-0QO8SQ0) 7> delete rep2ERROR: Could not delete DB checkpoint for REPLICAT REP2 (OCI Error ORA-00942: table or view does not exist (status = 942). Deleting from checkpoint table ggat...
一次客户数据库CPU 100%处理过程
6月4日上午接到同事电话,客户数据库CPU使用率达到100%,已经不能进行正常业务。连接到数据库,首先创建了一个snapshot,产生了一个AWR报告。因为紧急,所以,同事要求重启数据库。于是重启数据库,并关闭了应用的某些功能(如脱机销售数据同步)。大概几分钟之后,数据库恢复正常。AWR报告dbtime异常进一步查看AWR报...
使用dbms_sqltune进行SQL优化
随着Oracle版本的进化,越来越多的自动化工具简化了数据库运维,优化时的工作,如SQL Access Advisor ,SQL Tuning Advisor等。这里简略记录一下使用DBMS_SQLTUNE package调优一个简单的SQL的几个步骤。准备工作:create table test_sqltune as select rownum id, trunc(dbms_random.value*1000000) amt from dualconnec...
使用ErrorStack进行Oracle错误跟踪及诊断
alter session set events '1722 trace name errorstack level 1';当一个存储过程比较复杂,可以对某个特定的Oracle错误代码,如ORA-01722 Invalid number进行跟踪,找到报错的SQL语句。这个在开发以及生产环境运维时相当有用。参考:http://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=402587120&idx=1&sn=1304b...
Linux常用命令
1. find 根据名称寻找文件: find /u01 -name "alert*.log" 忽略文件大小写 find /u01 -iname "alert*" 同时find多个匹配, alert*.log以及后缀名是dbf的文件 find /u01 \( -name "alert*.log" -o -iname "*.DBF" \)...
Linux命令
1. 修改登录提示符显示用户名,本机名和当前工作目录 export PS1="$LOGNAME@$HOSTNAME:\$PWD:"
分区表全局索引与本地索引的选择
原文地址:http://www.oraclebuffer.com/general-discussions/which-index-to-choose-global-or-local-index-for-partitioned-table/Introduction:We often deal with Indexes while working on Oracle database tables. We do know, there are different type of indexes like B-Tree, Bitmap, Hash-value, etc, etc....
分区表索引Global与Local的选择
原文:http://www.oraclebuffer.com/general-discussions/which-index-to-choose-global-or-local-index-for-partitioned-table/Introduction:We often deal with Indexes while working on Oracle database tables. We do know, there are different type of indexes like B-Tree, Bitmap, Hash-value, ...
使用VMWare Workstation基于Oracle Linux 6安装oracle数据库集群
因为步骤记录在了Word文档中,其中有大量图片,故将文档分享在此1-安装操作系统.docx2-配置虚拟机.docx3-克隆虚拟机.docx4-安装clusterware.doc5-创建数据库.docx安装过程参考:http://willyristanto.blogspot.jp/2014/03/oracle-rac-database-11gr2-on-oel-59.htmlhttps://blogs.oracle.com/askmaclean/entry/%E5...