WEB开发网
开发学院数据库MSSQL Server 使用 SQL Server 2005 中的 SQLCLR 处理 XML Show... 阅读

使用 SQL Server 2005 中的 SQLCLR 处理 XML Showplan

 2007-05-13 09:24:45 来源:WEB开发网   
核心提示: -- @shplan will contain the showplan in XMLformatDECLARE @shplan nvarchar(max)-- @query will contain the query whose cost is to be estimatedDECLA
-- @shplan will contain the showplan in XMLformat
DECLARE @shplan nvarchar(max)
-- @query will contain the query whose cost is to be estimated
DECLARE @query nvarchar(max)
-- set this to your query
set @query = N'select * from person.address'
EXECdbo.ReturnXMLShowplan @query, @shplan OUTPUT
DECLARE @querycost float
DECLARE @threshold float
set @threshold = 0.5
-- extract query cost using XQuery
select @querycost = cast(@shplan as xml).value 
('declare namespace p="http://schemas.microsoft.com/sqlserver/2004/07/showplan";
 (//p:RelOp)[1]/@EstimatedTotalSubtreeCost', 'float')
select @querycost
if ( @querycost <= @threshold ) -- if the cost is within limit, 
EXEC(@query)      -- execute the query; else don't
go

如果该查询包含错误,则将返回 XML 块 text of the exception 而不是 showplan。您可能希望修改附录 B 中该代码的异常处理部分,以更好地满足您的需要。

5.

通过 OUTPUT 参数 @shplan 将 showplan 以 XML 格式返回到客户端。然后,客户端将 showplan 和从 showplan 提取的估计执行成本的 XQuery 表达式发送到 SQL Server。

6.

服务器通过以变量 @querycost 形式返回该查询成本做出响应。

7.

如果成本低于阈值,则客户端会将该查询发送给该服务器来执行。

上一页  2 3 4 5 6 7 8 9  下一页

Tags:使用 SQL Server

编辑录入:coldstar [复制链接] [打 印]
赞助商链接