|
Оптимизация соединения в запросе | ☑ | ||
---|---|---|---|---|
0
Ник080808
03.05.19
✎
17:00
|
Если я получаю данные, допустим табличной части Товары РТУ по конкретному документу
и потом мне нужно присобачить другую таблицу с соединением по ссылке, например Выбрать Товары.Номенклатура,ВТ.Статус из Документ.РТУ.Товары Как Товары Внутреннее соединение Регистрсведений.Статусы Как ВТ по Товары.Ссылка= Вт.Документ где Товары.Ссылка=&СсылкаНаМойДокумент собственно, никогда не задумывался. а стоит еще в условии дописывать: по Товары.Ссылка= Вт.Документ И вт.Документ = &СсылкаНаМойДокумент. Будет ли в этом случае запрос оптимальнее или на таком объеме нет? и вообще отбирает ли скуль записи перед тем как соединить по условиям соединения или нет? |
|||
1
fisher
03.05.19
✎
17:15
|
При нормальной работе оптимизатора запросов разницы вроде быть не должно. Скуль пытается рассматривать запрос как декларацию результата, а не как алгоритм выполнения и выстраивает реальный алгоритм выполнения с оглядкой на множество факторов. Другими словами, один и тот же запрос при различном внутреннем состоянии системы может выполняться по-разному. И наоборот, различные запросы могут выполняться одинаково (если предполагается одинаковый результат).
|
|||
2
fisher
03.05.19
✎
17:21
|
Если тема интересна, погугли "план выполнения запроса". У скуля есть инструментарий для анализа реального алгоритма выполнения запроса. Есть куча статей (и в применении к 1С в частности), как его "читать". Собственно, это часть знаний необходимых "эксперту по технологическим вопросам".
|
|||
3
Ник080808
03.05.19
✎
17:33
|
(2) да вот начал разбираться, план запроса я даже получил в профайлере, а как его разобрать, что значат эти надписи инфы маловато. есть пара тройка операторов описанные неплохо, но в целом инфы маловато. сижу майкрософтовскую справку колупаю.
|
|||
4
fisher
03.05.19
✎
18:01
|
(3) Вот навскидку: http://catalog.mista.ru/public/877736/
|
|||
5
H A D G E H O G s
03.05.19
✎
18:51
|
(4) статья печальна и стереотипна.
|
|||
6
Ник080808
03.05.19
✎
20:41
|
(4) по ней и разбираюсь, но много непонятного.
|
|||
7
Ник080808
03.05.19
✎
20:42
|
(5) а чего печальная?
|
|||
8
H A D G E H O G s
03.05.19
✎
21:09
|
(7)
1) nestedloops обкакали зазря. 2) tablescan-ов в 1с почти не бывает (только когда ВТ). 3) indexscan также плох, как и tablescan, но clusteredindexscan еще хуже. дальше не читал, дальше статистика пошла, там ничего нового. |
|||
9
H A D G E H O G s
03.05.19
✎
21:10
|
2) "tablescan-ов в 1с почти не бывает (только когда ВТ). " - вместо него clusteredindexscan
|
|||
10
H A D G E H O G s
03.05.19
✎
21:13
|
(8) "indexscan также плох, как и tablescan" это в том случае, когда ты не попал в сортировку.
|
|||
11
Ник080808
03.05.19
✎
21:17
|
(8) а можете посоветовать что то почитать о планах запросах с детальным описанием всех сканов и прочих операторов
|
|||
12
Ник080808
03.05.19
✎
21:17
|
(11) + с расчетом на нубов.
|
|||
13
H A D G E H O G s
03.05.19
✎
21:30
|
(11) Нет такого. Не находил.
Просто возникает что-то непонятное, ищещь в инете, как правило, англоязычном, а там - хоба - ссылка на Мелкософтовский сайт с описанием причины. Как пример: ВЫБРАТЬ РТУ.Дата, РТУ.Номер из Документ.РТУ как РТУ посмотрите на план запроса на большой базе и удивитесь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |