程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> DBA_Oracle DBA分區概念匯總(概念),dba_oracledba

DBA_Oracle DBA分區概念匯總(概念),dba_oracledba

編輯:Oracle教程

DBA_Oracle DBA分區概念匯總(概念),dba_oracledba


2014-06-20 BaoXinjian

一、摘要


有關表分區的一些維護性操作:

注:分區根據具體情況選擇。

表分區有以下優點:

1、數據查詢:數據被存儲到多個文件上,減少了I/O負載,查詢速度提高。

2、數據修剪:保存歷史數據非常的理想。

3、備份:將大表的數據分成多個文件,方便備份和恢復。

4、並行性:可以同時向表中進行DML操作,並行性性能提高。

 

二、分區操作


1. 添加分區

以下代碼給SALES表添加了一個P3分區

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

注意:以上添加的分區界限應該高於最後一個分區界限。

以下代碼給SALES表的P3分區添加了一個P3SUB1子分區

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');

 

2. 刪除分區

以下代碼刪除了P3表分區:

ALTER TABLE SALES DROP PARTITION P3;

在以下代碼刪除了P4SUB1子分區:

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

注意:如果刪除的分區是表中唯一的分區,那麼此分區將不能被刪除,要想刪除此分區,必須刪除表。

 

3. 截斷分區

截斷某個分區是指刪除某個分區中的數據,並不會刪除分區,也不會刪除其它分區中的數據。當表中即使只有一個分區時,也可以截斷該分區。通過以下代碼截斷分區:

ALTER TABLE SALES TRUNCATE PARTITION P2;

通過以下代碼截斷子分區:

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;

 

4. 合並分區

合並分區是將相鄰的分區合並成一個分區,結果分區將采用較高分區的界限,值得注意的是,不能將分區合並到界限較低的分區。以下代碼實現了P1 P2分區的合並:

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;

 

5. 拆分分區

拆分分區將一個分區拆分兩個新分區,拆分後原來分區不再存在。注意不能對HASH類型的分區進行拆分。

ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD'))

INTO (PARTITION P21,PARTITION P22);

 

6. 接合分區(coalesca)

結合分區是將散列分區中的數據接合到其它分區中,當散列分區中的數據比較大時,可以增加散列分區,然後進行接合,值得注意的是,接合分區只能用於散列分區中。通過以下代碼進行接合分區:

ALTER TABLE SALES COALESCA PARTITION;

 

7.重命名表分區

以下代碼將P21更改為P2

ALTER TABLE SALES RENAME PARTITION P21 TO P2;

 

8. 跨分區查詢

select sum( *) from (

(select count(*) cn from t_table_SS PARTITION (P200709_1)

union all

select count(*) cn from t_table_SS PARTITION (P200709_2));

 

9. 查詢表上有多少分區

SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='tableName'

 

10. 查詢索引信息

select object_name,object_type,tablespace_name,sum(value)

from v$segment_statistics

where statistic_name IN ('physical reads','physical write','logical reads')and object_type='INDEX'

group by object_name,object_type,tablespace_name

order by 4 desc

 

三、分區查詢


1.顯示數據庫所有分區表的信息:

select * from DBA_PART_TABLES

 

2.顯示當前用戶可訪問的所有分區表信息:

select * from ALL_PART_TABLES

 

3.顯示當前用戶所有分區表的信息:

select * from USER_PART_TABLES

 

4.顯示表分區信息 顯示數據庫所有分區表的詳細分區信息:

select * from DBA_TAB_PARTITIONS           

 

5.顯示當前用戶可訪問的所有分區表的詳細分區信息:

select * from ALL_TAB_PARTITIONS

 

6.顯示當前用戶所有分區表的詳細分區信息:

select * from USER_TAB_PARTITIONS

 

7.顯示子分區信息 顯示數據庫所有組合分區表的子分區信息:

select * from DBA_TAB_SUBPARTITIONS

 

8.顯示當前用戶可訪問的所有組合分區表的子分區信息:

select * from ALL_TAB_SUBPARTITIONS

 

9.顯示當前用戶所有組合分區表的子分區信息:

select * from USER_TAB_SUBPARTITIONS

 

10.顯示分區列 顯示數據庫所有分區表的分區列信息:

select * from DBA_PART_KEY_COLUMNS

 

11.顯示當前用戶可訪問的所有分區表的分區列信息:

select * from ALL_PART_KEY_COLUMNS

 

12.顯示當前用戶所有分區表的分區列信息:

select * from USER_PART_KEY_COLUMNS

 

13.顯示子分區列 顯示數據庫所有分區表的子分區列信息:

select * from DBA_SUBPART_KEY_COLUMNS

 

14.顯示當前用戶可訪問的所有分區表的子分區列信息:

select * from ALL_SUBPART_KEY_COLUMNS

 

15.顯示當前用戶所有分區表的子分區列信息:

select * from USER_SUBPART_KEY_COLUMNS

 

16.怎樣查詢出oracle數據庫中所有的的分區表

select * from user_tables a where a.partitioned='YES'

 

********************作者: 鮑新建********************

 

轉載: 關於DBA的資料基本都轉載於網絡,因整理之後,一直放著,找不到出處了,向原作者致敬

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved