小编Edw*_*and的帖子

即使“执行后忽略结果”,什么也会导致 SELECT 语句执行延迟和高 ASYNC_NETWORK_IO

我们的 SQL Server 面临性能问题。

7 台服务器,都运行相同的应用程序,都存在相同的问题。

SELECT @@VERSION
Microsoft SQL Server 2017 (RTM-CU19) (KB4535007) - 14.0.3281.6 (X64)   Jan 23 2020 21:00:04   Copyright (C) 2017 Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor) 
Run Code Online (Sandbox Code Playgroud)

当您查看累积的服务器总等待统计信息时,会显示 99% ASYNC_NETWORK_IO。我们首先假设这是由应用程序引起的。然而:

当我们获取查询(从应用程序捕获)并从 SSMS 中将其作为测试运行时,执行后忽略结果。当我们通过 TCP 连接运行它时,大约需要 6 秒,通过命名管道连接运行它大约需要 50 秒。我们得到的结果非常慢。

(不考虑执行后的结果,查询给出的结果为 57k 行 227 列,大小为 221MB。)

它是核心版本,因此我们无法使用本地连接。我们测试了使用 TCP 和命名管道进行远程连接。

通过 TCP

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time …
Run Code Online (Sandbox Code Playgroud)

sql-server waits sql-server-2017 query-performance

2
推荐指数
1
解决办法
604
查看次数