Oracle ORA-01034&ORA-03113错误解决方案
昨天晚上Oracle还可以使用,早上用sqlplus连接,出现如下错误:ERROR:ORA-01034: ORACLE not availableORA-27101: shared memory realm does not exist进程 ID: 0会话 ID: 0 序列号: 0因为这个小小的错误,折腾了我...
SQL自定义排序
前一阵子有一个需求,要按照用户的需求安排排序规则: 举例: 数据库为Oracle,针对表table_example的class字段排序,class字段值为:A、B、C、D。 用户要求table_example中的数据按照class字段值C、...
ORA-01502 state unusable错误成因和解决方法
接到开发人员和业务人员的通知,说一个登陆页面不能用了,报错: [com.aspire.common.dao.OamUserDAO]- -214:select错误 java.sql.SQLException: ORA-01502 state 这个错误是由于索引失效造成的,重...
Oracle 10g stream 一对多复制
Oracle 流是一种数据共享的通用机制,可以被用于许多处理的基础,包括消息、复制和数据仓库的 ETL 过程。它是高级队列、LogMinor、作业调度等已存在技术的扩展。这里做一个简单的复制示例来说明其用法。试验环境:wi...
Oracle SQL性能优化常用方法
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下...
什么时候使用绑定变量性能反而更差
扫描成本和OPTIMIZER_INDEX_COST_ADJ我们知道,在CBO模式下,Oracle会计算各个访问路径的代价,采用最小代价的访问路径作为语句的执行计划。而对于索引的访问代价的计算,需要根据一个系统参数OPTIMIZER_INDEX_COST_...
浅谈Oracle执行计划
要对sql语句进行分析,首先就是要去看sql语句的执行计划是否存在问题,oracle在10g之后,默认采用CBO基于代价的优化器,sql语句的执行计划根据统计信息分析来决定,如果统计信息未收集,则采取动态采样的方式来决定...
使用with as优化sql解决filter
最近一个地市的报表系统老是说数据出得慢,基本上要到中午才能出数据,但是查看过程是比较简单的。后来发现一条sql有问题,居然要跑5个多小时。 查看跑2个小时以上的sqlSELECT SQ.SQL_TEXT,S.SQL_ID,S.SID,S....
Oracle 执行计划(Explain Plan) 说明
如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以断定是执行计...
多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP
在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图。从3张图里我们看到了几点信息...
Oracle Hint 详解
Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Oracle提供给DBA用来分析问题的工具 。...
常见Oracle HINT的用法
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ ...
降低HWM时需要注意的问题
想要降低HWM,有2中方法,alter table MOVE, alter table SHRINK 。ALTER TABLE MOVE 步骤:1. desc username.table_name ----检查表中是否有LOB2. 如果表没有LOB字段 直接 alter table move; 然后 rebuild ind...
Oracle ORA-01555 快照过旧 说明
ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo 已经不存在了, 这个时候就会报ORA-01555的错误。 有关CR 块,参考我的Blog:CR (consi...
Oracle Rowid 介绍
一. 官网说明owid的定义:A globally unique address for a row in a database.rowid 分为extended rowid 和 restricted rowied.1.1 Restricted ROWIDInternally, the ROWID is a structure that holds inform...
Oracle ADDM 自动诊断监视工具介绍及使用
Oracle AWR 介绍(AWR -- Automatic Workload Repository) 一. ADDM概述ADDM(Automatic Database Diagnostic Monitor) 是植入Oracle数据库的一个自诊断引擎.ADDM 通过检查和分析AWR获取的数据来判断O...
Event 10053 执行计划 绑定变量 Bind peeking
相关的准备知识,请参考我的Blog:Oracle 跟踪事件 set event http://space.itpub.net/28673746/viewspace-757325 Oracle SQL的硬解析和软解析http://space.itpub.net/28673746/viewsp...
Oracle Optimizer CBO RBO
Oracle 数据库中优化器(Optimizer)是SQL分析和执行的优化工具,它负责指定SQL的执行计划,也就是它负责保证SQL执行的效率最高,比如优化器决定Oracle 以什么样的方式来访问数据,是全表扫描(Full Table Scan),...
Oracle 常见的33个等待事件
一. 等待事件的相关知识:1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。2)....
Oracle OLAP 与 OLTP 介绍
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处...