Azure 上的高物理 Reads/Temp 数据库利用率 SQL 数据库与内部部署数据库
High Physical Reads/Temp DB utilization On Azure SQL DB VS On Premise DB
我有一个在本地 SQL 服务器上性能良好的应用程序。相同的数据库托管在 Azure(业务关键 16 核)上,但在使用 JMeter 性能测试套件执行时其性能不如本地。
我发现使用查询存储,Azure 数据库上的物理读取比本地数据库高得多。尽管 Azure DB 的内存比内部部署的 DB 多。 Azure 数据库上的临时数据库利用率也相当高。
执行计划相同,我也更新了统计信息。数据库配置基本相同。
OP 执行计划 -
https://www.brentozar.com/pastetheplan/?id=rJQ_ox39D
Azure 数据库计划 -
https://www.brentozar.com/pastetheplan/?id=ry1Sieh5D
澄清一下,应用程序正在向服务器发送数百万个小查询,这就是为什么很难查明任何一个特定查询的原因。
您的 16 个物理内核专用于您的 SQL 服务器。他们可能大部分时间都是闲着的。如果启用了超线程,您可能有 32 个逻辑内核来为某些工作负载增加计算能力。您可能会因为将钱花在不需要的资源上而感到内疚,但拥有更多总比拥有更少要好,因为更多可能需要新服务器。
一台 Azure 主机可能有 32 个启用了超线程的内核。 64 个逻辑内核不会闲置。您将获得 16 个 vCPUS。如果这些是由 8 个超线程物理内核提供的,我预计大多数负载的性能会下降 20-30%。对于轻负载,您不会注意到太大差异。对于重负载,情况可能更糟。您可能会后悔没有花钱购买您需要的资源,但这很容易解决。
忘掉苹果和橘子吧。 运行 16 条狗的过程需要多少只猫?
我认为 v2 是从核心还是核心开始的。
我有一个在本地 SQL 服务器上性能良好的应用程序。相同的数据库托管在 Azure(业务关键 16 核)上,但在使用 JMeter 性能测试套件执行时其性能不如本地。
我发现使用查询存储,Azure 数据库上的物理读取比本地数据库高得多。尽管 Azure DB 的内存比内部部署的 DB 多。 Azure 数据库上的临时数据库利用率也相当高。
执行计划相同,我也更新了统计信息。数据库配置基本相同。
OP 执行计划 - https://www.brentozar.com/pastetheplan/?id=rJQ_ox39D
Azure 数据库计划 - https://www.brentozar.com/pastetheplan/?id=ry1Sieh5D
澄清一下,应用程序正在向服务器发送数百万个小查询,这就是为什么很难查明任何一个特定查询的原因。
您的 16 个物理内核专用于您的 SQL 服务器。他们可能大部分时间都是闲着的。如果启用了超线程,您可能有 32 个逻辑内核来为某些工作负载增加计算能力。您可能会因为将钱花在不需要的资源上而感到内疚,但拥有更多总比拥有更少要好,因为更多可能需要新服务器。
一台 Azure 主机可能有 32 个启用了超线程的内核。 64 个逻辑内核不会闲置。您将获得 16 个 vCPUS。如果这些是由 8 个超线程物理内核提供的,我预计大多数负载的性能会下降 20-30%。对于轻负载,您不会注意到太大差异。对于重负载,情况可能更糟。您可能会后悔没有花钱购买您需要的资源,但这很容易解决。
忘掉苹果和橘子吧。 运行 16 条狗的过程需要多少只猫?
我认为 v2 是从核心还是核心开始的。