对SQL Server的Ajax请求会打开太多池化连接

时间:2010-08-27 01:00:51

标签: asp.net sql-server-2008 iis-7.5

我正在我的asp.net应用程序中实现类似Google的搜索框。框中的每个按键都向IIS webmethod发送Ajax请求,查询txt并返回匹配 - 工作非常酷。但是,在加载活动(例如300个用户)时,我收到的错误是我的100个池连接已用完。现在我正在重新思考,也许在每次击键时打开/关闭数据库连接可能太多了。如何以不同的方式构建它,或者确保连接的回收速度非常快。我有连接的“使用”结构,以确保它已关闭。关注的是GC可能无法足够快地回收它们吗?

google将如何处理如此大的开放/关闭周期。

2 个答案:

答案 0 :(得分:0)

Memecache那些击键请求/数据库响应,并避免每次在第一次之后跳转到数据库。

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

或者确保您对DB的查询所创建的表有索引。

答案 1 :(得分:0)

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