|
Помогите составить запрос, чтобы ну очень быстро работало
|
|||
---|---|---|---|
#18+
Добрый день! Уважаемые коллеги, наставьте на путь истинный? Вводные: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Программа для библиотеки. TCATALOG - таблица публикаций, знает "тип" публикации (IDTYPE) и дату выхода (YEAR_REL) SPPUBLTYPES - таблица видов публикаций. Когда пользователь получает список-результат через фильтр, он должен получить 2 таблицы - одну список, и вторую - сводные данные, в виде: Код: sql 1. 2. 3. 4.
Что я попробовал сделать: Код: sql 1. 2. 3.
- отдельно работает быстро, 900мс все записи (всего на данный момент зарегистрировано 100к публикаций), результат - 79 уникальных лет Код: sql 1. 2. 3. 4.
- такое выдает за 1.1сек все записи (те же 79 строк). Но когда пытаюсь это все собрать воедино: так: Код: sql 1. 2. 3. 4. 5. 6. 7.
или так: Код: sql 1. 2. 3. 4. 5.
то результата просто не дождался, останавливал сервер. Если в первом запрос поменять left join на inner join, то работает, но так нельзя, т.к. при некоторых условиях фильтра (запросы упростил) не во всех годах будут найдены публикации. Т.к. шапка отчета (виды публикаций) будет менятся, запрос требуется собирать он-лайн. Это не проблема, заработало бы хотя бы с одним видом. Можете подсказать, что еще попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2016, 19:54 |
|
Помогите составить запрос, чтобы ну очень быстро работало
|
|||
---|---|---|---|
#18+
Devillio, не удивительно у тебя здесь MERGE JOIN вылазит RTFM CASE ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2016, 19:59 |
|
Помогите составить запрос, чтобы ну очень быстро работало
|
|||
---|---|---|---|
#18+
Симонов Денис, я вас не понял ( слово MERGE в плане не видно. И я туплю - как мне может помочь CASE? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2016, 20:08 |
|
Помогите составить запрос, чтобы ну очень быстро работало
|
|||
---|---|---|---|
#18+
Devillio, ах... у тебя же LEFT JOIN ну тогда труба, там вообще только методом NESTED LOOP соединение будет. я же сказал CASE Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2016, 20:14 |
|
|
start [/forum/topic.php?fid=40&fpage=50&tid=1561791]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 135ms |
0 / 0 |