Oracle中与分区表相关的问题总结(下)

2.跨分区访问,依然是分区表的性能好,因为数据集中在了2个分区中,还是比访问

t1要少访问数据...

SQL> select * from t1 where object_id<4000;

已选择504448行。

执行计划

----------------------------------------------------------

Plan hash value: 3617692013

--------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 547K| 41M| 1070 (4)| 00:00:13 |

|* 1 | TABLE ACCESS FULL| T1 | 547K| 41M| 1070 (4)| 00:00:13 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter("OBJECT_ID"<4000)

Note

-----

- dynamic sampling used for this statement

统计信息

----------------------------------------------------------

5 recursive calls

0 db block gets

38318 consistent gets

0 physical reads

0 redo size

15092711 bytes sent via SQL*Net to client

370304 bytes received via SQL*Net from client

33631 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

504448 rows processed

SQL> set timing on

SQL> select * from t1 where object_id<4000;

已选择504448行。

已用时间: 00: 00: 09.79

执行计划

----------------------------------------------------------

Plan hash value: 3617692013

--------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 547K| 41M| 1070 (4)| 00:00:13 |

|* 1 | TABLE ACCESS FULL| T1 | 547K| 41M| 1070 (4)| 00:00:13 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter("OBJECT_ID"<4000)

Note

-----

- dynamic sampling used for this statement

统计信息

----------------------------------------------------------

0 recursive calls

0 db block gets

38236 consistent gets

0 physical reads

0 redo size

15092711 bytes sent via SQL*Net to client

370304 bytes received via SQL*Net from client

33631 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

504448 rows processed

SQL> select * from t where object_id<4000;

已选择504448行。

已用时间: 00: 00: 09.85

执行计划

----------------------------------------------------------

Plan hash value: 1571388083

--------------------------------------------------------------------------------

-----------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time

| Pstart| Pstop |

--------------------------------------------------------------------------------

-----------------

| 0 | SELECT STATEMENT | | 459K| 13M| 837 (53)| 00:00:11

| | |

| 1 | PARTITION RANGE ITERATOR| | 459K| 13M| 837 (53)| 00:00:11

| 1 | 2 |

| 2 | TABLE ACCESS FULL | T | 459K| 13M| 837 (53)| 00:00:11

| 1 | 2 |

--------------------------------------------------------------------------------

-----------------

Note

-----

- dynamic sampling used for this statement

统计信息

----------------------------------------------------------

69 recursive calls

1 db block gets

36078 consistent gets

946 physical reads

48432 redo size

15092711 bytes sent via SQL*Net to client

370304 bytes received via SQL*Net from client

33631 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

504448 rows processed

SQL> select * from t where object_id<4000;

已选择504448行。

已用时间: 00: 00: 10.12

执行计划

----------------------------------------------------------

Plan hash value: 1571388083

--------------------------------------------------------------------------------

-----------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time

| Pstart| Pstop |

--------------------------------------------------------------------------------

-----------------

| 0 | SELECT STATEMENT | | 459K| 13M| 837 (53)| 00:00:11

| | |

| 1 | PARTITION RANGE ITERATOR| | 459K| 13M| 837 (53)| 00:00:11

| 1 | 2 |

| 2 | TABLE ACCESS FULL | T | 459K| 13M| 837 (53)| 00:00:11

| 1 | 2 |

--------------------------------------------------------------------------------

时间: 2024-11-03 15:31:21

Oracle中与分区表相关的问题总结(下)的相关文章

Oracle中与分区表相关的问题总结(上)

通过对比分区表和普通表,简单的测试了性能和对分区表存在index时的维护,最后我们不得不说 使用分区表很多时候不一定能提高性能,主要是维护起来方便,如果我们能把访问的数据集中 在一个或者有限的几个分区里,那么性能肯定比访问普通的全表要好,还是那句话 让执行的sql尽可能的少读.少写,这样才是提高sql性能的关键,就像anlinew提到的公式: T=S/V,其实少读.少写的目的就是减小S... --创建2个结构完全相同,数据量几乎相同的表,只不过是分区表,一个是普通的heap表,然后简单的做个访问

ORACLE数据库查看分区表相关信息的方法

  ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识.下面我们先创建两个表TEST. GPRS_CELLTOPVOL_WK来做实验,脚本如下: CREATE TABLE GPRS_CELLTOPVOL_WK ( DATE_CD NUMBER ( 8 ) NOT NULL , WK_CD NUMBER ( 2 ) NOT NULL , CITY_ID NUMBER ( 10 ) , CELL_EN_NAM VARCHAR2 ( 64 ) NOT NULL , CELL

Oracle中字符缓冲区相关错误

一.buffer overflow,limit of 10000 bytes declare begin for c in 1..1000 loop  dbms_output.put_line('测试测试测试'); end loop; end; 缓冲区默认大小为10000 bytes.循环1000次一共有6000个汉字,也就是12000 bytes.在SQL窗口的输出标签页可设置缓冲区大小. 二.数字或值错误:字符串缓冲区太小 declare v varchar2(100):=''; begin

Oracle中创建临时表、外部表和分区表实例

临时表 在Oracle中,临时表是"静态"的,它与普通的数据表一样只需要一次创建,其结构从创建到删除的整个期间都是有效的.相对于其他类型的表,临时表只有在用户实际向表中添加数据时,才会为其分配空间,并且分配的空间来自临时表空间.这就避免了与永久对象的数据争用存储空间. 创建临时表的语法如下: CREATE GLOBAL TEMPORARY TABLE table_name( column_name data_type,[column_name data_type,...] )ON CO

oracle中sql汇总查询相关的问题

问题描述 oracle中sql汇总查询相关的问题 怎么通过一条sql查询出如下表中的所有记录数和交易成功记录数,其中status是交易状态(交易状态 [0:未付款;1:交易关闭;2:已付款;3:交易完成(含退款);4:交易成功;5:交易失败(担保交易)]6.支付中), 表结构如下: 解决方案 http://www.oschina.net/question/2257111_177653 解决方案二: select count(1) as zongshu,'总数' as leixing from a

oracle数据库dba_hist等视图中的Delta相关字段介绍

    从10g开始,我们采用awr报告来分析数据库的性能,我们发现增加了很多dba_hist相关的视图,其中基于时间相关的字段delta开始出现,对于我们计算语句的时间消耗很有帮助! 其实Delta 表示第四个希腊字母,大写为Δ,小写为δ,其在数学和科学,表示变量的变化 在Oracle中的Delta number其实是指在采样间隔内,指标的增加值,也就是2个采样间的差值 有Delta相关字段的表为dba_hist_active_sess_history.DBA_HIST_SEG_STAT.DB

Oracle中的优化器--CBO和RBO

Oracle中的优化器--CBO和RBO Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO)          RBO: Rule-Based Optimization 基于规则的优化器          CBO: Cost-Based Optimization 基于代价的优化器 RBO自ORACLE 6以来被采用,一直沿

Oracle中的并行

Oracle中的并行 一Oracle中的并行 首先Oracle会创建一个进程用于协调并行服务进程之间的信息传递这个协调进程将需要操作的数据集例如表的数据块分割成很多部分称为并行处理单元然后并行协调进程给每个并行进程分配一个数据单元.例如有四个并行服务进程它们就会同时处理各自分配的单元当一个并行服务进程处理完毕后协调进程就会给它们分配另外的单元如此反复直到表上的数据都处理完毕最后协调进程负责将每个小的集合合并为一个大集合作为最终的执行结果返回给用户.并行处理的机制实际上就是把一个要扫描的数据集分成

在Oracle中如何删除表中设计重复数据

oracle|设计|数据|重复 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询