|
Дали запрос, который необходимо оценить. | ☑ | ||
---|---|---|---|---|
0
wowik
24.10.18
✎
21:33
|
Подскажите, все ли здесь правильно?
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК СкладОстаток, ТоварыОрганизацийОстатки.КоличествоОстаток КАК ОрганизацияОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура.Ссылка ГДЕ ТоварыНаСкладахОстатки.Склад = &Склад И ТоварыОрганизацийОстатки.Организация = &Организация И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура |
|||
1
Лефмихалыч
24.10.18
✎
21:35
|
нет
|
|||
2
1CSharp
24.10.18
✎
21:35
|
5 ошибок насчитал
|
|||
3
Лефмихалыч
24.10.18
✎
21:37
|
(2) а две последние строчки - это у тебя две ошибки или одна?
|
|||
4
wowik
24.10.18
✎
21:37
|
Сообщите пожалуйста об ошибках. Это крайне важно. Я нашел ошибки некоторые, необходимо сравнить.
|
|||
5
palsergeich
24.10.18
✎
21:38
|
(4)
ГДЕ ТоварыНаСкладахОстатки.Склад = &Склад И ТоварыОрганизацийОстатки.Организация = &Организация И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура это одна большая ошибка |
|||
6
Лефмихалыч
24.10.18
✎
21:38
|
(4) сначала ты свои выкладывай, а то так не интересно
|
|||
7
PR
24.10.18
✎
21:38
|
(4) Да легко
После сообщите запятая нужна |
|||
8
wowik
24.10.18
✎
21:39
|
(6) - нет соединения по Складу, СерииНоменклатуры,Характеристике между "ТоварыНаСкладах" и "ТоварыОрганизаций"
- вместо ТоварыОрганизацийОстатки.Номенклатура.Ссылка нужно писать ТоварыОрганизацийОстатки.Номенклатура, это лишняя связь - отбор необходимо делать в виртуальных таблицах - отбор по складу в одном регистре есть, в другом нет, почему? |
|||
9
palsergeich
24.10.18
✎
21:40
|
(8) Потому что товары организаций там нет складов. А в товарах на склаждах нет организаций, это разные разделы учета
|
|||
10
Лефмихалыч
24.10.18
✎
21:45
|
(8) слона-то ты и не приметил.
Соединение здесь само по себе - это один большой косяк. Виртуальные таблицы соединяют друг с другом только мудаки. |
|||
11
palsergeich
24.10.18
✎
21:46
|
ТоварыНаСкладахОстатки.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура.Ссылка Само по себе грубейшая ошибка, а если взять последнюю УТ, то в товарах организации нет измерения Номенклатура вообще, там ключиАналитикиНоменклатуры
|
|||
12
wowik
24.10.18
✎
21:47
|
(10) +100!
|
|||
13
1CSharp
24.10.18
✎
21:47
|
(3) Считал как две. Там с учетом отбора по номенклатуре можно ещё одну прибавить, но уже было лень писать)
(8) Соед... |
|||
14
palsergeich
24.10.18
✎
21:47
|
(10) Это оперативные остатки, там это допускается
|
|||
15
wowik
24.10.18
✎
21:47
|
(9) это почему нет склада в товарах организаций? от настроек зависит.
|
|||
16
Лефмихалыч
24.10.18
✎
21:47
|
и отборы все - в параметры надо. Это помимо того, что так в принципе не надо делать вообще изначально
|
|||
17
palsergeich
24.10.18
✎
21:50
|
(15) Потому что нету https://ibb.co/dZ7iGV
|
|||
18
1CSharp
24.10.18
✎
21:50
|
(10) А что не так с соединением виртуальных таблиц?
Как иначе получить остатки из двух виртуальных таблиц в строке? |
|||
19
wowik
24.10.18
✎
21:51
|
(17) Конфигурация УПП 1.3, забыл сказать.
|
|||
20
palsergeich
24.10.18
✎
21:54
|
(18) При неоперативных остатках это подзапрос 2го уровня вложенности и оптимизатор СУБД очень сильно лажает. Это если в кратце.
При оперативных отстатках - просто поиск с отборами в таблице остатков - там соединение 2х вирт таблиц остатков не вызовет технологических проблем |
|||
21
Лефмихалыч
24.10.18
✎
21:55
|
(18) для этого - временные таблицы.
С самими виртуальными нет проблем, проблемы начинаются с из соединением друг с другом потому, что виртуальная таблица - это запрос. |
|||
22
1CSharp
24.10.18
✎
21:56
|
(20) Т.е. просто сначала в ВТ предлагаете поместить?
|
|||
23
palsergeich
24.10.18
✎
21:58
|
(21) Не просто запрос, а получаются расчитанные остатки и от них суммируются движения, и при соединении оптимизатор очень часто и очень сильно лажает.
При ОПЕРАТИВНЫХ остатках (без указания периода остатков) - простейший запрос. ВТ тоже не бесплатные. Оперативные остатки - не имеет смысла. Не оперативные остатки - имеет смысл |
|||
24
vde69
24.10.18
✎
22:00
|
для начала нужно заполнить максимум параметров в виртуальной таблице
|
|||
25
Лефмихалыч
24.10.18
✎
22:01
|
(23) горшочек, не вари
(22) да |
|||
26
palsergeich
24.10.18
✎
22:03
|
(25) Ну ок, мне же лучше, я потом за исправление в том числе таких ошибок премии получаю.
|
|||
27
vde69
24.10.18
✎
22:03
|
(22) не обязательно, все зависит от размера выборки виртуальных таблиц после того как сделаешь (24)
и надо учитывать, что создание ВТ и работа внутри нее имеет свои накладные расходы, по этому ВТ имеет смысл далеко не всегда... |
|||
28
wowik
24.10.18
✎
22:08
|
Можете поставить оценку по пятибалльной шкале разработчику данного запроса?
|
|||
29
Лефмихалыч
24.10.18
✎
22:08
|
(28) кол. Вазелинового дерева.
|
|||
30
palsergeich
24.10.18
✎
22:09
|
(28) 2, все ошибки, кроме трений нужно ВТ или нет являются грубейшими
|
|||
31
palsergeich
24.10.18
✎
22:10
|
И хоть никто не обратил на это внимание, но вот это ТоварыОрганизацийОстатки.Номенклатура.Ссылка Просто злейшее зло, особенно в соединении
|
|||
32
vde69
24.10.18
✎
22:11
|
(28) данный запрос на базе где в регистрах будет хотя бы по 100тыс записей (а это очень не много) - тебе завесит сервак минут на 10... причем полность....
по этому автору - 2 с минусом |
|||
33
palsergeich
24.10.18
✎
22:13
|
(32) Не, может и проскочить, я встречал когда и 3 соединения ВТ, где параметры были в ГДЕ оптимизатор понимал и подбирал оптимальный план запроса, но это исключение, а не правило.
|
|||
34
Лефмихалыч
24.10.18
✎
22:14
|
(31) полно-те вам, батенька, брюзжать - на это обратил внимание автор
|
|||
35
vde69
24.10.18
✎
22:15
|
(31) это не всегда ошибка, это будет гемороем только если тип составной, остальное скуль заоптимизирует с большой долей вероятности.
вообще условие в джойне не должно вести к деградации составного индекса, ТоварыОрганизацийОстатки.Номенклатура.Ссылка - однозначно ведет к деградации, но тут вопрос на какой длине это будет, если это условие отсечет только хвост индекса, то все не так и плохо, а вот если приведет к полному фулскану - то плохо... |
|||
36
palsergeich
24.10.18
✎
22:15
|
(34) Лучи добра Вам)
|
|||
37
Лефмихалыч
24.10.18
✎
22:15
|
(33) эо просто оптимизатор ошибся четное количество раз
|
|||
38
Лефмихалыч
24.10.18
✎
22:17
|
мучительно нудная вечеринка в кнайпе "Старые пердуны" объявляется открытой...
|
|||
39
H A D G E H O G s
24.10.18
✎
23:53
|
Даже в оперативных остатках будет подзапрос, чтобы сложить разделение итогов, другой вопрос, что оптимизатор его нормально прожевывает.
|
|||
40
palsergeich
25.10.18
✎
00:10
|
(39) Да будет, но не двойной
|
|||
41
dmpl
25.10.18
✎
07:22
|
(14) Соединение количественных данных вместо объединения - верный путь получить неверные цифры из-за задваивания-затраивания строк.
|
|||
42
dmpl
25.10.18
✎
07:30
|
(32) Проверил на базе объемом 300 Гб. Отработал за секунду. Причем это на тестовом сервере, где оборудование уже не фонтан.
|
|||
43
Повелитель
25.10.18
✎
07:43
|
(28) 2 балла разарбочику
|
|||
44
palsergeich
25.10.18
✎
07:49
|
(42) 1) а смысл смотреть без нагрузки.
2) соединение по 1 номенклатуре из оперативных остатков 1 секунду - это просто ужасный результат. |
|||
45
toypaul
гуру
25.10.18
✎
08:20
|
Кто-то тут курсов по оптимизации похоже пересмотрел. Только смотрел похоже в режиме 5 минут через 10.
Первый вопрос к запросу - а что хотели получить. А уж потом про ошибки. |
|||
46
organizm
25.10.18
✎
08:31
|
во первых, нужно использовать виртуальные таблицы с максимальным количеством отборов , во вторых, использовать объединение.
|
|||
47
dmpl
25.10.18
✎
08:32
|
(44) Это компенсируется тем, что база не в ОЗУ, и лежит на "зеленом" HDD WD. Ну и обещали 10 минут минимум. При этом если бы оптимизатор лажанул, то запрос минимум 30 секунд бы работал на этой базе.
|
|||
48
0xFFFFFF
25.10.18
✎
08:36
|
(2) я насчитал одну ошибку. Весь запрос - одна большая ошибка.
|
|||
49
zak555
25.10.18
✎
08:39
|
(0) для начала надо узнать : какую задачу решал поставленный запрос
Например, если есть ордерная схема, то запрос все эти движения без подтверждений не учитываются |
|||
50
palsergeich
25.10.18
✎
08:41
|
(49) 100% это тестовая задача - найдите ошибки в этом запросе и объясните почему это так
|
|||
51
zak555
25.10.18
✎
08:45
|
(50) по мне главное это понимание как работают те или регистры
Остальное дело техники |
|||
52
ADirks
25.10.18
✎
08:48
|
(0) По моему, тут даже не в запросе что-то не так. Тут с архитектурой беда. Два регистра с остатками ТМЦ - это злейшее зло. Я то думал, после ТИСа они так больше не лепят, ан оказывается нет...
|
|||
53
Cool_Profi
25.10.18
✎
08:49
|
(52) А у тебя были сомнения, что в 1с сидят качественные архитекторы?
|
|||
54
palsergeich
25.10.18
✎
08:54
|
(51) то что при соединении все поплывет это ответ на должность повыше, обычно просят не вдаваться в детали, а рассказать что в тексте не нравится сходу.
(53) ну ДО то адекватный достаточно вышел. |
|||
55
ADirks
25.10.18
✎
08:54
|
(53) ну, местами то вполне ничо
но вот последнее время частенько в ЗиКе колупаюсь - вот где наркоманы то тусовались. да и в ЗУПе тоже. традиции блин... |
|||
56
SoulPower
25.10.18
✎
09:06
|
||||
57
zak555
25.10.18
✎
09:15
|
(52) первый для хранения остатков по складам и резервам
Второй остатки для хранения склады/организации -- основание для расчета себеса |
|||
58
wowik
25.10.18
✎
09:26
|
(50) нет, это к сожалению не тест, это в жизни.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |