【发布时间】:2021-07-25 14:34:49
【问题描述】:
当我阅读 Oracle 中的查询性能时,我多次看到“小表”一词。例如,有人说,Oracle 仅在表较小时才使用排序合并连接。 那么,如果表很小,数据库服务器是否使用任何公式,或者是否有任意数量的行等?
【问题讨论】:
标签: oracle query-optimization database-administration sqlperformance oracle19c
当我阅读 Oracle 中的查询性能时,我多次看到“小表”一词。例如,有人说,Oracle 仅在表较小时才使用排序合并连接。 那么,如果表很小,数据库服务器是否使用任何公式,或者是否有任意数量的行等?
【问题讨论】:
标签: oracle query-optimization database-administration sqlperformance oracle19c
这取决于上下文。在 sort-merge join 方面,与其说是根据一些预定义的公式表很小,不如说是优化器做出了基于成本的决策。事实证明,与其他计划相比,一张小桌子更有可能以更低的成本结束。 还有“小桌门槛”的概念。这是表(或段,严格来说)的大小,其中一部分缓冲区高速缓存用于读取表。这被计算为缓冲区高速缓存大小的 2%。如果表符合小表阈值,您可能会看到使用小表复制而不是广播的执行计划。
【讨论】: