Sql server 部署在DB服务器上但部署在其他服务器上时应用程序工作缓慢

Sql server 部署在DB服务器上但部署在其他服务器上时应用程序工作缓慢,sql-server,Sql Server,我们有一个MVC web应用程序,当我们部署在同一个数据库服务器上时,它运行良好。但是,当我们将数据库和应用服务器分开时,应用程序性能会变得非常慢。下面是操作系统和通信矩阵的详细信息 数据库服务器:Microsoft SQL server 2014安装在windows server 2012上 r2应用服务器:两台应用服务器windows 2012 r2加载 平衡由F5启用 我还想在这里提到同一个应用程序与SQLServer2008R2完美配合。 我们将非常感谢您的帮助 你真的需要提供更多的

我们有一个MVC web应用程序,当我们部署在同一个数据库服务器上时,它运行良好。但是,当我们将数据库和应用服务器分开时,应用程序性能会变得非常慢。下面是操作系统和通信矩阵的详细信息

  • 数据库服务器:Microsoft SQL server 2014安装在windows server 2012上

  • r2应用服务器:两台应用服务器windows 2012 r2加载
    平衡由F5启用

我还想在这里提到同一个应用程序与SQLServer2008R2完美配合。
我们将非常感谢您的帮助

你真的需要提供更多的细节

这些服务器之间的网络呢?这两台机器在同一个数据中心吗?例如,尝试从applicationserver ping数据库服务器。这次ping的结果是什么

更新

嗯。我首先应该做的是从数据库的角度来看问题,这样您就可以看到问题所在。您知道如何使用SQL Server Profiler执行跟踪吗?在使用应用程序时尝试执行跟踪。另外,请尝试成为唯一一个使用此应用程序的人,这样您就可以轻松理解跟踪。您需要检查查询是否快速执行

您还可以检查等待统计信息:

WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK'
,'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE'
,'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT'
,'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT'
,'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP'))
SELECT W1.wait_type,
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE); -- percentage threshold
GO
DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR);

是的,两台机器都位于同一网络和同一数据中心。是的,我们可以ping,ping是不变的,没有任何延迟。是的,实际上我们已经测试了Db服务器,还测试了我的Microsoft及其产品。我认为问题只存在于数据库服务器和应用程序服务器之间的网络(当它们处于隔离状态时)