|
|
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Конструкция WITH ROLLUP, применяемая с GROUP BY, позволяет добавить строку с суммой значений всех предыдущих строк. Если ее в 1С все же нет, то вопрос в том, как решить эту задачу, модернизировав запрос "малой кровью". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 17:10 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
cyxКонструкция WITH ROLLUP, применяемая с GROUP BY, позволяет добавить строку с суммой значений всех предыдущих строк. если речь о платформе 8.Х, то попробуй ИТОГИ ... Предложение ИТОГИ позволяет определить, расчет каких итогов необходим в запросе. При расчете итогов вычисляются значения агрегатных функций по выборкам с одинаковыми значениями полей – контрольных точек. Итоги добавляются в результат запроса как итоговые строки. Порядок расчета итогов запроса описывается в соответствии со следующими правилами: <Описание итогов> <Итоги> [<Описание итогов>] <Итоги> ИТОГИ [<Список итоговых_полей>] ПО [ОБЩИЕ] <Список контрольных точек> <Список итоговых_полей> <Итоговое_поле> [,<Список_итоговых_полей> [, …]] <Итоговое_поле> <Агрегатная_функция> | <Выражение> [[КАК] <Псевдоним_поля>] <Список контрольных точек> <Контрольная точка> [, <Контрольная точка> [, …]] <Контрольная точка> <Выражение> [[ТОЛЬКО] ИЕРАРХИЯ] | [ПЕРИОДАМИ(Секунда | Минута | Час | День | Неделя | Месяц | Квартал | Год | Декада | Полугодие [,<Литерал типа DATE> | <Идентификатор параметра>] [,<Литерал типа DATE> | <Идентификатор параметра>])] [[КАК] Псевдоним поля] Описание итогов начинается с обязательного ключевого слова ИТОГИ. <Список агрегатных функций> содержит перечень агрегатных функций, которые необходимо рассчитывать в итогах. Агрегатные функции рассматриваются в Агрегатные функции языка запросов. Ключевое слово ОБЩИЕ означает, что необходимо сформировать итоговую строку по всему результату запроса. Подробнее расчет общих итогов описан в Расчет общих итогов. Помимо общих итогов, можно задать расчет итогов по контрольным точкам. Для этого после обязательного ключевого слова ПО необходимо указать <Список контрольных точек>. Каждая <Контрольная точка> содержит <Выражение>, вычисляемое при выполнении запроса. По каждой комбинации значений этих выражений будут рассчитаны и добавлены в результат запроса итоговые строки. Если контрольная точка является ссылкой на справочник, возможен расчет итогов по иерархии справочника. Для этого после такой ссылки надо указать обязательное ключевое слово ИЕРАРХИЯ. Иерархические итоги описаны в Итоги по иерархии. Если контрольная точка является полем - субконто регистра бухгалтерии, то при получении итогов по этой контрольной точке будут игнорироваться значения NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 17:20 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 18:01 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 18:21 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Ссылка ни то, ни сё. Перлы так и сыпят, типа "А сейчас в 1С расчет итогов - узкое место, так как происходит на клиенте" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 19:47 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 19:51 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
WildSeryСсылка ни то, ни сё. Перлы так и сыпят, типа "А сейчас в 1С расчет итогов - узкое место, так как происходит на клиенте" Такие операции на клиенте не есть гуд или вы думаете иначе? Хотя по моим наблюдениям такие расчеты производяться на сервере 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2010, 21:02 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
vitkhvWildSeryСсылка ни то, ни сё. Перлы так и сыпят, типа "А сейчас в 1С расчет итогов - узкое место, так как происходит на клиенте" Такие операции на клиенте не есть гуд или вы думаете иначе? Хотя по моим наблюдениям такие расчеты производяться на сервере 1С. Такие операции есть "ПОХ" где производятся. это копейка. и не надо пихать безграмотные ссылки на никому не нужные мнения дилетанта. Если у вас есть проблемы с производительностью итогов то предложите их предметно к обсуждению, а не так что "есть такое мнение". Предметно - это запросы, версии 1с, результат в ms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 10:39 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
ПаляЕсли у вас есть проблемы с производительностью итогов то предложите их предметно к обсуждению, а не так что "есть такое мнение". Предметно - это запросы, версии 1с, результат в ms. Там есть и запрос в 1С и трасса в профайлере. Или для вас в том топике слишком много букф? Паля Такие операции есть "ПОХ" где производятся. это копейка. Копейка? 90 % от общего времени выполнения запроса! Насколько я помню у меня данный запрос выполнялся несколько минут, а это запрос из стандартного отчета в 1С. Я вообще то не ожидал, что моя ссылка вызовет такую бурю, если одбросить весь тот флуд которым славиться миста, т.е. три главных вывода в тему топика: 1. ИТОГИ ПО это есть аналог WITH ROLLUP для запросов 1С. 2. ИТОГИ ПО работают не всегда с той производительность которую дает WITH ROLLUP. 3. Многоплатформенность 1С применительно к серверам БД приводит к не применимости использования WITH ROLLUP т.к. данная конструкция является частным расширением синтаксиса языка T-SQL. Паля и не надо пихать безграмотные ссылки на никому не нужные мнения дилетанта. Ну уж если лично вам не данно читать между строк, не стоит мнение других выставлять за мнениями дилетантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 11:29 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
vitkhv Там есть и запрос в 1С и трасса в профайлере. Или для вас в том топике слишком много букф? мм. может я что-то путаю . не вижу в ссылке вообще ничего ПО ТЕМЕ "быстродействие ИТОГов 1с". Ну то есть вообще ничего кроме "по моему мнению наблюдаются тормоза". что предлагаете делать с такими заявлениями? Копейка? 90 % от общего времени выполнения запроса! Насколько я помню у меня данный запрос выполнялся несколько минут, а это запрос из стандартного отчета в 1С. Ещё раз. для того чтобы это было не только в вашей голове - необходимо раскрыть тему. как минимум привести как можно более простой, воспроизводимый запрос, вычисление итогов которого критично, c объяснениями и замерами. Приводить ссылку на такой текст имеет смысл. Зачем приводить ссылку на непонятные утверждения неизвестно кого - "я что-то помню" и "мне вроде казалось"? Ерунда какая. 1. ИТОГИ ПО это есть аналог WITH ROLLUP для запросов 1С. 2. ИТОГИ ПО работают не всегда с той производительность которую дает WITH ROLLUP. 3. Многоплатформенность 1С применительно к серверам БД приводит к не применимости использования WITH ROLLUP т.к. данная конструкция является частным расширением синтаксиса языка T-SQL. Ну да. согласен по всем трём. мораль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 12:00 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля Ну да. согласен по всем трём. мораль? 8.1 В языке запросов нет аналога WITH ROLLUP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 12:26 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля мм. может я что-то путаю . не вижу в ссылке вообще ничего ПО ТЕМЕ "быстродействие ИТОГов 1с". Ну то есть вообще ничего кроме "по моему мнению наблюдаются тормоза". что предлагаете делать с такими заявлениями? Вы правы, тема топика там "v8: По мотивам-обсуждение статьи о сравнении 1С и Navision." А по поводу "по моему наблюдению наблюдаются тормоза", чьи наблюдения для вас имеют вес, что бы вы такого тестера не назвали дилетантом? Самомнение хлещет через край, господин Паля. Паля Ещё раз. для того чтобы это было не только в вашей голове - необходимо раскрыть тему. как минимум привести как можно более простой, воспроизводимый запрос, вычисление итогов которого критично, c объяснениями и замерами. Приводить ссылку на такой текст имеет смысл. Зачем приводить ссылку на непонятные утверждения неизвестно кого - "я что-то помню" и "мне вроде казалось"? Ерунда какая. Не передергивайте, там нет "я что то помню" и "мне вроде показалось", там есть утверждение что есть потери производительности в ИТОГИ ПО с которым вы в итоге согласились, приведен запрос 1С и трасса в профайлере и указанно, что сам запрос выполняется моментально, а затем идет его обработка на сервере 1С, которая занимает огромное количество времени по сравнению со временем выполнения самого запроса. Т.к. трасса в профайлере показывает, что в 1С запросе не используется Group By, следует вывод функцию 1С выполняет сама, причем выполняет отвратительно медленно. Какие еще вам замеры нужны, какого рода нагрузочное тестирование? Про "простой" и "воспроизводимый запрос", там приведен конкретный запрос который тормозил с указанием в топике про то, что в запросе используются множественные объединения, на простых запросах, как раз таки проблем и не наблюдалось. Да кстати, от вас кроме обвинений в некомпетенции я никаких опровержений хотя бы на уровне приведенных примеров топика указанного в ссылке я не увидел, я уже молчу про нагрузочное тестирование в ВАШЕМ исполнении, также как я никогда до этого не видел ВАШИ подобные тесты на этом форуме, может конечно плохо смотрел, если ошибаюсь дайте ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 13:05 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Shuhard, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 19:21 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
ээ. вы про чо вообще? Пальцем ткните где это всё о чём вы говорите. Нет честно. я может не в ту ссылку ткнулся. я вижу только вот по ссылке: авторВот вычитал такое в статье - "1С 80 поддерживает полноценные SQL запросы на чтение данных, с объединениями множества таблиц." Не согласен - 1С не подерживает функции суперагрегирования данных WITH CUBE и WITH ROLLUP. В 1С в большинстве SQL запросов не используется GROUP BY, как я понял из своих наблюдений 1С тянет на сервер предприятия выборку и там ее группирует в соответсвии с параметрами указанными в построителе отчетов. Трассировка в профайлере только подтвердила мои наблюдения. Так вот по некоторым SQL запросам в которых используется "с объединениями множества таблиц" наблюдаются жуткие тормоза. Поэтому если читать вот это-"Или же можно предположить наличие большой избыточности данных, т.е. наличие большого количества таблиц, служащих только для облегчения обработки данных, данные в которые переносятся триггерами из исходных таблиц." в 1C чтоб не тормозила тоже необходима определенная избыточность данных и по моему мнению необходимая избыточность превосходит все разумные границы. Где все те чудесные исследования о которых вы говорите. чот я туплю куда смотреть то надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 19:50 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
cyxShuhard, Спасибо! Пожалуйста Стоит обратить внимание, что в 8.2 для ускорения расчета Итогов появились разные "вкусности" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 20:02 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля Где все те чудесные исследования о которых вы говорите. чот я туплю куда смотреть то надо? Паля я где то писал об иследованиях да кто му же и чудесных? Право не нужно сарказма. Ну а если вы не можете найти сам запрос и его трассу - в одном из моих постов есть такой значечек ">>" нажмите на него, и текст откроется. Ну и цель моей ссылки вызвавшей в вашей душе такой дискомфорт было все во лишь донести до автора топика - такую простую мысль: 1. ИТОГИ ПО это есть аналог WITH ROLLUP для запросов 1С. (на это сух указал до меня Shuhard) 2. ИТОГИ ПО работают не всегда с той производительность которую дает WITH ROLLUP. (это я описал в своей ссылке) 3. Многоплатформенность 1С применительно к серверам БД приводит к не применимости использования WITH ROLLUP т.к. данная конструкция является частным расширением синтаксиса языка T-SQL. (ну это естественный вывод если учитывать, что 1С может работать с несколькими серверами БД). Что вас так завело, что вы позволили себе обвинить меня в дилетанстве мне не понятно, будте добры объясните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 23:39 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
vitkhv[Многоплатформенность 1С применительно к серверам БД приводит к не применимости использования WITH ROLLUP т.к. данная конструкция является частным расширением синтаксиса языка T-SQL. (ну это естественный вывод если учитывать, что 1С может работать с несколькими серверами БД).+1. Обсуждали подобные вопросы на курсах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2010, 23:53 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
vitkhv, Ну а если вы не можете найти сам запрос и его трассу - в одном из моих постов есть такой значечек ">>" нажмите на него, и текст откроется. ааа!! типа должно разворачиваться там? звиняйте коллега!! у меня не разворачивается ни в опере ни в IE.. Сори. что вижу то вижу. Если там что-то есть разумное - тогда я виноват! прошу прощения! (уже неважно что, главно что есть!! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2010, 00:33 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паляvitkhv, Ну а если вы не можете найти сам запрос и его трассу - в одном из моих постов есть такой значечек ">>" нажмите на него, и текст откроется. ааа!! типа должно разворачиваться там? звиняйте коллега!! у меня не разворачивается ни в опере ни в IE.. Сори. что вижу то вижу. Если там что-то есть разумное - тогда я виноват! прошу прощения! (уже неважно что, главно что есть!! ) эта фича Мисты, броузер не причём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 10:33 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Shuhard эта фича Мисты, броузер не причём В смысле в чём фича? ну теперь то я догадался что там что-то должно быть. но у меня не раскрывается по нажатию.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:27 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля В смысле в чём фича? ну теперь то я догадался что там что-то должно быть. но у меня не раскрывается по нажатию.. Извиняюсь, совсем забыл, что там это счастье можно посмотреть только после регистрации. И если в опере, после регистрации надо нажать Ctrl+R. За значком там скрывается вот это: авторВот запрос - из Анализ доступности товаров на складах: Код: plaintext 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. Вот трасса в профайлере- Код: plaintext 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. Группировки - Склад,Номенклатура Запрос на SQL сервере выполняется моментально 98% времени тратится на вывод отчета. Все эти 98% загружен сервер предприятия. В трассе запроса нет Group BY. В случае если бы группировал SQL сервер это было бы моментально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 14:18 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля но у меня не раскрывается по нажатию.. мне пох, тебе обидно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 15:27 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Лана. с техзатыком разобрались. Продолжим сраца по существу. Группировки - Склад,Номенклатура Запрос на SQL сервере выполняется моментально 98% времени тратится на вывод отчета. Все эти 98% загружен сервер предприятия. В трассе запроса нет Group BY. В случае если бы группировал SQL сервер это было бы моментально. Нет ну причём тут ИТОГИ? То что вы написали ВООБЩЕ ничего не означает. о чём эти наблюдения? Сделайте два одинаковых запроса с группировкой. Добавьте к одному из них расчёт итогов. Запустите один и второй - посмотрели разницу увидели что разница большая - объяснили почему. затем на разных количествах строк ещё надо убедится что зависимость от итогов существенная и несравнима с тормозом от обхода таблицы языком 1с и обращения к полям. Мне лично очевидно, что нет проблем считать итоги на клиенте и во много раз быстрее чем обход таблицы скриптом 1с. если это не так, то просто надо это показать и удивится багу платформы. Ваш пример не демонстрирует ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 17:33 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
ПаляНет проблем считать итоги на клиенте и во много раз быстрее чем обход таблицы скриптом 1с в абстрактной учетной системе возможно проблем и нет к 8.1 утверждение отношения не имеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 17:49 |
|
||
|
8.1 В языке запросов нет аналога WITH ROLLUP?
|
|||
|---|---|---|---|
|
#18+
Паля Нет ну причём тут ИТОГИ? То что вы написали ВООБЩЕ ничего не означает. о чём эти наблюдения? Сделайте два одинаковых запроса с группировкой. Добавьте к одному из них расчёт итогов. Запустите один и второй - посмотрели разницу увидели что разница большая - объяснили почему. затем на разных количествах строк ещё надо убедится что зависимость от итогов существенная и несравнима с тормозом от обхода таблицы языком 1с и обращения к полям. Умея пользоваться мониторингом не только 1С, достаточно и одного запроса, чтобы понять, что затык расчета итогов - на стороне 1С. :) А уже в чем конкретно этот затык - совершенно фиолетово, ибо повлиять на его, не выходя за рамки платформы еще пока нельзя... ПаляМне лично очевидно, что нет проблем считать итоги на клиенте и во много раз быстрее чем обход таблицы скриптом 1с. Это естественно, но расчет итогов на сервере БД также во много раз быстрее, чем на клиенте. Даже если клиентом тут выступает сервер приложения 1С. И это не бага платформы, а вполне нормальное поведение - с учетом единого сервера приложения под все поддерживаемые БД. Вот если бы 1С сделала под каждую БД отдельный оптимизированный сервер приложения - тогда это было бы бага. А пока это фича, ибо "так и было задумано"... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 18:26 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36879703&tid=1521969]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
5ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 373ms |

| 0 / 0 |
