- 浏览: 94584 次
- 性别:
- 来自: 福州
-
最新评论
-
JonHans:
...
ORALCE /*+NO_EXPAND*/ 含义 -
sangli:
Alter table table parallel 4;
...
oracle parallel execution example -
Ivan.t:
不会这么巧吧?你是银钦?http://ivanstudy.bl ...
Oracle Raw,number,varchar2...转换 -
Christ:
那么,如何使用Hibernate存取RAW?显然 我无法使用u ...
Oracle Raw,number,varchar2...转换 -
bianxq:
执行计划没有变化,说明你的并行提示被忽略掉了。检查你的书写和系 ...
oracle parallel execution example
文章列表
查询中何为驱动表阿??请问这句话怎么理解啊?
楼主goldtogo(jinhao)2002-12-06 09:36:27 在 Oracle / 基础和管理 提问
3.1 SQL语句的优化 SQL语句的执行速度,可以受很多因素的影响而变化。但主要的影响因素是:驱动表、 ...
- 2009-08-24 10:58
- 浏览 1242
- 评论(0)
http://www.itpub.net/viewthread.php?tid=144375&extra=&page=1
SQL语句的执行速度,可以受很多因素的影响而变化。但主要的影响因素是:驱动表、执行操作的先后顺序和索引的运用。可以由很多不同的方法间接地改变这些因素,以达到最优的执行速度。这里主要探讨当对多个表进行连接查询时应遵循的优化原则: (1) 用于连接的子句的列应被索引、在Where子句中应尽量利用索引,而不是避开索引。 (2) 连接操作应从返回较少行上驱动。 (3) 如果所连接的表A和B,A表长度远远大于B表,建议从较大的A ...
- 2009-08-24 10:08
- 浏览 2462
- 评论(0)
在 Oracle 10g 中,以前熟悉的一些参数已经 deprecated 了,有的时候很烦人。
SQL> STARTUP;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 213909504 bytes
Fixed Size 778156 bytes
Variable Size 128983124 bytes
Database B ...
- 2009-08-22 22:08
- 浏览 1200
- 评论(0)
引子:以前一直没太关注oracle并行这个特性。前几天一个兄弟碰到的一个问题,才让我觉得这个东西还是有很多需要注意的地方,有必要仔细熟悉下。其实碰到的问题不复杂:
类似如下的一条语句:insert into xxxx select /*+parallel(a) ...
- 2009-08-21 18:10
- 浏览 3375
- 评论(3)
在一个单独的服务器中安装更多的CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA都不足为奇。 Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专业版的挑战是为用户的数据库配置尽可能多的CPU。
在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应 ...
- 2009-08-21 17:07
- 浏览 3016
- 评论(0)
CTAS是通过查询,然后根据查询的结果来建立表格的一种方式。显然通过这种方式可以省去定义表结构的方法,而且在创建表的同时导入数据。不过在使用这个方法的时候,仍然有些内容需要引起数据库管理员的注意。(SQL Server ...
- 2009-08-21 15:55
- 浏览 1418
- 评论(0)
大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿! SQL语句: 是对数据库(数据)进行操 ...
- 2009-08-20 21:01
- 浏览 1443
- 评论(0)
oracle中关于in和exists,not in 和 not exists
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
not exists:做NL,对子查询先查,有个虚表,有确定值,所以就算子查询有NULL最终也有值返回
not in:做hash,对子查询表建立内存数组,用外表匹配,那子查询要是有NULL那外表没的匹配最终无值返回。 一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差 ...
- 2009-08-20 15:01
- 浏览 5316
- 评论(0)
通常对于小表,Oracle建议通过全表扫描进行数据访问,对于大表则应该通过索引以加快数据查询,当然如果查询要求返回表中大部分或者全部数据,那么全表扫描可能仍然是最好的选择。从V$SYSSTAT视图中,我们可以查询得到关于全表扫描的系统统计信息:
SQL> col name for a30 SQL> select name,value from v$sysstat2 where name in ('table scans (short tables)','table scans (long tables)');
NAME VALUE---------------------- ...
- 2009-08-20 11:11
- 浏览 1348
- 评论(0)
oracle 提供一个reverse函数,可以实现将一个对象反向转换.
比如:
SQL> select reverse('123456') from dual;REVERSE('123456')-----------------654321
由于这个函数,是针对数据库内部存储的对象编码进行反转的,
因此,在比如:数字,中文等.因为实现存储的并不是直接编码后的结果,而是经过某种内部转换后实现的,因此,在转换完成后,并不一定是自己想要的结果.示例:
SQL> select reverse(123456) ,reverse('中华人民共和国') from dual;REVE ...
- 2009-08-19 18:03
- 浏览 1244
- 评论(0)
1. 用UNION替换OR (适用于索引列)
通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果。 对索引列使用OR将造成全表扫描。注意, 以上规则只针对多个索引列有效。 如果有column没有被索引, 查询效率可能会因为你没 ...
- 2009-08-19 15:14
- 浏览 724
- 评论(0)
Oracle sql 性能优化调整
1. 选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则)
b. COST (基于成本)
c. CHOOSE (选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加 ...
- 2009-08-19 15:07
- 浏览 876
- 评论(0)
1)索引唯一扫描 如果查询时是通过unique或primary key约束来保证只返回一条数据,那么优化器就会选择索引唯一扫描,这是访问一条数据的最快方式。
2)索引范围扫描
索引键非唯一,当遇到如下条件时会使用索引范围扫描:
1.col=:b1
2.col<:b1
3.col>:b1
3)索引降序范围扫描
与2)中的情况相同,只不过2)默认是按照升序进行查找的,而这里是按降序进行查找,如:
select line_item_id,order_id from order_items where order_id<:b1 order by order_id des ...
- 2009-08-19 14:47
- 浏览 1558
- 评论(0)
较典型的问题有:有时,表明明建有索引,但查询过程显然没有用到相关的索引,导致查询过程耗时漫长,占用资源巨大,问题到底出在哪儿呢?按照以下顺序查找,基本上能发现原因所在。查找原因的步骤首先,我们要确定数据库运行在何种优化模式下,相应的参数是: optimizer_mode 。可在 svrmgrl 中运行“ show parameter optimizer_mode" 来查看。 ORACLE V7 以来缺省的设置应是 "choose" ,即如果对已分析的表查询的话选择 CBO ,否则选择 RBO 。如果该参数设为“ rule ”,则不论表是否分析过,一概选用 RB ...
- 2009-08-19 11:36
- 浏览 1681
- 评论(0)
SQL> desc test; Name Null? Type ----------------------------------------- -------- ---------------------------- OBJECT_NAME VARCHAR2(128) OBJECT_ID NUMBER
=====================================
SQL> select count(*) from test;
Execution Plan------------------------ ...
- 2009-08-19 11:28
- 浏览 1256
- 评论(0)