【问题标题】:Ajax request to SQL server opens too many pooled connections对 SQL 服务器的 Ajax 请求打开了太多的池连接
【发布时间】:2010-08-27 01:00:50
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    或者确保您对数据库的查询所创建的表上有索引。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-12-15
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        相关资源
        最近更新 更多