許多博客和網站都提到增加OracleDataReader的FetchSize以提高獲取大量數據(例如數千行)時的性能。有一些記錄在這個確切的數字的實驗,如:http://metekarar.blogspot.com/2013/04/performance-improvement-for-odpnet.html爲什麼受連接池影響的ODP.NET中的FetchSize設置?
試圖複製這些結果,我創建了一個非常類似的示例應用程序,這樣的數據獲取多次獲取不同的大小。奇怪的是,除非顯式禁用連接池(例如在連接字符串中),否則FetchSize的增加/減少將不起作用。當池化被禁用時,顯然FetchSize可以提高性能(記錄越多,效果越大)。
可能這是ODP.NET(我正在使用2.112.1.0)的特定版本中的一個錯誤,或者這是一個普遍的奇怪行爲,實際上它消除了爲每個查詢優化FetchSize的可能性。
什麼是連接池和FETCHSIZE之間的邏輯鏈路,當FETCHSIZE設置的命令或讀卡器(而不是在連接)?我錯過了什麼嗎?
您是否使用'FetchSize'獲得了最終解決方案?我的桌子有40.0000行,有100列。 ***選擇CAMPO1,...,來自TABLA的CAMPO100 ***速度較慢,15秒以上。 –