Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Анализ SQL запросов из 1С к СУБД

Анализ SQL запросов из 1С к СУБД
Я
   mzelensky
 
11.01.13 - 11:09
Доброго всем!
Сейчас встал один спор про оптимизацию запроса, а именно:

Если делаем выборку данных  и потом левым соединением цепляем вложенный запрос, например
Выбрать Т1.1
 
Т2.1
из Т1
Левое соединение (
выбрать т3.1
из Т3
) как т2
по Т1.1 = т2.1

Так вот:
1) Сколько запросов пошлет 1С-ка менеджеру СУБД (в файловом и серверном вариантах)
2) как будет выглядеть SQL запрос (в файловом и серверном вариантах)


П.С. + подскажите, где и как можно увидеть/проанализировать эти самые "преобразованные" SQL запросы ?!
 
 
   mzelensky
 
1 - 11.01.13 - 11:10
(0) есть какие-нить обработки или еще что-то, где  можно подать на вход 1С-кий запрос, а на выходе получить "преобразованный" SQL-запрос ?!
   Fragster
 
2 - 11.01.13 - 11:11
1) минимум 1 запрос
2) есть куча тулзов, от встроенного в скуль профайлера и до техножурнала и спец инструментов
   Fragster
 
3 - 11.01.13 - 11:11
(1) есть
   el-gamberro
 
4 - 11.01.13 - 11:12
1. 1 запрос
2. Примерно так и будет
Насчет запросов в файловом варианте... как бы тебе это сказать...
   sda553
 
5 - 11.01.13 - 11:13
sql профайлер поможет тебе увидеть все что посылает 1с в sql
   mzelensky
 
6 - 11.01.13 - 11:13
(2) Тут понятно что минимум 1. от чего зависит количество? как это заранее предсказать, чтобы более оптимально запрос написать?!
   mzelensky
 
7 - 11.01.13 - 11:14
(5) а если файловый вариант базы?!
   mzelensky
 
8 - 11.01.13 - 11:16
Просто спор встал в следующем:

Мол если делать соединение с вложенным запросом. то 1С-ка сперва пошлет СУБД левую таблицу, получит результат. Затем возьмет правую таблицу (вложенный запрос) - пошел его в менеджре СУБД, получит результат. А уж потом будет оперировать этими результатами.

Вопрос на сколько это имеет место в действительности!?
Т.е. какое действие на какой стороне происходит и в какой последовательности?!
   Fragster
 
9 - 11.01.13 - 11:19
(6) ну, если там есть запрос к таблице остатков - предварительно будет еще запрос к таблице, где хранятся даты рассчитанных итогов.
   H A D G E H O G s
 
10 - 11.01.13 - 11:21
(8) нинасколько.
 
 Рекламное место пустует
   Fragster
 
11 - 11.01.13 - 11:22
(8) в скуле тоже есть вложенные запросы, а файловая покрыта мраком
   H A D G E H O G s
 
12 - 11.01.13 - 11:22
(8) SQL все сделает сам.
2 вложенными циклами.
   mzelensky
 
13 - 11.01.13 - 11:23
(9) ок, давай чуть более точечно. Допустим:

Выбрать Т1.1
Т2.1
из Т1
Левое соединение (
выбрать т3.1
из Т3
) как т2
по Т1.1 = т2.1

Где Т1 - таблица "Справочник.Контрагенты"
т3 - таблица "Справочник.ДоговорКонтрагента.ТЧ" - ну т.е. это какая-то табличная часть справочника, которая выбирается во вложенном запросе, затем группируется и этот результат уже соединяется с таблицей Т1.


Вот в данном случае сколько будет запросов из 1С к СУБД, какие данные где будут обрабатываться (т.е. все будет обработано в СУБД или часть в СУБД, а часть в 1С).
   Fragster
 
14 - 11.01.13 - 11:24
(13) 1
   mzelensky
 
15 - 11.01.13 - 11:25
(10) Где это почитать можно?!

Просто сколько людей столько и мнений. Уже много раз подымались подобные темы + общаясь с разными людьми слышу разные (порой совсем разные) сведения.

"Так где же истина, брат" (с)
   H A D G E H O G s
 
16 - 11.01.13 - 11:27
(15) Достаточно подумать логически.
   Fragster
 
17 - 11.01.13 - 11:27
(15) открой профайлер и посмотри - на многое откроются глаза
   mzelensky
 
18 - 11.01.13 - 11:29
(17) а где его там найти?! это в Менеджменте?
   H A D G E H O G s
 
19 - 11.01.13 - 11:29
(15) Ну или запустить Профайлер, посмотреть, как 1С строит 1 запрос к SQL в случае (0), как 1С строит доп. запросы к таблице метаданных, выбирая значения перечислений, строит временные таблицы при получении ВТ Остатки.

"Много неясного в странной стране,
Можно запутаться и заблудиться.
Даже мурашки ползут по спине,
Если представить, что может случиться.
Вдруг будет пропасть и нужен прыжок.
Струсишь ли сразу? Прыгнешь ли смело?
А? э... так-то, дружок,
В этом-то все и дело."<
   H A D G E H O G s
 
20 - 11.01.13 - 11:30
(18) ms sql profiler - погугли.
Это дает 100500 к понимаю 1С.
   H A D G E H O G s
 
21 - 11.01.13 - 11:31
Самое забавное смотреть на партянку разыменования ДокументСсылка.
   mzelensky
 
22 - 11.01.13 - 11:32
(19) вопросы "оптимизации" и попытки осознания логики работы системы порой приводят в ступор...
   mzelensky
 
23 - 11.01.13 - 11:32
(20) ок, спасибо!
   H A D G E H O G s
 
24 - 11.01.13 - 11:35
(22) Система работает очень логично и оптимально.
   mzelensky
 
25 - 11.01.13 - 11:37
(24) она то может и работает, но объяснить "как именно она это делает" никто толком не может.
   Fragster
 
26 - 11.01.13 - 11:39
(25) кто может - тот не задает вопросов, ибо ему все понятно
   Fragster
 
27 - 11.01.13 - 11:40
вот небольшое погружение на хабре
http://habrahabr.ru/post/164913/
   el-gamberro
 
28 - 11.01.13 - 12:05
(22) то что ты оптимизация в кавычках написал это очень правильно :)))
потом что force order и hash join ты никогда в 1ском запросе не напишешь
   МихаилМ
 
29 - 11.01.13 - 12:47
в (27)
больше дезинформации, чем информации.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует