案例1:
前提:batch執行,從文件讀入10萬條數據,insert到數據庫中,沒有中間commit(win10、postgresql)。
問題:5萬件執行時間00:01:15,10萬件執行時間01:05:00。
原因:沒有commit,所有數據都在緩存中,緩存炸了。
對策:增加數據庫緩存,\PostgreSQL\10\data\postgresql.conf中“shared_buffers = 128MB”》》》“shared_buffers = 256MB”,重啓動postgresql,在services.msc中重啓,或者,在cmd中“pg_ctl restart”。
結果:10萬件執行時間00:00:30,200萬件執行時間00:19:00.
案例2:
前提:同案例1,外加select數據庫剛剛insert的數據,沒有中間commit。
問題:10萬件執行01:10:00
原因:數據量大,select的集合太大,檢索速度太慢。
對策:檢索項目,表定義中追加該項目的index,加快檢索速度。
結果:10萬件執行時間00:00:30,200萬件執行時間00:19:00.