Что быстрее выполняется: вложенные запросы или временные таблицы в запросах?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) newborn, этот вопрос тянет на докторскую. Если база на сиквеле, то там хотя бы можно сделать оба варианта и посмотреть профайлером план выполнения запросов и попробовать из него что-то узнать. Если база файловая, то тайну могут теоретически знать разработчики 1с, но я немного сомневаюсь, что кто-то может ответить на этот вопрос в общем без всякой конкретики.
Всё зависит от.
Иногда временные таблицы быстрей, иногда вложенные запросы.
Нужно проверять на конкретных базах, конкретных данных и конкретном железе.
Хотя 1с не рекомендует использовать вложенные (не смогли написать оптимизатор?)
Иногда временные таблицы быстрей, иногда вложенные запросы.
Нужно проверять на конкретных базах, конкретных данных и конкретном железе.
Хотя 1с не рекомендует использовать вложенные (не смогли написать оптимизатор?)
На самом деле всё зависит от конкретной задачи. Нельзя утверждать со 100% гарантией что во всех случаях быстрее то или это. Я пишу всё на временных таблицах, мне так удобнее их читать и разрабатывать(хотя иногда приходится делать через вложенные, по причине скорости).
Вложенные запросы могут точно так же быстро(а в некоторых случаях и быстрее отрабатывать). Так же временные таблицы хорошо использовать когда идет частое обращение к виртуальной таблице (отобрал 1 раз всё во временную таблицу, а потом крутишь её как хочешь).
Вложенные запросы могут точно так же быстро(а в некоторых случаях и быстрее отрабатывать). Так же временные таблицы хорошо использовать когда идет частое обращение к виртуальной таблице (отобрал 1 раз всё во временную таблицу, а потом крутишь её как хочешь).
На дисках ИТС - есть специальный раздел, посвященный оптимизации запросов :)
В общем случае лучше использовать временные таблицы, тогда улучшается читаемость запросов, появляется возможность многократного использования полученного результата, в большинстве случаев работа со временными таблицами происходит быстрее.
Простые вложенные запросы при использование MS SQL версии могут выполняться быстрее - все-таки в MS SQL встроен оптимизатор выполнения запроса, который может соединить подзапросы быстрее чем если явно будет прописана выборка данных во временную таблицу.... но иногда оптимизатор работает не правильно ;) и тогда запросы без временных таблиц - ну просто тормозят ;)
В общем случае лучше использовать временные таблицы, тогда улучшается читаемость запросов, появляется возможность многократного использования полученного результата, в большинстве случаев работа со временными таблицами происходит быстрее.
Простые вложенные запросы при использование MS SQL версии могут выполняться быстрее - все-таки в MS SQL встроен оптимизатор выполнения запроса, который может соединить подзапросы быстрее чем если явно будет прописана выборка данных во временную таблицу.... но иногда оптимизатор работает не правильно ;) и тогда запросы без временных таблиц - ну просто тормозят ;)
при использовании временных таблиц в громоздких запросах не надо забывать об индексации полей, участвующих потом в соединениях - это может существенно ускорить работу на больших выборках (а может и немного замедлить на маленьких).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот