hvlad писал(а):2hands писал(а):так получилось еще хуже
Ну, значит оптимизатор не так туп, как о нём говорят некоторые
ЗЫ Всю статистику давай, а не огрызки... каждый раз нужно это говорить ?
И кнопку Total records в статистике ИБЕ нажми.
Опять же - читать запрос не возможно. Я его нормально форматировать не буду.
Может в where есть что-то индексируемое, но выковыривать это оттуда мне не интересно.
Навскидку - что такое
(cg = 513 or cg = 514 or cg = 714) ?
(pe = 3 or pe = 4 ) ?
(p4.ta=1 and p4.ar=11102) ?
Насколько они могут сократить соотв. таблицу ? Индексированы ли эти поля ?
Статистика
Query
------------------------------------------------
.........
Plan
------------------------------------------------
PLAN JOIN (P6 NATURAL,SC INDEX (RDB$PRIMARY51),SCF INDEX (FK_SCF_SC),P4 INDEX (FK_P4_SC))
Adapted Plan
------------------------------------------------
PLAN JOIN (P6 NATURAL,SC INDEX (PK_SC),SCF INDEX (FK_SCF_SC),P4 INDEX (FK_P4_SC))
Query Time
------------------------------------------------
Prepare : 47,00 ms
Execute : 468,00 ms
Avg fetch time: 468,00 ms
Memory
------------------------------------------------
Current: 854 020
Max : 1 162 348
Buffers: 2 048
Operations
------------------------------------------------
Read : 3 254
Writes : 0
Fetches: 107 404
Enchanced Info:
+--------------------------+-----------+-----------+-------------+---------+---------+---------+
| Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts |
| | Total | reads | reads | | | |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+
| P4| 14698 | 1 | 0 | 0 | 0 | 0 |
| SC| 12077 | 8904 | 0 | 0 | 0 | 0 |
| SCF| 12074 | 8850 | 0 | 0 | 0 | 0 |
| P6| 8904 | 0 | 8904 | 0 | 0 | 0 |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+
Индекса только эти
ALTER TABLE SСF ADD CONSTRAINT PK_SCF PRIMARY KEY (ID);
ALTER TABLE SCF ADD CONSTRAINT FK_SCF_SC FOREIGN KEY (SC_ID) REFERENCES SC (ID);
ALTER TABLE P6 ADD CONSTRAINT PK_P6 PRIMARY KEY (ID);
ALTER TABLE P6 ADD CONSTRAINT FK_P6_SC FOREIGN KEY (SC_ID) REFERENCES SC (ID);
ALTER TABLE P4 ADD CONSTRAINT PK_P4 PRIMARY KEY (ID);
ALTER TABLE P4 ADD CONSTRAINT FK_P4_SC FOREIGN KEY (SC_ID) REFERENCES SC (ID);
другие индекса как-то пробовал, опять же с целью уменьшения времени, и получил отрицательные результаты.
указание одного значения для cg выбирает где-то 1/5 записей от общего числа
указание одного значения для pe выбирает где-то 1/7 записей от общего числа