[英]How to implement paging of rows with WCF and SQL Server?
首先,我是WCF和SQL Server的新手。 我正在開發一個與WCF和SQL Server 2012連接的應用程序。我有一個表,其中的行具有一百萬條記錄,並且該計數將不斷增加。 當客戶端發送請求時,如果用戶請求,我將獲取30行,然后顯示接下來的30行,依此類推。 我的要求是在WCF或SQL中進行分頁。 我有以下問題:
Skip
and Take
運算符來獲取請求的頁面。 那是正確的方法嗎? OFFSET
(或) ROW_NUMBER() OVER
選項? 由於我是新手,所以這些方法才是我所知道的。 還有其他我不知道的方法嗎?
Skip
和Take
則不會在內存中執行這些操作,而是會將其轉換為sql查詢並在sql中運行。 OFFSET
將為您提供比ROW_NUMBER() OVER
更好的性能。 需要注意的一件事是,如果要進行分頁,則必須確保順序是確定的。 訂購中不能有領帶,如果允許領帶,則可以在分頁符上保留一個權利。 假設通過您的訂單“綁定”了A行和B行:
在上面的示例中,您從未顯示B行。 解決此問題的最簡單方法是始終確保您在最后一件事上對主鍵(或您可以在其上進行唯一索引的任何其他列集)進行排序,以確保您之間沒有任何聯系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.