【Oracle】-【索引】先查資料再建索引,還是先建索引再插資料?
問題:
1、新建一個表結構,建立索引,將百萬或千萬級的資料使用insert匯入該表。
2、新建一個表結構,將百萬或千萬級的資料使用isnert匯入該表,再建立索引。
這兩種效率哪個高呢?或者說用時短呢?
我感覺無論先建還是後建索引,當有資料時都需要update索引資料,問題是有索引的情況下插資料與有資料的情況下建立索引,各自的消耗。
實驗:
100w記錄,
1、先建立表和索引,再插入資料,大約1.3min。
2、先插資料,再建立兩個索引,create table xxx as select * from t where 1<>1;大約13秒,建立兩個索引大約26秒和35秒。
總結:
如果先建立索引再插入資料,每次插入資料還需要修改索引資訊。
實戰還要看業務要求,有的業務可能還需要索引和約束對資料進行校驗,這樣就應該先建立索引了。如果是一次性處理,原則上先插資料後建索引。
另外的問題:
使用nologging可以提高几秒鐘,但使用parallel沒變化,環境是虛機,4個物理CPU,8個虛擬CPU,這裡parallel應該如何設定呢?也請高手指教!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7192724/viewspace-767159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle】-【move】【索引】無資料的主鍵索引VALID還是UNUSABLEOracle索引
- 僅對部分資料構建索引索引
- mysql對資料庫表建索引MySql資料庫索引
- 資料庫建表及索引規約資料庫索引
- idea內建資料庫DataGrip + 索引Idea資料庫索引
- 求你了,別再說資料庫鎖的只是索引了!!!資料庫索引
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- Oracle資料庫索引使用及索引失效總結 轉Oracle資料庫索引
- 解決資料庫的索引亂碼問題,先刪除外來鍵約束,再刪除主鍵約束及其索引資料庫索引
- 資料庫索引資料庫索引
- Oracle 11g impdp 先資料後索引匯入方法Oracle索引
- MySQL索引(二):建索引的原則MySql索引
- Oracle資料庫索引管理規範Oracle資料庫索引
- indexedDB 資料庫 索引Index資料庫索引
- 資料庫索引原理資料庫索引
- 資料庫索引《二》資料庫索引
- 資料庫索引《一》資料庫索引
- 索引資料結構索引資料結構
- [資料庫]索引失效資料庫索引
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- 【資料庫】mysql資料庫索引資料庫MySql索引
- Mysql資料庫是如何通過索引定位資料MySql資料庫索引
- 資料庫表,索引(索引組織表,聚簇表,聚簇索引,)資料庫索引
- MongoDB資料庫如何能備份集合的建索引語句?MongoDB資料庫索引
- Oracle資料庫開發——瞭解索引Oracle資料庫索引
- mysql資料庫的索引MySql資料庫索引
- MySQL資料庫之索引MySql資料庫索引
- 資料庫之建立索引資料庫索引
- 概覽資料庫索引資料庫索引
- 資料庫的部分索引資料庫索引
- 資料庫索引層級資料庫索引
- chinaunix-索引資料索引
- 資料庫補丁索引資料庫索引
- 資料庫索引原理-轉資料庫索引
- SQL Server 資料庫索引SQLServer資料庫索引
- 玩轉資料庫索引資料庫索引
- MySQL 分割槽建索引MySql索引
- oracle構建索引index後table的10046資料塊讀取測試Oracle索引Index