Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 архитектурный вопрос  [new]
serj_osi
Member

Откуда:
Сообщений: 1
всем привет, только изучаю окарл. помогите советом.
есть таблица клиентов, таблица адресов и таблица телефонов.
у меня есть id клиента. мне нужно выбрать все телефоны этого клиента и все его адреса, что бы потом построчно записать в ексель. телефоны на один лист адреса на другой.
это будет 2 разных рапроса или можно как то сделать одним.
мне нужен самый производительный по скорости вариант.
например у клиента есть 100 адресов и 100 телефонов.
2 запросами - с этим понимание есть. тут все легко.
если одим это получится 100*100 строк и там будут дубли.
подскажите как лучше это сделать
13 апр 19, 14:09    [21861151]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1230
serj_osi
как лучше это сделать


Прежде чем писать на форум, пройти минимальное [само]обучение.
Если есть уже наработки, написать тестовые данные в виде with, и тот запрос, который у вас получился.
Студентам, желающим помощи.
13 апр 19, 15:31    [21861178]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
MazoHist
Member

Откуда:
Сообщений: 103
serj_osi,
где вы видите узкие места, что вы хотите достать все за один запрос?
автор
мне нужен самый производительный по скорости вариант.

два запроса с индексами на id клиента
14 апр 19, 13:11    [21861531]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29041
serj_osi
только изучаю окарл
У окторого Оклара украла оклрнет?
serj_osi
мне нужен самый производительный по скорости вариант.
А конверт на блюдечке с голубой каёмочкой не надо?
15 апр 19, 08:08    [21861907]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
chidoriami
Member

Откуда: москва
Сообщений: 19
serj_osi,

сделайте два запроса и не парьтесь.
простое решение - зачастую лучший выбор, т.к. потом поддерживать проще в разы.
вот придется правки через пару месяцев вносить, и хер вспомнишь/разберешь что куда.

у двух запросов недостаток в том, что таблица клиентов будет вычитана дважды.
ну и пох =)

одним запросом, это, видимо, запрос с дублями (что уже плохо) на один лист, а на двух других - впр'ы к первому листу.
т.е. неочевидно и перемудрено
15 апр 19, 11:50    [21862208]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
-2-
Member

Откуда:
Сообщений: 14730
chidoriami
таблица клиентов будет вычитана дважды
из постановки вопроса необходимости обращения к таблице клиентов не следует.
chidoriami
одним запросом, это, видимо, запрос с дублями
Если автору по причине "только изучаю" приходит на ум только вариант с кроссджоином, стоило ли дофантазировывать именно этот вариант однозапроса.
15 апр 19, 12:11    [21862247]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51735
-2-,

ТС уже два дня нервно курит
15 апр 19, 12:37    [21862310]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
chidoriami
Member

Откуда: москва
Сообщений: 19
-2-
chidoriami
таблица клиентов будет вычитана дважды
из постановки вопроса необходимости обращения к таблице клиентов не следует.

действительно, не следует =) но скорее всего, так и есть =)
ибо кому нужны в экселе (читай, в виде, удобном для чтения) чистые айдишники клиентов с адресами/телефонами без клиентской информации?
вероятность, по-моему мала)))
уважаемый serj_osi может прояснить этот вопрос =)


-2-
chidoriami
одним запросом, это, видимо, запрос с дублями
Если автору по причине "только изучаю" приходит на ум только вариант с кроссджоином, стоило ли дофантазировывать именно этот вариант однозапроса.

не, конечно, есть всегда другие варианты. только эти другие варианты трудноподдерживаемые и не факт, что более оптимальные.
На мой предвзятый взгляд, лучше такими штуками особо не увлекаться на этапе "только изучаю окарл" =)
сначала основы усвоить крепко накрепко, потом начинать креативить)))
иначе легко написать запрос, который будет гораздо более прожорливый на ресурсы, чем два простых.
16 апр 19, 12:25    [21863518]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1869
chidoriami
не, конечно, есть всегда другие варианты. только эти другие варианты трудноподдерживаемые и не факт

а что сложного в поддержке с тч оракля(селекта)?

select 'a' t,id_adr,addr h from clnt_address where client_ref=:1
UNION ALL
select 'a' t,id_tel,tel h from clnt_telephons where client_ref=:1

.....
stax
16 апр 19, 14:11    [21863752]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51735
Какие-то бессмысленые ответы на такой же вопрос
16 апр 19, 14:18    [21863776]     Ответить | Цитировать Сообщить модератору
 Re: архитектурный вопрос  [new]
chidoriami
Member

Откуда: москва
Сообщений: 19
Stax
chidoriami
не, конечно, есть всегда другие варианты. только эти другие варианты трудноподдерживаемые и не факт

а что сложного в поддержке с тч оракля(селекта)?

select 'a' t,id_adr,addr h from clnt_address where client_ref=:1
UNION ALL
select 'a' t,id_tel,tel h from clnt_telephons where client_ref=:1

.....
stax


ахахаха, я конечно не такой запрос имела в виду))))))
тем более, что данный вариант - это все таки два запроса, объединенные в один и никакой разницы с двумя запросами на разных листах нет
17 апр 19, 12:05    [21864741]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить