成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

創建與管理Oracle分區表和本地索引的實例解析

數據庫 Oracle
本文我們主要介紹了創建與管理Oracle分區表和本地索引的相關知識,并用一些實例對這一過程加以說明與解析,希望能夠對您有所幫助。

創建與管理Oracle分區表本地索引的相關知識是本文我們主要要介紹的內容,我們知道,Oracle的分區技術在某些條件下可以極大的提高查詢的性能,所以被廣泛采用。從產品上說,分區技術是Oracle企業版中獨立收費的一個組件。以下是對于分區及本地索引的一個示例。

首先根據字典表創建一個測試分區表:

 

 

  1. SQL> connect eygle/eygle   
  2.   Connected.   
  3.   SQL> CREATE TABLE dbobjs   
  4.   2 (OBJECT_ID NUMBER NOT NULL,   
  5.   3 OBJECT_NAME varchar2(128),   
  6.   4 CREATED DATE NOT NULL   
  7.   5 )   
  8.   6 PARTITION BY RANGE (CREATED)   
  9.   7 (PARTITION dbobjs_06 VALUES LESS THAN (TO_DATE('01/01/2007', 'DD/MM/YYYY')),   
  10.   8 PARTITION dbobjs_07 VALUES LESS THAN (TO_DATE('01/01/2008', 'DD/MM/YYYY')));   
  11.   Table created.   
  12.   SQL> COL segment_name for a20   
  13.   SQL> COL PARTITION_NAME for a20   
  14.   SQL> SELECT segment_name, partition_name, tablespace_name   
  15.   2 FROM dba_segments   
  16.   3 WHERE segment_name = 'DBOBJS';   
  17.   SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME   
  18.   -------------------- -------------------- ------------------------------   
  19.   DBOBJS DBOBJS_06 EYGLE   
  20.   DBOBJS DBOBJS_07 EYGLE 

 

創建一個Local索引,注意這里可以將不同分區的索引指定創建到不同的表空間:

 

  1. SQL> CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL   
  2.   2 (PARTITION dbobjs_06 TABLESPACE users,   
  3.   3 PARTITION dbobjs_07 TABLESPACE users   
  4.   4 );   
  5.   Index created. 

 

這個子句可以進一步調整為類似:

 

  1. CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL   
  2.   (PARTITION dbobjs_06 TABLESPACE users,   
  3.   PARTITION dbobjs_07 TABLESPACE users   
  4.   ) TABLESPACE users; 

 

通過統一的tablespace子句為索引指定表空間。

 

  1. SQL> COL segment_name for a20   
  2.   SQL> COL PARTITION_NAME for a20   
  3.   SQL> SELECT segment_name, partition_name, tablespace_name   
  4.   2 FROM dba_segments   
  5.   3 WHERE segment_name = 'DBOBJS_IDX';   
  6.   SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME   
  7.   -------------------- -------------------- ------------------------------   
  8.   DBOBJS_IDX DBOBJS_06 USERS   
  9.   DBOBJS_IDX DBOBJS_07 USERS   
  10.   SQL> insert into dbobjs   
  11.   2 select object_id,object_name,created   
  12.   3 from dba_objects where created   
  13.   6227 rows created.   
  14.   SQL> commit;   
  15.   Commit complete.   
  16.   SQL> select count(*) from dbobjs partition (DBOBJS_06);   
  17.   COUNT(*)   
  18.   ----------   
  19.   6154   
  20.   SQL> select count(*) from dbobjs partition (dbobjs_07);   
  21.   COUNT(*)   
  22.   ----------   
  23.   73 

 

