高效分页的SQL技巧(以Oracle为例)
生活随笔
收集整理的這篇文章主要介紹了
高效分页的SQL技巧(以Oracle为例)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般的分頁寫法大概就是下面的樣子(所謂的“三層嵌套”寫法),
在遇到顯示數據表中1百萬行以后的記錄時,可能會出現性能問題。有人提出的解決方案是利用索引,首先通過掃描索引查出rowid,然后再通過rowid查出所需記錄。這樣做的問題是如果沒有索引怎么辦?以Oracle為例,下面是一個更具有一般意義的高效寫法:
優化的思想是跳到第1百萬位置時只是掃描了rowid,避免了掃描全部字段。當字段個數較多時,速度會有十倍的提升。本例在普通的設備上運行不到1秒就出來結果了。這一方法在千萬級或億級仍然存在問題,其原因在于循環次數并未減少。如果真有rwd這樣一個字段,那么通過索引和分區等手段,也能夠確保速度。不過,話又說回來,分頁顯示成百上千萬條記錄這樣的事情,其欲達到的業務目的本身可否有更好的解決之道呢?
總結
以上是生活随笔為你收集整理的高效分页的SQL技巧(以Oracle为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dell Kace K1000测试报告
- 下一篇: Python自然语言处理学习笔记(68)