Notes on ‘Expert Oracle’ — No.10.3: Table — 聚簇表

1.引子

问题:我经常连接表A和表B,除了建立表索引外吗,还有别的优化手段吗?

答案:有。如果A和B相应的一组数据在同一个块中,那么查询时就不需要取出那么多块了,I/O效率会高很多。

2.什么是聚簇

  a. A和B的同组数据放在同一个块中,如果A和B经常连结

  b. 同一张表中共享同一列值的行尽量放在同一个块中

3.一个聚簇块应该放几行数据?

  要恰当地设置这个值。

    a.如果行数太少,则会浪费块的空间

    b.如果行数太多,则可能会导致 块 不能容纳整行数据,而只能通过串链解决问题。串链太多就适得其反了。

4.什么时候应该用聚簇

   以读为主、且主要使用索引读、并且经常要进行连接查询的一组表应该放在同一个聚族中。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.