自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 [译] PL/SQL 格式化指南 (PL/SQL Formatting Guide)

最近一直在修改以前同事写的Oracle存储过程,由于编码不规范,修改起来相当费神,于是乎,翻译了这篇 PL/SQL Formatting Guide (Oracle PL/ SQL by Example,Appendix A),费了九牛二虎之力,终于翻译完了,也终于知道自己的英语有多烂了,呜呜。声明:原创翻译,不足之处请多多指正,转载请注明出处!一、大小写 就像在SQL中一样,PL /...

2009-11-30 17:03:37 185

原创 RAC异常小结

前几天在VMWare上安装了RAC,安装过程中以及今天在启动时都出了几个错误,简要记录下:1.配置 Oracle 集群文件系统 (OCFS2)出错: # ocfs2consoleConfigure Nodes --> Add --> 输入NODE名和IP --> OK --> Apply出现如下错误:    o2cb_ctl: Unable to access ...

2009-11-06 16:57:36 130

linux LVM RAW

关键字: linux 裸设备 lvm 一:这部分是网上搜到的,扫盲,我的操作在第二部分。1.创建pvpvcreate -M2 --metadatasize 100M /dev/sda pvcreate -M2 --metadatasize 100M /dev/sdb1 pvcreate -M2 --metadatasize 100M /dev/sdb2 pvcreate -M2 --metadat...

2009-11-05 10:52:25 131

原创 oracle RAC环境分布式计算设置

在RAC中,我们可以通过设置跨节点并行,将并行操作分布到RAC中的不同节点同时进行,以便发挥整个RAC环境的最大运算能力。在RAC中设置跨节点并行主要是通过设置parallel_instance_group和instance_groups这两个参数进行的。instance_groups这个参数主要是设置该节点实例是否属于某一个实例组,这个实例组的命名可以根据你的需要随便命名,而没有严格的限制。每个...

2009-11-04 23:57:20 244

原创 rman report list crosscheck delete

一、REPORT1、报告目标数据库的物理结构    RMAN>REPORT SCHEMA2、报告需要备份的数据文件   在执行备份之前,常常需要取得需要备份的数据文件信息,通过执行REPORT NEED BACKUP命令,可以列出需要备份的数据文件。当使用REPORT NEED BACKUP命令时,可以带有INCREMENTAL、DAYS、REDUNDANCY、RECOVERY WI...

2009-10-14 15:16:05 135

原创 EXPIRED和OBSOLETE的区别

EXPIRED和OBSOLETE的区别                    作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】                    链接:http://www.dbaroad.com/archives/2009/08/expired_obsolete_differ.html 常常混淆RMAN中EXPIRED和OBSO...

2009-10-14 14:17:49 235

原创 Oracle Raw,number,varchar2...转换

Oracle Raw,number,varchar2...转换  在网络中的计算机之间传输 RAW 数据时,或者使用 Oracle 实用程序将 RAW 数据从一个数据库移到另一个数据库时,Oracle 服务器不执行字符集转换。存储实际列值所需要的字节数大小随每行大小而异,最多为 2,000 字节。可能这样的数据类型在数据库效率上会提高,而且对数据由于字符集的不同而导致的不一致的可能...

2009-09-17 11:24:08 422

原创 Oracle's Query Transformer

Oracle's Query Transformer Oracle优化器的工作主要分成3步。。。Oracle优化器的工作主要分成3步:  首先, 优化器会尝试把复杂的SQL语句转化较为简单的SQL语句, 通常倾向于转化为表的连接方式. 然后, 优化器会对依据统计信息对SQL语句进行估量, 这些估量主要包括3个方面: Selectivity,  Cardinalit...

2009-09-09 17:56:08 92

原创 观察analyze table compute statistics 都对什么对象统计了信息

观察analyze table  compute statistics  都对什么对象统计了信息 analyze table  compute statistics  = analyze table compute statistics for table for all indexes for all columns; 比analyze table compute statistics fo...

2009-09-08 12:52:46 477

原创 sql 语句中or条件之种种情况

sql 语句中or条件之种种情况1、相同字段or条件,转换为inlist 走index range scanSQL> select * from test_or a  2  where a.object_id=20 or a.object_id=21;执行计划----------------------------------------------------------Plan...

2009-09-08 10:55:02 416

原创 /*+ precompute_subquery */子查询中的提示

QUOTE:--------------------------------------------------------------------------------select * from tab1 where tab1.object_name in(select /*+ precompute_subquery */ object_name from tab2 where owner='...

2009-09-08 10:51:40 126

原创 关于绑定变量的一点心得

  我们一直在告诉开发人员一定要使用绑定变量,而你是否真正了解绑定变量的有缺点呢?绑定变量可以减少SQL分析,节约共享池的空间。但是在某些情况下,使用绑定变量也是有缺点的。比如说,如果使用绑定变量,那么优化器就会忽略直方图的信息,在生成执行计划的时候可能不够优化。另外一个有趣的问题是,如果一张表有几十万条记录,而某个字段有2个值,那么如果在这个字段上建一个索引,那么这个索引可能起作用吗?不能?...

2009-09-08 10:03:10 88

原创 push_subq提示

PUSH_SUBQ 可以用来控制子查询的执行 这个是PUSH_SUBQ 的本意我那个例子的意思是说:PUSH_SUBQ 本质上是个CBO的hints(当然RBO也提不上hints)由于PUSH_SUBQ 的引入就是为了来解决unnesting的某些不足所以在不同的版本上,这个hints发挥的作用也有所不同了. 8i上这个提示的作用更接近本原: $ sqlplus "...

2009-09-06 12:17:11 238

原创 bash shell if 命令参数说明

bash shell if 命令参数说明   本章我们会讨论在Bash脚本中使用条件,包含以下几个话题:     if 语句     使用命令的退出状态比较和测试输入和文件 if/then/else 结构 if/then/elif/else 结构     使用和测试位置参数嵌套 if 语句 布尔表达式    使用 case 语句   7.1. 介绍if   7.1.1 有时候你需要指定sh...

2009-09-01 16:44:23 197

原创 Oracle内存结构研究-PGA篇

一、概述SGA,PGA,UGA都是Oracle管理的内存区。SGA(System Global Area),即系统全局区,Oracle中最重要的内存区。PGA(Process Global Area),即程序全局区,一个进程的专用的内存区。UGA(User Global Area),即用户全局区,与特定的会话相关联。专用服务器连接模式,UGA在PGA中分配。共享服务器连接模式,UGA在SGA中...

2009-08-26 10:33:48 191

原创 查询--驱动表

查询中何为驱动表阿??请问这句话怎么理解啊?楼主goldtogo(jinhao)2002-12-06 09:36:27 在 Oracle / 基础和管理 提问3.1   SQL语句的优化       SQL语句的执行速度,可以受很多因素的影响而变化。但主要的影响因素是:驱动表、执行操作的先后顺序和索引的运用。可以由很多不同的方法间接地改变这些因素,以达到最优的执行速度。这里主要探讨当对多...

2009-08-24 10:58:50 105

原创 SQL连接驱动表帖子

   http://www.itpub.net/viewthread.php?tid=144375&extra=&page=1  SQL语句的执行速度,可以受很多因素的影响而变化。但主要的影响因素是:驱动表、执行操作的先后顺序和索引的运用。可以由很多不同的方法间接地改变这些因素,以达到最优的执行速度。这里主要探讨当对多个表进行连接查询时应遵循的优化原则:  (1)...

2009-08-24 10:08:07 273

原创 oracle参数deprecated

在 Oracle 10g 中,以前熟悉的一些参数已经 deprecated 了,有的时候很烦人。SQL> STARTUP;ORA-32004: obsolete and/or deprecated parameter(s) specifiedORACLE instance started.Total System Global Area 213909504 by...

2009-08-22 22:08:21 208

原创 oracle parallel execution example

引子:以前一直没太关注oracle并行这个特性。前几天一个兄弟碰到的一个问题,才让我觉得这个东西还是有很多需要注意的地方,有必要仔细熟悉下。其实碰到的问题不复杂:类似如下的一条语句:insert into xxxx select /*+parallel(a) */ * from xxx a;数据量大约在75G左右,这位兄弟从上午跑到下午还没跑完,过来问我咋回事,说平常2hrs能跑完的东西跑...

2009-08-21 18:10:27 150

原创 用Oracle并行查询发挥多CPU的威力

在一个单独的服务器中安装更多的CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA都不足为奇。     Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专...

2009-08-21 17:07:45 490

原创 Oracle中巧用CTAS快速建立表格

CTAS是通过查询,然后根据查询的结果来建立表格的一种方式。显然通过这种方式可以省去定义表结构的方法,而且在创建表的同时导入数据。不过在使用这个方法的时候,仍然有些内容需要引起数据库管理员的注意。(SQL Server数据库中成批导入数据的几个常用方法)     如上图,就是笔者利用CTAS建立表格的过程。其中AD_USER是原表,而AD_USER_CTAS是利用CTAS方法建立的表。利用...

2009-08-21 15:55:08 727

原创 优化SQL语句的一些规则

大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿! SQL语句: 是对数据库(数据)进行操作的惟一途径; 消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; 可以有不同的写法;易学,难精通。 SQL优...

2009-08-20 21:01:20 90

原创 oracle中关于in和exists,not in 和 not exists、关联子查询、非关联子查询

                oracle中关于in和exists,not in 和 not existsin和exists    in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。not exists:做NL,对子查询先查,有个虚表,有确定值,所以就算子查询有NULL最终也有值返回not in:做hash,对子查询...

2009-08-20 15:01:31 997

原创 Oracle的大表,小表与全表扫描

通常对于小表,Oracle建议通过全表扫描进行数据访问,对于大表则应该通过索引以加快数据查询,当然如果查询要求返回表中大部分或者全部数据,那么全表扫描可能仍然是最好的选择。从V$SYSSTAT视图中,我们可以查询得到关于全表扫描的系统统计信息:SQL> col name for a30 SQL> select name,value from v$sysstat2 where ...

2009-08-20 11:11:52 212

原创 reverse函数与like % 的使用

oracle 提供一个reverse函数,可以实现将一个对象反向转换.比如:SQL> select reverse('123456') from dual;REVERSE('123456')-----------------654321 由于这个函数,是针对数据库内部存储的对象编码进行反转的,因此,在比如:数字,中文等.因为实现存储的并不是直接编码后的结果,而是经过某种内...

2009-08-19 18:03:30 182

原创 Oracle语句优化规则汇总(二)

1. 用UNION替换OR (适用于索引列)   通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果。 对索引列使用OR将造成全表扫描。注意, 以上规则只针对多个索引列有效。 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低。  在下面的例子中, LOC_ID 和REGION上都建有索引。  高效:  SELECT LOC_ID ,...

2009-08-19 15:14:18 91

原创 Oracle语句优化规则汇总(一)

Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器  ORACLE的优化器共有3种:  a. RULE (基于规则)  b. COST (基于成本)  c. CHOOSE (选择性)  设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS...

2009-08-19 15:07:05 101

原创 几种索引扫描方式

1)索引唯一扫描 如果查询时是通过unique或primary key约束来保证只返回一条数据,那么优化器就会选择索引唯一扫描,这是访问一条数据的最快方式。2)索引范围扫描索引键非唯一,当遇到如下条件时会使用索引范围扫描:1.col=:b12.col<:b13.col>:b13)索引降序范围扫描与2)中的情况相同,只不过2)默认是按照升序进行查找的,而这里是...

2009-08-19 14:47:51 232

原创 oracle不使用索引原因定位

   较典型的问题有:有时,表明明建有索引,但查询过程显然没有用到相关的索引,导致查询过程耗时漫长,占用资源巨大,问题到底出在哪儿呢?按照以下顺序查找,基本上能发现原因所在。查找原因的步骤首先,我们要确定数据库运行在何种优化模式下,相应的参数是: optimizer_mode 。可在 svrmgrl 中运行“ show parameter optimizer_mode" 来查看。 ORACLE V...

2009-08-19 11:36:53 103

列定义是否为空对COUNT(*)操作索引选择的影响

 SQL> desc test; Name        Null?    Type ----------------------------------------- -------- ---------------------------- OBJECT_NAME         VARCHAR2(128) OBJECT_ID         NUMBER============...

2009-08-19 11:28:35 126

原创 ORALCE /*+NO_EXPAND*/ 含义

求教 ORALCE /*+NO_EXPAND*/ 含义 是什么求教 ORALCE /*+NO_EXPAND*/ 含义 是什么  谢谢网上的解释是 "对于WHERE后面的OR 或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展."但是什么是阻止其基于优化器对其进行扩展??有什么具体例子么,迷惑中-------------------------------------...

2009-08-18 11:02:42 649

