![]() |
![]() |
![]() |
|
Анализ SQL запросов из 1С к СУБД | ☑ | ||
---|---|---|---|---|
0
mzelensky
11.01.13
✎
11:09
|
Доброго всем!
Сейчас встал один спор про оптимизацию запроса, а именно: Если делаем выборку данных и потом левым соединением цепляем вложенный запрос, например Выбрать Т1.1 Т2.1 из Т1 Левое соединение ( выбрать т3.1 из Т3 ) как т2 по Т1.1 = т2.1 Так вот: 1) Сколько запросов пошлет 1С-ка менеджеру СУБД (в файловом и серверном вариантах) 2) как будет выглядеть SQL запрос (в файловом и серверном вариантах) П.С. + подскажите, где и как можно увидеть/проанализировать эти самые "преобразованные" SQL запросы ?! |
|||
1
mzelensky
11.01.13
✎
11:10
|
(0) есть какие-нить обработки или еще что-то, где можно подать на вход 1С-кий запрос, а на выходе получить "преобразованный" SQL-запрос ?!
|
|||
2
Fragster
гуру
11.01.13
✎
11:11
|
1) минимум 1 запрос
2) есть куча тулзов, от встроенного в скуль профайлера и до техножурнала и спец инструментов |
|||
3
Fragster
гуру
11.01.13
✎
11:11
|
(1) есть
|
|||
4
el-gamberro
11.01.13
✎
11:12
|
1. 1 запрос
2. Примерно так и будет Насчет запросов в файловом варианте... как бы тебе это сказать... |
|||
5
sda553
11.01.13
✎
11:13
|
sql профайлер поможет тебе увидеть все что посылает 1с в sql
|
|||
6
mzelensky
11.01.13
✎
11:13
|
(2) Тут понятно что минимум 1. от чего зависит количество? как это заранее предсказать, чтобы более оптимально запрос написать?!
|
|||
7
mzelensky
11.01.13
✎
11:14
|
(5) а если файловый вариант базы?!
|
|||
8
mzelensky
11.01.13
✎
11:16
|
Просто спор встал в следующем:
Мол если делать соединение с вложенным запросом. то 1С-ка сперва пошлет СУБД левую таблицу, получит результат. Затем возьмет правую таблицу (вложенный запрос) - пошел его в менеджре СУБД, получит результат. А уж потом будет оперировать этими результатами. Вопрос на сколько это имеет место в действительности!? Т.е. какое действие на какой стороне происходит и в какой последовательности?! |
|||
9
Fragster
гуру
11.01.13
✎
11:19
|
(6) ну, если там есть запрос к таблице остатков - предварительно будет еще запрос к таблице, где хранятся даты рассчитанных итогов.
|
|||
10
H A D G E H O G s
11.01.13
✎
11:21
|
(8) нинасколько.
|
|||
11
Fragster
гуру
11.01.13
✎
11:22
|
(8) в скуле тоже есть вложенные запросы, а файловая покрыта мраком
|
|||
12
H A D G E H O G s
11.01.13
✎
11:22
|
(8) SQL все сделает сам.
2 вложенными циклами. |
|||
13
mzelensky
11.01.13
✎
11:23
|
(9) ок, давай чуть более точечно. Допустим:
Выбрать Т1.1 Т2.1 из Т1 Левое соединение ( выбрать т3.1 из Т3 ) как т2 по Т1.1 = т2.1 Где Т1 - таблица "Справочник.Контрагенты" т3 - таблица "Справочник.ДоговорКонтрагента.ТЧ" - ну т.е. это какая-то табличная часть справочника, которая выбирается во вложенном запросе, затем группируется и этот результат уже соединяется с таблицей Т1. Вот в данном случае сколько будет запросов из 1С к СУБД, какие данные где будут обрабатываться (т.е. все будет обработано в СУБД или часть в СУБД, а часть в 1С). |
|||
14
Fragster
гуру
11.01.13
✎
11:24
|
(13) 1
|
|||
15
mzelensky
11.01.13
✎
11:25
|
(10) Где это почитать можно?!
Просто сколько людей столько и мнений. Уже много раз подымались подобные темы + общаясь с разными людьми слышу разные (порой совсем разные) сведения. "Так где же истина, брат" (с) |
|||
16
H A D G E H O G s
11.01.13
✎
11:27
|
(15) Достаточно подумать логически.
|
|||
17
Fragster
гуру
11.01.13
✎
11:27
|
(15) открой профайлер и посмотри - на многое откроются глаза
|
|||
18
mzelensky
11.01.13
✎
11:29
|
(17) а где его там найти?! это в Менеджменте?
|
|||
19
H A D G E H O G s
11.01.13
✎
11:29
|
(15) Ну или запустить Профайлер, посмотреть, как 1С строит 1 запрос к SQL в случае (0), как 1С строит доп. запросы к таблице метаданных, выбирая значения перечислений, строит временные таблицы при получении ВТ Остатки.
"Много неясного в странной стране, Можно запутаться и заблудиться. Даже мурашки ползут по спине, Если представить, что может случиться. Вдруг будет пропасть и нужен прыжок. Струсишь ли сразу? Прыгнешь ли смело? А? э... так-то, дружок, В этом-то все и дело." |
|||
20
H A D G E H O G s
11.01.13
✎
11:30
|
(18) ms sql profiler - погугли.
Это дает 100500 к понимаю 1С. |
|||
21
H A D G E H O G s
11.01.13
✎
11:31
|
Самое забавное смотреть на партянку разыменования ДокументСсылка.
|
|||
22
mzelensky
11.01.13
✎
11:32
|
(19) вопросы "оптимизации" и попытки осознания логики работы системы порой приводят в ступор...
|
|||
23
mzelensky
11.01.13
✎
11:32
|
(20) ок, спасибо!
|
|||
24
H A D G E H O G s
11.01.13
✎
11:35
|
(22) Система работает очень логично и оптимально.
|
|||
25
mzelensky
11.01.13
✎
11:37
|
(24) она то может и работает, но объяснить "как именно она это делает" никто толком не может.
|
|||
26
Fragster
гуру
11.01.13
✎
11:39
|
(25) кто может - тот не задает вопросов, ибо ему все понятно
|
|||
27
Fragster
гуру
11.01.13
✎
11:40
|
вот небольшое погружение на хабре
http://habrahabr.ru/post/164913/ |
|||
28
el-gamberro
11.01.13
✎
12:05
|
(22) то что ты оптимизация в кавычках написал это очень правильно :)))
потом что force order и hash join ты никогда в 1ском запросе не напишешь |
|||
29
МихаилМ
11.01.13
✎
12:47
|
в (27)
больше дезинформации, чем информации. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |