Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Тормозит периодически подбор в УТ 10.

Тормозит периодически подбор в УТ 10.
Я
   Nemoj
 
25.12.18 - 22:55
Я уже не помню, что к чему. Да и наверное новая инфа есть. Помогите.
Куда смотреть в первую очередь.
Работает файловая база на 4 компах по сети. Периодически такая ситуация с автопоиском.
При нажатии буквы в форме подбора номенклатуры появляются часики и висят. Через минуту показывает следующую букву.
 
 
   palsergeich
 
1 - 25.12.18 - 22:56
1) Пусть работают по РДП.
2) Возможно при вводе текста используется свой обработчик с запросом с уловием вида %текст%
3) Возможно пора делать свертку базы
   Nemoj
 
2 - 25.12.18 - 23:01
Свертку им пришли сделали. После нее и началось.
   Nemoj
 
3 - 25.12.18 - 23:01
Подбор типовой
   Nemoj
 
4 - 25.12.18 - 23:02
РДП сложно. Работало же все до свертки.
   palsergeich
 
5 - 25.12.18 - 23:16
(4) Ну там еще ТИИ с реиндексацией
   palsergeich
 
6 - 25.12.18 - 23:17
(4) А Вы больше на слово верьте.
У клиентов очень часто слова не совпадают с действительностью: После Вашего обновления все тормозит. Заходишь в замеры времени - оказывается все тормозит уже пол года как, но тут под шумок решили пожаловаться.
   palsergeich
 
7 - 25.12.18 - 23:21
(0) А так ТЖ, долгие запросы, отловите эту ситуацию, посмотрите контекст - откуда это приходит.
С огромной долей вероятности - где то там запрос с условием вида %текст%.
Или что то нехорошее со справочником в фоне делается, а в файловом варианте - помним - блокировка на всю таблицу идет сразу.
   Nemoj
 
8 - 25.12.18 - 23:22
Посмотрю, что может в фоне быть.
   Nemoj
 
9 - 25.12.18 - 23:41
Запустил отладчик.
99 % жрет запрос


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладах.Номенклатура                                КАК Номенклатура,
    СУММА(  ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00)
          
    )                                                           КАК КоличествоСвободныйОстаток,
    СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации
ИЗ
    (ВЫБРАТЬ
        ОбщиеОстатки.Номенклатура               КАК Номенклатура,
        ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ОбщиеОстатки.Качество                   КАК Качество,
        СУММА(ОбщиеОстатки.КоличествоОстаток)   КАК КоличествоОстаток
    ИЗ
        (
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    0 КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВНТТ.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТаблицаОстатков

        ) КАК ОбщиеОстатки

    СГРУППИРОВАТЬ ПО
        ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
    ) КАК ТоварыНаСкладах

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах
ПО
    ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов
ПО
    ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество
    
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации
ПО
    ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
   Nemoj
 
10 - 25.12.18 - 23:41
Что тут можно посоветовать?
   palsergeich
 
11 - 25.12.18 - 23:43
Отказаться от % %, иначе никак. Можно попробовать использовать полнотекстовый поиск, но полнотекстовый индекс так же надо поддерживать в актуальном состоянии.
Очередной пример, когда верить на слово нельзя - свертка не приводит к проблемам тут
   palsergeich
 
12 - 25.12.18 - 23:44
А понял.
тут нет поиска по части строки.
Разбей запрос и посмотри в каком Объединить ВСЕ основные затраты
   palsergeich
 
13 - 25.12.18 - 23:45
ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ вот эта штука в условии не кошерна
   palsergeich
 
14 - 25.12.18 - 23:47
В первом Объединить - ддважды вложенный запрос
   Nemoj
 
15 - 25.12.18 - 23:50
Я и три года назад не очень умел запросы дебажить.
Как это делается?
   palsergeich
 
16 - 25.12.18 - 23:50
В файловой базе нет умного MSSQL оптимизатора и запросы должны быть максимально примитивны...
   palsergeich
 
17 - 25.12.18 - 23:52
(15) Каждая секция из вкладки объединить - по факту может рассмотриваться как отдельный запрос. Найди какой из них потребляет больше всего времени, как правило это один, редко 2.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладах.Номенклатура                                КАК Номенклатура,
    СУММА(  ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00)
          
    )                                                           КАК КоличествоСвободныйОстаток,
    СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации
