|
|
|
Как оптимизировать запрос?
|
|||
|---|---|---|---|
|
#18+
День добрый. Много думаю, но решения не вижу. Есть таблица А(id, dt), где id - уникальный номер, dt - дата закачивания информации. Таблица В(id, id_a, sernm, par1, par2), где id - уникальный номер, id_a - связь с таблицей А, sernm - серийный номер, par1, par2 - другие параметры продукта. Таблица А 1,01.01.2004 2,02.01.2004 3,03.01.2004 4,04.01.2004 Таблица В 1,1,001,0,0 2,1,002,0,1 3,2,001,0,1 4,2,002,0,1 5,2,003,0,0 6,2,004,1,1 7,3,001,0,1 8,3,002,0,1 9,3,003,0,1 10,3,004,0,1 11,4,001,0,1 12,4,002,0,1 13,4,003,1,1 14,4,004,1,1 15,4,005,1,0 Мне нужно вывести продукты, которые появились в таблице в первый раз, т.е. следующую таблицу 1,1,001,0,0 2,1,002,0,1 5,2,003,0,0 6,2,004,1,1 15,4,005,1,0 Запрос следующего вида: select * from a join b on (a.id = b.id_a) where (select count(bb.id) from b bb where bb.sernm = b.sernm and bb.id_a < b.id_a)=0 даст верный результат. Но на таблице В > 2 млн. записей он выполняется очень, очень долго. Индексы по полям id, id_a, sernm есть. Как мне изменить запрос, чтобы он выполнился за разумный период? Sybase Adaptive Server Anywhere 7.0.4.3498 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 19:48 |
|
||
|
Как оптимизировать запрос?
|
|||
|---|---|---|---|
|
#18+
Саня Павлов Мне нужно вывести продукты, которые появились в таблице в первый раз, т.е. следующую таблицу 1,1,001,0,0 2,1,002,0,1 5,2,003,0,0 6,2,004,1,1 15,4,005,1,0 Запрос следующего вида: select * from a join b on (a.id = b.id_a) where (select count(bb.id) from b bb where bb.sernm = b.sernm and bb.id_a < b.id_a)=0 даст верный результат. вообще-то данный запрос, с желаемым резалтсэтом и с его описанием не имеет ничего общего. Можно уточнить что желается в итоге получить? Первое появление sernum в таблице B если ее отсортировать по полю id_a? Тогда запрос очень простой: select * from b b1 where id_a=(select min(id_a) from b b2 where b1.sernm=b2.sernm); А по поводу запроса Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 23:27 |
|
||
|
|

start [/forum/search_topic.php?author=zadil&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
66ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 442ms |
| total: | 625ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...