Respuestas:
Bueno, supongo que estás hablando principalmente de las clases de Profiler, pero la explicación se mantiene de todos modos.
Un lote SQL es un conjunto de una o más declaraciones agrupadas y separadas por una declaración GO. EG: más instrucciones SELECT e INSERT forman un lote si tienen un GO al final.
Una llamada RPC es una llamada que proviene de una aplicación cliente a la base de datos. Por ejemplo: un servicio de Windows, una aplicación web, una aplicación de Windows, cualquier cosa que necesite una conexión a la base de datos en realidad hace una llamada RPC.
Ahora, en Profiler verá todo lo que toca el servidor de la base de datos. Un lote de Management Studio, una llamada RPC (que es un lote o una llamada a procedimiento almacenado) desde una aplicación externa, una ejecución de procedimiento desde Management Studio.
Cada uno de ellos está formado por sentencias TSQL, por lo que esta clase Profiler es útil en caso de que desee expandir aún más la ejecución, para ver qué se ejecuta realmente. Lo que inserta, selecciona ... etc.
La forma más fácil de verlos en Profiler es habilitar solo Finalizar llamada RPC o Finalizar llamada por lotes y verá allí todas las estadísticas necesarias (duración, IO, CPU). Luego, avance más habilitando la clase de declaraciones TSQL y profundice.
Declaración Batch vs T-SQL
Esto está claramente definido en SQL Server BOL aquí
Un lote es un grupo de una o más instrucciones Transact-SQL enviadas al mismo tiempo desde una aplicación a SQL Server para su ejecución. Go es un separador de lotes utilizado en la mayoría de las aplicaciones cliente, incluido SSMS.
SQL Server compila las declaraciones de un lote en una sola unidad ejecutable, llamada plan de ejecución. Las declaraciones en el plan de ejecución se ejecutan una a la vez.
En un término simple basado en mi entendimiento, RPC es cuando ejecutas un proceso almacenado usando la API del cliente (por ejemplo, en ADO.net CommandObject. Método de ejecución)
Una explicación más detallada se encuentra en uno de los grupos de noticias de Internet que publican aquí :
RPC "vs" lote "es el modo de ejecución de TDS que utiliza ADO.NET (o cualquier cliente de SQL Server). Cuando se ejecuta una instrucción SQL simple sin parámetros, usamos un" lote ". Cuando se ejecuta un proceso almacenado, usamos RPC (esto no es lo mismo que RPC como la llamada a procedimiento remoto de red independiente, simplemente llamamos a este modo RPC en TDS (el protocolo de red de SQL Server)). Además, si ejecuta un lote con parámetro, en realidad utilizamos un proceso almacenado llamado sp_executesql, y le pasamos la instrucción SQL y el resto de los parámetros, por lo que también aparece como RPC.
Pablo Castro
Gerente de Programa - Equipo ADO.NET
Microsoft Corp.
GO
es el terminador de lotes aceptado y predeterminado de los clientes populares que usamos (es decir, SSMS y sqlcmd), pero vale la pena señalar que laGO
cadena real como terminador de lotes puede cambiar y es configurable.