SQLSERVER:PREEMPTIVE_OS_GETPROCADDRESS等待类型的困惑

翻译自:http://troubleshootingsql.com/2011/07/20/preemptive_os_getprocaddress-are-you-confusing-me/

PREEMPTIVE_OS_GETPROCADDRESS等待类型在SQLSERVER2008里是一个新的等待类型

这个等待类型的作用是当GetProcAddress跟踪SQLSERVER实例调用扩展存储过程的时候加载DLL的入口点所花费的时间

然而,这个等待类型跟踪这个等待时间的方式有一些问题,这个问题在Rob Dorr的博客里有所记载

根据Twitter上面一个帖子的讨论,我发现了可以证明这个问题的一个例子

我使用下面的命令去列出我的C盘下面的子目录:

 exec master..xp_dirtree 'C:\'

然后,我使用下面的TSQL脚本去监视系统中执行这个扩展存储过程的那个会话的等待信息,这个TSQL脚本每隔一秒执行一次

 SET NOCOUNT ON
WHILE (1=1)
BEGIN
SELECT [session_id], [status], [command], [start_time], [cpu_time], [reads], [writes], [wait_resource], [wait_time], [last_wait_type], [wait_type]
FROM sys.dm_exec_requests
WHERE [session_id] = 53 -- Session ID that is executing the Extended Stored Procedure WAITFOR DELAY '00:00:01'
RAISERROR ('', 10, 1, N'Waits'); END

按CTRL+T然后执行上面的SQL脚本,把结果粘贴出来

正如你在上面看到的,等待时间不断递增

我们能够看到会话为了输出下面的结果正在努力工作:

1、在SSMS里,执行这个扩展存储过程的那个会话的结果窗口输出执行结果

2、使用procmon这个工具跟踪SQLSERVER进程对于C盘的文件系统的活动

您能够使用SQLSERVER2008或者SQLSERVER2008R2,执行任何扩展存储过程来重现这个问题

当我知道会话正在工作的时候,有两样东西我会检查一下是否存在资源瓶颈:1、内存 2、I/O

如果一些文件系统的活动跟一些正在工作的扩展存储过程有关。我见过的大部分问题都是因为这个等待类型引起的

 #sqlhelp,Extended Stored Procedures,PREEMPTIVE_OS_GETPROCADDRESS

如有不对的地方,欢迎大家拍砖o(∩_∩)o

SQLSERVER:PREEMPTIVE_OS_GETPROCADDRESS等待类型的困惑的更多相关文章

  1. SqlServer性能急剧下降,查看所有会话的状态及等待类型---Latch_Ex

    当某个数据库文件空间用尽,做自动增长的时候,同一时间点只能有一个用户人员可以做文件自动增长动作,其他任务必须等待,此时会出现Latch资源的等待.使用sp_helpdb查看业务数据库时发现:该数据库设 ...

  2. SQL点滴13—收集SQLServer线程等待信息

    原文:SQL点滴13-收集SQLServer线程等待信息 要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信 ...

  3. sql server 性能调优之 资源等待内存瓶颈的三种等待类型

    一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),SOS_RESERVEDMEMBLOCKLIST(0x007B),RESO ...

  4. SQLSERVER CXPACKET 等待

    --SQLSERVER CXPACKET 等待 2013-6-11 2 --联机丛书: 3 --当尝试同步查询处理器交换迭代器时出现.如果针对该等待类型的争用成为问题时,可以考虑降低并行度 4 5 6 ...

  5. sql server 性能调优 资源等待之内存瓶颈的三种等待类型

    原文:sql server 性能调优 资源等待之内存瓶颈的三种等待类型 一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),S ...

  6. 资源等待类型sys.dm_os_wait_stats

    动态管理视图  sys.dm_os_wait_stats 返回执行的线程所遇到的所有等待的相关信息.可以使用该聚合视图来诊断 SQL Server 以及特定查询和批处理的性能问题. 列名 数据类型 说 ...

  7. [AlwaysOn Availability Groups]AlwaysOn等待类型

    AlwaysOn等待类型 当排查AlwaysOn延迟,等待统计信息可以在DMV中查看累计的AlwaysOn等待类型. 查看AlwaysOn等待类型 SELECT * FROM sys.dm_os_wa ...

  8. [转载]sql server 等待类型

    下表列出各任务所遇到的等待类型. 等待类型 说明 ASYNC_DISKPOOL_LOCK 当尝试同步并行的线程(执行创建或初始化文件等任务)时出现. ASYNC_IO_COMPLETION 当某任务正 ...

  9. 收集SQLServer线程等待信息

    要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据. sys.dm_os_wait_ ...

随机推荐

  1. Spring中的BeanPostProcessor

    一.何谓BeanProcessor BeanPostProcessor是SpringFramework里非常重要的核心接口之一,我先贴出一段源代码: /* * Copyright 2002-2015 ...

  2. wap尝试调取app(网易新闻为例)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  4. iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。

    这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误. 报不认识的符号名PayReq错误.奇怪,啥也没动就这样,真不知道给的包是不是本来就是个报错的工程. 不管怎样,要对它修 ...

  5. Ripple(瑞波币)validator-keys-tool 配置验证器

    目录 Ripple(瑞波币)validator-keys-tool配置验证器 验证器密钥工具指南 验证器密钥 验证器令牌(Validator Keys) public_key撤销 签名 Ripple( ...

  6. 本地开启https的nginx配置

    下载证书和key放置在nginx配置文件同级目录下,然后添加配置内容,监听443端口,如果本地443端口被占用,可以使用其他端口测试. server { listen 443; server_name ...

  7. [PY3]——发送邮件

    一些概念 MUA:Mail User Agent——邮件用户代理,例如OutLook.Foxmail MTA:Mail Transfer Agent——邮件传输代理,例如163.com.sina.co ...

  8. hadoop学习笔记(五):HDFS Shell命令

    一.HDFS文件命令 以下是比较重要的一些命令: [root@master01 hadoop]# hadoop fs -ls / //查看根目录下的所有文件 [root@master01 hadoop ...

  9. [转]RDL Report in Visual Studio New page per Record

    本文转自:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f58cd5cf-4296-40f0-b3c8-7e4e15d73762/r ...

  10. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...