|
Тормозит периодически подбор в УТ 10. | ☑ | ||
---|---|---|---|---|
0
Nemoj
25.12.18
✎
22:55
|
Я уже не помню, что к чему. Да и наверное новая инфа есть. Помогите.
Куда смотреть в первую очередь. Работает файловая база на 4 компах по сети. Периодически такая ситуация с автопоиском. При нажатии буквы в форме подбора номенклатуры появляются часики и висят. Через минуту показывает следующую букву. |
|||
1
palsergeich
25.12.18
✎
22:56
|
1) Пусть работают по РДП.
2) Возможно при вводе текста используется свой обработчик с запросом с уловием вида %текст% 3) Возможно пора делать свертку базы |
|||
2
Nemoj
25.12.18
✎
23:01
|
Свертку им пришли сделали. После нее и началось.
|
|||
3
Nemoj
25.12.18
✎
23:01
|
Подбор типовой
|
|||
4
Nemoj
25.12.18
✎
23:02
|
РДП сложно. Работало же все до свертки.
|
|||
5
palsergeich
25.12.18
✎
23:16
|
(4) Ну там еще ТИИ с реиндексацией
|
|||
6
palsergeich
25.12.18
✎
23:17
|
(4) А Вы больше на слово верьте.
У клиентов очень часто слова не совпадают с действительностью: После Вашего обновления все тормозит. Заходишь в замеры времени - оказывается все тормозит уже пол года как, но тут под шумок решили пожаловаться. |
|||
7
palsergeich
25.12.18
✎
23:21
|
(0) А так ТЖ, долгие запросы, отловите эту ситуацию, посмотрите контекст - откуда это приходит.
С огромной долей вероятности - где то там запрос с условием вида %текст%. Или что то нехорошее со справочником в фоне делается, а в файловом варианте - помним - блокировка на всю таблицу идет сразу. |
|||
8
Nemoj
25.12.18
✎
23:22
|
Посмотрю, что может в фоне быть.
|
|||
9
Nemoj
25.12.18
✎
23:41
|
Запустил отладчик.
99 % жрет запрос ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыНаСкладах.Номенклатура КАК Номенклатура, СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00) ) КАК КоличествоСвободныйОстаток, СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации ИЗ (ВЫБРАТЬ ОбщиеОстатки.Номенклатура КАК Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество КАК Качество, СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ ( ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, 0 КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТаблицаОстатков ) КАК ОбщиеОстатки СГРУППИРОВАТЬ ПО ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество ) КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах ПО ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов ПО ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации ПО ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура |
|||
10
Nemoj
25.12.18
✎
23:41
|
Что тут можно посоветовать?
|
|||
11
palsergeich
25.12.18
✎
23:43
|
Отказаться от % %, иначе никак. Можно попробовать использовать полнотекстовый поиск, но полнотекстовый индекс так же надо поддерживать в актуальном состоянии.
Очередной пример, когда верить на слово нельзя - свертка не приводит к проблемам тут |
|||
12
palsergeich
25.12.18
✎
23:44
|
А понял.
тут нет поиска по части строки. Разбей запрос и посмотри в каком Объединить ВСЕ основные затраты |
|||
13
palsergeich
25.12.18
✎
23:45
|
ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ вот эта штука в условии не кошерна
|
|||
14
palsergeich
25.12.18
✎
23:47
|
В первом Объединить - ддважды вложенный запрос
|
|||
15
Nemoj
25.12.18
✎
23:50
|
Я и три года назад не очень умел запросы дебажить.
Как это делается? |
|||
16
palsergeich
25.12.18
✎
23:50
|
В файловой базе нет умного MSSQL оптимизатора и запросы должны быть максимально примитивны...
|
|||
17
palsergeich
25.12.18
✎
23:52
|
(15) Каждая секция из вкладки объединить - по факту может рассмотриваться как отдельный запрос. Найди какой из них потребляет больше всего времени, как правило это один, редко 2.
ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыНаСкладах.Номенклатура КАК Номенклатура, СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00) ) КАК КоличествоСвободныйОстаток, СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации ИЗ (ВЫБРАТЬ ОбщиеОстатки.Номенклатура КАК Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество КАК Качество, СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ ( ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, 0 КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТаблицаОстатков ) КАК ОбщиеОстатки СГРУППИРОВАТЬ ПО ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество ) КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах ПО ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов ПО ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации ПО ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура |
|||
18
palsergeich
25.12.18
✎
23:54
|
не получилось. дубль 2
Это запрос 1 ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыНаСкладах.Номенклатура КАК Номенклатура, СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00) ) КАК КоличествоСвободныйОстаток, СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации ИЗ (ВЫБРАТЬ ОбщиеОстатки.Номенклатура КАК Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество КАК Качество, СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ ( ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков Это запрос 2 ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков Это запрос 3 ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, 0 КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТаблицаОстатков ) КАК ОбщиеОстатки СГРУППИРОВАТЬ ПО ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество ) КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах ПО ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов ПО ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации ПО ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура |
|||
19
palsergeich
25.12.18
✎
23:55
|
В запросе 3: 6 сооединений с виртуальными таблицами, такое даже СКЛ будет тяжко переварить....
|
|||
20
palsergeich
25.12.18
✎
23:55
|
В общем запрос под переписку полностью....
|
|||
21
Nemoj
25.12.18
✎
23:55
|
Не хватает моей компетенции...
|
|||
22
Nemoj
25.12.18
✎
23:56
|
Может я вас сведу с клиентом?
|
|||
23
palsergeich
25.12.18
✎
23:58
|
я скопировал коряво
Попытка 3 Запрос 1 ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыНаСкладах.Номенклатура КАК Номенклатура, СУММА( ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00) - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00) ) КАК КоличествоСвободныйОстаток, СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации ИЗ (ВЫБРАТЬ ОбщиеОстатки.Номенклатура КАК Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество КАК Качество, СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ ( ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков Запрос 2 ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков Запрос 3 ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТаблицаОстатков.Качество КАК Качество, 0 КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков Запрос 4 ВЫБРАТЬ ТаблицаОстатков.Номенклатура КАК Номенклатура, ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество, ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТаблицаОстатков ) КАК ОбщиеОстатки СГРУППИРОВАТЬ ПО ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество ) КАК ТоварыНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах ПО ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Склад В (&Склад) И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов ПО ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата, Номенклатура В (&МассивНоменклатуры) И Организация = &Организация И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации ПО ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура |
|||
24
palsergeich
25.12.18
✎
23:58
|
(22) У меня времени особо нет.
В общем это скорее всего запрос 4 + запрос 1 под подозрением |
|||
25
Nemoj
26.12.18
✎
00:01
|
Спасибо за советы.
|
|||
26
palsergeich
26.12.18
✎
00:04
|
Итог, в запросе 4:
Соединено 4 Виртуальные таблицы. Это очень плохо. В запросе 1 - дважды вложенный запрос. Мальца подразучился я читать чужие запросы( |
|||
27
sieben
26.12.18
✎
00:15
|
(0) Отпусти ты клиента, не мучай ни его ни себя. Ты все равно не успеешь за развитием области, хоть лицо сохранишь.
|
|||
28
Nemoj
26.12.18
✎
00:16
|
Отпустил.
|
|||
29
timurhv
26.12.18
✎
01:51
|
(28) Пускай итоги сперва пересчитают/актуализируют.
|
|||
30
Сергиус
26.12.18
✎
01:58
|
(0)Интересно, какой размер базы? А так проблема понятна - с определенного момента файловые начинают тормозить в самых неожиданных местах, где раньше все летало.
|
|||
31
palsergeich
26.12.18
✎
02:19
|
(30) Да не поможет.
Там запрос корявый. Инфа сотка - по мере роста данных они сначала терпели, потом позвали франча - те им свертку сделали без какого либо анализа - не помогло. Потом франч начал разбираться, увидел запрос - озвучил цену ну их и послали в топку. Начали звонить ТС, включили дурика, авось прокатит. Такая фигня постоянно, первый день что ли в бизнесе?) |
|||
32
palsergeich
26.12.18
✎
02:25
|
А это какой то хитрошлепый помошник ввода доступной номенклатуры или ДС заточенный, фиг они уже от него откажутся.
Или переписывать запрос - относительно дорого, но для файловой гарантия 50\50, может и не взлететь если товаров много, таки в файловой особо много не пооптимизируешь или перестроить архитектуру как нибудь - дорого, но с гарантией. |
|||
33
palsergeich
26.12.18
✎
02:30
|
Хотя заврался я чота, какой ДС в 10.3)
|
|||
34
palsergeich
26.12.18
✎
02:31
|
таблица подбора вероятно
|
|||
35
palsergeich
26.12.18
✎
02:36
|
Смущает еще вот что, почему все остатки и обороты огаринчены по дате, а не используются оперативные итоги, кстати.
Быть может при оперативных так страшно и не было бы |
|||
36
palsergeich
26.12.18
✎
02:38
|
И если используется РЛС - тоже гвоздик в крышку гроба...
|
|||
37
ProxyInspector
26.12.18
✎
07:36
|
Проблемы начались после "свертки" базы. Значит просто регистры остатков не свернулись, а наоборот разбухли.
|
|||
38
Hans
26.12.18
✎
07:37
|
(0) а куда ушел?
|
|||
39
xXeNoNx
26.12.18
✎
08:13
|
соединения с вирт таблицами конеш хреново, но Хотелось бы глянуть еще структуру регистров
|
|||
40
Nemoj
26.12.18
✎
11:11
|
(38) спать.
|
|||
41
Nemoj
26.12.18
✎
11:11
|
(39) структура типовая.
|
|||
42
Провинциальный 1сник
26.12.18
✎
11:17
|
ОС и платформа какая?
|
|||
43
Мимохожий Однако
26.12.18
✎
12:11
|
(42) ОФФ. Не буди.. лихо, пока оно тихо.
|
|||
44
ptiz
26.12.18
✎
12:23
|
(0)
1. Сделать копию 2. В копии сделать выгрузку/загрузку базы. 3. Проверить копию локально 4. Проверить копию по сети 5. Доложиться здесь |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |