2013-08-01 54 views
3

請幫我澄清一下,如果pgbench工具可以並行執行我自己的sql腳本? 谷歌搜索和本地搜索沒有帶來積極的結果。postgresql pgBench工具運行用戶定義的SQL腳本

我運行沒有錯誤execed的腳本。但在執行後,我看不到任何跡象,即我的腳本實際上已經執行。 pgbench提交事務與我的SQL腳本?

這是一個輸出我得到:

C:\Program Files\PostgreSQL\9.2\bin>pgbench.exe -n -h dbserverhost -U postgres - 
T 10 -c 64 -j 8 bench_dbname -f c:\Dev\bench_script.sql 

transaction type: TPC-B (sort of) 
scaling factor: 1 
query mode: simple 
number of clients: 64 
number of threads: 8 
duration: 10 s 
number of transactions actually processed: 1020 
tps = 95.846561 (including connections establishing) 
tps = 103.387127 (excluding connections establishing) 

C:\Program Files\PostgreSQL\9.2\bin> 

SQL腳本bench_script.sql是:

--comment here 
begin; 
    insert into schm.log values ('pgbench test', current_timestamp); 
end; 

SOLUTION

pgBench Windows版本是對arguements的傳遞順序敏感到實用程序: 「bench_dbname」參數必須是行中的最後一個參數。

這是pgbench Windows版本的命令行的正確的示例:

pgbench.exe -d -r -h 127.0.0.1 -U postgres -T 5 -f C:\Dev\bench_script.sql -c 64 -j 8 postgres 

對我來說,最有用的參數是:

  • -T 60(單位爲秒的時間來運行腳本)
  • -t 100(每個客戶端的交易金額)
  • -d將詳細的調試信息打印到輸出
  • -r包括在該腳本的每一個動作來計算概要延遲值
  • 在基準模式
  • -f運行用戶定義的SQL腳本
  • -c客戶量
  • -j線量

pgBench official doc

PgBench,我愛你! :)

祝大家;)

回答

1

的「交易類型:TPC-B(排序)」意味着它沒有處理-f選項來運行自定義的SQL腳本,而是跑了默認查詢。

在Windows版本中,getopt似乎停止解析選項,一旦達到第一個不以連字符開頭的選項,即「bench_dbname」。所以確保-f在此之前。

+0

這是正確的,pgbench窗口版本對爭議順序很敏感。我將在獲得的expreience後編輯主題。 – xacinay