快速執行大量 insert 語句的方法

feelpurple發表於2015-12-11
有時候,需要在資料庫中執行大量的 INSERT 語句。

如果在 SQLPLUS 或 PL SQL Developer 中呼叫指令碼而不加任何處理直接執行的話,效率會非常的低。

類似下面的方法執行

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


SQL> @20151211_ADD_DATA.sql


可以在作業系統後臺執行這些 SQL 語句,可以極大提升執行效率。

編寫一個簡單的 SHELL 指令碼

[oracle@DB1 work]$ vim insert_data.sh 


sqlplus -silent "/nolog" << EOF
connect site/"password"
start 20151211_ADD_DATA.sql
exit
EOF

在後臺呼叫 SHELL 指令碼,原本跑很長時間的指令碼,很快就執行完畢

nohup sh insert_data.sh &

[oracle@DB1 work]$ nohup: ignoring input and appending output to `nohup.out'


[oracle@DB1 work]$ 
[1]+  Done                    nohup sh insert_data.sh

需要注意的是字符集問題,如果插入或更新的欄位中有中文,則可能會有亂碼,需要保證操作系統的字符集和語言支援中文。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1870634/,如需轉載,請註明出處,否則將追究法律責任。

相關文章