【发布时间】:2013-12-15 02:52:33
【问题描述】:
设置:
- asp.net MVC3
- C#
- SQL Server 2008 R2
- jQgrid
我有一个从大型数据库中提取的存储过程。根据用户选择的参数值,这可能会很快返回结果,也可能需要几分钟。
如果条件合适,我经常会超时等待SQL,或者在渲染结果时得到MAXJSONLENGTH错误。
我希望SQL 以 500 条记录的批次返回结果,C# 序列化并传递批次,jQgrid 在结果可用时加载结果。这会让它感觉更灵敏,并避免超时和最大长度错误。
在找不到更多结果之前进行 ajax 调用以获取更多结果很简单,但我必须确保在后续请求中不会得到任何先前提供的结果。
在另一个方面,我将记录 ID 返回到存储过程以排除结果。在这种情况下,结果中的记录不会太多,但搜索通常会花费很长时间。在处理这么多记录时,我认为这种方法不是一个好主意,但我不确定如何实现这一点。
结果没有排序,因此不能保证再次运行该过程在开始时获得相同的 500 条记录。
你会推荐什么?或者,我是不是想多了? (我不是要求你编写代码——尽管如果你有一个例子也不会抱怨。我只是需要关于如何解决这个问题的新想法)。
【问题讨论】:
标签: sql-server asp.net-mvc-3 jqgrid-asp.net