Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server在stmtcompleted和direct query之间的不同持续时间_Sql Server_Axapta_Microsoft Dynamics - Fatal编程技术网

Sql server SQL Server在stmtcompleted和direct query之间的不同持续时间

Sql server SQL Server在stmtcompleted和direct query之间的不同持续时间,sql-server,axapta,microsoft-dynamics,Sql Server,Axapta,Microsoft Dynamics,然后,我在我的应用程序中有一个查询: 如您所见,查询读取表中的所有寄存器,结果对时间持续时间有很大影响 但是当我尝试直接执行查询时,结果是另一个。。。怎么了 您从SSMS执行了另一个查询 探查器中显示的查询是存储过程的一部分,有8个参数。 您所执行的是一个带有常数的查询,它有另一个执行计划,因为所有常数都是已知的,并且在这些已知值的基础上进行了估计 执行sp语句时,计划是为天知道的嗅探参数创建的,此计划与SSMS中的计划不同 从SSMS中箭头的粗细可以清楚地看出,您的查询不执行7.954.44

然后,我在我的应用程序中有一个查询:

如您所见,查询读取表中的所有寄存器,结果对时间持续时间有很大影响

但是当我尝试直接执行查询时,结果是另一个。。。怎么了


您从SSMS执行了另一个查询

探查器中显示的查询是存储过程的一部分,有8个参数。 您所执行的是一个带有常数的查询,它有另一个执行计划,因为所有常数都是已知的,并且在这些已知值的基础上进行了估计

执行sp语句时,计划是为天知道的嗅探参数创建的,此计划与SSMS中的计划不同

从SSMS中箭头的粗细可以清楚地看出,您的查询不执行7.954.449读取


如果要在探查器中查看实际执行计划,应选择相应的事件(Showplan XML Statistics Profile)。

您从SSMS执行了另一个查询

探查器中显示的查询是存储过程的一部分,有8个参数。 您所执行的是一个带有常数的查询,它有另一个执行计划,因为所有常数都是已知的,并且在这些已知值的基础上进行了估计

执行sp语句时,计划是为天知道的嗅探参数创建的,此计划与SSMS中的计划不同

从SSMS中箭头的粗细可以清楚地看出,您的查询不执行7.954.449读取


如果要在探查器中查看实际执行计划,应选择相应的事件(Showplan XML Statistics Profile)。

是的,有两种不同的查询。Axapta共同使用占位符。您的查询使用文本常量

查询中的
forceLiterals
提示使Axapta查询与SSMS示例类似。默认的Axapta提示是
forceplaceholder

占位符的主要目标是优化来自多个客户端的具有不同常量的大量类似查询流。主要是由于使用了查询计划缓存


另请参见forceLiterals的注入警告:
是的,有两种不同的查询。Axapta共同使用占位符。您的查询使用文本常量

查询中的
forceLiterals
提示使Axapta查询与SSMS示例类似。默认的Axapta提示是
forceplaceholder

占位符的主要目标是优化来自多个客户端的具有不同常量的大量类似查询流。主要是由于使用了查询计划缓存


另请参见forceLiterals的注入警告:

您是在执行第二个示例中的查询,还是只是检查解释计划?它可能被使用INVENTSUM的其他进程阻止。将BlockedProcessReport添加到跟踪中,并将阻塞的进程阈值临时配置为1秒,然后在完成调查后将其恢复为原始值。尝试在SSMS中打开查询中的统计信息,并查看读取次数和CPU时间与跟踪的比较情况。您可以先在查询窗口中尝试运行此操作:打开设置统计信息时间。在此之后,运行查询,您将在消息选项卡中看到经过的时间。您是执行第二个示例中的查询,还是只是检查解释计划?它可能被使用INVENTSUM的其他进程阻止。将BlockedProcessReport添加到跟踪中,并将阻塞的进程阈值临时配置为1秒,然后在完成调查后将其恢复为原始值。尝试在SSMS中打开查询中的统计信息,并查看读取次数和CPU时间与跟踪的比较情况。您可以先在查询窗口中尝试运行此操作:打开设置统计信息时间。然后运行查询,您将在Messages选项卡中看到经过的时间。