powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_trace_ и хранимые процедуры
2 сообщений из 2, страница 1 из 1
sp_trace_ и хранимые процедуры
    #39889320
Win-Win.Sys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, знатоки.

Продолжаю бороться за оптимизацию своего кода.
Недавно попробовал использовать трассировку

Код: 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.
DECLARE @id INT

EXEC sys.sp_trace_create @id OUTPUT, 2, N'c:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\Log\MyTrace'

-- RPC:Completed
EXEC sys.sp_trace_setevent @id, 10, 1, 1
EXEC sys.sp_trace_setevent @id, 10, 10, 1
EXEC sys.sp_trace_setevent @id, 10, 6, 1
EXEC sys.sp_trace_setevent @id, 10, 11, 1
EXEC sys.sp_trace_setevent @id, 10, 12, 1
EXEC sys.sp_trace_setevent @id, 10, 13, 1
EXEC sys.sp_trace_setevent @id, 10, 14, 1
EXEC sys.sp_trace_setevent @id, 10, 15, 1
EXEC sys.sp_trace_setevent @id, 10, 16, 1
EXEC sys.sp_trace_setevent @id, 10, 17, 1
EXEC sys.sp_trace_setevent @id, 10, 18, 1
EXEC sys.sp_trace_setevent @id, 10, 48, 1

-- SQL:BatchCompleted
EXEC sys.sp_trace_setevent @id, 12, 1, 1
EXEC sys.sp_trace_setevent @id, 12, 11, 1
EXEC sys.sp_trace_setevent @id, 12, 6, 1
EXEC sys.sp_trace_setevent @id, 12, 10, 1
EXEC sys.sp_trace_setevent @id, 12, 12, 1
EXEC sys.sp_trace_setevent @id, 12, 13, 1
EXEC sys.sp_trace_setevent @id, 12, 14, 1
EXEC sys.sp_trace_setevent @id, 12, 15, 1
EXEC sys.sp_trace_setevent @id, 12, 16, 1
EXEC sys.sp_trace_setevent @id, 12, 17, 1
EXEC sys.sp_trace_setevent @id, 12, 18, 1
EXEC sys.sp_trace_setevent @id, 12, 35, 1
EXEC sys.sp_trace_setevent @id, 12, 48, 1

/*Устанавливаем трассировку по значению поля DatabaseName*/
EXEC sys.sp_trace_setfilter @id, 35, 0, 0, N'ServiceBroker_MY'
EXEC sys.sp_trace_setfilter @id, 35, 1, 0, N'R_Main'

EXEC sys.sp_trace_setstatus @id, 1 -- start



После запуска трассировки я запускаю на выполнение хранимую процедуру
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
USE [R_Main]
GO

DECLARE @RC int

-- TODO: Set parameter values here.

EXECUTE @RC = [dbo].[sp_Execute] 
GO



Далее жду окончания работы процедуры и запускаю скрипт, который показывает результаты трассировки.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT SPID
	 , DatabaseName
     , TextData
     , ApplicationName
     , CPU
     , Duration = Duration / 1000.
     , Reads
     , Writes
     , EndTime
FROM (
    SELECT TOP(1) [path]
    FROM sys.traces
    WHERE [path] LIKE N'c:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\Log\MyTrace%'
) t
CROSS APPLY sys.fn_trace_gettable(t.[path], DEFAULT)



В результате выполнения скрипта, я вижу только лишь вызов процедуры и значения CPU, Duration, Reads, Writes для всей процедуры целиком.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
USE [R_Main]
GO

DECLARE @RC int

-- TODO: Set parameter values here.

EXECUTE @RC = [dbo].[sp_Execute] 
GO



А как же SELECT-ы, UPDATE-ы и т.д., из самой хранимой процедуры [dbo].[sp_Execute]?

Как можно вывести в трассу все операторы из которых состоит хранимая процедура [dbo].[sp_Execute]

Подскажите, пожалуйста.

P.S. Так же в SSMS запустил такой скрипт:
Код: sql
1.
2.
3.
4.
5.
select top 1000 from Games

select top 1000 from Players

select top 1000 from Ratings



В итоге в трассе вижу не 3 строки для каждого SELECT, а одна строка с тремя SELECT и общими значениями CPU, Duration, Reads, Writes для всех трех SELECT

Спасибо.
...
Рейтинг: 0 / 0
sp_trace_ и хранимые процедуры
    #39889326
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Win-Win.Sys
А как же SELECT-ы, UPDATE-ы и т.д., из самой хранимой процедуры [dbo].[sp_Execute]?
Так вы же заказали собирать RPC:Completed и SQL:BatchCompleted.
Это то, что посылается клиентом серверу.
Что бы получать события изнутри процедур и батчей, нужно добавить SP:StmtCompleted и SQL:StmtCompleted
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_trace_ и хранимые процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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