博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 83 下一页

2012年7月25日

摘要: EXECUTE IMMEDIATE解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块。它的动态创建和执行 SQL语句性能超前。使用技巧1、EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交 假如通过EXECUTE IMMEDIATE处理DML命令,那么在完成以前需要显式提交或者作为EXECUTE IMMEDIATE自己的一部分。假如通过EXECUTE IMMEDIATE处理DDL命令,它提交所有以前改变的数据。2、 EXECUTE IMMEDIATE不支持返回多行的查询,这种交互将用临时表来存储记录或者用REF 游标。3、当执行SQL语句时,后面不要加分号. 阅读全文

posted @ 2012-07-25 16:15 徐正柱- 阅读(412) 评论(0) 推荐(0)

摘要: 导致表的执行计划做全表扫描的原因:u SQL谓词列没有建相应的索引u 谓词列建有相应的索引,但执行计划没有使用Oracle不使用b*tree索引的情况大致如下1:where条件中和null比较可能导致不使用索引2:count,sum,ave,max,min等聚集操作时可能导致不使用索引3:显示或者隐式的函数转换导致不使用索引4:在cbo模式下,统计信息过于陈旧导致不使用索引5:组合索引中没有使用前导列导致没有使用索引6:访问的数据量超过一定的比例导致不使用索引下面就其中的几点做一些说明一:Null可以使用索引吗一般情况下,where条件中和null比较将会导致full table scan,实 阅读全文

posted @ 2012-07-25 16:07 徐正柱- 阅读(1001) 评论(0) 推荐(0)

摘要: 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。可以通过以下查询这个JOB的运行情况:select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'其实同 阅读全文

posted @ 2012-07-25 15:51 徐正柱- 阅读(448) 评论(0) 推荐(0)

2012年7月16日

摘要: ORA-01628:max # of extents num reached for rollback segment num 产生原因:这种错误通常为一个回滚段和一个表空间已经达到MAXEXTENTS参数设置的极限。要注意的是这个MAXEXTENTS不是该回滚段或表空间的硬件极限,硬件极限取决于数据库创建时在init.ora文件中指定的DB_BLOCK_SIZE参数的值。 解决方法:使用SQL命令ALTER TABLESPACE…STORAGE(MAXEXTENTS XXXX)来增加 MAXEXTENTS,其中“XXXX”值必须大于错误信息中所指的数值,但不能大于LARGES... 阅读全文

posted @ 2012-07-16 17:27 徐正柱- 阅读(4969) 评论(0) 推荐(0)

摘要: ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个数据块时,由于1、硬件的I/O错误;2、操作系统的I/O错误或缓冲问题;3、内存或paging问题;4、ORACLE试图访问一个未被格式化的系统块失败;5、数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578的错误。 解决方式:由于ORACLE只有在访问到有问题的数据文件时才会报错,所以报错的时间有可能会比实际出错的时间要晚,如果ORA-01578出错信息提示数据坏块指向的是用户自己的... 阅读全文

posted @ 2012-07-16 17:25 徐正柱- 阅读(3118) 评论(0) 推荐(0)

摘要: ORA-01652:unable to extend temp segment by num in tablespace name 产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象。 解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小: ... 阅读全文

posted @ 2012-07-16 17:23 徐正柱- 阅读(5097) 评论(0) 推荐(0)

摘要: ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME 产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。 解决方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具... 阅读全文

posted @ 2012-07-16 17:20 徐正柱- 阅读(501) 评论(0) 推荐(0)

2012年6月29日

摘要: ORA-03113:end-of-file on communication channel 产生原因:通讯不正常结束,从而导致通讯通道终止 解决方法:1>.检查是否有服进程不正常死机,可从alert.log得知 2>.检查sql*Net Driver是否连接到ORACLE可执行程序 3>.检查服务器网络是否正常,如网络不通或不稳定等 4>.检查同一个网上是否有两个同样名字的节点 5>.检查同一个网上是否有重复的IP地址 相应的英文如下: Cause:An unexpected end-of-file was processed on the c... 阅读全文

posted @ 2012-06-29 18:23 徐正柱- 阅读(2867) 评论(0) 推荐(0)

摘要: ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。 解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个... 阅读全文

posted @ 2012-06-29 18:21 徐正柱- 阅读(1703) 评论(0) 推荐(0)

摘要: ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个数据块时,由于1、硬件的I/O错误;2、操作系统的I/O错误或缓冲问题;3、内存或paging问题;4、ORACLE试图访问一个未被格式化的系统块失败;5、数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578的错误。 解决方式:由于ORACLE只有在访问到有问题的数据文件时才会报错,所以报错的时间有可能会比实际出错的时间要晚,如果ORA-01578出错信息提示数据坏块指向的是用户自己的数据... 阅读全文

posted @ 2012-06-29 18:19 徐正柱- 阅读(2032) 评论(0) 推荐(0)

上一页 1 ··· 56 57 58 59 60 61 62 63 64 ··· 83 下一页