1. 概述
1.1 版本
報表伺服器版本 | 功能變動 |
---|---|
10.0.18 |
|
11.0.2 | 進階設定佈局優化 |
11.0.23 | 增加 fetchsize 參數配置 |
11.0.24 | 優化平台資料連結中關於「連結校驗」和「保活」相關的配置項 |
1.2 功能簡介
本文將介紹資料連結進階設定的配置項中各參數的意義。
2. 具體介紹
在連結 FineReport 時,使用者可以在連結頁面進行一些進階設定,平台和設計器都可以設定。
2.1 設計器進階設定
設計器設定頁面如下圖所示:
常用設定
名稱 | druid學名 | 預設值 | 含義 |
---|---|---|---|
最大活動連結數 | maxActive | 50 | 連結池在同一時間能夠分配的最大活動連結的數量 |
獲取連結前檢驗 | testOnBorrow | 是 | 申請連結時執行 validationQuery 檢查連結是否有效 |
閒置連結可用性定期檢查 | keepAlive | 是 | 檢查到需要留下的連結保證其可用 |
校驗語句 | validationQuery | 預設語句 | 用來檢查連結是否有效的 SQL 語句,要求是一個查詢語句,常用select 'x' 。使用者可自訂該語句。 |
最大等待時間 | maxWait | 10000 | 獲取連結時最大等待時間,單位毫秒 |
不太常用的連結池屬性(如無特殊場景不建議修改)
名稱 | druid學名 | 預設值 | 含義 |
---|---|---|---|
初始化連結數 | initialSize | 0 | 連結池初始化時建立物理連結的個數 |
最小閒置連結數 | minIdle | 0 | 連結池中保持的最小閒置連結數量 |
歸還連結前校驗 | testOnReturn | 否 | 歸還連結時執行validationQuery檢查連結是否有效 |
開啟閒置回收器校驗 | testWhileIdle | 否 | 指明連結是否被閒置連結回收器(如果有)進行檢驗,如果檢查失敗,則連結將被從池中去除 |
閒置連結回收器休眠時間 | timeBetweenEvictionRunsMillis | -1 | 在閒置連結回收器執行緒運作期間休眠的時間值,以毫秒為單位 |
閒置連結回收檢查數 | numTestPerEvictionRun | 3 | 用於指定在每次閒置連結回收運作時要測試的連結數量 |
保持閒置最小時間值 | minEvictableIdleTimeMillis | 1800s | 連結保持閒置而不被驅逐的最小時間 |
2.2 平台進階設定
常用連結池屬性
名稱 | druid學名 | 預設值 | 含義 |
---|---|---|---|
最大活動連結數 | maxActive | 50 | 連結池在同一時間能夠分配的最大活動連結的數量 |
獲取連結前檢驗 | testOnBorrow | 是 | 申請連結時執行 validationQuery 檢查連結是否有效 |
閒置連結可用性定期檢查 | keepAlive | 是 | 檢查到需要留下的連結保證其可用 |
校驗語句 | validationQuery | 預設語句 | 用來檢查連結是否有效的 SQL 語句,要求是一個查詢語句,常用select 'x' 。使用者可自訂該語句。 |
最大等待時間 | maxWait | 10000 | 獲取連結時最大等待時間,單位毫秒 |
「更多設定」中不太常用的連結池屬性(如無特殊場景不建議修改)
名稱 | druid學名 | 預設值 | 含義 |
---|---|---|---|
初始化連結數 | initialSize | 0 | 連結池初始化時建立物理連結的個數 |
最小閒置連結數 | minIdle | 0 | 連結池中保持的最小閒置連結數量 |
歸還連結前校驗 | testOnReturn | 否 | 歸還連結時執行validationQuery檢查連結是否有效 |
獲取連結時閒置連結可用性校驗 | testWhiledle | 否 | 指明連結是否被閒置連結回收器(如果有)進行校驗,如果校驗失敗,則連結將被從池中去除 |
閒置連結回收器工作時間間隔 | timeBetweenEvictionRunsMillis | 60000ms(60s) | 該參數用於指定連結池中的閒置連結檢查和清理執行緒運作的時間間隔,單位為毫秒。 |
閒置連結回收檢查數 | numTestPerEvictionRun | 3 | 指定在每次閒置連結回收運作時要測試的連結數量 |
閒置連結回收時間臨界值 | minEvictableIdleTimesMillis | 1800s | 如果一個連結在連結池中閒置時間超過了臨界值,並且連結數超過了「最小閒置連結數」,那麼該連結就會被從連結池中移除 |
閒置連結強制回收時間臨界值 | maxEvictableIdleTimeMillis | 25200s(7h) | 一個連結在連結池中閒置的時間超出了該臨界值,會被從連結池中移除 |
閒置連結可用性定期檢查時間臨界值 | keepAliveBetweenTimeMillis | 120000ms(2min) | 閒置連結的保持存活時間,可以確定在閒置一段時間後連結不會被意外關閉 |
最大活動連結數設定超過資料庫中的連結數目,只能按照資料庫中的連結數目為準,如想調至最大,則也要調整資料庫中的連結數目,參考文檔 連結池滿問題 中的解決方案。
fetchsize 設定
fetchSize 參數是用於控制從資料庫中獲取資料的成批處理大小的設定。較小的 fetchSize 值會減少每次資料庫查詢的記憶體消耗,但可能需要更多的資料庫往返來獲取完整的結果集;較大的 fetchSize 值可以減少資料庫往返次數,但會增加記憶體使用量。可以根據你的需求透過設定 fetchSize 參數值,來優化資料庫查詢效能。
若參數值 ≤ 0(例如:-20)則表示不開啟 fetchsize 參數。
1)Oracle、DB2、Postgre 這三種資料庫必須設定 fetchsize 參數,所以若設定了≤0 的參數值,會自動分別被更換為 128、50、10000。
2)其他資料庫預設情況下不開啟 fetchsize 參數。
使用者也可在設計器中,對「Oracle、DB2、Postgre」資料連結設定 fetchsize。可輸入 1~1,000,000 中的任意數值,若為空則表明不配置此項參數。
3. 注意事項
如果存取範本時,報連結逾時、等待狀態,警告如下所示:
則需要把相應連結數調大。