【问题标题】:Why database connection caused to loads data very slow为什么数据库连接导致加载数据非常慢
【发布时间】:2011-08-01 07:55:29
【问题描述】:

这是我的连接字符串:

<add name="ConnectionString" connectionString="Data Source=server;Initial Catalog=databaseName;Persist Security Info=True;User ID=username;Password=password" providerName="System.Data.SqlClient" />

当我从上面的 IP 地址运行时,我的 Web 应用程序运行良好,但在其他机器上运行速度很慢。

我的意思是它很慢,但它有效。我认为连接字符串的类型存在问题,因为另一个使用 OleDb 的应用程序运行良好。我该如何解决?我不想更改我的应用程序代码。

【问题讨论】:

    标签: .net asp.net database-connection connection-string


    【解决方案1】:

    该连接字符串根本没有问题。这留下了两种可能的情况:

    • 两台机器具有不同的网络拓扑 - 可能其中一台在地理上相距遥远,通过慢速链路上的 VPN 隧道进行路由(制作一个荒谬的夸张示例,仅用于说明)
    • 也许一个应用程序在数据访问方面是明智的,而另一个则不是

    我想第二种情况更有可能。如果您的应用程序代码没有在适当的位置进行过滤(即加载整个表以选择内存中的单行),那么是的:它会很差。

    我不想更改我的应用程序代码。

    如果我上面的猜测(第二条)是正确的,那么性能不佳完全是应用程序代码的错,唯一的解决办法就是更改应用程序代码; “想要”与它几乎没有关系。如果您可以显示一些显然会有所帮助的示例数据库访问代码,但请放心:ADO.NET 不会导致固有缓慢。但是,写得不好的数据访问应用程序代码总是会导致性能不佳。

    如果问题实际上是网络拓扑,那么您必须为此设计;当数据库和应用程序距离较远时,为快速本地连接而设计的应用程序往往表现不佳。唯一的解决办法是再次将您的应用程序代码更改为不那么冗长 - 并希望减少受延迟(大量小查询)和带宽(大查询)问题的影响。

    【讨论】:

      【解决方案2】:

      最近是否对您的 dns 进行了更改?

      尝试以下两种更改之一

      • 将数据源更改为IP地址:

        • 命令外壳:ping(服务器名称)——这将为您提供服务器的 IP
      • 将服务器名称更改为完全限定的我,包括域名

        • 而不是“服务器名”,将其设置为“服务器名.mydomain.com”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 2011-04-23
        • 2019-02-26
        • 1970-01-01
        • 2014-02-15
        • 1970-01-01
        相关资源
        最近更新 更多