ASP.NET WebMethod在长时间运行的SQL过程中持有线程池线程

我有一个报告页面,可以从数据库表中构建报告。 报告以表格格式显示。 为了处理用户交互,我构建了一个JQuery表插件,允许用户使用自定义排序,过滤和分页来自定义报表。

JQuery插件使用一组ajax请求来使用数据填充表。 这些ajax请求调用asp.net(c#)webMethods,后者又使用一组类来构建SQL并执行Query。 构建的查询在与WebMethod相同的线程中运行,这会导致问题,因为SQL可能需要超过30秒才能返回。 我一直在阅读有关启动新线程和异步方法的内容。 我的问题是我显然不希望从ASP.NET池中保存一个线程来执行SQL的整个过程,因为它只等待I / O.

是否可以在等待SQL Server的响应时将线程返回到线程池? 可以使用Begin和End ADO.net命令实现吗?

我问的原因是目前这不是一个问题,但随着使用此系统的用户数量的增加,所有为新用户服务的线程池将会运行这些长查询。

可以使用Begin和End ADO.net命令实现吗?

究竟!