PB9+asa,200萬條文本資料,都已格式化好,用datawindow的importfile,速度很慢,一個多小時才20萬條左右,往后我都不敢倒了,怕死機;撰寫腳本從文本一行一行讀取然后用INSERT陳述句插入到表里,速度也差不多,一個多小時才30萬條左右,也很慢。如果不用PB寫程式腳本,在interactive SQL工具里,用LOAD INTO TABLE陳述句倒則很快,不過只能手工匯入,但我需要用程式每天定時自動匯入幾百萬行資料,有什么快速方法?謝謝。我試了LOAD INTO TABLE陳述句屬于ISQL陳述句,PB腳本里不支持。
uj5u.com熱心網友回復:
在pb中,采用importfile是最快的匯入方式,你可以把檔案分成幾個,然后直接匯入uj5u.com熱心網友回復:
直接用處理也可以@echo off
set path=D:\
set ls_dbn=%~n1
set ls_server=%COMPUTERNAME%;
::連接字串databasename=%ls_dbn%;server=%ls_server%;
set ls_connstr=userid=dba;password=sql;databasefile=%1;
set ls_left=dbisqlc12 -c %ls_connstr% -q
::設定分隔符和字符集
set ls_end=DELIMITED BY ','ENCODING 'UTF-8'
::echo 啟動引擎并打開資料庫...
::dbisqlc12 -q "START ENGINE as '%ls_server%' STARTLINE 'dbeng12 -c 8m'"
::dbisqlc12 -q "start database %1 as %ls_dbn% on '%ls_server%' AUTOSTOP OFF"
echo 啟動引擎并連接到資料庫...
dbisqlc12 -c %ls_connstr%AutoStop=OFF; -q "select 1"
echo delete from SALE_BARCODE...
%ls_left% "delete from SALE_BARCODE"
::%ls_left% "LOAD TABLE SALE_BARCODE(BC_BARCODE1,BC_CLOTHNO,BC_COLOR,BC_SIZE,BC_UPDATETIME,BC_UPDATEMAN) FROM %2 %ls_end% "
::echo LOAD TABLE SALE_CLOTH
%ls_left% "LOAD TABLE SALE_CLOTH(CT_ID,CT_STYLEID,CT_NAME,CT_SIZETYPE,CT_PRICE,CT_QH,CT_UPDATETIME,CT_UPDATEMAN) FROM %3 %ls_end% "
::停止資料庫
::dbstop12 -y %ls_dbn%
::dbisqlc12 -q "stop database %ls_dbn% on '%ls_server%' "
::dbisqlc12 -q "stop ENGINE '%ls_server%' "
dbstop12 -c %ls_connstr%
uj5u.com熱心網友回復:
@xiajinxian 你好,這正是我想要的方式,但看不大明白,各引數的含義和填寫方法能詳細解釋一下嗎,謝謝。例如%2是不是表示要匯入檔案的詳細路徑及檔案名uj5u.com熱心網友回復:
這是一個bat檔案,1%就是bat的第一個引數 是個db檔案的地址
其它具體可以了解一下批處理的語法
uj5u.com熱心網友回復:
bat檔案語法哪有得學?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/33002.html
標籤:數據庫相關
