繁体   English   中英

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

[英]Ajax request to SQL server opens too many pooled connections

我在asp.net应用程序中实现了类似Google的搜索框。 框中的每个按键都会向IIS Web方法发送一个Ajax请求,以查询txt并返回匹配项-工作原理非常酷。 但是,在加载活动(例如300个用户)时,出现100个池化连接已用尽的错误。 现在我重新考虑一下,也许在每次按键时打开/关闭数据库连接可能太多了。 一位架构师将如何对此进行不同的处理,或者确保真正快速地收回连接。 我有用于连接的“使用”构造以确保它已关闭。 令人担心的是,GC可能回收速度不够快?

Google如何处理如此大的打开/关闭周期。

Memecache可以处理这些击键请求/数据库响应,并避免在每次第一次之后都访问数据库。

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

或确保查询到数据库的表上有索引。

您可能已经在这样做了,但是为了您的最大利益,在启动“自动完成”之前要求最少数量的字符,以及始终检索项目的top(x)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM