У меня есть этот запрос:
select distinct id,name from table1
Для данного идентификатора имя всегда будет одинаковым. Оба поля проиндексированы. Там нет отдельной таблицы, которая отображает идентификатор на имя. Таблица очень большая (10 миллионов строк), поэтому запрос может занять некоторое время.
Этот запрос очень быстрый, так как он проиндексирован:
select distinct name from table1
Аналогично этому запросу:
select distinct id from table1
Если я не могу изменить структуру базы данных (очень безопасное предположение), как лучше структурировать первый запрос производительности?
Изменить, чтобы добавить очищенную таблицу:
Name Null Type
------------------------------ -------- ----------------------------
KEY NOT NULL NUMBER
COL1 NOT NULL NUMBER
COL2 NOT NULL VARCHAR2(4000 CHAR)
COL3 VARCHAR2(1000 CHAR)
COL4 VARCHAR2(4000 CHAR)
COL5 VARCHAR2(60 CHAR)
COL6 VARCHAR2(150 CHAR)
COL7 VARCHAR2(50 CHAR)
COL8 VARCHAR2(3 CHAR)
COL9 VARCHAR2(3 CHAR)
COLA VARCHAR2(50 CHAR)
COLB NOT NULL DATE
COLC NOT NULL DATE
COLD NOT NULL VARCHAR2(1 CHAR)
COLE NOT NULL NUMBER
COLF NOT NULL NUMBER
COLG VARCHAR2(600 CHAR)
ID NUMBER
NAME VARCHAR2(50 CHAR)
COLH VARCHAR2(3 CHAR)
20 rows selected