0 sql-server optimization parallelism cardinality-estimates query-performance
UPDATE MARK M SET ARCHIVE_FLAG = 'N' WHERE EXISTS
(SELECT /*+ cardinality(S1, 10) parallel(S1,8)*/ 1 FROM SHFASG S, SHIFT S1
WHERE S.ID = S1.ID AND M.ID = S.MARKID AND ARCHIVE_FLAG <> 'Y');
Run Code Online (Sandbox Code Playgroud)
这是我拥有的 oracle 查询,我想为我的 MS SQL DB 创建类似的查询,请提供任何帮助
只需删除 SQL Server 的提示。
在cardinality和parallel提示,旨在帮助控制性能,当你“更好地了解”比DBMS -他们不以任何方式影响的结果。在运行查询之前,您无法知道是否会在 SQL Server 中获得可接受的性能。
不同的平台几乎肯定需要在不同的地方使用不同的工具进行调整。例如,并行性在 SQL Server 中的工作方式不同,因此相关查询调优的方法也不同。如果您确实需要控制并行性,则使用提示具有不同的语义并发生在不同的场景中。
因此,只需删除这些提示(或保留它们。SQL Server 只会将它们解释为注释),然后观察性能。
调整需要它的查询:首先确保有索引和统计信息,以便优化器拥有获得良好计划所需的数据,然后探索编写查询的替代方法,最后通过探索提示。
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |