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

емнип только если их отдельно запустить
...
Рейтинг: 0 / 0
26.02.2020, 12:29
    #39931019
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вывести Живой План для конкретного запроса
Если есть возможность менять запрос используйте query_plan_profile
...
Рейтинг: 0 / 0
26.02.2020, 12:35
    #39931024
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вывести Живой План для конкретного запроса
sys.dm_exec_query_statistics_xml
...
Рейтинг: 0 / 0
26.02.2020, 13:23
    #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
26.02.2020, 13:56
    #39931068
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вывести Живой План для конкретного запроса
Alexander Us,

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


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