当前位置:早雪网网络学院编程文档数据库技术Postgresql → PostgreSQL7.0手册-用户手册-17. 理解性能

PostgreSQL7.0手册-用户手册-17. 理解性能

减小字体 增大字体 作者:不详  来源:supcode.com收集整理  发布时间:2005-7-23 12:18:54
gression=# explain select * from tenk1 t1, tenk2 t2 where t1.unique1 < 100
regression-# and t1.unique2 = t2.unique2;
NOTICE:  QUERY PLAN:

Hash Join  (cost=89.60..574.10 rows=100 width=296)
  ->  Seq Scan on tenk2 t2
               (cost=0.00..333.00 rows=10000 width=148)
  ->  Hash  (cost=89.35..89.35 rows=100 width=148)
        ->  Index Scan using tenk1_unique1 on tenk1 t1
               (cost=0.00..89.35 rows=100 width=148)
这个规划仍然试图用同样的索引扫描从 tenk1 里面取出感兴趣的 100 行,把它们藏在一个在内存里的散列(哈希)表里,然后对 tenk2 做一次顺序扫描,在每一条 tenk2 记录上检测上面的散列(哈希)表寻找可能匹配 "t1.unique2 = t2.unique2" 的记录。读取 tenk1 和建立散列表是此哈希联接的全部启动开销,因为我们在开始读取 tenk2 之前不可能获得任何输出记录。这个联接的总的预计时间同样还包括相当重的检测散列(哈希)表 10000 次的 CPU 时间。不过,请注意,我们不需要对 89.35 乘 10000;散列(哈希)表的在这个规划类型中只需要设置一次。 

-----------------------------------------------------------------------------

上一页  [1] [2] 

[数据载入中...] [返回上一页] [打 印]