У двух пакетов с одинаковыми запросами одинаковый дескриптор sql, хотя они выполняются через отдельные соединения JDBC? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть Java-программа с несколькими потоками, каждый из которых выполняет одни и те же параметризованные SQL-запросы через соединения JDBC.Каждый поток имеет свое собственное соединение JDBC.Я хочу получить данные о производительности последнего выполненного запроса потоком (для каждого потока отдельно) из sys.dm_exec_query_stats.Литература говорит, что атрибут sql_handle «уникально идентифицирует пакет, который выполнил или выполняет в настоящее время».Ограничено ли соединение, из которого я получаю данные о производительности?Является ли sql_handle уникальным или одинаковым, если запросы имеют идентичный текст, хотя они выполняются через отдельные соединения JDBC?

Это мой запрос для получения данных о производительности:

SELECT TOP 1 deqs.last_elapsed_time AS [Elapsed Time],
             deqs.last_physical_reads AS [Physical Reads],
             deqs.last_logical_reads AS [Logical Reads],
             deqs.last_logical_writes AS [Logical Writes],
             deqs.last_worker_time AS [CPU Time] 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
WHERE dest.text not like '%sys.%' 
ORDER BY deqs.last_execution_time DESC
...