Vb.net 从特定数据库读取的延迟

Vb.net 从特定数据库读取的延迟,vb.net,sql-server-2008-r2,Vb.net,Sql Server 2008 R2,我有一个用VB.NET编写的应用程序,它从SQLServer2008R2读取数据。 在登录时,用户从许多数据库文件中选择一个(下拉列表中提供),然后输入用户名和密码进行登录。登录时,应用程序从所选数据库中名为“strings”的表中读取,并在大约25-30个变量中执行Do-While循环put值,以创建应用程序的工作环境 我在Do-While循环的开始和结束处加入了一个时间跟踪,它显示,对于其中一个数据库,读取所有值需要26秒,而对于另一个数据库,则需要0秒(因为我没有以毫秒级别进行跟踪) 具有

我有一个用VB.NET编写的应用程序,它从SQLServer2008R2读取数据。 在登录时,用户从许多数据库文件中选择一个(下拉列表中提供),然后输入用户名和密码进行登录。登录时,应用程序从所选数据库中名为“strings”的表中读取,并在大约25-30个变量中执行Do-While循环put值,以创建应用程序的工作环境

我在Do-While循环的开始和结束处加入了一个时间跟踪,它显示,对于其中一个数据库,读取所有值需要26秒,而对于另一个数据库,则需要0秒(因为我没有以毫秒级别进行跟踪)

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

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

你能告诉我怎么才能弄明白吗


谢谢

如果没有任何具体信息,很难找到正在发生的事情。返回大约一百条记录所需的时间不应超过几十毫秒,简单的代码通常不会对性能产生影响。第二台服务器似乎存在严重的性能问题

  • 请尝试从SQLServerManagementStudio对这两个数据库运行查询 服务器,检查低速服务器上的CPU负载和释放内存
  • 尝试检查网络性能(ping或测量文件下载 时间)
  • 尝试直接在服务器上运行查询

在对两个数据库文件进行大量研究和比较后,我发现数据库文件(mdf)和日志文件(ldf)的“初始大小”非常不同

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


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

不幸的是,服务器是相同的。我了解到,存在性能问题的数据库最初是在SQLServer2005上构建的。SQL Server 2005安装后来升级到SQL Server 2008 R2。另一个fast数据库是基于SQL Server 2008 R2本身构建的。这会导致问题吗?@PrashantGupta:升级本身可能不会降低性能。然而,数据库似乎相当陈旧。其中的索引可能状态不好,请参见重建索引technet.microsoft.com/en us/library/ms187874(v=sql.105).aspx。咨询适当的服务器管理员来进行数据库维护是很有用的。