2012-02-23 93 views
0

我新的DB2我想選擇約200萬數據與這樣的 單查詢將選擇並顯示第5000個數據,並在後面的過程會選擇其他的5000個數據,並保持在同樣,直到所有數據的結束幫我這怎麼像你想要什麼作爲阻擋編寫查詢,或者使用功能IBMDB2選擇查詢

回答

1

聲音。但是,這在數據庫級別並未實際處理(不是您想的方式) - 它是在應用程序級別處理的。您需要指定您的平臺和編程語言,以便我們在那裏提供幫助。但如果你希望有人來實際閱讀 200萬行,這將需要一段時間...在一排第二個,這是連續23天。

原因 SQL並沒有真正執行這個'本地'是它(有點)效率較低。另外,SQL是(通過設計)設置在整個數據集進行操作,概念上和語法上。

1

可以使用的新功能之一,即從Oracle或MySQL集成分頁:https://www.ibm.com/developerworks/mydeveloperworks/blogs/SQLTips4DB2LUW/entry/limit_offset?lang=en

與此同時,您可以通過指示優化了N行影響優化,並且只能取前n行。如果您打算只讀,則最好在查詢「FOR READ ONLY」中指定此子句,這將增加併發性,並且光標不可更新。此外,分配一個很好的隔離級別,對於這種情況,您最終可能會使用「未提交的讀取」(使用UR)。以前的鎖定表將會很好。

不要忘記像常見的做法:索引或聚簇索引,僅檢索必要的列等,總分析通過解釋工具的訪問計劃。