使用示例:
以下二个存储过程创造和处理计划指南
sp_create_plan_guide
sp_control_plan_guide
|
1.sp_create_plan_guide
创建用于将查询提示与数据库中的查询进行关联的计划指南
语法:
sp_create_plan_guide [ @name = ] N'plan_guide_name'
, [ @stmt = ] N'statement_text'
, [ @type = ] N'{ OBJECT | SQL | TEMPLATE }'
, [ @module_or_batch = ]
{
N'[ schema_name. ] object_name'
| N'batch_text'
| NULL
}
, [ @params = ] { N'@parameter_name data_type
[ ,...n ]' | NULL }
, [ @hints = ] { N'OPTION ( query_hint [ ,...n ] )'
| NULL }
|
示例
sp_create_plan_guide
@name = N'PlanGuideTest',
@stmt = N'SELECT COUNT(*) AS Total
FROM Sales.SalesOrderHeader h, Sales.SalesOrderDetail d
WHERE h.SalesOrderID = d.SalesOrderID and h.OrderDate
BETWEEN ''1/1/2000'' AND ''1/1/2005'' ',
@type = N'SQL',
@module_or_batch = NULL,
@params = NULL,
@hints = N'OPTION (MERGE JOIN)'
GO
|
代码的运作原理
指定计划指南的名称为 PlanGuide1
@stmt = N'SELECT COUNT(*) AS Total FROM Sales.
SalesOrderHeader h, Sales.SalesOrderDetail d WHERE
h.SalesOrderID = d.SalesOrderID and h.OrderDate
BETWEEN "1/1/2000" AND "1/1/2005" '
|
这段代码是询问优化器应该匹配的代码。 无论应用程序何时向服务器发送这段代码,询问优化器设法匹配代码。当发现代码和上面列出的匹配时,查询优化器在内部查询表(loolup table)中查找正确的计划指南,并运用计划指南
说明计划指南的类型,这是一个 SQL 计划指南
<<上一页
1
2
3
下一页>>
|