Answers:
好吧,我想您主要是在谈论Profiler类,但是无论如何,解释还是成立的。
SQL批处理是一组一个或多个语句的集合,这些语句组合在一起并由GO语句分隔。EG:如果更多的SELECT和INSERT语句末尾有GO,则它们将组成一个批处理。
RPC调用是从客户端应用程序到数据库的调用。EG:一个Windows服务,一个Web应用程序,一个Windows应用程序,无论需要与数据库的连接什么,实际上都会进行RPC调用。
现在,在Profiler中,您将看到与数据库服务器相关的所有内容。来自Management Studio的批处理,来自外部应用程序的RPC调用(可以是批处理或存储过程调用),来自Management Studio的过程执行。
它们每个都是由TSQL语句组成的,因此,如果您想进一步扩展执行以查看实际执行的内容,则此Profiler类很有用。插入,选择..等等
在Profiler中查看它们的最简单方法是仅启用End RPC调用或End batch调用,您将在此处看到所需的所有统计信息(持续时间,IO,CPU)。然后,通过启用TSQL Statements类进一步进行深入研究。
批处理与T-SQL语句
这是在SQL Server BOL明确规定这里
批处理是一组从一个应用程序同时发送到SQL Server以便执行的一个或多个Transact-SQL语句。 Go是大多数客户端应用程序(包括SSMS)中使用的批处理分隔符。
SQL Server将批处理的语句编译为单个可执行单元,称为执行计划。然后,一次执行计划中的语句。
简单来说,RPC是指您使用客户端API执行存储的proc(例如,在ADO.net CommandObject中。Execute方法)
更详细的解释在互联网新闻组的一个发现这里:
RPC”与“批处理”是ADO.NET(或任何SQL Server客户端)使用的TDS执行模式。当执行不带参数的普通SQL语句时,我们使用“批处理”。当执行存储过程时,我们使用RPC(这与RPC作为独立的网络远程过程调用不同,我们只是碰巧在TDS(SQL Server网络协议)中调用此模式RPC)。此外,如果您使用参数执行批处理,我们实际上使用了一个名为sp_executesql的存储过程,并将SQL语句本身和其余参数传递给它,因此它也显示为RPC。
Pablo Castro
程序经理-ADO.NET团队
Microsoft Corp.
GO
是我们使用的流行客户端(即SSMS和sqlcmd)的可接受且默认的批处理终止符,但值得注意的是,GO
作为批处理终止符的实际字符串易于更改并且可以配置。