• 相关软件
    >SET FORCEPLAN 创建者:webmaster 更新时间:2006-02-16 15:51

    使 Microsoft® SQL Server™ 查询优化器以与 SELECT 语句的 FROM 子句中表出现的相同顺序来处理联接。



    语法


    SET FORCEPLAN { ON | OFF }



    注释


    SET FORCEPLAN 从本质上替代查询优化器处理 Transact-SQL SELECT 语句所使用的逻辑。SELECT 语句返回的数据同样与该设置无关。唯一的差别是 SQL Server 为满足查询对表进行处理的方式。



    在查询中也可以使用查询优化器提示影响 SQL Server 处理 SELECT 语句的方式。



    SET FORCEPLAN 的设置是在执行或运行时设置,而不是在分析时设置。



    权限


    SET FORCEPLAN 权限默认授予所有用户。



    示例


    下例在三个表之间执行联接。由于启用了 SHOWPLAN_TEXT 设置,所以 SQL Server 返回有关在启用 SET FORCE_PLAN 设置后如何以不同的方式处理查询的信息。



    -- SET SHOWPLAN_TEXT to ON.
    SET SHOWPLAN_TEXT ON
    GO
    USE pubs
    GO
    -- Inner join.
    SELECT a.au_lname, a.au_fname, t.title
    FROM authors a INNER JOIN titleauthor ta
      ON a.au_id = ta.au_id INNER JOIN titles t
      ON ta.title_id = t.title_id
    GO
    -- SET FORCEPLAN to ON.
    SET FORCEPLAN ON
    GO
    -- Reexecute inner join to see the effect of SET FORCEPLAN ON.
    SELECT a.au_lname, a.au_fname, t.title
    FROM authors a INNER JOIN titleauthor ta
      ON a.au_id = ta.au_id INNER JOIN titles t
      ON ta.title_id = t.title_id
    GO
    SET SHOWPLAN_TEXT OFF
    GO
    SET FORCEPLAN OFF
    GO
    相关文章
    本页查看次数: