Oracle数据库的ORA-00257故障解决过程)(转载)
概述: Oracle数据库是目前业界最常用的大型数据库系统,我在实际项目中遇到出现ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日志或加大存储空间就能够解决。但是我在Oracle 10g上发现,存储空间还有很大,却也报这个错误。原来是Oracle 10g中新的特性,对Flash Recovery的管理导致的。[@more@] 概述: Oracle数据库是目前业界最常用的大型数据库系统,我在实际项目中遇到出现ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于归
Oracle配置错误信息解决方法
Oracle客户端网络配置: l 在Oralce产品安装完成后,为了与数据库服务器进行连接或者是两台数据库之间进行数据复制,则必须进行网络连接配置。[@more@] Oracle客户端网络配置: l 在Oralce产品安装完成后,为了与数据库服务器进行连接或者是两台数据库之间进行数据复制,则必须进行网络连接配置。 l Oracle9i Net Service配置方法: Oracle9i Net Service的连接配置可以使用数据库实例ORACLE_SID,或者是使用Oracle9i的参数 SERVICE_NAMES.配置Oracle9i客户端与Oracle9i服务器端的连接,也是生成Oracle9i Net Service客户端网
ORACLE用SPFILE无法启动
用pfile可以启动,但是用这个pfile生成的SPFILE却不法启动,求解C:Documents and Settingsgaoqi>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 24 16:22:49 2006Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn / as sysdba已连接到空闲例程。[@more@]用pfile可以启动,但是用这个pfile生成的SPFILE却不法启动,求解C:Documents and Settingsgaoqi>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 24 16:22:49 2006Copyright (c) 1982, 2005, Oracle. All righ
ORA-01460的重现与解决(转载)
今天开发工程师说收到应用报ORA-01460错误,然后提交了报错的sql语句,该sql中用到了str2varlist函数,str2varlist有一个输入参数,该形参数据类型是varchar2,具体的创建语法请叁考链接,从sql看,语法没有问题,确定问题在实参上,如何重现该错误呢?示例代码如下:[@more@] 今天开发工程师说收到应用报ORA-01460错误,然后提交了报错的sql语句,该sql中用到了str2varlist函数,str2varlist有一个输入参数,该形参数据类型是varchar2,具体的创建语法请叁考链接,从sql看,语法没有问题,确定问题在实参上,如何重现该错误呢?示例代码如下
有关CBO优化的几个问题
Oracle 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。CostBased优化器将计算各种执行计划的开销,然后选出最低成本的执行计划。可使用下列方法选择使用CBO:[@more@] 如何使用CostBased优化器优化查询操作? Oracle 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。CostBased优化器将计算各种执行计划的开销,然后选出最低成本的执行计划。可使用下列方法选择使用CBO: 1.在INIT.ORA文件中设置参数O
案例学习Oracle错误:ORA-24002 (转载)
ORA-24002 QUEUE_TABLE string does not exist Cause QUEUE_TABLE does not exist. Action Query on the user view USER_QUEUE_TABLES to find out existing queue tables. ORA-24002 队列表不存在[@more@] 原文: ORA-24002 QUEUE_TABLE string does not exist Cause QUEUE_TABLE does not exist. Action Query on the user view USER_QUEUE_TABLES to find out existing queue tables. ORA-24002 队列表不存在 发生原因:队列表不存在。 解决方案:通过用户窗口查询用户队列表,以找出存在的对列表。 案例
案例学习Oracle错误:ORA-04052 (转载)
ORA-04052 error occurred when looking up remote object stringstringstringstringstring Cause An error has occurred when trying to look up a remote object. Action Fix the error. Make sure the remote database system has run KGLR.SQL to create necessary views used for querying/looking up objects stored in the database.[@more@] ORA-04052 error occurred when looking up remote object stringstringstringstringstring Cause An error has occurred when trying to look up a remote object. Acti
案例学习Oracle错误:ORA-01631 (转载)
案例一: 向表中插入新的记录时出错 我创建了如下的表空间: CREATE TABLESPACE TBS DATAFILE 'C:....XXX01.dbf' SIZE 500M REUSE DEFAULT STORAGE (INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0) ONLINE;[@more@] 案例一: 向表中插入新的记录时出错 我创建了如下的表空间: CREATE TABLESPACE TBS DATAFILE 'C:....XXX01.dbf' SIZE 500M REUSE DEFAULT STORAGE (INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 256 PCTINCREASE 0) ONLINE; 当我想要向表ST I中插入一条新的记
Oracle9i基于视图(view)的约束声名
从Oracle9i开始,Oracle允许对于视图(view)进行主键、唯一键、外键约束的声名。NOT NULL约束可以从基表继承,所以不允许显示声明。由于视图约束仅仅是声明而已,所以其状态只能是DISABLE NOVALIDATE。以下是一个简单范例说明:[@more@]从Oracle9i开始,Oracle允许对于视图(view)进行主键、唯一键、外键约束的声名。NOT NULL约束可以从基表继承,所以不允许显示声明。由于视图约束仅仅是声明而已,所以其状态只能是DISABLE NOVALIDATE。以下是一个简单范例说明:SQL> CREATE VIEW d10_emp 2 ( empno, ename, job,deptno, 3 CONSTRAINT
oracle最重要的9个动态性能视图
v$session + v$session_wait (在10g里功能被整合,凑合算1个吧.)v$processv$sqlv$sqltextv$bh (更宁愿是x$bh)v$lockv$latch_childrenv$sysstatv$system_event按组分的几组重要的性能视图1。System 的 over view v$sysstat , v$system_event , v$parameter2。某个session 的当前情况v$process , v$session , v$session_wait ,v$session_event , v$sesstat 3。SQL 的情况v$sql , v$sqlarea , v$SQL_PLAN , V$SQL_PLAN_STATISTICS, v$sqltext_with_newlines3. Latch / lock /ENQUEUEv$latch , v$latch_children , v$latch_holder , v$lock ,V$
Oracle Tuning的一些总结(四)
关于Oracle的性能调整,一般包括两个方面,一是指Oracle数据库本身的调整,比如SGA、PGA的优化设置,二是连接Oracle的应用程序以及SQL语句的优化。做好这两个方面的优化,就可以使一套完整的Oracle应用系统处于良好的运行状态。[@more@]在下图所示的例子中,并行的全表扫描由于不需要按照排序重新读取数据块,所以耗系统资源较少,并且IO操作也不多。当然,由于SQL语句执行过程中没有排序,得到预期结果的时间就长了,而资源耗费少了。假设这个执行计划从开始到返回结果耗时 10 秒,同时产生了 5000 个 db_block_gets Oracle提供了几个
Oracle表段中的高水位线HWM
在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。[@more@]
OracleFreelist和HWM原理及性能优化
近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。 [@more@]近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原
Oracle数据库字符集问题解决方案大全(转载)
在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户比较多。ORACLE 不论是数据库管理能力还是安全性都是无可非议的,但是,它在汉字信息的显示方面着实给中国用户带来不少麻烦,笔者多年从事ORACLE数据库管理,经常收到周围用户和外地用户反映有关ORACLE数据库汉字显示问题的求援信,主要现象是把汉字显示为不可识别的乱码,造成原来大量信息无法使用。本文将就这一问题产生的原因和解决办法进行一些探讨,供存在这方面问题的用户朋友参考。[@more@] 在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户
Oracle数据库中大型表查询优化的研究
摘 要:对海量数据进行访问查询时,常常遇到系统响应时间过长,占用系统资源过多的问题。本文结合实例着重对Oracle数据库中的查询优化进行了研究,测试结果表明采用的方法是很有效的,大大缩短了测试用例表的响应时间,最后对海量数据的优化方法提出了实用性的建议。[@more@]摘 要:对海量数据进行访问查询时,常常遇到系统响应时间过长,占用系统资源过多的问题。本文结合实例着重对Oracle数据库中的查询优化进行了研究,测试结果表明采用的方法是很有效的,大大缩短了测试用例表的响应时间,最后对海量数据的优化方法提出了实用性的建
ORACLE索引与高性能SQL介绍
索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;[@more@] 什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据; Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引; 索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。 使用索引的目的 加快查询速度 减少I/O操作 消除磁盘排序 何时使用索引 查询返回的记录数 排序表<
ORACLESQL性能优化系列(三)
ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)[@more@]24. 用EXPLAIN PLAN 分析SQL语句 EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称. 你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将
ORACLESQL性能优化系列(二)
ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)[@more@]13. 计算记录条数 和一般的观点相反, count(*) 比count(1)稍快 , 当然如果可以通过索引检索,对索引列的计数仍旧是最快的. 例如 COUNT(EMPNO) (译者按: 在CSDN论坛中,曾经对此有过相当热烈的讨论, 作者的观点并不十分准确,通过实际的测试,上述三种方法并没有显著的性能差别) 14. 用Where子句替换HAVING子句 避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集
ORACLESQL性能优化系列(一)
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) [@more@] 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO, Cos
Oracle的优化原理
前面讲了ORACLE性能调优原则,但是可能有许多朋友不知道ORACLE优化机理到底是什么?下面作一简单说明。[@more@]前面讲了ORACLE性能调优原则,但是可能有许多朋友不知道ORACLE优化机理到底是什么?下面作一简单说明。 解释 先说明一下,ORACLE有一个优化器(Optimizer),ORACLE的优化机理就是从Optimizer开始的。 明确两个概念:Optimizer 对ORACLE的优化方式有两种,一种是基于规则的,我们称为RBO(Rule-Based Optimization),一种是基于代价的CBO(Cost-Based Optimization),我们从字面就可基本理解这两个优化方式的含义,