原创 and_equal,index_join,index_combine

and_equal,index_join,index_combine这三种都是oracle利用索引关联获得数据的方法,三者的目的都是为了最大限度的利用索引,减少回表的代价.但是三者的实现方法是有区别的,下面一一来分析.and_equal:这种方式需要查询条件里面包括所有索引列,然后取得每个索引中得到的rowid列表,然后对这些列表做merge join,过滤出相同的rowid后再去表中获取数据...

2009-08-18 10:16:36 113

原创 RBO下,oracle如何选择驱动表

--目的:弄清楚RBO下,oracle如何选择驱动表--连接到部门测试机器10.188.239.68进行测试操作CONN CRM1/CRM1@TEST--********************************************************--1测试环境说明--****************************************************...

2009-08-17 16:16:18 217

原创 利用Oracle内置分析函数进行高效统计汇总

分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式。在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的SQL语句就可以实现了,而且在执行效率方面也有相当大的提高。下面我将针对分析函数做一些具体的说明。分析函数的一般格式是函数名(参数列表) over ([partition by 字段名...

2009-08-17 15:22:33 199

原创 oracle count计数的优化

在9i,我们知道count(*)的时候,如果表上有pk,那count(*) 一定会走pk的。count(column) ,如果column指定not null,那count(column)  可以走上索引(通过试验证明,必须还要加上index提示才能走上索引)。但如果列上有空值,不管如何加提示,都走不上列上的索引(组合索引的非引导列除外)       count是否应该走索引,主要取决于cou...

2009-08-17 15:21:17 135

原创 三招让Oracle表列管理更加简单

Oracle数据库是目前为止最复杂的一个数据库之一。也正是这种复杂性,让Oracle数据库能够面对企业各种各样的需求。不过大部分时候,数据库管理员掌握一些技巧,可以让数据库维护工作变得简单。  Oracle数据库是目前为止最复杂的一个数据库之一。也正是这种复杂性,让Oracle数据库能够面对企业各种各样的需求。不过大部分时候,数据库管理员掌握一些技巧,可以让数据库维护工作变得简单。笔者这里...

2009-08-17 15:20:29 55

原创 索引什么时候不工作

首先要声明两个知识点:  (1)RBO&CBO。  Oracle有两种执行优化器,一种是RBO(Rule Based Optimizer)基于规则的优化器,这种优化器是基于sql语句写法选择执行路径的;另一种是CBO(Cost Based Optimizer)基于规则的优化器,这种优化器是Oracle根据统计分析信息来选择执行路径,如果表和索引没有进...

2009-08-17 15:18:58 52

原创 Oracle HINT的常见用法

提示(hint)从Oracle7中引入,目的是弥补基于成本优化器的缺陷。提示通常用来改变SQL执行计划,提高执行效率。使用提示需要遵循的原则:1)仔细检查提示语法。尽量使用完整注释语法/*+ hint */2)使用表别名。如果在查询中指定了表别名,那么提示必须也使用表别名。例如:select /*+ index(e,dept_idx) */ * from emp e;3)不要在提示中使...

2009-08-17 15:02:29 65

原创 30个Oracle语句优化规则详解

1.选用适合的Oracle优化器Oracle的优化器共有3种:a.RULE(基于规则)b.COST(基于成本)c.CHOOSE(选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。你当然也在SQL句级或是会话(session)级对其进行覆盖。为了使用...

2009-08-17 15:01:45 51

原创 Oracle RBO、CBO简介

Rule Based Optimizer(RBO)基于规则Cost Based Optimizer(CBO)基于成本,或者讲统计信息ORACLE 提供了CBO、RBO两种SQL优化器。CBO在ORACLE7 引入,但在ORACLE8i 中才成熟。ORACLE 已经明确声明在ORACLE9i之后的版本中(ORACLE 10G ),RBO将不再支持。因此选择CBO 是必然的趋势。CBO和 RB...

2009-08-17 14:59:11 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除