为什么在尝试删除违反外键约束的记录时,Azure Web 应用程序的性能会受到如此大的影响?
Why does Azure web app performance suffer so much when trying to delete a record that violates a foreign key constraint?
为什么在尝试删除违反外键约束的记录时,Azure Web 应用程序的性能会受到如此大的影响?我知道,"Don't do that." 这可能是一个如此巨大的因素,这让我感到惊讶。
我有一个 Azure 网站 运行 大约 125K requests/hour 它连接到 Azure SQL S2 数据库大约 8GB throughput/day 其中大部分是在正常工作时间内.在 Azure 门户图表中,网站通常在白天占用 40% CPU 和 50% 的内存。数据库平均约占 15% CPU 和 30 - 40% 数据 I/O 和日志 I/O.
我试图使用 Mgt Studio 删除违反外键约束的记录。该网站遭受了巨大损失——正在处理的请求数量下降得很低,CPU 达到峰值,http 队列长度变得非常高,Autoscale 添加了另一个实例,许多 http 服务器错误开始发生,许多客户端报告超时和 502 错误网关错误。
我花了几分钟来识别问题并取消查询,取消查询又花了三分钟,网络应用程序需要 10-15 分钟才能赶上。
我的问题是,这是对外键违规的正常响应吗?我是否在数据库或 Web 服务代码中存在某些结构错误,导致 Mgt 中的外键违规错误造成如此广泛的灾难性影响?工作室?升级到 Azure Sql V12 会消除此类问题吗?
这很可能是数据库性能问题。
我试图删除的记录被多个外键约束引用,大多数是删除级联但一个不是。
大多数级联删除引用都针对少量记录,但在 table 中引用了 135,000 条记录,总共有 600,000 条记录。
另一个级联删除可能引用了 table 中的少量记录,记录很少,但每个记录中可能有 10-15MB 大小的 blob。我不知道我试图删除的记录引用了多少(如果有的话)。
我猜它一直在执行级联删除,直到它遇到 table 没有级联删除的删除并且不得不回滚所有内容。换句话说,网站的扩展问题很可能是因为数据库性能受到影响。 Azure 的这一方面令人失望。当我们在 Windows Server 2003 虚拟机上本地提供这些服务时,Sql Server 2005 具有数倍的数据,数据库的响应速度要快得多。也许升级到 Azure Sql V12 会有所帮助。
为什么在尝试删除违反外键约束的记录时,Azure Web 应用程序的性能会受到如此大的影响?我知道,"Don't do that." 这可能是一个如此巨大的因素,这让我感到惊讶。
我有一个 Azure 网站 运行 大约 125K requests/hour 它连接到 Azure SQL S2 数据库大约 8GB throughput/day 其中大部分是在正常工作时间内.在 Azure 门户图表中,网站通常在白天占用 40% CPU 和 50% 的内存。数据库平均约占 15% CPU 和 30 - 40% 数据 I/O 和日志 I/O.
我试图使用 Mgt Studio 删除违反外键约束的记录。该网站遭受了巨大损失——正在处理的请求数量下降得很低,CPU 达到峰值,http 队列长度变得非常高,Autoscale 添加了另一个实例,许多 http 服务器错误开始发生,许多客户端报告超时和 502 错误网关错误。
我花了几分钟来识别问题并取消查询,取消查询又花了三分钟,网络应用程序需要 10-15 分钟才能赶上。
我的问题是,这是对外键违规的正常响应吗?我是否在数据库或 Web 服务代码中存在某些结构错误,导致 Mgt 中的外键违规错误造成如此广泛的灾难性影响?工作室?升级到 Azure Sql V12 会消除此类问题吗?
这很可能是数据库性能问题。
我试图删除的记录被多个外键约束引用,大多数是删除级联但一个不是。
大多数级联删除引用都针对少量记录,但在 table 中引用了 135,000 条记录,总共有 600,000 条记录。
另一个级联删除可能引用了 table 中的少量记录,记录很少,但每个记录中可能有 10-15MB 大小的 blob。我不知道我试图删除的记录引用了多少(如果有的话)。
我猜它一直在执行级联删除,直到它遇到 table 没有级联删除的删除并且不得不回滚所有内容。换句话说,网站的扩展问题很可能是因为数据库性能受到影响。 Azure 的这一方面令人失望。当我们在 Windows Server 2003 虚拟机上本地提供这些服务时,Sql Server 2005 具有数倍的数据,数据库的响应速度要快得多。也许升级到 Azure Sql V12 会有所帮助。