成批处理

来源:互联网 发布:怎么查看淘宝注册时间 编辑:程序博客网 时间:2024/05/16 06:08

成批处理

  新增信息 - SQL Server 2000 SP3。

批处理是客户端作为一个单元发出的一个或多个 SQL 语句的集合。每个批处理编译为一个执行计划。如果批处理包含多个 SQL 语句,则执行所有语句所需的全部优化步骤将生成一个单一的执行计划。

有几种指定批处理的方法:

  • 应用程序作为一个执行单元发出的所有 SQL 语句构成一个批处理,并生成单个执行计划。有关应用程序如何指定批处理的更多信息,请参见批处理。

  • 存储过程或触发器内的所有语句构成一个批处理。每个存储过程或触发器都编译为一个执行计划。

  • 由 EXECUTE 语句执行的字符串是一个批处理,并编译为一个执行计划。

  • sp_executesql 系统存储过程执行的字符串是一个批处理,并编译为一个执行计划。

如果应用程序发出的批处理中包含 EXECUTE 语句,已执行字符串或存储过程的执行计划将与包含 EXECUTE 语句的执行计划分开执行。为 sp_executesql 存储过程所执行的字符串生成的执行计划也与包含 sp_executesql 调用的批处理的执行计划分开执行。如果批处理中的语句激发了触发器,触发器执行计划将与原始的批处理分开执行。

例如,一个包含以下四个语句的批处理使用五个执行计划:

  • 执行存储过程的 EXECUTE 语句。

  • 执行字符串的 sp_executesql 调用。

  • 执行字符串的 EXECUTE 语句。

  • 引用包含更新触发器的表的 UPDATE 语句。

安全说明  动态生成特定类型的字符串可能会暴露一些安全漏洞。请对下列字符串进行检查:包含作为批处理执行的 Transact-SQL 语句的字符串、通过 EXECUTE 语句执行的字符串或通过 sp_executesql 存储过程执行的字符串。如果应用程序要将最终用户键入的值串联到上述字符串中,则在执行字符串之前,应用程序必须首先验证用户提供的值。有关更多信息,请参见验证用户输入。

原创粉丝点击