我正在我的asp.net应用程序中实现类似Google的搜索框。框中的每个按键都向IIS webmethod发送Ajax请求,查询txt并返回匹配 - 工作非常酷。但是,在加载活动(例如300个用户)时,我收到的错误是我的100个池连接已用完。现在我正在重新思考,也许在每次击键时打开/关闭数据库连接可能太多了。如何以不同的方式构建它,或者确保连接的回收速度非常快。我有连接的“使用”结构,以确保它已关闭。关注的是GC可能无法足够快地回收它们吗?
google将如何处理如此大的开放/关闭周期。
答案 0 :(得分:0)
Memecache那些击键请求/数据库响应,并避免每次在第一次之后跳转到数据库。
或者生成可能的自动完成短语的预编译列表,缓存内存,并查询而不是DB。为什么需要在数据库中查询搜索框?生成一个可接受的列表并使用它而不是进行跨层连接!
或者确保您对DB的查询所创建的表有索引。
答案 1 :(得分:0)
您可能已经这样做了,但在“自动填充”开始之前要求最少数量的字符以及始终检索顶部(x)项目也符合您的最佳利益。