MS SQL - 针对不同模式的不同执行计划?

时间:2013-04-02 14:21:32

标签: sql-server-2008

MS SQL SERVER 2008

  • 我们有一个具有相同参数的存储过程。
  • 我们有两个帐户使用不同的架构。

我们对这两个帐户有不同的执行计划。

通常执行计划应该相同,但在我们的情况下则不是。

什么会导致这种行为?

感谢。

2 个答案:

答案 0 :(得分:1)

我终于找到了问题所在:

我运行了来自不同用户帐户的部分代码,这些用户帐户有SET LANGUAGE个不同的选项。

关于它的好文章:http://allcomputers.us/windows_server/microsoft-sql-server-2008-r2---query-plan-caching-(part-1)---query-plan-reuse---query-plan-aging.aspx

答案 1 :(得分:0)

评论会删除格式,因此我发布代码以检查SET选项:

SELECT  
    SESSIONPROPERTY('ANSI_PADDING') AS [ANSI_PADDING]
    ,SESSIONPROPERTY('FORCEPLAN') AS [FORCEPLAN]
    ,SESSIONPROPERTY('CONCAT_NULL_YIELDS_NULL') AS [CONCAT_NULL_YIELDS_NULL]
    ,SESSIONPROPERTY('ANSI_WARNINGS') AS [ANSI_WARNINGS]
    ,SESSIONPROPERTY('ANSI_NULLS') AS [ANSI_NULLS]
    ,SESSIONPROPERTY('QUOTED_IDENTIFIER') AS [QUOTED_IDENTIFIER]
    ,SESSIONPROPERTY('ANSI_NULL_DFLT_ON') AS [ANSI_NULL_DFLT_ON]
    ,SESSIONPROPERTY('ANSI_NULL_DFLT_OFF') AS [ANSI_NULL_DFLT_OFF]
    ,SESSIONPROPERTY('DATEFORMAT') AS [DATEFORMAT]
    ,SESSIONPROPERTY('LANGUAGE') AS [LANGUAGE]