首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高CXPACKET和LATCH_EX等待

高CXPACKET和LATCH_EX等待
EN

Database Administration用户
提问于 2014-03-06 09:13:42
回答 3查看 39.2K关注 0票数 15

我正在处理的数据处理系统有一些性能问题。我收集了一个小时的等待状态,显示了大量的CXPACKET和LATCH_EX等待事件。

该系统由3个处理SQL服务器组成,进行大量的数据处理和计算,然后将数据输入中央集群服务器。处理服务器可以有多达6个作业,每个作业在任何时候运行。这些等待状态是中心星系团的数据,我认为这是造成瓶颈的原因。中央集群服务器有16个核心和64 16内存。MAXDOP设置为0。

我猜CXPACKET来自运行的多个并行查询,但是我不确定LATCH_EX等待事件所指示的是什么。据我所知,这可能是一个非缓冲的等待?

有人能建议这种等待的原因是什么吗?我应该采取什么行动来调查这个性能问题的根本原因?

最上面的查询结果是等待状态的总数,底部的查询结果是1小时内的状态。

EN

回答 3

Database Administration用户

发布于 2017-05-24 08:50:24

CXPACKET可以与LATCH_XX (可能还包括PAGEIOLATCH_XX或SOS_SCHEDULER_YIELD )一起使用。如果是这样的话(基于这个问题,我相信是这样的),那么MAXDOP值应该降低以适应您的硬件。

此外,以下是诊断高CXPACKET等待状态值的原因的一些更多建议步骤(在更改Server上的某些内容之前):

  • 不要将MAXDOP设置为1,因为这永远不是解决方案
  • 调查查询和CXPACKET历史记录,以了解和确定它是否只发生了一次或两次,因为它可能只是系统中正常工作的异常。
  • 检查查询使用的表的索引和统计信息,并确保它们是最新的。
  • 检查并行性的成本阈值(CTFP),并确保所使用的值适合您的系统。
  • 检查CXPACKET是否伴随LCK_M_XX (通常伴随着IO_COMPLETION和ASYNC_IO_COMPLETION)。如果是这样,那么并行性就不是瓶颈。排除这些等待状态,以找到问题的根源和解决方案

如果您真的需要深入了解CXPACKET等待类型,我建议您阅读服务器中CXPACKET等待类型的故障排除文章

票数 9
EN

Database Administration用户

发布于 2014-03-06 13:33:32

阅读在服务器上诊断和解决Latch争用,是关于这一主题的最全面的论文。您必须深入研究sys.dm_os_latch_stats,看看争用的锁存类型是什么。

看看阅读如何分析Server的性能是否对你有任何帮助。

票数 7
EN

Database Administration用户

发布于 2014-03-06 14:29:34

除了阅读上面提供的链接(很可能会将“最大并行度”设置从0更改为8 )之外,您还需要缩小查询的并行性以及它们的成本。

在看到这一变化的影响之后,您还可以考虑修改您的“并行性成本阈值”,以微调将并行的内容。

以下是布伦特·奥扎尔的一段很棒的视频,它将对你有帮助:掌握CXPACKET和MAXDOP的艺术

您的目标是为CXPACKET提供50%的等待时间。好运!!

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/60279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档