Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Порядок чтения по Full Scan  [new]
KKM
Guest
Создаю новую таблицу и вставляю туда 1 млн. записей. Теперь читаю все записи без ORDER BY. Будут они считаны именно в том порядке, в котором я их туда записал? Или нужно обязательно использовать ORDER BY. Последнего хотелось бы избежать, так как без него чтение работает во много раз быстрее.

С точки зрения чистой теории без ORDER BY порядок чтения не гарантируется. А что говорит оракловская практика?
26 июл 06, 13:30    [2927788]     Ответить | Цитировать Сообщить модератору
 Re: Порядок чтения по Full Scan  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
KKM
Создаю новую таблицу и вставляю туда 1 млн. записей. Теперь читаю все записи без ORDER BY. Будут они считаны именно в том порядке, в котором я их туда записал? Или нужно обязательно использовать ORDER BY. Последнего хотелось бы избежать, так как без него чтение работает во много раз быстрее.

С точки зрения чистой теории без ORDER BY порядок чтения не гарантируется. А что говорит оракловская практика?
Порядок без ORDER BY не гарантируется.
Практика именно об этом и говорит.
26 июл 06, 13:32    [2927805]     Ответить | Цитировать Сообщить модератору
 Re: Порядок чтения по Full Scan  [new]
hell
Member

Откуда:
Сообщений: 3001
Видимо тут можно почитать про IOT.

__________________
For more information, please proceed to http://www.ot-e.biz
26 июл 06, 13:36    [2927834]     Ответить | Цитировать Сообщить модератору
 Re: Порядок чтения по Full Scan  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
hell
Видимо тут можно почитать про IOT.

__________________
For more information, please proceed to http://www.ot-e.biz


softwarer
Вот только, если не ошибаюсь, данные в этом объекте не то чтобы физически упорядочены :)

SQL> create table idata (i integer not null primary key, j integer, k varchar2(100)) organization index;

Table created

.....

SQL> explain plan for select * from idata order by i ;

Plan Table
--------------------------------------------------------------------------------
| Operation                 |  Name              |  Rows | Bytes|  Cost  | Pstar
--------------------------------------------------------------------------------
| SELECT STATEMENT          |                    |     1 |   78 |      5 |
|  SORT ORDER BY            |                    |     1 |   78 |      5 |
|   INDEX FAST FULL SCAN    |SYS_IOT_TOP_45618   |     1 |   78 |      3 |
--------------------------------------------------------------------------------

6 rows selected
26 июл 06, 13:42    [2927887]     Ответить | Цитировать Сообщить модератору
 Re: Порядок чтения по Full Scan  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
строки индекса внутри блока упорядоченны не физически, а логически. см. offset в index leaf block. row number не используется при INDEX FAST FULL SCAN. В этот момент чтение происходит до hwm индекса, как обычной таблицы. и строки, скорее всего будут выводится в порядуке offset внутри блока (?).
26 июл 06, 14:09    [2928147]     Ответить | Цитировать Сообщить модератору
 Re: Порядок чтения по Full Scan  [new]
Elic
Member

Откуда:
Сообщений: 29991
KKM
С точки зрения чистой теории без ORDER BY порядок чтения не гарантируется. А что говорит оракловская практика?
Практика всё больней и больней (для неверящих) подтверждает теорию :)
26 июл 06, 14:21    [2928267]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить