Наш производственный сервер выполняет в среднем 4000 транзакций в секунду. В последние несколько дней среднее число выросло до 175 000 транзакций в секунду. Это не опечатка, это 175K в секунду.
Рассматривая DMV для транзакций, мы не можем напрямую связать их с сеансами пользователей, но мы видим это:
SELECT NAME,
COUNT(*)
FROM sys.dm_tran_active_transactions
GROUP BY NAME
ORDER BY 2 DESC
-
+------------------------------+-------+
| Name | Count |
+------------------------------+-------+
| WorkFileGroup_fake_worktable | 627 |
| LobStorageProviderSession | 217 |
| workfile | 171 |
+------------------------------+-------+
Может ли кто-нибудь пролить свет на подобные транзакции? Или я гоняюсь за призраками здесь?
sql-server-2008
tempdb
paulbarbin
источник
источник
Ответы:
Следите за высокой активностью снова; когда вы увидите его, запустите трассировку на стороне сервера или, если необходимо, кратко воспользуйтесь Profiler, чтобы увидеть, что происходит.
В качестве альтернативы используйте перехватчик пакетов, например Wireshark, для захвата необработанной проводной активности.
Проверьте dm_exec_cached_plans, чтобы увидеть, дает ли это какое-либо представление о том, что происходит.
Посмотрите dm_io_virtual_file_stats, чтобы увидеть, какие файлы, в частности, если таковые имеются, подвергаются ударам .
источник