SQL> CREATE TABLE T1 AS SELECT * FROM USER_TABLES;
SQL> CREATE TABLE T2 AS SELECT * FROM USER_INDEXES;
SQL> SELECT COUNT(*) FROM T1, T2
WHERE T1.TABLE_NAME = T2.TABLE_NAME
SQL> SELECT COUNT(*) FROM T2, T1
WHERE T1.TABLE_NAME = T2.TABLE_NAME
所选择的驱动表都是t1
SQL> SELECT COUNT(*) FROM T1;
725
SQL> SELECT COUNT(*) FROM T2;
826
CBO怎样得知T1的数据比T2的数据更少?t1更适合于做驱动表?
(并没做表统计及建立任何index啊?optimizer_dynamic_sampling=2 有关?)
SQL> CREATE TABLE T2 AS SELECT * FROM USER_INDEXES;
SQL> SELECT COUNT(*) FROM T1, T2
WHERE T1.TABLE_NAME = T2.TABLE_NAME
SQL> SELECT COUNT(*) FROM T2, T1
WHERE T1.TABLE_NAME = T2.TABLE_NAME
所选择的驱动表都是t1
SQL> SELECT COUNT(*) FROM T1;
725
SQL> SELECT COUNT(*) FROM T2;
826
CBO怎样得知T1的数据比T2的数据更少?t1更适合于做驱动表?
(并没做表统计及建立任何index啊?optimizer_dynamic_sampling=2 有关?)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192804/viewspace-346787/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7192804/viewspace-346787/