Показать сообщение отдельно
Старый 01.12.2009, 11:26   #32  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Сисой Посмотреть сообщение
В 1С удобная фишка разыменования запросов. Запрос

X++:
Select Z.. From . as Z
автоматически сформирует левое соединение с таблицей Справочник.Контрагенты и выберет из него ПолноеНаименование. В Ax так же?
Ни в коем случае! Упаси бог!
Эта "удобная фикша" приводит к тому, что на запрос одной таблицы (справочника, регистра), платформа 1С может автоматически построить очень сложный запрос с кучей join'ов. А если запросить две таблицы, то легко можно получить запрос с несколькими десятками таблиц.

И прощай всякая оптимизация. Хотя бы потому, что управлять или отключать такое разыменование невозможно. А, например, MS SQL перестает выполнять оптимизию запроса, если в нем указано больше 8 таблиц.

Ни в коем случае!

Цитата:
Сообщение от Сисой Посмотреть сообщение
Также язык запросов 1С имеет интересное расширение Итоги (Total),
Эта конструкция позволяет, сохранив первоначальный текст запроса, автоматически добавлять в результат итоги, посчитанные по заданным группировкам. Причем результат можно тут же выгрузить в дерево, узлами которого будут описанные итоги.
Ага. Только выполняется это действие НЕ на SQL-сервере. Со всеми вытекающими последствиями для производительности.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Logger (6).