与本地计算机相比,为什么 Azure 上的 SQL 服务器数据库对虚拟机的响应速度较慢?

Why is SQL Server Database on Azure slower to respond from Virtual Machine compared to Local Machine?

我在 Azure SQL 服务器上有一个 SQL 服务器数据库,还有一个 .NET 网站通过 VM 上的 IIS 从单独的虚拟机连接到它。连接到此数据库和 运行 我本地机器上的网站代码运行查询大约需要 10 秒,而在虚拟机上的网站 运行 上运行相同查询大约需要一分钟或更长时间,有时会超时。

我不知道这是否足够详细,只是想知道是否有任何明显的因素可能导致响应时间不同?当然,如果查询需要优化,那么在我的本地机器上也会一样吗?

各种元素的规格是: - 虚拟机:标准 A4(8 核,14 GB 内存) - SQL 数据库:S3 标准(100 个 DTU)/服务器版本:V12 都在西欧 运行 但在不同的资源组中

我的本地计算机配备 i7 处理器和 16Gb RAM

你说 'queries' 需要 10 秒对 60 秒。你的意思是有多个较小的查询 运行,所有查询的总数是 10vs60?

如果是这样,您的 Web 服务器上可能存在一些网络延迟,因此发送和接收数据所花费的时间比执行查询所花费的时间要长。

如果不是,则可能是您在网站上使用的客户端代码。例如,如果连接许多复杂的表,Entity Framework 会变得非常慢——这是一个称为物化的过程,并且 it's caused grief in the past. 在链接的示例中,例如,通过 EF 从 VARCHAR 转换为 NVARCHAR 会导致显着性能问题。