Asp.net 对SQL server的Ajax请求打开了太多池连接

Asp.net 对SQL server的Ajax请求打开了太多池连接,asp.net,sql-server-2008,iis-7.5,Asp.net,Sql Server 2008,Iis 7.5,我正在asp.net应用程序中实现一个类似Google的搜索框。框中的每个按键都会向IIS webmethod发送一个Ajax请求,IIS webmethod会查询txt并返回匹配项——工作起来非常酷。但是,在加载活动(例如300个用户)时,我会收到错误消息,即我的100个池连接已用完。现在我在重新思考,每次击键时打开/关闭db连接可能太多了。一个架构师如何以不同的方式实现这一点,或者如何确保快速回收连接。我正在使用连接的“使用”结构来确保它是关闭的。问题是GC回收它们的速度不够快 谷歌将如何处

我正在asp.net应用程序中实现一个类似Google的搜索框。框中的每个按键都会向IIS webmethod发送一个Ajax请求,IIS webmethod会查询txt并返回匹配项——工作起来非常酷。但是,在加载活动(例如300个用户)时,我会收到错误消息,即我的100个池连接已用完。现在我在重新思考,每次击键时打开/关闭db连接可能太多了。一个架构师如何以不同的方式实现这一点,或者如何确保快速回收连接。我正在使用连接的“使用”结构来确保它是关闭的。问题是GC回收它们的速度不够快


谷歌将如何处理如此大的打开/关闭周期。

记住这些击键请求/DB响应,并避免每次在第一次击键后都会跳转到DB

或者生成可能的自动完成短语的预编译列表,缓存在内存中,并查询这些短语,而不是数据库。为什么需要在数据库中查询搜索框?生成一个可接受的列表并使用它,而不是进行跨层连接


或者确保对数据库的查询所生成的表上有索引

您可能已经在这样做了,但在“自动完成”开始之前要求最少的字符数,以及始终检索项目的顶部(x),也是您的最佳利益所在