2012-02-20 62 views
2

后很慢我有一个数据库的SQL Server 2005 Express的版本。我也有一个C#winforms应用程序来访问具有500行aprox的表客户。我有winforms应用程序在本地pc内的sql server 2005 Express。SQL远程查询迁移的SQL Server

现在,我已经买了SQL Server 2008标准版的服务器,我已经迁移我的数据库到该服务器,并重新配置我的应用程序访问到新的服务器throught兰。

问题是,像SELECT name, lastname,phone,fax,address FROM Customer ORDER BY name(我有500行)的简单查询如果我在服务器中执行它,它在1秒内运行,但如果我打开我的应用程序(在其他电脑trought lan,而不是在服务器中)大约需要4分钟才能返回结果。

我不知道该怎么办,因为数据库是非常非常小。

感谢

+0

你有没有做过测试,看看你之间存在什么类型的延迟PC托管应用程序和数据库?另外,你可以发布你用来检索数据的应用程序的代码吗? – Dan 2012-02-20 14:52:30

+0

你看过查询的执行计划吗? – chrr 2012-02-20 14:52:47

+0

您是否尝试在另一个指向服务器的客户端上运行应用程序? – kaj 2012-02-20 14:55:47

回答

0

一件事是尝试运行SQL事件探查器和跟踪查看该查询本身实际上是服药4秒内从你的客户来时执行。

上演示如何使用Profiler来创建跟踪一些信息: http://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler 这里 http://databases.about.com/od/sqlserver/ht/trace.htmhttp://www.mssqltips.com/sqlservertip/2232/working-with-sql-server-profiler-trace-files/

我猜想,查询本身在相同的时间可能运行无论在哪里了查询被发出并且跟踪可以帮助证明这一点。在本地运行查询,然后远程运行,并比较每个请求的持续时间。如果时间接近于您可以确信的是,实际的查询是没有过错的,你可以专注于确定延迟的其他来源 - 也许网络等

+0

我会尝试sql分析器,但我认为问题是服务器或服务器的局域网适配器,因为如果我在服务器中运行查询它不到一秒钟,如果我远程运行需要2分30秒。我无法在服务器上找到任何问题,因为它从互联网上下载得非常快。 – uoah 2012-02-22 09:26:40