CftClub.ru
Клуб специалистов ЦФТ-Банк

Запросы PL+ или SQL

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
De Mian
Участник со стажем
Неподтвержденный


Вступление в Клуб: 26.09.2008
СообщениеВт Ноя 06, 2018 11:36   Запросы PL+ или SQL Ответить с цитатой
Полезность: Нет оценки
Небольшой мини опрос-вопрос:
Кто какой подход предпочитает предпочитает при написании запросов в ЦФТ и почему именно такой выбор?:
1) Синтаксис предложенный платформой развития ЦФТ, где используется точечная нотификация при разименовании реквизитов и соответственно работа соединения таблиц типов ложится на компилятор:
Код:
      select  x(
               x.[PROV_USER].[NAME]
            )
      in ::[MAIN_DOCUM] all
      where
         x.[ACC_DT].[MAIN_V_ID]   like '40702%'
            AND
         x.[ACC_KT].[MAIN_V_ID]   like '706%'

2) стандартный синтаксис SQL, где явно указывается ТБП и условия их соединения:
Код:
      select  x(
               usr.[NAME]
            )
      in ::[MAIN_DOCUM] ,
            (::[AC_FIN] af_d),
            (::[AC_FIN] af_k),
            (::[USER] usr)
         all
      where
         x.[PROV_USER]=usr%id(true)
            and
         x.[ACC_DT]=af_d
            and
         x.[ACC_KT]=af_k
            and
         af_d.[MAIN_V_ID]   like '40702%'
            and
         af_k.[MAIN_V_ID]   like '706%'
Admin
Site Admin
Резидент CftClub
Совладелец


Вступление в Клуб: 09.06.2007
СообщениеВт Ноя 06, 2018 12:28    Ответить с цитатой
Полезность: Нет оценки
Для простых случаев результат компиляции 1 и 2 будет одинаков, поэтому я предпочел бы вариант 1.

"Ручную" связку, как и чистый PL/SQL, использую либо при хитрых условиях, либо при необходимости оптимизировать запрос.
Alkov
Профи
Неподтвержденный


Вступление в Клуб: 23.09.2010
СообщениеСр Ноя 07, 2018 05:19    Ответить с цитатой
Полезность: Нет оценки
Когда много таблиц в первом варианте компилятор так в пакете запрос извратит, что приходится переписывать на второй вариант хотя бы частично.
В общем если в запросе собралось больше трёх таблиц , после варианта 1 всегда иду в пакет и смотрю что же родил больной недомозг.
Эмиралька
Профи
Неподтвержденный


Вступление в Клуб: 09.11.2015
СообщениеЧт Ноя 08, 2018 06:14    Ответить с цитатой
Полезность: Нет оценки
De Mian пишет:
Небольшой мини опрос...

Предпочитаю первый вариант, потому что зачастую он выглядит опрятнее, чем SQL и не затеняет бизнес-логику.
Но если план становится кривым, приходится запрос переписывать по-другому (c SQL-запросами для не-ИБСО проектами я поступаю полностью аналогично).
То есть Admin +1

Alkov пишет:
...что же родил больной недомозг.
улыбнуло Smile Но всё-таки правила построения SQL по PL+ вполне понятны и даже логичны, так что позволю себе не согласиться.
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеПт Ноя 09, 2018 10:14    Ответить с цитатой
Полезность: Нет оценки
Эмиралька пишет:
Но всё-таки правила построения SQL по PL+ вполне понятны и даже логичны, так что позволю себе не согласиться.


нифига не логичны

на группировке часто лажает, приходится явно прописывать

А то скомпилит чорт знает во что успешно, а потом в рантайме падает с ошибкой
_________________
Нельзя всем дать всё: всех много, а всего мало
De Mian
Участник со стажем
Неподтвержденный


Вступление в Клуб: 26.09.2008
СообщениеПт Ноя 09, 2018 23:37    Ответить с цитатой
Полезность: Нет оценки
Эмиралька пишет:

Alkov пишет:
...что же родил больной недомозг.
улыбнуло Smile Но всё-таки правила построения SQL по PL+ вполне понятны и даже логичны, так что позволю себе не согласиться.

Вполне согласен. тем более что все правила подробно расписаны в документе PLPHINTS.TXT и либо вы понимаете как работает компилятор .. либо каждый раз искренне удивляетесь результату.
vtar пишет:

нифига не логичны

на группировке часто лажает, приходится явно прописывать

А то скомпилит чорт знает во что успешно, а потом в рантайме падает с ошибкой

Дайте пример.

Вообще этот небольшой опрос мнений затеял чисто из-за того что хоть и редко, но встречаются SQL-аборигены, которые вполне намеренно и явно не используют PL+ программируя в ЦФТ, объясняя свой выбор больше суевериями, чем конкретными фактами. Один аргумент правда слышал - ЭТО СЛОЖНО ПОНИМАТЬ, но это настолько субъективно, что тут остается только посочувствовать.
Я допускаю, что может что-то я не вижу или не понимаю и поэтому искренне интересно почему люди добровольно выбирают рубить дрова с помощью топора, зажатого между ног, вместо того чтобы взять топор в руки.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru