Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. Яб вот это вынес в отдельную времянку и джойнил бы на нее. И почему merge, get_table_persons возвращает примерно столько же сколько в WorkItemAssignedToUserFactvw? Код: sql 1. 2. Скаляр в предикате, к успеху идёшь! (нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 13:20 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymxСоветуйте, как правильноЯ делаю так: Для получения сложного сводного отчета н-р 30-40 колонок с суммами. Это всегда ХП. 0. Делаю список вспомогательных переменных. 1. сначала формирую пустую времянку # нужной структуры (обычно набор ключей и полей для суммовых значений) 2. Наполняю ее в неск. этапов. Где возможно, сразу заполняю суммовые значения. 3. Потом формирую неск. времянок для различных промежуточных результатов. Наполняю их. 4. Делаю несколько апдейтов сумм из п.2 с помощью п.3 5. Опционально удаляю мусор и ненужные данные, кот. иногда вынужденно попадают в результат (н-р дубли данных из разных документов, пустые или несущественные суммы) 6. Вывод окончательного результата: связывание ключей со справочниками, окончательное формирование и форматирование результатов. (профит) Почему именно так ? 1. Текст ХП имеет четкую, читабельную структуру и разбит на несложные части (с коментами) 2. Легко дополнить новыми расчетами. 3. Удобно отлаживать, т.к. можно выделить нужный кусок кода, а остальное отключить. 4. Легко накатить новую версию ХП на продакшн/тест и заново запустить отчет. Вью стараюсь избегать, т.к. изменение ее структуры "не сразу доходит до пользователя". :) Если она активно занята в вычислениях, то ее трудно заменить на другую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 13:37 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
мне надо заполнить времянку пятью или шестью разными группами строк под каждую группу свой алгоритм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 14:03 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
если не предполагается повторное использование кода этих алгоритмов, то делаешь всё в одной проце. так намного удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:09 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Гигабайт Мегабайтович Килобайтовесли не предполагается повторное использование кода этих алгоритмов, то делаешь всё в одной проце. так намного удобнее.запросов, как в первом посте, будет десятка полтора причем в первом посте он упрощен раза в два по сравнению с рабочим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:19 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymx, да без разницы - пишешь большую портянку с сохранением промежуточных результатов, а потом выводишь как тебе надо. Весь вопрос в надобности использовать повторно эти алгоритмы в других процах. Вот тогда и возникают кучи разных вариантов.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:21 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Гигабайт Мегабайтович Килобайтовandreymx, да без разницы - пишешь большую портянку с сохранением промежуточных результатов, а потом выводишь как тебе надо. Весь вопрос в надобности использовать повторно эти алгоритмы в других процах. Вот тогда и возникают кучи разных вариантов..а каждый запрос работает 10 сек чтобы отладить 15-ый, ждешь каждый раз 2 минуты да и рыться в портянках - ну его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:23 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
в оракле намного проще такие работы делать через глобальную времянку глобальную времянку заполняешь пакетом процедур или любой из них чистишь времянку тогда, когда удобно, а не как задумал разработчик СУБД видимость глобальной времянки везде, а в таком случае это большой плюс время на отладку и сопровождение снижается в разы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:27 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymx, Оракл провоцирует писать плохой код... Ораклисты у нас такого наг-нокодили, что уже много лет разгребаем. Извините, не сдержался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 18:58 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовОракл провоцирует писать плохой код... Ораклисты у нас такого наг-нокодили, что уже много лет разгребаем. Извините, не сдержался :) Виноват-то не инструмент. Уж вы-то должны понимать. Губит людей не пиво (с) :) Другое дело, что вот переходят такие cursorнутые ораклисты в ms sql и требуют императивного программирования да побольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 19:06 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
А что, скуль сервер запрещает делать глобальные времянки? Уверен, что нет. Другое дело, что это подход через ()), ну вы поняли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 19:06 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymx, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 20:06 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
CammomileА что, скуль сервер запрещает делать глобальные времянки? Уверен, что нет. Другое дело, что это подход через ()), ну вы поняли.а вы понимаете разницу между оракловой глобальной времянкой и скульной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 21:23 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymxCammomileА что, скуль сервер запрещает делать глобальные времянки? Уверен, что нет. Другое дело, что это подход через ()), ну вы поняли.а вы понимаете разницу между оракловой глобальной времянкой и скульной?А вы понимаете, что не все здесь должны быть в курсе, как там в оракле все устроено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 00:37 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевичandreymxпропущено... а вы понимаете разницу между оракловой глобальной времянкой и скульной?А вы понимаете, что не все здесь должны быть в курсе, как там в оракле все устроено?если человек предлагает аналог, он же разбирается в этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 08:02 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymxА вы понимаете, что не все здесь должны быть в курсе, как там в оракле все устроено?если человек предлагает аналог, он же разбирается в этом?[/quot] Ну так вы первый начали - захотели курсоров в MS SQLе и LOOPного синтаксиса к ним в придачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 08:56 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Руслан Дамирович, не, это всё наносное :) Мне нужен практический совет (бест практис) по реализации задачи - получение данных сложного отчета из кучи непростых юнионов с оптимальными затратами времени на разработку и сопровождение С уважением, Андрей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 09:52 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymxМне нужен практический совет (бест практис) по реализации задачи - получение данных сложного отчета из кучи непростых юнионов BEST-практисес без конкретной задачи - это сферическое зло в вакууме. И тебе уже дали на основе того, что ты нам рассказал - BEST-солюшен 21096909 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 09:59 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичBEST-практисес без конкретной задачи - это сферическое зло в вакууме. укрупненный алгоритм получения данных 1. pers = сервисный подзапрос для получения списка подчиненных 2. bs = сервисный подзапрос для получения списка услуг 3. запрос для получения данных из источника 1 с учетом pers 4. запрос для получения данных из источника 1 с учетом bs 5. апдейт данных 1 6. запрос для получения данных из источника 2 с учетом pers 7. запрос для получения данных из источника 2 с учетом bs 8. апдейт данных 2 9. запрос для получения данных из источника 3 с учетом pers 10. запрос для получения данных из источника 3 с учетом bs 11. апдейт данных 3 каждый из запросов/подзапросов - строк 100-200 кода, время выполнения каждого - 5-10 сек запросы для получения данных с учетом pers и с учетом bs слишком разные, чтобы объединять Итог 12. SELECT общих данных пользователю в отчет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 12:46 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
andreymxРуслан ДамировичBEST-практисес без конкретной задачи - это сферическое зло в вакууме. укрупненный алгоритм получения данных 1. pers = сервисный подзапрос для получения списка подчиненных 2. bs = сервисный подзапрос для получения списка услуг 3. запрос для получения данных из источника 1 с учетом pers 4. запрос для получения данных из источника 1 с учетом bs 5. апдейт данных 1 6. запрос для получения данных из источника 2 с учетом pers 7. запрос для получения данных из источника 2 с учетом bs 8. апдейт данных 2 9. запрос для получения данных из источника 3 с учетом pers 10. запрос для получения данных из источника 3 с учетом bs 11. апдейт данных 3 каждый из запросов/подзапросов - строк 100-200 кода, время выполнения каждого - 5-10 сек запросы для получения данных с учетом pers и с учетом bs слишком разные, чтобы объединять Итог 12. SELECT общих данных пользователю в отчет вот так и в прямую и пишешь )) а как проще разрабатывать - так это каждый определяет для себя )) я в похожих случаях не пишу сразу процу, а сначала в скрипте всё пошагово отлаживаю, и только в итоге заворачиваю в процу. п.с. если в скрипте написать create table #.... и явно не удалять созданную таблицу, то она живёт до тех, пор пока живёт текущий коннекшен - получаем что-то похожие на поведение глобальных таблиц в оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 14:41 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Гигабайт Мегабайтович Килобайтов, а можно таблицу создать до вызова процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 14:44 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Боевые ораклисты, наверное, не в курсе области видимости временных таблиц. При этом, чисто технически, ничего не мешает в раках процедуры DoThings на верхнем уровне сделать времянку, а потому внутри нее разнызыми другими процками к этой времянке обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 16:18 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
CammomileБоевые ораклисты, наверное, не в курсе области видимости временных таблиц. При этом, чисто технически, ничего не мешает в раках процедуры DoThings на верхнем уровне сделать времянку, а потому внутри нее разными другими процками к этой времянке обращаться.на уровне идеи это продумывалось, но на уровне реализации ничего реального в голову не приходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 17:23 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
Гигабайт Мегабайтович Килобайтовесли в скрипте написать create table #.... и явно не удалять созданную таблицу, то она живёт до тех, пор пока живёт текущий коннекшен - получаем что-то похожие на поведение глобальных таблиц в оракле. так ведут себя ##таблицы (которые вообще очень редко должны использоваться) а #таблицы, созданные в процедуре, удаляются по её завершении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 17:46 |
|
||
|
инсерт во времянку намного медленнее, чем просто запрос (возвращает 8 строк)
|
|||
|---|---|---|---|
|
#18+
dies iraeГигабайт Мегабайтович Килобайтовесли в скрипте написать create table #.... и явно не удалять созданную таблицу, то она живёт до тех, пор пока живёт текущий коннекшен - получаем что-то похожие на поведение глобальных таблиц в оракле. так ведут себя ##таблицы (которые вообще очень редко должны использоваться) а #таблицы, созданные в процедуре, удаляются по её завершении вы не понимаете о чем он пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2018, 17:53 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39582763&tid=1690519]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 401ms |

| 0 / 0 |
