powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести Живой План для конкретного запроса
6 сообщений из 6, страница 1 из 1
Как вывести Живой План для конкретного запроса
    #39930893
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа,
если я запускаю в ssms длинную партянку запросов, но хочу посмотреть Живой План только для парочки запросов и не хочу для остальных ибо их много, как это можно сделать?
...
Рейтинг: 0 / 0
Как вывести Живой План для конкретного запроса
    #39930984
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

емнип только если их отдельно запустить
...
Рейтинг: 0 / 0
Как вывести Живой План для конкретного запроса
    #39931019
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть возможность менять запрос используйте query_plan_profile
...
Рейтинг: 0 / 0
Как вывести Живой План для конкретного запроса
    #39931024
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys.dm_exec_query_statistics_xml
...
Рейтинг: 0 / 0
Как вывести Живой План для конкретного запроса
    #39931053
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

а может выполнять в цикле следующий запрос пока в колонке "statement_text" не появится запрос, который надо исследовать.
План в колонке "query_plan"



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
	SELECT 	
	 req.command type
	,(select top 1 net_transport from sys.dm_exec_connections con with(nolock) where req.session_id=con.session_id) transport
	,(select top 1 protocol_type from sys.dm_exec_connections con with(nolock) where req.session_id=con.session_id) protocol_type	
	, case when sqltext.text like 'FETCH%' then curtext.text else sqltext.text end as command_text			
	, SUBSTRING(sqltext.text, (req.statement_start_offset/2)+1, 
        ((CASE req.statement_end_offset
          WHEN -1 THEN DATALENGTH(sqltext.text)
         ELSE req.statement_end_offset
         END - req.statement_start_offset)/2) + 1) AS statement_text
    ,req.percent_complete
	,db_name(req.database_id) db_name
	,req.session_id as s_id
	,req.blocking_session_id as bls_id
	,req.status as req_status
	,req.cpu_time req_cpu_time_ms
	,ses.cpu_time ses_cpu_time_ms
	,cast(case when req.start_time<DATEADD(ms,-2147483647, GETDATE()) then NULL else  datediff(ms,req.start_time, getdate()) / 1000.0 end as decimal(14,4)) elapsed_sec	
	,ses.original_login_name
	,ses.host_name
	,ses.program_name
	,ses.host_process_id
	,ses.client_interface_name
	,ses.memory_usage
	,ses.reads
	,ses.writes
	,ses.logical_reads
	,ses.row_count		
	,p.query_plan
	FROM 
		        sys.dm_exec_requests req with(nolock)	
	INNER JOIN  sys.dm_exec_sessions ses with(nolock) on req.session_id=ses.session_id
	OUTER APPLY sys.dm_exec_cursors(req.session_id) cur 
	OUTER APPLY sys.dm_exec_sql_text(cur.sql_handle)  AS curtext 	 
	CROSS APPLY sys.dm_exec_sql_text(req.sql_handle)  AS sqltext 	
	OUTER APPLY	sys.dm_exec_query_plan(req.plan_handle) AS p 	
	where 1=1    
	and req.session_id <> @@SPID
	order by 
	elapsed_sec desc
	


...
Рейтинг: 0 / 0
Как вывести Живой План для конкретного запроса
    #39931068
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

это же оценочный план,
воронин не его хочет
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести Живой План для конкретного запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]