ИЗ
    (ВЫБРАТЬ
        ОбщиеОстатки.Номенклатура               КАК Номенклатура,
        ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ОбщиеОстатки.Качество                   КАК Качество,
        СУММА(ОбщиеОстатки.КоличествоОстаток)   КАК КоличествоОстаток
    ИЗ
        (
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    0 КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВНТТ.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТаблицаОстатков

        ) КАК ОбщиеОстатки

    СГРУППИРОВАТЬ ПО
        ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
    ) КАК ТоварыНаСкладах

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах
ПО
    ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов
ПО
    ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество
    
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации
ПО
    ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
   palsergeich
 
18 - 25.12.18 - 23:54
не получилось. дубль 2

Это запрос 1

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладах.Номенклатура                                КАК Номенклатура,
    СУММА(  ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00)
          
    )                                                           КАК КоличествоСвободныйОстаток,
    СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации
ИЗ
    (ВЫБРАТЬ
        ОбщиеОстатки.Номенклатура               КАК Номенклатура,
        ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ОбщиеОстатки.Качество                   КАК Качество,
        СУММА(ОбщиеОстатки.КоличествоОстаток)   КАК КоличествоОстаток
    ИЗ
        (
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

Это запрос 2

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

Это запрос 3

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    0 КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВНТТ.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТаблицаОстатков

        ) КАК ОбщиеОстатки

    СГРУППИРОВАТЬ ПО
        ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
    ) КАК ТоварыНаСкладах

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах
ПО
    ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов
ПО
    ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество
    
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации
ПО
    ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
   palsergeich
 
19 - 25.12.18 - 23:55
В запросе 3: 6 сооединений с виртуальными таблицами, такое даже СКЛ будет тяжко переварить....
   palsergeich
 
20 - 25.12.18 - 23:55
В общем запрос под переписку полностью....
   Nemoj
 
21 - 25.12.18 - 23:55
Не хватает моей компетенции...
   Nemoj
 
22 - 25.12.18 - 23:56
Может я вас сведу с клиентом?
   palsergeich
 
23 - 25.12.18 - 23:58
я скопировал коряво
Попытка 3

Запрос 1

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладах.Номенклатура                                КАК Номенклатура,
    СУММА(  ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0.00)
          - ЕСТЬNULL(ТоварыКПередачеСоСкладов.КоличествоОстаток, 0.00)
          
    )                                                           КАК КоличествоСвободныйОстаток,
    СУММА(ЕСТЬNULL(ОстаткиОрганизации.КоличествоОстаток, 0.00)) КАК КоличествоОстатокОрганизации
ИЗ
    (ВЫБРАТЬ
        ОбщиеОстатки.Номенклатура               КАК Номенклатура,
        ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ОбщиеОстатки.Качество                   КАК Качество,
        СУММА(ОбщиеОстатки.КоличествоОстаток)   КАК КоличествоОстаток
    ИЗ
        (
ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

Запрос 2

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВРознице.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков


Запрос 3

ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТаблицаОстатков.Качество КАК Качество,
    0 КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТаблицаОстатков

Запрос 4


ВЫБРАТЬ
    ТаблицаОстатков.Номенклатура               КАК Номенклатура,
    ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЗНАЧЕНИЕ(Справочник.Качество.Новый) КАК Качество,
    ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыВНТТ.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТаблицаОстатков

        ) КАК ОбщиеОстатки

    СГРУППИРОВАТЬ ПО
        ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
    ) КАК ТоварыНаСкладах

ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад) ) КАК ТоварыВРезервеНаСкладах
ПО
    ТоварыВРезервеНаСкладах.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Склад В (&Склад)  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ТоварыКПередачеСоСкладов
