B 错误 :Bloom Filter 的启用由优化器根据代价模型自动决定,用户也可以通过 Hint(如 USE_BLOOM_FILTER )或系统变量 bloom_filter_enabled 进行控制。
C 错误 :Bloom Filter 只支持等值连接 (因为哈希函数只能处理等值条件),这是正确的,但 C 后半句“无法用于非等值连接”也是正确的,然而题目问的是“描述正确的是”,A 明显正确。C 虽然描述准确,但相比 A,A 更全面且关键。注意 C 的说法本身没错,但通常 Bloom Filter 也能用于 IN 子查询等场景,本质也是等值。不过 A 更贴近 Bloom Filter 在 Hash Join 中的具体作用。通常考试中会选 A。
D 错误 :当 Build 端很小时,Bloom Filter 的开销(构建和内存)相对于收益较小,优化器可能选择不使用 ,而不是“反而增加开销”导致一定更差。D 中“反而增加额外开销”表述不够准确,因为开销是存在的,但优化器会根据代价决定,不一定总是增加总开销。且 D 描述的场景下优化器的选择是“可能不使用”,但不会因为“增加额外开销”而绝对不用,因为有时仍可能使用。不过 A 是更标准的正确描述。