SQLSERVER:PREEMPTIVE_OS_GETPROCADDRESS等待类型的困惑
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等待类型的困惑的更多相关文章
- SqlServer性能急剧下降,查看所有会话的状态及等待类型---Latch_Ex
当某个数据库文件空间用尽,做自动增长的时候,同一时间点只能有一个用户人员可以做文件自动增长动作,其他任务必须等待,此时会出现Latch资源的等待.使用sp_helpdb查看业务数据库时发现:该数据库设 ...
- SQL点滴13—收集SQLServer线程等待信息
原文:SQL点滴13-收集SQLServer线程等待信息 要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信 ...
- sql server 性能调优之 资源等待内存瓶颈的三种等待类型
一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),SOS_RESERVEDMEMBLOCKLIST(0x007B),RESO ...
- SQLSERVER CXPACKET 等待
--SQLSERVER CXPACKET 等待 2013-6-11 2 --联机丛书: 3 --当尝试同步查询处理器交换迭代器时出现.如果针对该等待类型的争用成为问题时,可以考虑降低并行度 4 5 6 ...
- sql server 性能调优 资源等待之内存瓶颈的三种等待类型
原文:sql server 性能调优 资源等待之内存瓶颈的三种等待类型 一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),S ...
- 资源等待类型sys.dm_os_wait_stats
动态管理视图 sys.dm_os_wait_stats 返回执行的线程所遇到的所有等待的相关信息.可以使用该聚合视图来诊断 SQL Server 以及特定查询和批处理的性能问题. 列名 数据类型 说 ...
- [AlwaysOn Availability Groups]AlwaysOn等待类型
AlwaysOn等待类型 当排查AlwaysOn延迟,等待统计信息可以在DMV中查看累计的AlwaysOn等待类型. 查看AlwaysOn等待类型 SELECT * FROM sys.dm_os_wa ...
- [转载]sql server 等待类型
下表列出各任务所遇到的等待类型. 等待类型 说明 ASYNC_DISKPOOL_LOCK 当尝试同步并行的线程(执行创建或初始化文件等任务)时出现. ASYNC_IO_COMPLETION 当某任务正 ...
- 收集SQLServer线程等待信息
要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据. sys.dm_os_wait_ ...
随机推荐
- 第7章—SpringMVC高级技术—处理multipart形式的数据
处理multipart形式的数据 MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 Multip ...
- gcc 编译问题
一般情况一句话即可: gcc -o fuck fuck.c ./fuck 直接运行了 问题 1. 报错 ld 未找到 此时,gcc编译得分布来,并且指定特定的ld gcc -c 1.c //会在目录 ...
- postman—集成到jenkins
前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 将postman导出的脚本,持续集成到 ...
- vue制作小程序--server
服务端代码,开发者工具有提供 指南 https//cloud.tencent.com/document/product/619/11442 参考文档API https://developers.wei ...
- Mysql的预编译和批处理
MySQL的预编译功能 预编译的好处 大家平时都使用过JDBC中的PreparedStatement接口,它有预编译功能.什么是预编译功能呢?它有什么好处呢? 当客户发送一条SQL语句给服务器后,服务 ...
- CentOS7.2配置Hadoop2.6.5
Hadoop配置文件 /etc/profile 配置Java和Hadoop环境 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export CLAS ...
- IOS项目之弹出动画一
小区宝首页导航栏左边有一个物业按钮,点击时会出现一个视图动画,之前用的是一个POP第三方,想着几个POP动画就要引用一堆的第三方有点麻烦,就试着自己写了一下,功能实现了,下一步就是优化将其封装一下.下 ...
- WCF异常信息
1.服务“CJ.Demo.Conso.WcfService.EmployeeMngService”有零个应用程序(非基础结构)终结点.这可能是因为未找到应用程序的配置文件,或者在配置文件中未找到与服务 ...
- Flume - 快速入门
关于Flume,官方定义如下: Apache Flume is a distributed, reliable, and available system for efficiently collec ...
- 修改MVC视图默认搜索规则(IViewEngine)
前几天我自己在写一个系统,写到后台管理系统的时候,我突然有个想法就是:想在区域视图下新建文件,单独处理后台一些业务:Area/AdminManager/View/Content/Index.cshtm ...