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

Откуда: Ukraine,Lviv
Сообщений: 1955
andrey_anonymous,
WHEN T1.CAID THEN coalesce(T2.KMFO, T1.BBID)

T2.KMFO not null?

ELSE не подойдет?

....
stax
6 фев 19, 15:42    [21802814]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17580
Stax
ELSE не подойдет?

Я случайно опубликовал один из размышлизмов.
6 фев 19, 15:43    [21802816]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1955
Dshedoo,

лично я б OR на UNION ALL не менял (пусть ето делает оптимизатор)

хотя если схема хорошо известна,
то можно и заменить с пониманием что так будет оптимальнее
но сопровождать будет явно посложнее

.....
stax
6 фев 19, 15:51    [21802824]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
Dshedoo
Member

Откуда:
Сообщений: 370
Stax
Dshedoo,

лично я б OR на UNION ALL не менял (пусть ето делает оптимизатор)

хотя если схема хорошо известна,
то можно и заменить с пониманием что так будет оптимальнее
но сопровождать будет явно посложнее

.....
stax


Это только для оптимизации кейсов.
Как мне кажется, если этот запрос и можно хорошо оптимизировать, то только через UNION.
6 фев 19, 16:04    [21802833]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17580
Dshedoo
Как мне кажется, если этот запрос и можно хорошо оптимизировать, то только через UNION.

1. Оптимизация невозможна без конкретной цели и конкретного окружения.
2. Если, к примеру, цель - сокращение dbtime и нагрузки на IO указанного запроса, в table1 триллион записей и предикат "CAID = 111111" низкоселективен, то идея организации двойного прохода по table1 покажется слегка неумной.
3. Ваш вариант union all не эквиваленте исходному запросу.
4. Когда сделаете эквивалентным - рассмотрите случай CAID=DAID=111111

Можно перевести case expression из searched в simple - это несколько сократит издержки и упростит текст почти безотносительно к прочим факторам при условии, что соответствующие атрибуты TABLE2 not null - иначе simple форма становится неудобочитаемой.

Остальное - только "по месту".
К примеру, на решение повлияет возможность ситуации CAID=DAID=111111, соотношение мощностей DAID=111111 и (CAID=111111 and DAID<>111111), наличие индексов, доступный объем памяти и т.д.
6 фев 19, 16:21    [21802846]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
Dshedoo
Member

Откуда:
Сообщений: 370
andrey_anonymous
3. Ваш вариант union all не эквиваленте исходному запросу.
4. Когда сделаете эквивалентным - рассмотрите случай CAID=DAID=111111

3. Можете, конечно, убрать из первого запроса условие по дате, сути это не изменит.
4. Он рассмотрен.

Остальное из разряда "трава зелёная, а небо голубое".
6 фев 19, 16:32    [21802864]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1955
Dshedoo
Это только для оптимизации кейсов.
Как мне кажется, если этот запрос и можно хорошо оптимизировать, то только через UNION.

может ето и имели ввиду хозяева, хз

на собеседовании обычно волнуешся, и я б сразу не додул до union all

зы
я при ручной замене OR на UNION ALL іспользовал LNNVL

зии
интересно что предложил w31 и пошел ли он тест
....
stax
6 фев 19, 16:39    [21802873]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17580
Dshedoo
4. Он рассмотрен.

Остальное из разряда "трава зелёная, а небо голубое".

4.1 DAID = null, CAID = 111111

"остальное" - печальная правда жизни.
Нельзя оптимизировать сферического коня по неопределенному критерию, любое конкретное предложение будет встречено контраргументом.
6 фев 19, 16:50    [21802890]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
Dshedoo
Member

Откуда:
Сообщений: 370
andrey_anonymous
Dshedoo
4. Он рассмотрен.

Остальное из разряда "трава зелёная, а небо голубое".

4.1 DAID = null, CAID = 111111

"остальное" - печальная правда жизни.
Нельзя оптимизировать сферического коня по неопределенному критерию, любое конкретное предложение будет встречено контраргументом.


4.1. Вы правы.
Тогда, как Stax написал выше, необходим LNNVL.
6 фев 19, 16:58    [21802900]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос на интервью  [new]
-2-
Member

Откуда:
Сообщений: 14850
Stax
и пошел ли он тест
для теста запрос перегружен лишними символами и не имеет осмысленного решения.
Неоднозначность хороша только для дискуссии, а дискуссия предполагает листок и собеседника. Вряд ли автор набирал это с листка.
6 фев 19, 17:17    [21802917]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Oracle Ответить