近日用postgresql和npgsql寫過程式,由於客戶數量有300多個,所以有的就連線不上了。
調整了max_connection為500,問題是解決了,可是記憶體使用也是猛漲。差了點資料,估計可通過兩個方面解決一下問題:
postgresql的連線池,如pgbouncer;
解決方法:
1、在連線字串中加入pooling=false;
這樣客戶端npgsql不把連線保留在pool中,每次close都真真正正的把這個連線關掉,這樣postgresql伺服器上
相關的postgres.exe程序也被結束,如果並行程度不是非常高,max_connection為100足夠了。
這樣做完的好處是伺服器上postgres.exe程序少了,記憶體占用也少了。缺點是每次連線伺服器都要重新建立
postgres.exe程序,浪費一些cpu資源。根據專案的特點和伺服器的配置選擇是否要用這個選項,如果記憶體是瓶頸
2、調整了一下connectionlifetime,好像沒什麼作用。
3、呼叫clearallpools(); clearpool();等函式及時清理不用的連線。
4、在windows平台下的postgresql的一些配套軟體pgpool、pgbouncer等目前不能用,如果在unix等平台上倒是
可以用它們調調效能。
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...
PostgreSQL自連線查詢
首先sql中的自連線查詢是一種比較特殊的多表查詢方式,其特殊之處就在於資料 於同一張表。很多時候我們在第一次接觸自連線查詢時會比較迷亂,不知道怎麼去理解。所以我們在處理這種自連線查詢時,不要去刻意的在意只有一張表,而是把這張 表當作乙個檢視,我們需要查資料,就給其取乙個別名,這樣就刻意把之前的表認為...