科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道关于 CXPACKET

关于 CXPACKET

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

关于 CXPACKET

作者:csdn 来源:csdn 2009年12月18日

关键字: 问答 MS-SQL Server

  • 评论
  • 分享微博
  • 分享邮件

关于 CXPACKET

一些简单的查询或存储过程(单独执行时间少于1S),被SQL SERVER  设定为并发,在进程列表中的表现就是一个查询的执行开了10+线程,第一个等待状态为CXPACKET,其余都是suspended。第一个线程block其余的线程。
cost threshold for parallelism 是默认设定 5S.
理论上应该是the estimated cost 高于5S才应该安排并发吧?莫非SQL SERVER 开销评估出现误差?

 

联机文档:
在某些情况下,即使查询的开销计划小于当前 cost threshold for parallelism 的值,也有可能选择并行计划。出现这种情况,是因为使用并行还是串行计划是根据完成完全优化之前所提供的开销估计确定的。

可以配合max degree of parallelism 选项.这样能最大限制的控制并行导致cpu不可用而造成的短查询的等待。如:
SQL code
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 4;--假如是8个(核)cpu
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'cost threshold for parallelism', 10;--将此时间增加
GO
RECONFIGURE WITH OVERRIDE;
GO
不过,造成cxpaket等待,大都是的确有耗时的sql执行,还是需要确定一下是否有这样的报表名job ?
如果有,也可以单独指定option(maxdop 1)来限制.

 

联机帮助中说单位是秒啊?

使用 cost threshold for parallelism 选项指定 Microsoft SQL Server 创建和运行并行查询计划的阈值。仅当运行同一查询的串行计划的估计开销高于在 cost threshold for parallelism 中设置的值时,SQL Server 才创建和运行该查询的并行计划。开销指的是在特定硬件配置中运行串行计划估计需要花费的时间(秒)。只能在对称多处理器系统上设置 cost threshold for parallelism。

并行计划对需时较长的查询通常更加有益;其性能优势将抵消初始化、同步和终止并行计划所需的额外时间开销。短时间和长时间查询混合运行时,可以灵活使用 cost threshold for parallelism 选项。短时间查询使用串行计划运行,而长时间查询使用并行计划运行。cost threshold for parallelism 的值确定哪些查询是短时间查询,因而应该使用串行计划运行。

在某些情况下,即使查询的开销计划小于当前 cost threshold for parallelism 的值,也有可能选择并行计划。出现这种情况,是因为使用并行还是串行计划是根据完成完全优化之前所提供的开销估计确定的。

cost threshold for parallelism 选项可设置为 0 到 32767 之间的任何值。默认值为 5。

在下列情况下,SQL Server 将忽略 cost threshold for parallelism 的值:

计算机只有一个处理器。


由于 affinity mask 配置选项的限制,SQL Server 只能使用一个 CPU。


max degree of parallelism 选项设置为 1。


cost threshold for parallelism 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改此设置,则只有在 show advanced options 设置为 1 时才能更改 cost threshold for parallelism。更改后的设置将立即生效,而不需要重新启动服务器。

示例
以下示例将 cost threshold for parallelism 设置为 10 秒。

sp_configure 'show advanced options', 1;

GO


reconfigure;

GO


sp_configure 'cost threshold for parallelism', 10;

GO


reconfigure;

GO

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章