为什么数据库连接导致加载数据的速度非常慢

时间:2011-08-01 07:55:29

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

这是我的连接字符串:

<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的另一个应用程序运行良好。我该怎么办呢?我不想改变我的应用程序代码。

2 个答案:

答案 0 :(得分:1)

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

  • 这两台机器具有不同的网络拓扑结构 - 可能是一个地理位置较远,通过慢速链路上的VPN隧道进行路由(仅作为一个荒谬的夸大示例)
  • 也许一个应用程序在数据访问方面是明智的,另一个不是

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

  

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

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

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

答案 1 :(得分:1)

最近你的dns有变化吗?

尝试其中一项更改

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

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

    • 而不是'servername',将其设置为'servername.mydomain.com'