Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
针对表的SQL查询速度慢,导致阻塞_Sql_Performance_Blocking - Fatal编程技术网

针对表的SQL查询速度慢,导致阻塞

针对表的SQL查询速度慢,导致阻塞,sql,performance,blocking,Sql,Performance,Blocking,为什么对一个表执行的所有语句都会运行得非常慢,从而导致阻塞,可能的原因是什么。罪魁祸首不是什么特别的疑问。在某个时间点,导致它的一切都结束了,所有语句开始正常执行,所有阻塞都被清除。索引损坏可能会导致该问题。如果有索引,您可以重新创建它们。如果使用表复制,如果复制不同步,则会导致查询速度变慢,尤其是在表处理大量事务时。如果您还没有这样做,您可能希望记录慢速查询,因为即使是耗时0.5秒的查询也会很快在高流量系统上造成瓶颈。这些是我的“表面”想法。还需要考虑其他因素,如磁盘空间、RAM、磁盘完整性等

为什么对一个表执行的所有语句都会运行得非常慢,从而导致阻塞,可能的原因是什么。罪魁祸首不是什么特别的疑问。在某个时间点,导致它的一切都结束了,所有语句开始正常执行,所有阻塞都被清除。

索引损坏可能会导致该问题。如果有索引,您可以重新创建它们。如果使用表复制,如果复制不同步,则会导致查询速度变慢,尤其是在表处理大量事务时。如果您还没有这样做,您可能希望记录慢速查询,因为即使是耗时0.5秒的查询也会很快在高流量系统上造成瓶颈。这些是我的“表面”想法。还需要考虑其他因素,如磁盘空间、RAM、磁盘完整性等。您可能想考虑检查系统日志,看看在您遇到问题的时候是否出现了什么。

谢谢您的评论。阻塞链的头部将运行,但通常以秒为单位运行时需要几分钟。当它完成时,下一行的行为也一样。我们确实复制了这个表,但从我所能看出它没有任何问题。服务器有256 GB内存,数据库为400 GB,实例的最大内存为128 GB。服务器有2个2.9Ghz-8个超线程核心处理器。我不认为这是磁盘问题,因为它似乎与一个特定的表有关,所以我认为它不是服务器资源。日志中没有显示任何问题。您是否识别了头部拦截器?它在等什么?还是没有报告等待?您可能希望关注head blocker查询,并解决任何陈旧的统计数据、陈旧的计划或参数嗅探问题。我想我可以排除参数嗅探,因为临时查询和参数化查询都存在此问题,许多不同的语句也存在相同的问题。我杀了一些不做任何会引起问题的事情的人。我还使用默认的样本大小更新了表上的统计数据,这将使所有计划失效。在10或15分钟后,我仍然有问题,我记得我们通常每晚更新统计数据,样本量为100%,因为我们的数据有偏差。表格有1000万条记录,由于我们每晚更新统计数据,样本量为100%,在我看来,很难相信统计数据在8小时内就过时了。这可能是真的,我的想法和你一样,尼克,但我没有办法证明这一点。这是用于哪种关系数据库管理系统的?请添加一个标记,以指定您使用的是
mysql
postgresql
sqlserver
oracle
还是
db2
——或者其他完全不同的东西。