我有一個返回30行的查詢。我正在編寫代碼,通過AJAX調用將這30行分頁爲每頁5條記錄。從數據庫中選擇x和y之間的行
是否有任何理由將這5條記錄返回到表示層?無論是在速度方面還是在收益方面都有好處?
如果是這樣,我該如何在Sybase中真正做到這一點?我知道甲骨文有Rownum和MS Sql有類似的東西,但我似乎無法在Sybase中找到類似的功能。
我有一個返回30行的查詢。我正在編寫代碼,通過AJAX調用將這30行分頁爲每頁5條記錄。從數據庫中選擇x和y之間的行
是否有任何理由將這5條記錄返回到表示層?無論是在速度方面還是在收益方面都有好處?
如果是這樣,我該如何在Sybase中真正做到這一點?我知道甲骨文有Rownum和MS Sql有類似的東西,但我似乎無法在Sybase中找到類似的功能。
除非您的記錄長度很大,否則5行和30行之間的差異對用戶而言應該是完全不明顯的。實際上,多個數據庫調用會對性能造成的損害遠不止於幫助。只要將所有30行都返回到您的中間層或您的演示文稿,無論什麼更有意義。
我從來沒有與Sybase合作,但在這裏,說明如何做同樣的事情鏈接:由於該解決方案包括
http://www.dbforums.com/sybase/1616373-sybases-rownum-function.html
一個臨時表,你也可以用它來進行分頁。在您的初始查詢中,將30行放入臨時表中,併爲頁碼添加一列(前五行將是第1頁,接下來的五頁第2頁等等)。在後續的頁面請求中,按頁碼查詢臨時表。
不知道你如何去清理臨時表,但。也許當用戶的會話超時?
對於30條記錄,它可能甚至不值得打擾分頁。
我想在Sybase可以使用
select top 5 * from table
where order-by-field > (last record of previous calls order-by-field)
order by order-by-field
只是確保你每次都通過使用相同的順序。
至於好處我想這取決於有多少行,我們正在討論如何大表是等
我jmgant完全一致,但是,如果您無論如何要做到這一點,處理進入東西像這樣:
整個過程可能發生在1個SQL語句中。