我有一个带有一个数据库的Sql Server 2005快速版。我有一个C#winforms应用程序来访问具有500行aprox的表客户。我在winforms app的本地pc里面有sql server 2005 Express。
现在我已经购买了一台带有SQL Server 2008标准版的服务器,并且已经将我的数据库迁移到该服务器并重新配置我的应用程序以通过Lan访问新服务器。
问题是像SELECT name, lastname,phone,fax,address FROM Customer ORDER BY name
这样的简单查询(我有500行)如果我在服务器中执行它,它会在1秒钟内运行但是如果我打开我的应用程序(在其他个人计算机局域网中,不在服务器)返回结果大约需要4分钟。
我不知道该怎么办,因为数据库非常小。
由于
答案 0 :(得分:0)
要尝试的一件事是运行SQL事件探查器并从跟踪中查看来自客户端的查询本身是否实际需要4秒钟才能执行。
有关如何使用Profiler创建跟踪的一些信息: http://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler 和这里 http://databases.about.com/od/sqlserver/ht/trace.htm或http://www.mssqltips.com/sqlservertip/2232/working-with-sql-server-profiler-trace-files/
我猜测查询本身可能在相同的时间内运行,无论发出查询的位置如何,跟踪都可以帮助证明这一点。在本地运行查询,然后远程运行查询并比较每个请求的持续时间。如果时间接近,您可以确信实际查询没有错误,您可以集中精力识别其他延迟来源 - 可能是网络等。