如何解释版比Web /标准版快得多?
这些是云托管中的多个VM。他们都经历了同样的问题。一些是关于Server 2012的,另一些是在2017年--同样的问题。所有机器都有最新的更新。
机器是足够好的工作: 8G,4核和DBs的大小小于1GB的数据。同样的机器。我甚至尝试在同一台机器上同时启用Express和,每次只启用一个实例,同样的问题。
无论web应用程序是在同一台机器上本地运行,还是通过网络远程访问SQL服务器,都是一样的问题。
DBs具有完全相同的数据。我使用了Express的备份,并将其加载到服务器上。这是一个带有SSD驱动器的VM。安装是尽可能标准的。我比较了SSMS中查看服务器属性的设置。文件很小,并且位于标准位置。
查询在表单中是多个,复杂的运行速度大约是Web的一半。这是一个可重复的问题,而不仅仅是一次。
它并不是特定于Web和服务器类型,因为它是在Express和Developer Edition上的开发机器上复制的。
Server设置似乎是相同的。
很多人都看过它,但我们找不出原因。
有人告诉我要举个例子:
select top (500) *
from UserLog u
join staff s on s.Username = u.username
join Forms f on f.PageFile = u.PageFile
left outer join Client c on c.CID=u.CID
order by u.id desc执行计划完全相同。
以下是由SSMS (最新)测量的时间:


通过多次尝试,Express在这个非常简单的查询上比以前快了50%。
非快件版有最小的DB大小吗?(这没有道理.)
发布于 2019-07-23 08:56:17
在执行更差的查询的执行计划中,我们发现以下等待状态:
<Wait WaitType="ASYNC_NETWORK_IO" WaitTimeMs="280" WaitCount="27" />
</WaitStats>
<QueryTimeStats CpuTime="14" ElapsedTime="295" />对于查询执行的295ms,280ms正在等待ASYNC_NETWORK_IO。
因此,14ms cpu时间&没有这些等待状态的15ms运行时间对我来说是合理的。
实际执行计划中的这些细节意味着该问题与实例本身的性能无关,而是与这些行的处理直接相关。
先前的回答中关于为什么ASYNC_NETWORK_IO由汤姆五世发生的一些部分
指的是托马斯LaRock发布的帖子
ASYNC_NETWORK_IO等待表示正在发生两种情况之一。第一种情况是会话(即SPID)正在等待客户端应用程序处理结果集,并向Server发送一个信号,说明它已准备好处理更多数据。第二,可能存在网络性能问题。
大多数情况下,我看到ASYNC_NETWORK_IO正在发生,这是由于应用程序处理行不够快(应用程序设计/应用程序服务器在重载/压力下)。
在验证应用程序之后,网络将成为下一个嫌疑人。
发布于 2019-07-22 13:55:48
您检查过各种服务器上的网络速度吗?
我也遇到了类似的问题,我们追踪到的是一条以100 mbps而不是1000 mbps运行的贴片线。
发布于 2019-07-22 14:36:35
不应该更快。如果您有相同的数据,在同一台机器上,在同一网络上,并且得到相同的执行计划,它似乎是软件本身中的一个配置设置。你试过这个吗?
--turn on statistics--
Set statistics time on;
set statistics IO on;
Go;
--then run your query--
select top (500) *
from UserLog u
join staff s on s.Username = u.username
join Forms f on f.PageFile = u.PageFile
left outer join Client c on c.CID=u.CID
order by u.id desc
--do this for both and use to compare. 这两个版本在性能上的主要差异在于标准为SQL服务器分配更多资源的能力。我会再次检查所有实例属性和数据库属性,但是如果您采用了标准的方法,您可能会比express更快。如果您要运行微小的查询,那么您不需要担心它,但是如果运行更大的查询,就会遇到分页问题。https://www.microsoft.com/en-us/sql-server/sql-server-2017-editions
想一想,就像比较一辆烂车和一辆标准车的速度。他们都能跑20英里,但也不能都跑120英里。那辆破车的时速可能会达到70英里。
https://dba.stackexchange.com/questions/243440
复制相似问题