sql服务器时间不正确,使用更改 CPU 频率的实用工具或技术时,SQL Server 计时值可能不正确...

光标

偏移是 CPU 时钟值的分歧。 具有多个 Cpu 的系统可以为同一时间点生成不同的 CPU 时钟值。 尽管这种情况不太常见,但 Cpu 可能会在一段时间内遇到时钟分隔。以下示例演示了偏差更改如何影响 SQL Server 跟踪中 duration 数据列的结果。 此示例假定 CPU 频率保持稳定,每毫秒200计时周期。 下表说明了此方案中的事件。

行为

Windows 计划 CPU

CPU 1 RDTSC

CPU 2 RDTSC

时钟时间

开始批处理

1

100

1100

0

结束批处理

2

900

1900

4毫秒

求和

4毫秒

SQL Server 在起始点和结束点处捕获 RDTSC 计时周期。 然后,SQL Server 将 RDTSC 计时周期除以 frequency 值。 在此示例中,Windows 在两个不同的 Cpu 上计划了 SQL Server 工作线程。 服务批处理首先在第一个 CPU (CPU 1)上运行的 SQL Server 工作线程。 但是,批处理执行在某点中断,并且 SQL Server 已将批处理执行发送到挂起队列。 当 SQL Server 再次将向此批处理服务的 SQL Server 工作线程发送给可运行队列时,Windows 会将该线程调度为在第二个 CPU (CPU 2)上运行。 SQL Server 工作线程已在 CPU 2 上运行完毕。 由于 CPU 偏移,从 CPU 2 捕获的结束滴答值是1900而不是900。 如果启用 SQL Server 处理关系,则可以避免此行为。 此示例中使用以下计时计算:

不正确的、报告的值: (1900-100 = 1800)/200 = 9 毫秒

正确的值: (900-100 = 800)/200 = 4 毫秒

RPC:已完成事件的duration列的值将报告为9毫秒,而不是4毫秒。 此结果的精度超过4毫秒的正确值。将警告消息添加到 SQL Server 2005 以指示之前提到的性能输出可能不可靠。 在某些发现的情况下,SQL Server 2005 SP2 可能会报告有关以下内容的警告消息:

假偏差警告消息

偏移可能会变得数十毫秒,而不会导致系统显著影响

当你评估性能相关输出时,如果将性能相关输出与时钟时钟计时进行比较,则必须小心。 如果没有其他性能问题的迹象,通常可以忽略警告消息。 例如,在以下情况下,通常可以忽略警告消息:

进程按预期运行。

SQL Server 查询不会在奇怪的 durational 模式中运行。

您看不到其他瓶颈的迹象。

但是,在忽略警告消息之前,我们建议您与制造商联系以确保不存在任何已知的 RDTSC 问题。 你可以使用跟踪标记8033(-T8033)返回到 SQL Server 2005 的原始发行版本和 SQL Server 2005 SP1 中的报告行为。 SQL Server 2005 和 SQL Server 2005 SP1 的原始发布版本不报告偏差警告消息。 如果您运行的是原始版本的 SQL Server 2005 或 SQL Server 2005 SP1 而没有问题,则通常可以忽略这些消息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值