跳跃式索引(Skip Scan Index)浅析 - 转
在Oracle9i中,有一个新的特性:跳跃式索引(Skip Scan Index)。当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS。此外, 还可以通过使用提示index_ss(CBO下)来强制使用SS。 在Oracle9i 中,有一个新的特性:跳跃式索引(Skip Scan Index)。当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS。此外, 还可以通过使用提示index_ss(CBO下)来强制使用SS。 举例:
使用RMAN验证备份的有效性 -- 转
作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】 链接:http://www.eygle.com/archives/2010/01/rman_validate_backup.html 站内相关文章|Related Articles 内容整理-增加技术专题页面 一个TB级数据库的备份时间及备份记录 使用RMAN进行排除表空间备份 Oracle10g备份集压缩新特性(Backupset Compression) 使用Oracle10g新特性简化数据库镜像COPY RMAN提供VALIDATE的命令,可以用于校验备份集的有效性,常用命令如下:restore validate controlfile;restore
oracle 8i上的优化参数 -- 转
oracle 8i上的优化参数 收藏 /*+ FULL(tablename) */: 明确的指定进行全表扫描/*+ ROWID(tablename) */: 明确的选择根据rowid进行表扫描/*+ CLUSTER(tablename) */: 明确的指定对指定表进行群集扫描, 只能应用于tablename的条件中有群集对象时/*+ HASH(tablename) */: 明确的选择对指定表进行hash扫描, 只能应用于tablename的条件中有群集对象时/*+ HASH_AJ */: 转化一个not in子查询为一个anti-join的hash扫描/*+ HASH_SJ */: 转化一个EXISTS子查询为一个semi-join的
观察analyze table compute statistics 都对什么对象统计了信息 - 转
compute statistics 都对什么对象统计了信息 analyze table compute statistics = analyze table compute statistics for table for all indexes for all columns; 比analyze table compute statistics for table for all indexes for all indexed columns 分析了更多的信息但这里并不是鼓励使用 analyze table 的方法进行分析。 SQL> create table t as select * from all_objects;Table created. SQL> create index t_idx on t(object_id);Index created. SQL> analyze table t compute statistics for table 2 f
Oracle delete数据后的释放表空间问题的解决 --转
我们都知道数据表的庞大导而致其查询速度的降低是水到渠成的,所以我们只有将相关的数据表的数据相应的移走,但是如果使用Oracle delete之后,相关的数据删除了,但是速度没有多大改善,忧闷了。 使用备份表再drop掉原表。的确可以解决问题。但是较麻烦,今天请教了一个Oracle高手,解决了问题。 由于Oracle delete操作是不释放表空间的,要想提高查询速度则必须释放表空间。 对Oracle 9i而言,释放表空间则需要重新分析表。 analyze table itemLog compute statistics; 再进行select ,感觉的确快了很多。 另一种方法:使用exp将表
为 DBA 提供的最佳前 20 位的特性 -转
自动工作负载信息库 学习使用新的特性,这些特性采集数据库性能统计数据和量度,以供分析和调整,并显示在数据库中花费的准确时间,甚至保存会话信息 当您有数据库性能问题时,要解决它您首先要作的是什么?一种常见的方法是看是否存在一种模式:回答诸如“相同的问题是否重复出现?”,“它是否在某个特定的时间段出现?”和“两个问题之间是否有联系?”之类的问题,将几乎总会带来更好的诊断结果。 作为一个数据库管理员,您可能已经投资购买了第三方工具或使用自己开发的工具来在数据库运行期间采集详细 的统计数
怎样获取发生错误的会话信息 -- 转
某些Oracle错误,并不是总是伴随着产生trace文件,这些错误,对Oracle来说并不是严重的错误,比如像ORA-01555这样的错误。 我们可以设置一个事件,在发生错误时,产生一个Trace文件,事件通常使用下面的命令格式: view plaincopy to clipboardprint?alter system set events '<error_number> trace name errorstack level <level>'; alter session set events '<error_number> trace name errorstack level <level>'; alter system set events '<error_number> trace name errorstack level
监控长时间运行的查询(监控数据库性能的SQL ) -- 转
查询v$session_longops动态性能视图可以查看运行时间大于6秒的查询,如果想让运行时间大于6秒的查询被数据库引擎收集,必须满足以下条件:1 参数timed_statistics或sql_trace为true2 涉及的对象(表或索引)必须被分析(analyze或dbms_stats) 监控数据库性能的SQL [Ref: http://xzh2000.itpub.net/post/96/102574 ] 在v$session_longops视图中,sofar字段表示已经扫描的块数,totalwork表示总得需要扫描的块数,所以我们即可以对正在运行的长查询进行监控,比如在索引创建时,查看索引创建的进度,也可以查看系统中以往的长查询。。
Oracle中Kill session的研究 for oracle -- 转
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session ’sid,serial#’ ; 被kill掉的session,状态会被标记为killed,Oracle会在该用户下一次touch时清除该进程. 我们发现当一个session被kill掉以后,该session的paddr被修改,如果有多个session被kill,那么多个session的paddr都被更改为相同的进程地址: SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null; SADDR SID SERIAL# PADDR US
关于oracle的表空间,分区表,以及索引的总结 -- 转
表空间: Oracle的UNDOTBS01.DBF文件太大的解决办法 1、.禁止undo tablespace自动增长 alter database datafile 'full_pathundotbs01.dbf' autoextend off; 2.-- 创建一个新的小空间的undo tablespace create undo tablespace undotBS2 datafile 'full_pathUNDOTBS02.DBF' size 100m; -- 设置新的表空间为系统undo_tablespace alter system set undo_tablespace=undotBS2; -- Drop 旧的表空间 drop tablespace undotbs1
oracle sql跟踪 event 10046 - 转
我们知道,Oracle提供了Internal Events以便Oracle Support人员利用其对Oracle的内部行为进行一些更为深入细致的记录与跟踪,从而分析查找并解决Oracle用户所遇到的棘手问题。对于大部分的Internal Events,Oracle是没有官方文档加以阐述的,不过,这些Events中有几个是被公认为非常重要并被广泛研究和采用的。这其中,最重要的就是在进行Sql Tuning时常利用的10046 event。如果你对oracle性能调优很感兴趣或者比较专长,那么你对oracle的10046事件一定不会陌生。10046 event是对oracle进行系统性能分析时一个最重要的手段。当激活这个事件
使用 oradebug 转储 systemstate / processstate -- 转
作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】 链接:http://www.eygle.com/archives/2009/11/oradebug_systemstate_dump.html 站内相关文章|Related Articles 工具: ass109.awk 分析 Oracle 的跟踪文件 Oracle的异构数据迁移工具 - OMW及ODI Quest 的 Spotlight On Unix 漂亮的展现 使用spawrrac.sql收集RAC数据库对比信息 使用Linux下script工具记录Oracle输出 当数据库出现一些挂起状态时,如果sqlplus仍然可以连接,可能视图查询没有相应,但是可
Oracle 常用dump命令 - 转
一.Memory Dumps 1).Global AreaALTER SESSION SET EVENTS ‘immediate trace name global_area level n’;1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory 2).Library CacheALTER SESSION SET EVENTS ‘immediate trace name library_cache level n’;1 library cache统计信息2 包含hash table histogram3 包含object handle4 包含object结构(Heap 0) 3).Row CacheALTER SESSION SET EVENTS ‘immediate trace name row_cache level n’;1 row cache统计信息2 包含hash table histogram8 包含object结构
收缩datafile for oracle -- 转
LMT TABLESPACE,有时候虽然里面的数据不是很多,但是RESIZE DATAFILE的时候会失败,因为一些OBJECT的EXTENTS已经扩展到DATAFILE的边缘(最大的地方)。下面的SQL可以让我们找到前5个最边缘的OBJECT select * from ( select owner, segment_name, segment_type, block_id from dba_extents where file_id = ( select file_id from dba_data_files where file_name = :FILE ) --用你的DATAFILE代替 order by block_id desc )[@more@] where rownum <= 5 结果是行如下面的五行 OWNER
Oracle动态性能视图学习之 V$ROLLSTAT -- 转
本视图自启动即保持并记录各回滚段统计项。在学习本视图之前,我们先来了解一下回滚段(rollback segment)的相关概念: 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。 回滚段的作用 1。事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像
oracle tkprof使用小结 -- 转自网络
oracle tkprof使用小结本文档由ice.xie原创,转载请说明出处 1.chechk init.oratimed_statistics=trueTOP查出最耗资源的PID 2.SQL> select s.sid,s.serial# from v$session s,v$process p where s.paddr=p.addr and p.spid='17397'; 3.如果需要在session级别上设置trace,可以在sqlplus中使用下列语句:SQL> alter session set sql_trace=true; 或者SQL> execute dbms_session.set_sql_trace(TRUE);会话已更改。 4.如果要在PL/SQL中对session级别上设置trace,可以使用dbms_session这个包:SQL>exec dbms_system.set
ORA-00955& ORA-23481&ORA-04031 for oracle
http://yumianfeilong.com/html/2010/06/11/449.htmlhttp://ms.itpub.net/thread-1307925-1-1.htmlhttp://tolywang.itpub.net/post/48/221795[@more@]
oracle导出数据到文件中的方法 -- 转自网络
1: 用spool set echo off --是否显示执行的命令内容 set feedback off --是否显示 * rows selected set heading off --是否显示字段的名称 set verify off --是否显示替代变量被替代前后的语句。fil set trimspool off --去字段空格 set pagesize 500 --页面大小 set linesize 500 --linesize设定尽量根据需要来设定,大了生成的文件也大 define fil= 'f:user.xls' prompt *** Spooling to &fil spool &fil select u.usernam
oracle配置会话环境(set命令) -- 转自网络
一般在SQL>下进行SQLPLUS 操作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由 SET命令加相应的环境变量来完成。下面是常用的环境设置: §2.5.1 ARRAYSIZE(取回的行数) SET ARRAY[SIZE]{integer}一次可以提取(Fetch)的行的数目,1->5000,当有较长字段时应设小些。 §2.5.2 AUTOCOMMIT(自动提交) SET AUTO [COMMIT] { [ OFF | ON | IMM | n] }用于在操作中是自动提交或是部分提交或是不自动提交。1) 或IMM使得在完成每条SQL语句时将未提交的改变立刻提交给数据库系统。ON2) 允
ORA-01403: no data found For ORACLE 10G
Mon Sep 20 13:20:28 2010 Errors in file /ora104/admin/FAB2STB/bdump/fab2stb_lsp0_999530.trc: ORA-12801: error signaled in parallel query server P008 ORA-01403: no data found LOGSTDBY Analyzer process P003 pid=15 OS id=622756 stopped LOGSTDBY Apply process P005 pid=26 OS id=626840 stopped LOGSTDBY Apply process P006 pid=27 OS id=290858 stopped LOGSTDBY Apply process P007 pid=28 OS id=741466 stopped LOGSTDBY Apply process P004 pid=25 OS id=823728 stopped Mon Sep 20 13:20:29 2010 LOGSTDBY