Имя: Пароль:
1C
1С v8
Тормозит периодически подбор в УТ 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. Доложиться здесь
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс