Sql server 在SQL Server 2017中反转查询提示

Sql server 在SQL Server 2017中反转查询提示,sql-server,Sql Server,我使用的是SQL Server 2017,我试图优化一个运行缓慢的查询。在浏览一些博客时,我遇到了查询提示,并使用了以下提示: option(use hint('DISABLE_OPTIMIZED_NESTED_LOOP'), maxdop 1); 不幸的是,现在查询运行得更慢了,我不知道如何逆转这个提示的效果 我的问题是: 1-此提示是否也会影响其他用户及其查询 2-如何将查询优化器恢复到其默认设置?1-此提示是否也会影响其他用户及其查询 否 2-如何将查询优化器恢复为其默认设置 删除提示,

我使用的是SQL Server 2017,我试图优化一个运行缓慢的查询。在浏览一些博客时,我遇到了查询提示,并使用了以下提示:

option(use hint('DISABLE_OPTIMIZED_NESTED_LOOP'), maxdop 1);
不幸的是,现在查询运行得更慢了,我不知道如何逆转这个提示的效果

我的问题是:


1-此提示是否也会影响其他用户及其查询


2-如何将查询优化器恢复到其默认设置?

1-此提示是否也会影响其他用户及其查询

2-如何将查询优化器恢复为其默认设置


删除提示,如果执行计划仍然是相同的put选项(重新编译),或者如果您有一个存储过程运行sp\u重新编译“yoursp”1-此提示是否也会影响其他用户及其查询

2-如何将查询优化器恢复为其默认设置


删除提示,如果执行计划仍然是相同的看跌期权(重新编译),或者如果您有一个存储过程运行sp\u重新编译“yoursp”

只需删除添加到还原的提示即可。资源密集型查询(提示与否)可能会影响工作负载中的其他查询。我已将其删除,但查询的运行速度仍比以前慢(过去执行时间为10分钟,现在超过30分钟,即使没有提示)。查询优化器是被此提示永久更改,还是仅在执行时更改?我假设您没有使用查询存储来修复特定的计划。在这种情况下,一个新的查询计划在更改后编译时生成。新计划可能比原来的计划好,也可能比原来的计划差。查询是参数化的吗?将实际计划上载到,并将链接添加到您的问题,以帮助解决其性能问题。查询是存储过程的一部分吗?不,它只是一个查询只需删除添加到还原的提示。资源密集型查询(提示与否)可能会影响工作负载中的其他查询。我已将其删除,但查询的运行速度仍比以前慢(过去执行时间为10分钟,现在超过30分钟,即使没有提示)。查询优化器是被此提示永久更改,还是仅在执行时更改?我假设您没有使用查询存储来修复特定的计划。在这种情况下,一个新的查询计划在更改后编译时生成。新计划可能比原来的计划好,也可能比原来的计划差。查询是参数化的吗?将实际计划上载到,并将链接添加到您的问题,以帮助解决其性能问题。查询是存储过程的一部分吗?不,它只是一个QueryTanks Gabriele!只要保留在查询中,选项(重新编译)就可以正常工作。一旦删除它,就会返回糟糕的性能。这是因为它不会强制将新的查询计划放入缓存,因此在删除该选项时,将再次使用旧的“坏”查询计划。有没有办法从缓存中删除“错误”查询计划?您可能会遇到错误估计的问题。检查:缺少统计数据、统计数据过时、统计数据采样率差、参数嗅探行为。很好,更新表统计数据解决了问题,非常感谢:)谢谢Gabriele!只要保留在查询中,选项(重新编译)就可以正常工作。一旦删除它,就会返回糟糕的性能。这是因为它不会强制将新的查询计划放入缓存,因此在删除该选项时,将再次使用旧的“坏”查询计划。有没有办法从缓存中删除“错误”查询计划?您可能会遇到错误估计的问题。检查:缺少统计数据、统计数据过时、统计数据采样率差、参数嗅探行为。很好,更新表统计数据解决了问题,非常感谢:)