Не удается увидеть процедуру в профилировщике SQL (событие RPC:Complited)

Я вызываю хранимую процедуру Get_Units из приложения С#. Он выполняется успешно, но я не вижу эту процедуру в профилировщике SQL (нужно видеть ее с событием RCP:Complited, потому что мне нужна статистика чтения/записи)

Код C# для выполнения хранимых процедур:

    public string ExecSpReturnTime(string connectionString, string code)
    {
        long execTime = 0;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.StatisticsEnabled = true;
            connection.Open();
            using (SqlCommand command = new SqlCommand(code, connection))
            {
                command.ExecuteNonQuery();
            }
            var stats = connection.RetrieveStatistics();
            execTime = (long)stats["ExecutionTime"];
        }
        return execTime.ToString();
    }

Что показывает SQL Server Profiler (фильтры столбцов не применяются):

введите здесь описание изображения

Спасибо за ваше время!


person Andrey    schedule 15.02.2019    source источник
comment
Оно будет отображаться как событие RPC:Completed только в том случае, если оно фактически выдано как вызов RPC. Приведенный выше код не устанавливает CommandType в CommandType.StoredProcedure, поэтому он будет отображаться только как обычный пакет SQL (SQL:BatchCompleted).   -  person Jeroen Mostert    schedule 15.02.2019
comment
Ваш код сгенерирует событие Batch:Completed. RPC будет выдан, только если вы установите тип команды как хранимую процедуру или добавите параметры в команду.   -  person Dan Guzman    schedule 15.02.2019


Ответы (1)


Я установил для CommandType значение StoredProcedure, и теперь профилировщик SQL показывает мою процедуру! Большое спасибо, Йерун Мостерт.

person Andrey    schedule 15.02.2019