ITPub博客

首页 > 数据库 > 数据库开发技术 > 分析表,分析列,分析分析分析

分析表,分析列,分析分析分析

原创 数据库开发技术 作者:darmee 时间:2009-11-16 16:50:13 0 删除 编辑

好像Oracle是8i后开始推CBO,9i就默认是CBO了,当然如果要让表走CBO,就先要分析分析分析表了。如果没有表的统计信息话,就自动走RBO了。

分析表语句如下:

analyze table name compute statistics,当然这是最简单的一种写法,详细写法上网查吧。

只要对表分析了之后,下次访问表时就是走CBO了。

当然在这里还没完,分析列分析列分析列,为什么要这么怨念的打上这么多,是因为有时光分析表还是不够的。

比如表test上的a字段,100w条记录,99w是0,1w是1,这个时候如果只做表分析的话,访问test,条件where a=xxx时,不管xxx是0还是1,统统都是走索引扫描。

问题来了,显而易见,当where a = 0时,全表扫描肯定效率更高。

所以,这时就分析列分析列吧,具体语句上网搜。

最后,补充下,上一篇提到了rowid,在index中存的就有rowid信息,所以为什么delete大量数据后要重新build,恩,上面那句话是我猜的。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/789181/viewspace-1028759/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 写着玩 Oracle rowid
下一篇: 近半年+未来
请登录后发表评论 登录
全部评论
  • 博文量
    43
  • 访问量
    2187505