Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Баг с nested tables в 11.1.0.7 и 10.2.0.1  [new]
_Nikotin
Member

Откуда: СПб
Сообщений: 2965
Баг повторяется только при использовании nested tables. В 10.2.0.4 строит другой план с filter.
Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 
Connected as testu
 
SQL> create type tp1 as table of number;
  2  / 
Type created

SQL> create table t1 as
  2  select level id from dual connect by level < 100000; 
Table created

SQL> create index i1 on t1(id); 
Index created

SQL> create table t2 as
  2  select 2 - level id from dual connect by level < 100000; 
Table created

SQL> create index i2 on t2(id);
 
Index created
SQL> select /*+ cardinality(i 1)*/ i.column_value
  2  from table(tp1(1, 2, 3, 4, 5, 6, 7, 8, 9)) i
  3  where exists(select 1 from t1 where t1.id = i.column_value)
  4    and exists(select 1 from t2 where t2.id = i.column_value);
 
COLUMN_VALUE
------------
           1
           2
           3
           4
           5
           6
           7
           8
           9

SQL> select /*+ cardinality(i 1000)*/ i.column_value
  2  from table(tp1(1, 2, 3, 4, 5, 6, 7, 8, 9)) i
  3  where exists(select 1 from t1 where t1.id = i.column_value)
  4    and exists(select 1 from t2 where t2.id = i.column_value);
 
COLUMN_VALUE
------------
           1

SQL> drop type tp1; 
Type dropped

SQL> drop table t1; 
Table dropped

SQL> drop table t2; 
Table dropped
16 сен 10, 18:57    [9452875]     Ответить | Цитировать Сообщить модератору
 Re: Баг с nested tables в 11.1.0.7 и 10.2.0.1  [new]
_Nikotin
Member

Откуда: СПб
Сообщений: 2965
План запроса с wrong results
------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                        |      |     1 |    28 |    31   (0)| 00:00:01 |
|   1 |  NESTED LOOPS SEMI                      |      |     1 |    28 |    31   (0)| 00:00:01 |
|   2 |   NESTED LOOPS SEMI                     |      |     1 |    15 |    30   (0)| 00:00:01 |
|   3 |    COLLECTION ITERATOR CONSTRUCTOR FETCH|      |       |       |            |          |
|*  4 |    INDEX RANGE SCAN                     | I1   |     1 |    13 |     1   (0)| 00:00:01 |
|*  5 |   INDEX RANGE SCAN                      | I2   |     1 |    13 |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("T1"."ID"=VALUE(KOKBF$))
   5 - access("T2"."ID"=VALUE(KOKBF$))
 
Note
-----
   - dynamic sampling used for this statement
16 сен 10, 19:08    [9452928]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить