1

I was monitoring one of the SQL Server in my client evnironment and I can see there is momentary blocking on SQL Server sessions with wait type as LATCH_EX and with wait resource as ACCESS_METHODS_DATASET_PARENT.

So I went to world famous library of wait types (sqlskills.com) and I find below line written by Mr. Paul S. Randal in description:

"This wait type occurs when a thread is waiting for access to a non-page data structure so that it can modify the data structure."

I got confused with what does non-page data structure means.

I am not from CS background. Any help is highly appreciated.

1

From the same source that you mentioned on LATCH_EX

A latch is a lightweight synchronization mechanism that provides synchronization between threads trying to read or change a data structure in SQL Server. There are three types of latches:

  • Latches on pages being read from disk (these are covered by the PAGEIOLATCH_XX wait types – see the PAGEIOLATCH_SH wait type for
    more details)
  • Latches on pages already in memory (these are covered by the PAGELATCH_XX wait types – see the PAGELATCH_EX wait type for more
    details)
  • Latches on non-page data structures (i.e. everything else)

You are interested in the last part:

Latches on non-page data structures (i.e. everything else)

Which are latches that do not correspond to data pages in memory or on disk.

Further below in the same source is more information on these types of latches:

The LATCH_SH and LATCH_EX wait types occur when a thread requires access to a non-page data structure (e.g., page buffers in the buffer pool (latch type = BUFFER), or the data structure that represents a database’s data and log files (latch type = FGCB_ADD_REMOVE)).

With two more examples, waiting on access to page buffers in the buffer pool or data and log file data structures.

An example of accessing the data and log file data structure is shrinking / growing the data or log file of your database.

Your latch type, ACCESS_METHODS_DATASET_PARENT is related to parallellism and latch on the threads needed to acquire scan ranges. More on that here and here.

I would start with looking at the query itself and asking a new question with as much information if the LATCH_EX waits are troublesome for you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.