gpt4 book ai didi

SQL Server通过 View 查询和通过基表查询得到不同的执行计划

转载 作者:行者123 更新时间:2023-12-04 20:38:51 26 4
gpt4 key购买 nike

我有一个 View ,它基本上是连接一些表,并且 View 上没有索引。当我查询 View (与另一个表连接)时,性能很差,大约需要 10 分钟。当我从 View 中提取基表并与“另一个表”连接时,大约需要 20 秒。使用 View 或使用基表的逻辑完全相同。我检查了,他们确实得到了不同的执行计划。知道为什么会发生这种情况吗?

谢谢。

最佳答案

SQL Server 可能正在使用缓存的执行计划(基于您第一次从 View 中选择某些内容。该表的大小可能已经增长并且不再使用最有效的计划,因此性能下降)。

您可以使用以下方式刷新 View :

sp_refreshview [@viewname = ] 'viewname'

或者完全重建 View 并再次运行它以生成新的执行计划,但是您稍后可能会遇到同样的性能问题。本文更详细地描述了可能发生的情况:

http://www.sql-server-performance.com/2007/views-general/

http://technet.microsoft.com/en-us/library/ms187821.aspx

关于SQL Server通过 View 查询和通过基表查询得到不同的执行计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com