我們可以通過查詢來對比一下分區表和非分區表的查詢性能差異:

 

  1. SQL> set autotrace on   
  2.  SQL> select count(*) from dbobjs where created < to_date('01/01/2008','dd/mm/yyyy');   
  3.   COUNT(*)   
  4.   ----------   
  5.   6227   
  6.   Execution Plan   
  7.   ----------------------------------------------------------   
  8.   0 SELECT STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=9)   
  9.   1 0 SORT (AGGREGATE)   
  10.   2 1 PARTITION RANGE (ALL)   
  11.   3 2 INDEX (RANGE SCAN) OF 'DBOBJS_IDX' (NON-UNIQUE) (Cost=2 Card=8 Bytes=72)   
  12.   Statistics   
  13.   ----------------------------------------------------------   
  14.   0 recursive calls   
  15.   0 db block gets   
  16.   25 consistent gets   
  17.   0 physical reads   
  18.   0 redo size   
  19.   380 bytes sent via SQL*Net to client   
  20.   503 bytes received via SQL*Net from client   
  21.   2 SQL*Net roundtrips to/from client   
  22.   0 sorts (memory)   
  23.   0 sorts (disk)   
  24.   1 rows processed   
  25.   SQL> select count(*) from dbobjs where created < to_date('01/01/2007','dd/mm/yyyy');   
  26.   COUNT(*)   
  27.   ----------   
  28.   6154   
  29.   Execution Plan   
  30.   ----------------------------------------------------------   
  31.   0 SELECT STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=9)   
  32.   1 0 SORT (AGGREGATE)   
  33.   2 1 INDEX (RANGE SCAN) OF 'DBOBJS_IDX' (NON-UNIQUE) (Cost=2 Card=4 Bytes=36)   
  34.   Statistics   
  35.   ----------------------------------------------------------   
  36.   0 recursive calls   
  37.   0 db block gets   
  38.   24 consistent gets   
  39.   0 physical reads   
  40.   0 redo size   
  41.   380 bytes sent via SQL*Net to client   
  42.   503 bytes received via SQL*Net from client   
  43.   2 SQL*Net roundtrips to/from client   
  44.   0 sorts (memory)   
  45.   0 sorts (disk)   
  46.   1 rows processed   
  47.   SQL> select count(distinct(object_name)) from dbobjs where created < to_date('01/01/2007','dd/mm/yyyy');   
  48.   COUNT(DISTINCT(OBJECT_NAME))   
  49.   ----------------------------   
  50.   4753   
  51.   Execution Plan   
  52.   ----------------------------------------------------------   
  53.   0 SELECT STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=75)   
  54.   1 0 SORT (GROUP BY)   
  55.   2 1 TABLE ACCESS (BY LOCAL INDEX ROWID) OF 'DBOBJS' (Cost=1 Card=4 Bytes=300)   
  56.   3 2 INDEX (RANGE SCAN) OF 'DBOBJS_IDX' (NON-UNIQUE) (Cost=2 Card=1)   
  57.   Statistics   
  58.   ----------------------------------------------------------   
  59.   0 recursive calls   
  60.   0 db block gets   
  61.   101 consistent gets   
  62.   0 physical reads   
  63.   0 redo size   
  64.   400 bytes sent via SQL*Net to client   
  65.   503 bytes received via SQL*Net from client   
  66.   2 SQL*Net roundtrips to/from client   
  67.   1 sorts (memory)   
  68.   0 sorts (disk)   
  69.   1 rows processed 

 

對于非分區表的測試:

 

  1. SQL> CREATE TABLE dbobjs2   
  2.   2 (object_id NUMBER NOT NULL,   
  3.   3 object_name VARCHAR2(128),   
  4.   4 created DATE NOT NULL   
  5.   5 );   
  6.   Table created.   
  7.   SQL> CREATE INDEX dbobjs_idx2 ON dbobjs2 (created);   
  8.   Index created.   
  9.   SQL> insert into dbobjs2   
  10.   2 select object_id,object_name,created   
  11.   3 from dba_objects where created   
  12.   6227 rows created.   
  13.   SQL> commit;   
  14.   Commit complete.   
  15.   SQL> select count(distinct(object_name)) from dbobjs2 where created < to_date('01/01/2007','dd/mm/yyyy');   
  16.   COUNT(DISTINCT(OBJECT_NAME))   
  17.   ----------------------------   
  18.   4753   
  19.   Execution Plan   
  20.   ----------------------------------------------------------   
  21.   0 SELECT STATEMENT ptimizer=CHOOSE   
  22.   1 0 SORT (GROUP BY)   
  23.   2 1 TABLE ACCESS (BY INDEX ROWID) OF 'DBOBJS2'   
  24.   3 2 INDEX (RANGE SCAN) OF 'DBOBJS_IDX2' (NON-UNIQUE)   
  25.   Statistics   
  26.   ----------------------------------------------------------   
  27.   0 recursive calls   
  28.   0 db block gets   
  29.   2670 consistent gets   
  30.   0 physical reads   
  31.   1332 redo size   
  32.   400 bytes sent via SQL*Net to client   
  33.   503 bytes received via SQL*Net from client   
  34.   2 SQL*Net roundtrips to/from client   
  35.   1 sorts (memory)   
  36.   0 sorts (disk)   
  37.   1 rows processed 

 

