我目前正在研究一個Web服務,它將從數據庫表中獲取數據並以XML格式將其發送給客戶端。數據庫中的表包含大量數據(數百萬行)。因此,分頁和壓縮算法已經實現,因此數據被壓縮並分成多個頁面。訂閱SQL查詢數據
我的問題是,如果我叫一些查詢說
select t.*
from (select *
from table_name) t
where rownum > start_val
and rownum <= end_val
多次不排序,將行的數據和訂單獲取每次我都執行了相同的start_val
和end_val
是同一時間(如果沒有數據庫中添加了新的值)?
編輯:如果沒有,那還有什麼可通過執行
select t.*
from
(select *
from table_name
order by 1) t
where
rownum > start_val and rownum <= end_val
爲每個頁面可以更有效的方式從表作爲現在我獲取數據獲取分頁數據和查詢花費5- 6分鐘執行。
我對這些表具有隻讀訪問權限。
沒有保證下,爲了不帶'爲了by' –
此外,即使是爲了_were_保證(這不是),該如果在您的通話之間插入新記錄,訂單可能會發生變化。 –
如果'start_val'大於1,[[rownum> start_val'將不匹配任何東西](http:// stackoverflow。COM /一個/266304分之32959569);所以你需要一個子查詢(內聯視圖),並且需要包括排序。 –