測試PostgreSQL的連線池

2021-09-30 18:14:59 字數 730 閱讀 6166

在ado.net中,每個應用程式都維護乙個連線池。每次使用者連線資料庫時,會先嘗試從連線池中獲取連線,如果獲取成功則直接使用,如果失敗則新建連線。執行緒池減少了連線資料庫的時間。注:函式close()並沒有真正關閉連線,而是將物件放入連線池中。

下面使用簡單的程式,測試執行緒池的作用。在兩百次迴圈中,執行資料庫的開啟與關閉,在啟用和禁用連線池的情況下,分別統計其執行時間。

首先,啟用連線池:

static void main(string args)

watch.stop();

console.writeline("time: " + watch.elapsedmilliseconds.tostring());

}

執行時間(單位是毫秒):

time: 626
其次,通過在連線字串中使用pooling=false禁用連線池。重新執行上述程式,統計執行時間。

var connstring = "server=localhost;port=5433;username=postgres;password=123456;database=testpg10;pooling=false";
執行時間(單位是毫秒):

time: 32527
結論:不使用執行緒池所花費的時間,比使用執行緒池多50倍左右。執行緒池確實節約了建立資料庫連線的時間。

PostgreSQL連線問題

近日用postgresql和npgsql寫過程式,由於客戶數量有300多個,所以有的就連線不上了。調整了max connection為500,問題是解決了,可是記憶體使用也是猛漲。差了點資料,估計可通過兩個方面解決一下問題 postgresql的連線池,如pgbouncer 解決方法 1 在連線字串...

QT連線PostgreSQL步驟

1.編譯驅動 其次 在qt的src plugins sqldriver psql目錄下修改psql.pro,加入 includepath d postgresql 9.2 include libs d postgresql 9.2 lib libpq.lib 將postgresql對應的目錄加入 最...

nodejs連線postgreSQL資料庫

nodejs連線pg資料庫有兩種方式,一種是直接連線 操作 斷開 還有一種是使用連線池,這種方式可以有效提公升多併發的效率 下邊是使用兩種不同方式的測試 var pgopt require pg 使用連線池 function connectpgwithpool var pgpool new pgop...