慎用 skip_unused_indexes
在IMP 一個大表資料時,曾經以為 可以這樣做:
1. import 空表,帶索引
2. 將索引置為unusable
3. 使用SKIP_UNUSABLE_INDEXES = Y 引數匯入資料
4. Rebuild nologging 索引
個人以為,比單純的IMP 資料,第四步由於使用NOLOGGING資料,速度肯定會快點。
於是編寫兩個的比較指令碼:
1. 傳統的IMP
首先 truncate table outp_bill_items reuse storage ;
time /t
imp system/manager file=outp_bill_items.dmp full=y ignore=y log = imp.log feedback = 100000
time /t
整個時間為14:47 到14:53 不過7分鐘左右
2. NOLOGGING 方式:
首先 truncate table outp_bill_items reuse storage ;
time/t
imp system/manager file=outp_bill_items.dmp full=y ignore=y log = imp.log feedback = 100000 rows=n trigger=n
sqlplus outpbill/outpbill @disableidx.sql
imp system/manager file=outp_bill_items.dmp full=y ignore=y log = imp.log SKIP_UNUSABLE_INDEXES = Y
sqlplus outpbill/outpbill @enableidx.sql
time/t
整個時間為15:59 到16:23 都快半小時了
其中指令碼disableidx.sql
BEGIN
FOR cur_index IN (SELECT index_name
FROM user_indexes
WHERE table_name = 'OUTP_BILL_ITEMS'
AND index_name NOT IN (
SELECT constraint_name
FROM user_constraints
WHERE table_name =
'OUTP_BILL_ITEMS'))
LOOP
EXECUTE IMMEDIATE ' alter index ' || cur_index.index_name
|| ' unusable ';
END LOOP;
END;
/
BEGIN
FOR cur_index IN (SELECT trigger_name
FROM user_triggers
WHERE table_name = 'OUTP_BILL_ITEMS')
LOOP
EXECUTE IMMEDIATE ' alter trigger ' || cur_index.trigger_name
|| ' disable ';
END LOOP;
END;
/
exit
指令碼enableidx.sql
alter session set sort_area_size = 120000000 ;
BEGIN
FOR cur_index IN (SELECT index_name
FROM user_indexes
WHERE table_name = 'OUTP_BILL_ITEMS'
AND index_name NOT IN (
SELECT constraint_name
FROM user_constraints
WHERE table_name =
'OUTP_BILL_ITEMS'))
LOOP
EXECUTE IMMEDIATE ' alter index '
|| cur_index.index_name
|| ' rebuild nologging ';
END LOOP;
END;
/
BEGIN
FOR cur_index IN (SELECT trigger_name
FROM user_triggers
WHERE table_name = 'OUTP_BILL_ITEMS')
LOOP
EXECUTE IMMEDIATE ' alter trigger ' || cur_index.trigger_name
|| ' enable ';
END LOOP;
END;
/
exit
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9036/viewspace-167417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 慎用rsync
- 為了效能,慎用遞迴遞迴
- ON UPDATE CURRENT_TIMESTAMP請慎用
- [20200325]慎用標量子查詢.txt
- 慎用PHP的unset、array_unique方法PHP
- 要慎用mysql的enum欄位的原因MySql
- 為什麼在Go語言中要慎用interface{}Go
- [20180814]慎用檢視錶壓縮率指令碼.txt指令碼
- IO建立Socket通訊中慎用BufferReader中的readLine()
- 新潮測試平臺--慎用 PRC 返回的資料 (二)
- 遊戲時代 是否應該慎用家長控制功能?遊戲
- 慎用JS中的slice()、concat()和assign()方法來複制陣列JS陣列
- 安全函式不安全-多執行緒慎用List.h函式執行緒
- Java跨平臺?慎用這些有平臺差異性的方法Java
- ORACLE 資料庫業務使用者密碼重置慎用特殊字元Oracle資料庫密碼字元
- *{}慎用,會連title,script,style這些都新增上相應的屬性