0

我有一个用 VB.NET 编写的应用程序,它从 SQL Server 2008 R2 读取数据。登录时,用户选择众多数据库文件之一(在下拉列表中可用),然后键入他的用户名和密码进行登录。登录时,应用程序从所选数据库中名为“字符串”的表中读取数据,并在 Do While 循环中将值放入 25-30 个变量中,以创建应用程序的工作环境。

我在 Do While 循环的开始和结束时进行了时间跟踪,它表明对于一个数据库,读取所有值需要 26 秒,而另一个需要 0 秒(因为我没有在 mili-秒级)。

具有讽刺意味的是,数据库中需要 26 秒的“字符串”表有 125 行,而需要 0 秒的数据库有 159 行。显然,代码是相同的,数据库结构也是一个真实的副本(两个数据库都是使用相同的脚本生成的)。

我已经想到了所有的可能性,但不确定为什么会有如此巨大的差异会延迟用户的登录时间。

你能说明一下我如何解决这个问题吗?

谢谢

4

2 回答 2

0

经过对两个数据库文件的大量研究和比较,我发现数据库文件(mdf)和日志文件(ldf)的“初始大小”有很大的不同。

快速数据库的 mdf 和 ldf 文件分别超过 200 MB。然而,慢速数据库分别为 11 MB 和 16MB。我使用 Microsoft SQL Management Studio 将慢速数据库文件的“初始大小”更改为与快速数据库相同的值,停止并启动 SQL Server 和哇!现在没有性能差异。

将此作为答案,以防有人发现它有用。

于 2013-05-19T16:12:47.230 回答
0

如果没有任何具体信息,很难找到发生了什么。返回大约一百条记录不应该花费更多的几十毫秒,简单的代码通常不会影响性能。看来第二台服务器存在严重的性能问题。

  • 尝试从 SQL Server Management Studio 对两台服务器运行查询,检查慢速服务器上的 CPU 负载和可用内存。
  • 尝试检查网络性能(ping 或测量文件下载时间)。
  • 尝试直接在服务器上运行查询。
于 2013-05-18T15:47:17.470 回答