Создадим представление:
CREATE OR REPLACE VIEW W_LOCALITY_VIEW(ID, PREFIX, NAME, PARENT_ID) AS
SELECT
| ||||
FROM | ||||
|
Поисковые поля:
- PARENT_ID
- PARENT_ID IS NULL - корневые объекты.
- PARENT_ID = 'value' - заданный объект.
- CREATE UNIQUE INDEX W_LOCALITY_PARENT_ID_IDX on W_LOCALITY(ID, PARENT_ID);
- CREATE UNIQUE INDEX W_LOCALITY_FPARENT_ID_IDX on W_LOCALITY(PARENT_ID, ID);
- CREATE UNIQUE INDEX W_LOCALITY_NULL_PARENT_ID_IDX on W_LOCALITY(ID) WHERE PARENT_ID IS NULL;
- Поиск корневых объектов:
set enable_seqscan = off;
SELECT * FROM W_LOCALITY_VIEW WHERE PARENT_ID IS NULL; - Поиск дочерних объектов заданного объекта:
set enable_seqscan = off;
SELECT * FROM W_LOCALITY_VIEW WHERE PARENT_ID=112562;
Поиск корневых объектов | 30.248 мсек |
Поиск дочерних объектов заданного объекта | 15.166 мсек |
Размер таблиц:
W_LOCALITY | 23,244,680 |
W_LOCALITY_TYPE | 114 |
Вывод данных
- SELECT * FROM W_LOCALITY_VIEW WHERE PARENT_ID IS NULL;
ID PREFIX NAME PARENT_ID 1331 Респ Калмыкия NULL 1770 Респ Марий Эл NULL 2992 Респ Удмуртская NULL 3775 край Алтайский NULL .... .... .... .... 208565 г Севастополь NULL - SELECT * FROM W_LOCALITY_VIEW WHERE PARENT_ID=112562;
ID PREFIX NAME PARENT_ID 112563 г Воронеж 112562 164621 г Воронеж-45 112562 34380 г Лиски 112562 8262 г Нововоронеж 112562 .... .... .... .... 8314 р-н Калачеевский 112562 - SELECT * FROM W_LOCALITY_VIEW WHERE ID=112562
ID PREFIX NAME PARENT_ID 112562 обл Воронежская NULL
No comments:
Post a Comment