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

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.11.2015, 18:56
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Здравствуйте всем! DB2 WSE 9.7 Есть таблица TAB1 (REG_NUM - рег.номер, NAM - наименование). Задан список рег. номеров (R1, R2, ..., RN). Необходимо разработать sql-скрипт (выборку), который бы вытаскивал все записи из TAB1 по заданному списку рег.номеров. При этом, если в TAB1 запись по рег.номеру отсутствует, то в результирующую выборку должен попасть рег.номер без наименования. То есть, мы должны получить выборку из N записей (по количеству записей заданного списка), в котором могут быть заполнены (не заполнены, или заполнены не все) наименования. Как это сделать одним селектом без промежуточных добавлений во временные таблицы? Пока на ум приходит вариант: Код: plsql 1. 2. 3. 4. 5. Но он как-то долго отрабатывает есть еще варианты? С уважением, Семен Попов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2015, 22:10
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Если такой запрос как-то долго отрабатывает, значит, с планом что-то не так. Индекса нет, статистика не такая... Далее идёт NLJOIN с N полных сканирований TAB1 (совсем плохо) или HSJOIN (одно сканирование) - это получше (разумеется, при некоторых сочетаниях данных это, наоборот, хорошо). Скорее всего, быстрее всего он должен работать при наличии индекса unique ... on TAB1(reg_num) include(nam [и другие интересующие поля] ) По виду запроса, TAB1(reg_num) и так должен быть уникальным. Быть может, на самом деле вместо TAB1 подразумевается какой-то VIEW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 12:43
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Victor Metelitsa, спасибо. Индексы посмотрим. Но я хотел бы узнать, вариант, который я предложил, будет единственным? В этом скрипте рег.номера перечисляются через запятую, каждое значение в скобках. Можно ли разработать скрипт, чтобы значения не нужно было заключать в скобки, а просто через запятую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 12:52
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Semen Popov, values 1, 2, 3 и values (1), (2), (3) это одно и то же. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 15:17
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Mark Barinstein, спасибо. Что-то я сам не догадался проверить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 15:58
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
У меня других вариантов нет. Вещи наподобие Код: plsql 1. 2. 3. 4. 5. 6. мы ведь рассматривать не будем? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 17:58
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Victor Metelitsa, думаю, что не будем. Представьте, если список заданных номеров состоит из 10 тыс записей (N=10000) :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2015, 18:14
|
|||
|---|---|---|---|
|
|||
Помогите с запросом |
|||
|
#18+
Semen PopovVictor Metelitsa, думаю, что не будем. Представьте, если список заданных номеров состоит из 10 тыс записей (N=10000) :-))Если у вас такое огромное число значений может быть, то лучше через временную таблицу. Вставка записей, call admin_cmd('runstats on session.t with distribution'), основной запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&tablet=1&tid=1600693]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
83ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 463ms |

| 0 / 0 |
