Oracle千萬級資料分頁查詢優化
阿新 • • 發佈:2020-01-25
Oracle千萬級資料分頁查詢優化
1. 未優化之前:
SELECT TMP.* FROM (SELECT ROWNUM AS "ROWNO",${tableId},${columnName}
FROM ${tableName}) TMP
WHERE
TMP.ROWNO <= #{end}
AND TMP.ROWNO >= #{start}
2.優化之後:
SELECT T1.${tableId},T1.${columnName} FROM ${tableName} T1,(SELECT RID FROM (SELECT ROWNUM RN,T.RID FROM (SELECT ROWID RID FROM ${tableName} ) T WHERE ROWNUM <= #{END}) WHERE RN > #{START}) T2 WHERE T1.ROWID = T2.RID
轉載於:https://my.oschina.net/vright/blog/1543709