|
|
1
14
但随着时间的推移,随着数据的更改/增长或索引的更改等,您的连接提示将变得过时,并阻止优化计划。连接提示只能在使用您拥有的数据集进行开发时针对单个查询进行优化。
我通常通过改变查询、添加/更改索引或将其分解(例如先加载临时表)来解决错误的连接。或者我的查询是错误的,或者我有一个隐式的数据类型转换,或者它突出了我的模式中的一个缺陷等等。 我见过其他开发人员使用它们,但只在它们将复杂视图嵌套在复杂视图上的情况下使用,并且它们在以后重构时会导致问题。 编辑:
|
|
|
2
3
关于哈希联接何时有效的一些基本规则是联接条件不作为表索引存在以及表大小不同。如果您正在寻找技术描述,那么有一些关于散列联接如何工作的好描述。 为什么要使用任何连接提示(具有强制顺序副作用的哈希/合并/循环)?
提供的提示在某些情况下可能并不理想,但提供了更一致的可预测运行时。使用提示时,应预先测试预期的最坏情况和最佳情况。可预测的运行时对于web服务至关重要,例如,在web服务中,严格优化的标称[.3s、.6s]查询优于范围为[.25、10.0s]的查询。新更新的统计数据和遵循的最佳实践可能会导致运行时出现较大差异。 post ...
最后一个选项可能与选项(重新编译)提示相同。
|
|
|
3
2
|
|
4
1
我知道,重载列是不好的。有时候,你必须接受它。 |
|
|
5
0
逻辑计划优化工具不能向您保证它能找到最佳解决方案:精确的算法太慢,无法在生产服务器中使用;取而代之的是一些贪婪算法。 因此,这些命令背后的基本原理是让用户指定最佳连接策略,以防optimizator无法确定什么才是最适合采用的。 |