背景
- 操作系统: Windows Server 2008 R2 DataCenter
- 数据库版本: SQL Server 2008 R2
现象
- 使用 SSMS 连接数据库实例,左侧菜单树刷新缓慢,需要4秒以上的时间才能出来
- 使用 sys.dm_exec_requests DMV 视图观察会话等待类型,发现其在等待 PREEMPTIVE_OS_GETPROCADDRESS 类型系统资源
原因调查
- PREEMPTIVE_OS_GETPROCADDRESS 等待类型是 SQL Server 2008 及 SQL Server 2008 R2 中新增的等待类型,通常是在调用外部存储过程的时候获取外部存储过程对应 DDL 动态链接库地址的系统函数 GetProcAddress 时的等待类型
- PREEMPTIVE_OS_GETPROCADDRESS 等待类型通常发生在扩展存储过程相关的磁盘操作过程中
解决方案
- 确认服务器磁盘没有达到瓶颈,若磁盘有瓶颈,尝试查找磁盘瓶颈所在并解决;更换性能更强的磁盘。