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

Oracle分區表技術(PartitionedTables)

編輯:Oracle教程

Oracle分區表技術(PartitionedTables)


 

 

自Oracle 8(1997年左右)就引入了分區表&分區索引(Partitioned Tables & Indexes)的概念來調整大表和大索引,提升性能,提升運維管理的能力。分區表和分區索引機制是海量數據庫管理(Very Large Databases ,即VLDB) 中一個重要的提升性能的機制。
Oracle分區技術的歷史Oracle 8引入了分區的概念,後續的每個版本都有對分區機制優化和改進。\使用分區表/索引的好處性能提升: Select語句只檢索本分區的記錄,減少了記錄總數,可有效的提升了查詢性能。另外,可以通過表空間將分區映射到不同的物理磁盤上,分散設備IO,提升性能;分區運維:可以針對不同分區,管理數據的加載、索引的創建(以及重建)、數據備份與恢復。因為可針對分區的管理,所以可以有效的降低了分區間的干擾、影響。更多分區的好處可以閱讀Oracle Partitioning這篇文章,寫的更加詳細些。
什麼時候使用分區表什麼時候使用分區表,並沒有一個精確的界限,Oracle只有一些通用的建議,具體使用需要自行評估: <br >tables="" greater="" than="" 2gb="" should="" always="" be="" considered="" for="" partitioning.tables="" containing="" historical="" data,="" in="" which="" new="" data="" is="" added="" into="" the="" newest="" partition.="" a="" typical="" example="" table="" where="" only="" current="" month's="" updatable="" and="" other="" 11="" months="" are="" read="" only.tip:="" 計算表大小的sql
如何分區(分區的方法)Partition Key分區表/索引是以一個或多個字段為依據來決定記錄存儲在哪個分區,被選用的分區字段稱為Partition Key,Oracle會根據Partition Key自動找到對應的分區中做insert, update, delete操作。
分區的方法Oracle提供了6種分區方法:\

Partitioning Method

Brief Description

Range Partitioning

Used when there are logical ranges of data. Possible usage: dates, part numbers, and serial numbers

Hash Partitioning

Used to spread data evenly over partitions. Possible usage: data has no logical groupings

List Partitioning

Used to list together unrelated data into partitions. Possible usage: a number of states list partitioned into a region

Composite Range-Hash Partitioning

Used to range partition first, then spreads data into hash partitions. Possible usage: range partition by date of birth then hash partition by name; store the results into the hash partitions

Composite Range-List Partitioning

Used to range partition first, then spreads data into list partitions.Possible usage: range partition by date of birth then list partition by state, then store the results into the list partitions


ExamplesRange Partitioning Example--創建表空間create tablespace invoices_2010 datafile 'e:\app\TianPan\oradata\tbs01.dbf' size 50m;
List Partitioning Example--創建表空間
Useful Query[Query]如何知道一個表或索引是否有被分區SELECT * FROM dba_part_tables;
[Query]如何列出分區表或索引的分區對象SELECT * FROM dba_tab_partitions WHERE table_name = '<table_name>';
分區表的數據導出導入全表導出C:\Users\TianPan>exp system/welcome@ptian file=c:\test.dmp tables=Invoices
分區表導出C:\Users\TianPan>exp system/welcome@ptian file=c:\test_part.dmp tables=Invoices:part03
全表導入imp system/welcome@ptian file=test.dmp full=y
分區表導入imp system/welcome@ptianfile=test_part.dmp full=y
數據泵expdp/impdp的方式
導出整個表

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