Hi ALL!
On database in moment of highly loaded take very big value for "latch sleep".
Output of sysmon:
Task Context Switches Due To:
Voluntary Yields 722.1 8.8 1949602 46.5 %
Cache Search Misses 24.2 0.3 65307 1.6 %
Exceeding I/O batch size 2.5 0.0 6854 0.2 %
System Disk Writes 117.9 1.4 318380 7.6 %
Logical Lock Contention 0.2 0.0 565 0.0 %
Address Lock Contention 0.1 0.0 311 0.0 %
Latch Contention 51.5 0.6 138985 3.3 %
Physical Lock Transition 0.0 0.0 0 0.0 %
Logical Lock Transition 0.0 0.0 0 0.0 %
Object Lock Transition 0.0 0.0 0 0.0 %
Log Semaphore Contention 19.1 0.2 51555 1.2 %
PLC Lock Contention 4.0 0.0 10901 0.3 %
Group Commit Sleeps 60.9 0.7 164404 3.9 %
Last Log Page Writes 24.1 0.3 65169 1.6 %
Modify Conflicts 4.6 0.1 12448 0.3 %
I/O Device Contention 6.2 0.1 16670 0.4 %
Network Packet Received 465.7 5.6 1257315 30.0 %
Network Packet Sent 44.7 0.5 120777 2.9 %
Interconnect Message Sleeps 0.0 0.0 0 0.0 %
Network services 0.0 0.0 0 0.0 %
Other Causes 6.6 0.1 17913 0.4 %
WaitTime for process in status "waiting for internal system event:wait to acquire latch" can be more 20-30 seconds...
"feature" of DB: there are many tables with text columns (loading XML in database, length ~80kb), but page-size = 2kb...
I understand that it's very bad, but on this moment i can't change it. Second reason: tables are not partitioned...
For decreasing a latch-time i used greedy allocation for more usefull tables, but it was not more effectivity.
Time of sleep decreased, but i also see latch's.
After create partition (roundrobin, 10) for tables - big-sleep-time rollback.
May be there are another case for take effect for latch's?