ПО
    ТоварыКПередачеСоСкладов.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ТоварыКПередачеСоСкладов.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ТоварыКПередачеСоСкладов.Качество = ТоварыНаСкладах.Качество
    
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&Дата,  Номенклатура В (&МассивНоменклатуры)  И Организация = &Организация  И ВЫБОР КОГДА &РазворачиватьДоКачества ТОГДА ИСТИНА ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый) КОНЕЦ) КАК ОстаткиОрганизации
ПО
    ОстаткиОрганизации.Номенклатура = ТоварыНаСкладах.Номенклатура
    И ОстаткиОрганизации.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
    И ОстаткиОрганизации.Качество = ТоварыНаСкладах.Качество

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладах.Номенклатура
   palsergeich
 
24 - 25.12.18 - 23:58
(22) У меня времени особо нет.
В общем это скорее всего запрос 4 + запрос 1 под подозрением
   Nemoj
 
25 - 26.12.18 - 00:01
Спасибо за советы.
   palsergeich
 
26 - 26.12.18 - 00:04
Итог, в запросе 4:
Соединено 4 Виртуальные таблицы.
Это очень плохо.
В запросе 1 - дважды вложенный запрос.
Мальца подразучился я читать чужие запросы(
   sieben
 
27 - 26.12.18 - 00:15
(0) Отпусти ты клиента, не мучай ни его ни себя. Ты все равно не успеешь за развитием области, хоть лицо сохранишь.
   Nemoj
 
28 - 26.12.18 - 00:16
Отпустил.
   timurhv
 
29 - 26.12.18 - 01:51
(28) Пускай итоги сперва пересчитают/актуализируют.
   Сергиус
 
30 - 26.12.18 - 01:58
(0)Интересно, какой размер базы? А так проблема понятна - с определенного момента файловые начинают тормозить в самых неожиданных местах, где раньше все летало.
 
 Рекламное место пустует
   palsergeich
 
31 - 26.12.18 - 02:19
(30) Да не поможет.
Там запрос корявый. Инфа сотка - по мере роста данных они сначала терпели, потом позвали франча - те им свертку сделали без какого либо анализа - не помогло.
Потом франч начал разбираться, увидел запрос - озвучил цену ну их и послали в топку. Начали звонить ТС, включили дурика, авось прокатит.
Такая фигня постоянно, первый день что ли в бизнесе?)
   palsergeich
 
32 - 26.12.18 - 02:25
А это какой то хитрошлепый помошник ввода доступной номенклатуры или ДС заточенный, фиг они уже от него откажутся.
Или переписывать запрос - относительно дорого, но для файловой гарантия 50\50, может и не взлететь если товаров много, таки в файловой особо много не пооптимизируешь или перестроить архитектуру как нибудь - дорого, но с гарантией.
   palsergeich
 
33 - 26.12.18 - 02:30
Хотя заврался я чота, какой ДС в 10.3)
   palsergeich
 
34 - 26.12.18 - 02:31
таблица подбора вероятно
   palsergeich
 
35 - 26.12.18 - 02:36
Смущает еще вот что, почему все остатки и обороты огаринчены по дате, а не используются оперативные итоги, кстати.
Быть может при оперативных так страшно и не было бы
   palsergeich
 
36 - 26.12.18 - 02:38
И если используется РЛС - тоже гвоздик в крышку гроба...
   ProxyInspector
 
37 - 26.12.18 - 07:36
Проблемы начались после "свертки" базы. Значит просто регистры остатков не свернулись, а наоборот разбухли.
   Hans
 
38 - 26.12.18 - 07:37
(0) а куда ушел?
   xXeNoNx
 
39 - 26.12.18 - 08:13
соединения с вирт таблицами конеш хреново, но Хотелось бы глянуть еще структуру регистров
   Nemoj
 
40 - 26.12.18 - 11:11
(38) спать.
   Nemoj
 
41 - 26.12.18 - 11:11
(39) структура типовая.
   Провинциальный 1сник
 
42 - 26.12.18 - 11:17
ОС и платформа какая?
   МимохожийОднако
 
43 - 26.12.18 - 12:11
(42) ОФФ. Не буди.. лихо, пока оно тихо.
   ptiz
 
44 - 26.12.18 - 12:23
(0)
1. Сделать копию
2. В копии сделать выгрузку/загрузку базы.
3. Проверить копию локально
4. Проверить копию по сети
5. Доложиться здесь


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