Tag Archives: CBO

非空字段空值对查询的影响

BLOG有三年没有更新了,其实这篇文档也是三年前写的,不过当时没有贴出来,今天看到有人问起,于是分享出来。 这是客户数据库中碰到的一个有意思的问题。 数据库版本为11.2.0.3,客户的DSG同步软件在同步某张表时出现了错误,报错无非插入空值ORA-1400,本来这是一个很简单的问题,但是诊断发现问题比较有意思: SQL> select * from t_def; ID NAME TYPE ———- —————————— ——– 1 a SQL> select * from t_def where type is null; no rows selected SQL> select * from t_def where type is not null; ID NAME … Continue reading

Posted in BUG, ORACLE | Tagged , , , | 2 Comments

索引重建的数据源(二)

对这个问题有了进一步的认识。 索引重建的数据源:http://yangtingkun.itpub.net/post/468/457384 上一篇文章测试的结果认为DDL也是基于CBO的,但是今天发现问题并非如此。Oracle在评估REBUILD索引时并不是根据统计信息,而是根据数据字典中非索引字段的长度: SQL> CREATE TABLE t_rebuild (id NUMBER, flag CHAR(1)); TABLE created. SQL> INSERT INTO t_rebuild SELECT rownum, ‘a’ FROM dba_objects; 15695 ROWS created. SQL> commit; Commit complete. SQL> CREATE INDEX ind_t_rebuild_id ON t_rebuild(id); INDEX created. SQL> EXPLAIN plan … Continue reading

Posted in ORACLE | Tagged , | Leave a comment