Ответы:
Ну, я полагаю, вы говорите в основном о классах Profiler, но объяснение в любом случае остается в силе.
Пакет SQL - это набор из одного или нескольких операторов, сгруппированных и разделенных оператором GO. Например: дополнительные операторы SELECT и INSERT образуют пакет, если в конце у них есть GO.
Вызов RPC - это вызов, поступающий из клиентского приложения в базу данных. Например: служба Windows, веб-приложение, приложение Windows, все, что требует подключения к базе данных, фактически вызывает RPC.
Теперь в Profiler вы увидите все, что касается сервера базы данных. Пакет из Management Studio, вызов RPC (который является либо пакетом, либо вызовом хранимой процедуры) из внешнего приложения, выполнение процедуры из Management Studio.
Каждый из них состоит из операторов TSQL, поэтому этот класс Profiler полезен на случай, если вы захотите еще больше расширить выполнение, чтобы увидеть, что на самом деле выполняется. Что вставляет, выбирает .. и т.д.
Самый простой способ просмотреть их в Profiler - это включить только вызов End RPC или End batch, и вы увидите там всю необходимую статистику (длительность, IO, CPU). Затем двигайтесь дальше, включив класс операторов TSQL, и копайте глубже.
Пакетная инструкция против T-SQL
Это четко определено в SQL Server BOL здесь
Пакет представляет собой группу из одного или нескольких операторов Transact-SQL, одновременно отправляемых из приложения на SQL Server для выполнения. Go - это пакетный разделитель, используемый в большинстве клиентских приложений, включая SSMS.
SQL Server компилирует операторы пакета в один исполняемый модуль, называемый планом выполнения. Операторы в плане выполнения затем выполняются по одному.
Простым термином, основанным на моем понимании, является RPC, когда вы выполняете сохраненный процесс с помощью клиентского API (например, в ADO.net CommandObject. Метод Execute)
Более подробное объяснение можно найти в одной из публикаций интернет-группы здесь :
RPC "vs" batch "- это режим выполнения TDS, который используется ADO.NET (или любым клиентом SQL Server). Когда выполняется простой оператор SQL без параметров, мы используем" batch ". Когда выполняется хранимый процесс, мы используем RPC (это не то же самое, что RPC как вызов удаленной сетевой процедуры, мы просто вызываем этот режим RPC в TDS (сетевой протокол SQL Server)). Кроме того, если вы выполняете пакет с параметром, на самом деле мы используем хранимый процесс с именем sp_executesql и передаем ему сам оператор SQL и остальные параметры, чтобы он также отображался как RPC.
Пабло Кастро,
руководитель программы - команда ADO.NET,
корпорация Майкрософт
GO
является ли принятый и используемый по умолчанию пакетный терминатор популярных клиентов, которые мы используем (т. Е. SSMS и sqlcmd), но стоит отметить, что фактическаяGO
строка в качестве пакетного терминатора может изменяться и настраиваться.