一、简介
在 SQL Server 2012 中,计划执行存储过程(PESP)允许开发人员在执行期间指定查询计划,从而提高查询性能和可预测性。PESP 对于优化复杂或具有不稳定计划的查询特别有用。
二、创建 PESP
要创建 PESP,请使用以下语法:
CREATE PROCEDURE 存储过程名称
AS
BEGIN
-- 查询计划
SET SHOWPLAN_XML ON;
SELECT * FROM 表名称;
SET SHOWPLAN_XML OFF;
END
GO
替换“存储过程名称”和“表名称”为实际值。此存储过程将执行指定查询并生成执行计划。
三、实用示例
考虑以下查询:
SELECT * FROM Customers
WHERE Last_Name = 'Smith'
此查询可能会有一个不稳定的计划,具体取决于数据库中的数据。通过创建一个 PESP,我们可以指定一个优化后的计划:
CREATE PROCEDURE GetCustomersByName
AS
BEGIN
-- 计划XML
SET SHOWPLAN_XML ON;
SELECT * FROM Customers
WHERE Last_Name = 'Smith'
SET SHOWPLAN_XML OFF;
END
GO
现在,每次执行“GetCustomersByName”存储过程时,指定的计划都将用于查询,从而提高性能。
四、管理 PESP
PESP 可以使用以下语句进行管理:
* **查看 PESP:**
SELECT * FROM sys.dm_exec_cached_plans
WHERE object_id = OBJECT_ID('存储过程名称')
* **删除 PESP:**
EXEC sys.sp_executesql N'sp_recompile @objname = N'存储过程名称''
五、优势
使用 PESP 具有以下优势:
* 提高查询性能
* 保证计划可预测性
* 简化查询优化
* 减少资源消耗(通过防止不稳定的计划)
六、
SQL Server 2012 中的计划执行存储过程是一个有用的工具,可用于优化复杂查询并提高性能。通过指定一个特定的执行计划,开发人员可以保证查询的可重复性和可靠性。