2014-01-24 55 views
0

這對我來說是一個非常混亂的問題。將stdout重定向到日誌文件導致性能下降

我正在運行db2加​​載操作,但是是否將stdout重定向到本地日誌文件還是有很大的區別。

這裏是統計:

[[email protected]:/home/dbadmin]# time db2 -tv "LOAD FROM ./mat.AK OF DEL METHOD P (1,2,3) MESSAGES ./mat.AK.log REPLACE INTO myschema.mytable (col1, col2, col3) STATISTICS YES AND INDEXES ALL INDEXING MODE REBUILD;" >> ./mat.AK.log 

real 1m56.75s 
user 0m0.00s 
sys  0m0.01s 

[[email protected]:/home/dbadmin]# time db2 -tv "LOAD FROM ./mat.AK OF DEL METHOD P (1,2,3) MESSAGES ./mat.AK.log REPLACE INTO myschema.mytable (col1, col2, col3) STATISTICS YES AND INDEXES ALL INDEXING MODE REBUILD;" 

Number of rows read   = 69379 
Number of rows skipped  = 0 
Number of rows loaded  = 69379 
Number of rows rejected  = 0 
Number of rows deleted  = 0 
Number of rows committed = 69379 



real 0m1.42s 
user 0m0.01s 
sys  0m0.00s 

我不知道爲什麼到標準輸出的./mat.AK.log重定向費用近2分鐘,整個操作,而只需要不到2秒無需重定向即可將其放入db2表中。

有什麼想法嗎?

+0

是從遠程文件系統掛載的當前目錄? –

+0

@glennjackman:不,他們都是本地人。而db2進程所有者是具有對本地日誌文件的讀/寫訪問權限的組的成員。 –

+0

那個日誌文件有多大? –

回答

0

原來問題的原因是LOAD操作中的「MESSAGES」命令和尾部的重定向指令之間的競爭條件。保持它們並且讓它們都指向相同的文件創建競賽條件並導致延遲。

我丟棄了其中一個後,問題就解決了。

相關問題