當增加表分區時,LOCAL索引被自動維護:

 

  1. SQL> ALTER TABLE dbobjs   
  2.   2 ADD PARTITION dbobjs_08 VALUES LESS THAN (TO_DATE('01/01/2009', 'DD/MM/YYYY'));   
  3.   Table altered.   
  4.   SQL> set autotrace off   
  5.   SQL> COL segment_name for a20   
  6.   SQL> COL PARTITION_NAME for a20   
  7.   SQL> SELECT segment_name, partition_name, tablespace_name   
  8.   2 FROM dba_segments   
  9.   3 WHERE segment_name = 'DBOBJS_IDX';   
  10.   SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME   
  11.   -------------------- -------------------- ------------------------------   
  12.   DBOBJS_IDX DBOBJS_06 USERS   
  13.   DBOBJS_IDX DBOBJS_07 USERS   
  14.   DBOBJS_IDX DBOBJS_08 EYGLE   
  15.   SQL> SELECT segment_name, partition_name, tablespace_name   
  16.   2 FROM dba_segments   
  17.   3 WHERE segment_name = 'DBOBJS';   
  18.   SEGMENT_NAME PARTITION_NAME TABLESPACE_NAME   
  19.   -------------------- -------------------- ------------------------------   
  20.   DBOBJS DBOBJS_06 EYGLE   
  21.   DBOBJS DBOBJS_07 EYGLE   
  22.   DBOBJS DBOBJS_08 EYGLE 

 

關于創建與管理Oracle分區表和本地索引的相關知識及實例就介紹到這里了,如果您想了解更多關于Oracle數據庫的知識,可以看一下這里的文章:http://database.51cto.com/oracle/,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. SQL Server日期時間格式轉換字符串詳解
  2. SQL Server數據庫流水號的使用方法詳解
  3. SQL Server 2005學習筆記之數據修改心得
  4. SQL Server 2000如何更改賬戶默認數據庫?
  5. SQL Server 2005數據庫排序的SQL實例解析
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2009-06-24 10:26:41

Oracle約束分區表

2010-11-16 10:21:25

Oracle創建表

2021-01-20 08:07:52

oracle分區單表

2022-01-11 08:46:56

Oracle 在線重定義數據庫

2021-09-07 17:54:04

OpenGauss分區表索引

2010-04-16 13:41:14

Oracle表分區

2011-07-20 16:03:06

SQL Server數分區表

2010-04-19 14:01:22

Oracle查看分區表

2023-10-11 13:42:21

2021-04-19 08:16:38

Hive數據類型大數據技術

2010-04-28 11:56:09

Oracle臨時表

2023-01-30 09:13:17

Oracle分區表技術

2011-04-11 11:32:29

Oracle分區表磁盤IO沖突

2010-11-10 14:47:11

SQL Server創

2010-10-11 10:16:17

Mysql分區表

2010-11-22 15:06:46

MySQL分區表

2017-08-30 16:59:54

PostgreSQL分區表

2010-04-12 16:50:47

Oracle索引聚簇表

2011-03-22 14:57:52

Oracle數據庫普通表分區表

2010-10-11 09:50:32

Mysql分區表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品国产免费网站 | 91精品一区二区三区久久久久久 | 国产激情免费视频 | 精品91久久久 | 99re视频这里只有精品 | 国产伦精品一区二区三区在线 | 中文字幕亚洲一区二区va在线 | 一区二区成人 | 精品一区二区三区四区外站 | 欧美理伦片在线播放 | 一区二区在线免费播放 | 久久精品网 | 亚洲精品国产综合区久久久久久久 | www4虎| www.精品一区| 在线一级片 | 999久久久精品 | 在线观看久草 | 久久久久久久香蕉 | 中文字幕在线中文 | 国产一区二区三区视频在线观看 | 久久精品国产久精国产 | 欧美视频xxx | 97精品国产手机 | 一区二区中文 | 人人澡人人射 | 国产视频中文字幕 | 日韩av一区二区在线 | chengrenzaixian| 精品免费视频 | 亚洲色视频 | 亚洲va欧美va天堂v国产综合 | 久久久精 | 中文字幕中文字幕 | 欧美精品在线一区二区三区 | 97caoporn国产免费人人 | 网络毛片| 在线免费观看黄a | 日韩午夜电影在线观看 | 日韩av电影在线观看 | 一区二区不卡视频 |