|
|
|
Тормоза в объединении с ХП + LEFT JOIN
|
|||
|---|---|---|---|
|
#18+
Имеются таблички: 1. Классификатор "CLASSTREE" (KIND - тип классификации): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 2. Объекты "H" : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 2. Связи "CLASSLINK" (Классификатор <-> Объект): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. По заданному списку типов классификаторов (KIND) надо получить такое представление по "ведущему" классификатору: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Набор значений CLASSTREE.ID создается с помощью хранимой процедуры GET_CLASSIDS. В этом упрощенном случае она вернет только 1. CLASSTREE.KIND - заданы, но, как правило, их больше. Т.о. строю запрос с группировкой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Получаю, что хотел, но производительность, мягко говоря, оставляет желать лучшего: на 500 итоговых записей - примерно по 7000 чтений в CLASSLINK и CLASSTREE. План - с тем же порядком объединения, что и в запросе. Какие могут быть еще решения? Далее. Нужен вариант этого представления: пересечение с списком объектов (H.ID), формируемым другой ХП. Вот здесь уже тормоза неизбежны имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:01:28 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=459&tid=1578142]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
62ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 320ms |

| 0 / 0 |
