3
即時通訊想知道如何確保從SProc返回並存儲在數據表中的結果不會太大而無法在內存中處理。確保SProc不會返回太多的數據
我已經挖掘了一下,發現了以下Find size of object instance in bytes in c#,但選定的答案建議不要這樣做。
我假設這是一個問題已經解決之前,所以ID欣賞任何指針。
謝謝。
即時通訊想知道如何確保從SProc返回並存儲在數據表中的結果不會太大而無法在內存中處理。確保SProc不會返回太多的數據
我已經挖掘了一下,發現了以下Find size of object instance in bytes in c#,但選定的答案建議不要這樣做。
我假設這是一個問題已經解決之前,所以ID欣賞任何指針。
謝謝。
您可能想要實現分頁。
要做到這一點,添加@pageNum
和@pageSize
參數,您SP
和更改查詢:
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY whatever_field) rn
FROM (
-- here goes the old query
) q
WHERE rn BETWEEN @pageSize * @pageNum + 1 AND @pageSize * (@pageNum + 1)
) q
ORDER BY
wnatever_field
在你建議以大塊形式返回結果後,我剛剛偶然發現了同樣的想法。我會試驗以上,看看我如何。非常感謝您的幫助,我非常感謝。 –
是否存儲過程返回可變長度字段,如'VARCHAR(MAX)','VARBINARY(MAX)'或類似? – Quassnoi
Atm,數據庫只包含float和datetime2數據類型。 –
只是用'SELECT TOP 1000'或類似的方法限制你的結果集。 – Quassnoi