Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure sql database 当试图删除违反外键约束的记录时,为什么Azure web app性能会受到如此大的影响?_Azure Sql Database_Azure Web App Service - Fatal编程技术网

Azure sql database 当试图删除违反外键约束的记录时,为什么Azure web app性能会受到如此大的影响?

Azure sql database 当试图删除违反外键约束的记录时,为什么Azure web app性能会受到如此大的影响?,azure-sql-database,azure-web-app-service,Azure Sql Database,Azure Web App Service,当试图删除违反外键约束的记录时,为什么Azure web app性能会受到如此大的影响?我知道,“不要那样做。”这可能是一个巨大的因素,这让我感到惊讶 我有一个Azure网站,每小时运行约125K个请求,它连接到Azure SQL S2数据库,每天的吞吐量约为8GB,其中大部分是在正常工作时间。在Azure门户图表中,该网站在一天中通常有40%的CPU和50%的内存。数据库平均约有15%的CPU和30-40%的数据I/O和日志I/O 我尝试使用Mgt Studio删除违反外键约束的记录。该网站遭

当试图删除违反外键约束的记录时,为什么Azure web app性能会受到如此大的影响?我知道,“不要那样做。”这可能是一个巨大的因素,这让我感到惊讶

我有一个Azure网站,每小时运行约125K个请求,它连接到Azure SQL S2数据库,每天的吞吐量约为8GB,其中大部分是在正常工作时间。在Azure门户图表中,该网站在一天中通常有40%的CPU和50%的内存。数据库平均约有15%的CPU和30-40%的数据I/O和日志I/O

我尝试使用Mgt Studio删除违反外键约束的记录。该网站遭受了巨大的损失——被处理的请求数量下降得非常少,CPU达到峰值,http队列长度变得非常高,Autoscale添加了另一个实例,许多http服务器错误开始发生,许多客户端报告超时和502个坏网关错误

我花了几分钟才意识到问题并取消查询,取消查询又花了三分钟,web应用程序花了10-15分钟才赶上


我的问题是,这是对违反外键的正常反应吗?我是否在数据库或web服务代码中存在结构错误,导致Mgt中外键冲突错误造成如此广泛的灾难性影响。演播室升级到Azure Sql V12会消除此类问题吗?

很可能是数据库性能问题

我试图删除的记录被多个外键约束引用,大多数是delete cascade,但有一个不是

大多数级联删除引用用于少量记录,但其中一个引用了一个表中的135000条记录,该表共有600000条记录

另一个级联删除可能引用了一个表中的少量记录,其中记录很少,但每个表中可能有一个10-15MB大小的blob。我不知道我试图删除的记录引用了多少,如果有的话


我猜它一直在执行级联删除,直到它遇到一个没有级联删除的表,并且不得不回滚所有内容。换句话说,网站的扩展问题很可能是因为数据库性能受到影响。Azure的这一方面令人失望。当我们使用Sql Server 2005在Windows Server 2003虚拟机上本地提供这些服务时,数据量增加了几倍,数据库的响应速度大大提高。也许升级到Azure Sql V12会有所帮助。

Sql Server是如何实现这一点的?如果在本地执行此操作,会发生什么情况?