【问题标题】:How to calculate Join cost? I want to know the disk operations?如何计算加盟费用?我想知道磁盘操作?
【发布时间】:2011-06-07 18:53:36
【问题描述】:

我需要一些关于加入处理的帮助

  1. 嵌套循环连接
  2. 阻止嵌套循环连接
  3. 合并加入
  4. 哈希连接

我搜索但没有找到一些链接,其中也提供了计算的数学示例?

例如

考虑关系 R 和 S 的自然连接 R & S,并提供有关这些关系的以下信息:

关系 R 包含 8,000 条记录,每页有 10 条记录

关系 S 包含 2,000 条记录,每页有 10 条记录

两个关系都存储为连接属性上的排序文件

处理上面的四个连接需要多少磁盘操作?

【问题讨论】:

  • 不清楚您在寻找什么。可以发个例子吗?
  • 您是在问如何量化各种联接操作的性能?

标签: database database-design optimization join


【解决方案1】:

您有特定的 dbms 吗?

对于 Oracle,您必须知道块大小、db_file_multiblock_read_count 的配置以及已在缓存中的预期块 nr、每个表的高水位线、现有索引及其集群因子,以及一些将影响答案。

作为一般规则,每当我完全连接两个表时,我希望看到两个全表扫描和一个哈希连接。每当我连接两个表的一部分时,我希望看到一个嵌套循环从表中驱动,并具有最有选择性的过滤谓词。

每当我感到惊讶时,我都会调查统计数据和上述内容以验证优化器的选择。

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多