我有一个具有复杂逻辑和三个深度级别(嵌套视图)的视图。由于复杂,我无法粘贴执行计划。
由于视图的目的是向数据分析师提供一些业务分析,而他们正在开发报告时,他们会通过执行选择(前 N 个)查询来检查视图样本。
视图中的这个(前 N 个)查询执行得非常糟糕,因为优化器正在为此视图选择不同的执行计划(afaik CQScanTopSortNew)
我尝试对顶部 (N) 用例进行一些优化,例如使用哈希连接,但这会破坏非顶部 (n) 用例。
非顶级 (n) 表现良好。我想知道如何防止优化器在具有 top (n) 子句时选择不同的执行计划,而不会显着改变视图的结构或功能。
例如,如果我在视图中添加一个 select distinct ,优化器总是会选择正确的计划,但视图的功能会发生变化。
sql-server execution-plan sql-server-2016 performance-tuning
我对oracle表空间的使用有疑问。我决定为数据库的每个模式定义两个不同的表空间(一个用于数据,另一个用于索引)。
问题是一段时间过去了,我的开发人员混合了在数据表空间中创建索引和在索引表空间中创建表和分区的表空间。
我想知道这会如何影响性能。
提前致谢