Я тоже не администратор баз данных, но мне было любопытно и я делаю тест (если кто-то считает, что мой тест недействителен, пожалуйста, дайте мне знать).
Я создаю таблицу
CREATE TABLE TEMP (
ID_TEMP NUMBER(10) NOT NULL,
SOME_DATE DATE NOT NULL,
SOME_TEXT VARCHAR2(60) NOT NULL,
CONSTRAINT TEMP_PK primary key (ID_TEMP)
);
А затем заполнить случайными значениями
declare
vdate date;
begin
for idx in 0..10000000 loop
vdate := sysdate - dbms_random.value(0,102548);
insert into temp values(idx, vdate, 'something');
end loop;
commit;
end;
После этого индекс:
create index TEMP_DATE_NDX ON TEMP (SOME_DATE) NOLOGGING;
-- index TEMP_DATE_NDX created. Elapsed: 00:00:24.650
Затем я отбросил таблицу и пересоздал, но на этот раз я вставил записипо порядку:
DROP TABLE TEMP;
-- create table omitted...
declare
vdate date;
begin
for idx in 0..10000000 loop
vdate := trunc(sysdate) + idx;
insert into temp values(idx, vdate, 'something');
end loop;
commit;
end;
create index TEMP_DATE_NDX ON TEMP (SOME_DATE) NOLOGGING;
-- index TEMP_DATE_NDX created. Elapsed: 00:00:01.993
Как видите, при любых изменениях в предложении создания индекса упорядоченные данные выполнялись быстрее.