|
|
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Всё же WITH - это из Оракла, вопрос теоретический. Интересуюсь +/- 'ми выбранной тактики. Попросили отчёт типа квартального, описанный словесным алгоритмом, с итерациями, ветвлениями, неопределённостями формулировок и др. "украшениями". Вообще-то напрашивалось "50 на 50" SQL и PL/SQL, но боялся зашиться с DBMS_OUTPUT и циклами, предположив, что задача будет проясняться и доформулировываться по мере разработки. Решил пойти "теоретико-множественным" путём. В сущности, выбирал из 3-х вариантов, все в базе: Код: plaintext 1. 2. В итоге 15 промежуточных и конечных курсоров, а целиком типа такого: Код: plsql 1. 2. 3. 4. 5. 6. Он в принципе скорость не особо критична, ну выполняется 15-20 сек. и ладно. Из оптимизации: убрал, где можно, тормозящие DISTINCT, но кое-где пришлось и оставить. Вымучил версию 9.3.1, 550 строк вместе с комментами, визуальными отступами, ин-лайн строками для промежуточной отладки каждого курсора. Сделал описание со схемой взаиимодействия кубиков. Не думаю, что очень уж криво сделал, но всё же из-за не большой самостоятельной практики PL/SQL мне не ясны принципиальные подводные камни выбранной реализации в сравнении с другими. Вот об этом хотел бы услышать. Единственное, что запрос этот полностью серверный и другой вариант не рассматриваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 12:32 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98Всё же WITH - это из ОраклаWITH - это из ANSI-стандарта SQL, поддерживается всеми прогрессивными СУБД. дальше не читал.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 12:37 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98, Непонятно какой ответ ты ожидаешь на абстрактный вопрос в вакууме. Если with использовано для декомпозиции логики и в каждом из них использован базовый SQL (без рекурсии и всяких моделей), то допустимый подход. Другое дело, что у многие повторяют мантру, что курсоры это плохо не понимая почему именно. На самом деле, можно управлять какую порцию данных фетчить из курсора за раз и при грамотном подходе сделать решение, как правило, не уступающее по произвоизводительности SQL подходу (опять же, случаи бывают разные, все решает специфика). Жирный минус в случае PL/SQL, что надо создавать пользовательский тип для строки результата и соответсвенно вызывать конструктор для каждой строки (ну или куда-то записывать результат перед выдачей). Категорически рекомендуется для ознакомления эта white paper 20193942 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:07 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
Спасибо, мог и не знать. В конце 90-х я входил в SQL по 92-му и не помню чтоб вокруг упоминали об WITH. И недавно, довелось в старом Sybase - и тоже не встречал. А дальше тоже м.ск-ть не читал , поэтому и ассоциирую его с ораклом. Тем не менее, сравнение с PL/SQL и база всё равно Оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:24 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, зачётный ответ, примерно таких и ожидал! Нет, рекурсий не использовал, здесь не потребовалось, с моделями я наверное не знаком. Из специфики - отчёт из тех, где сетевая синхронизация, т.е. 100% актуальность не актуальна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:31 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
Вот да, "Best and Worst Practices" - именно на эту тему спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:33 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98не помню чтоб вокруг упоминали об WITH. И недавно, довелось в старом Sybase - и тоже не встречал. А дальше тоже м.ск-ть не читал , поэтому и ассоциирую его с ораклом(JFYI): ANSI/ISO/IEC International Standard (IS) Database Language SQL — Part 2: Foundation (SQL/Foundation) «Part 2» September 1999 7.12 <query expression>(...) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:49 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
Даже не так уж долго после первых наводок начинает складываться уверенность, что собственно недостатки могут скрываться преимущественно в оракловых фичах. До сих пор я только умозрительно так думал. Вот ещё себе самому ссылка . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 13:52 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98, Чепуху там написал Дональд, при том сильно устаревшую, что удивляет учитывая дату статьи February 23, 2015. Лучше вообще не читай тот сайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:10 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopЛучше вообще не читай тот сайт.погорячился, на мой взгляд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:13 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, да я там текст только пробежал наискосок, общаий смысл ясен - ну и х...орошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:22 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
--Eugene--dbms_photoshopЛучше вообще не читай тот сайт.погорячился, на мой взглядЯ надеюсь когда-нибудь придет время и ты осознаешь опасность бурлесонщины. PS. Абстрагируясь от его чудо-сайта, я вообще удивляюсь как он после споров с Льюисом на forums.oracle.com, где он выглядел полным клоуном, еще умудряется привлекать клиентов. Вероятно, раскрутке у него стоит поучиться, но не Ораклу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:28 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
Меня печалит, что никто больше в разделе не не хочет высказать "Best and Worst Practices" на архитектурную философию с высоты своего опыта... Может, просто главное уже сказано? Задавая вопрос, я боялся, что вскроется ситуация, когда задумка неплохая, но к-рая реализуема с костылями в силу разных фич. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:35 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98Меня печалит, что никто больше в разделе не не хочет высказать "Best and Worst Practices" на архитектурную философию с высоты своего опыта... Может, просто главное уже сказано? Задавая вопрос, я боялся, что вскроется ситуация, когда задумка неплохая, но к-рая реализуема с костылями в силу разных фич.Да, бывает вскрывается ситуация, "когда задумка неплохая, но к-рая реализуема с костылями в силу разных фич". С ув. Капитан Очевидность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:39 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98, Почему не использовать PL/SQL и коллекции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 15:40 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
в МССКЛ вполне себе работает Код: sql 1. id1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 16:22 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
andreymx, Это к чему было написано? Попробуй в МССКЛ теперь это Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 16:31 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, я тебе и так верю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 16:44 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
saxarockПочему не использовать PL/SQL и коллекции? А почему этот вариант перевесил бы? Свои опасения я описал, в первую очередь - это сложности отладки, ИМХО, когда в SQL всё векторно и сразу перед глазами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 17:46 |
|
||
|
об "+/-" тактики запроса на основе WITH cc1 AS (), cc2 AS () ...
|
|||
|---|---|---|---|
|
#18+
exp98А почему этот вариант перевесил бы?потомучто быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 17:50 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39429343&tid=1886190]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 504ms |

| 0 / 0 |
