Timeout occurred while waiting for latch: class 'ACC

作者: 数据库信息  发布:2019-06-25

前日有些SQL Server数据库的荒谬日志爆出如下错误:

前几天有个别SQL Server数据库的失实日志爆出如下错误:

Timeout occurred while waiting for latch: class 'ACCESS_METHODS_DATASET_PARENT', id 00000009A5670C58, type 4, Task 0x0000000B655BC508 : 188, waittime 300, 
flags 0x1a, owning task 0x00000000170DC748. Continuing to wait.
Timeout occurred while waiting for latch: class 'ACCESS_METHODS_DATASET_PARENT', id 00000009A5670C58, type 4, Task 0x0000000B655BC508 : 188, waittime 300, 
flags 0x1a, owning task 0x00000000170DC748. Continuing to wait.

第一感到到是相互查询的标题,于是翻笔记查看'ACCESS_METHODS_DATABASE_PARENT'到底是怎么等待事件,能够参照sys.dm_os_latch_stats的官方网站解释来打听有限。

先是深感是互为查询的主题素材,于是翻笔记查看'ACCESS_METHODS_DATABASE_PARENT'到底是怎么样LATCH,能够参见sys.dm_os_latch_stats的官网解释来打听有限。

ACCESS_METHODS_DATASET_PARENT -- Used to synchronize child dataset access to the parent dataset during parallel operations.

ACCESS_METHODS_DATASET_澳门金莎娱乐网站 ,PARENT -- Used to synchronize child dataset access to the parent dataset during parallel operations.

官方网站的批注相比较含糊,其实这么些等待事件的原形是:SQL Server在试行TotalsSubTree超越查询阈值cost(默以为5)的SQL时会使用并行来产生,即多个threads并行实现二个SQL的查询,那样就供给种种线程举行音讯交互以便实现一致性,假诺SQL试行的时辰十分短,那么就需求长日子的获取latch,因而发生这种等待事件,其本质依然因为SQL太烂引起的,供给开始展览SQL优化。

官方网站的分解比较草率,于是写SQL来抓取引发难点的事务SQL,为方便起见创制为sp存款和储蓄进程。

写SQL来抓取引发难题的职业SQL,为方便起见创立为sp存储进度:

USE [master]
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_findtask](@parent_task_address varbinary(8))
as 
BEGIN
SELECT 
t.spid,t.lastwaittype,t.open_tran,t.status,t.hostname,t.program_name,t.loginame,dc.text 
FROM master.sys.sysprocesses t cross apply master.sys.dm_exec_sql_text(t.sql_handle) dc
WHERE spid in (select distinct session_id from sys.dm_os_tasks where parent_task_address=@parent_task_address)
END
GO

本文由金沙澳门官网发布于数据库信息,转载请注明出处:Timeout occurred while waiting for latch: class 'ACC

关键词: 金沙澳门官网

上一篇:没有了
下一篇:没有了