| 
    
        
     
     | 
    
  | 
Тормозит периодически подбор в УТ 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. Доложиться здесь  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |