相关疑难解决方法(0)

查询存储中强制计划的奇怪行为

我在查询存储中强制执行计划。计划与每天运行一次的作业中的过程相关联。这项工作的步骤之一就是:

EXEC [schema].[LoadData]
Run Code Online (Sandbox Code Playgroud)

过程 [schema].[LoadData] 看起来像

TRUNCATE TABLE [schema].[Data];
     
    INSERT INTO [schema].[Data]
           ([A1],
           [A2],
          .
          .
          .,
          [A49]
    )                
    SELECT *
        ,CURRENT_TIMESTAMP AS [Insert TimeStamp] 
    FROM [schema].[View]   
Run Code Online (Sandbox Code Playgroud)

其中 view 是包含一些 CTE 并使用同义词的视图(连接到来自不同数据库的表)。

在查询存储中执行如下所示: 在此输入图像描述

为了测试强制计划是否有效,我按照以下步骤操作:

  1. 在 SSMS 中运行查询 ->EXEC [schema].[LoadData]
  2. 上面的执行被视为不同的查询,因此在查询存储中没有看到任何新的查询 = 7
  3. DBA 仅使用运行查询的步骤创建一个新作业 ->EXEC [schema].[LoadData]
  4. 运行上述新创建的作业导致计划 ID = 29800

问题为什么执行计划没有被强制?在“强制计划失败计数”列中为 0。

sql-server query-store

2
推荐指数
1
解决办法
420
查看次数

标签 统计

query-store ×1

sql-server ×1