> [!PerSessionDSA] > <table><tr><td rowspan="4" width="25%"><img src="assets/wl_lw_persessiondsa.png"></td><td><b>Wait Category</b></td><td>LWLock</td></tr><tr><td><b>Mechanism</b></td><td><code>DSALock</code></td></tr><tr><td><b>Operations</b></td><td><a href="Operations/ResultSet/HashJoin">HashJoin</a>, <a href="Operations/ResultSet/Sort">Sort</a></td></tr><tr><td><b>Resources</b></td><td><a href="Resources/RAM">Memory</a>, <a href="Resources/CPU">CPU</a></td></tr><tr><td colspan="3">Contention on the <b>Session-Level Shared Memory Allocator</b>. While core shared memory is pre-allocated at startup, parallel queries use DSA to dynamically carve out memory for plan-specific needs, such as hash tables or sort buffers.</td></tr></table>