![]() |
Поможет ли индексация реквизита справочника? 1с 8.0 SQL 2005. В базе есть справочник. Более 500000 элементов. Более 100 реквизитов. Есть 1 реквизит, булево. Получение значения этого реквизита очень тормозит. По замеру доходит до 30% времени. В частности, он проверяется ПриАктивизацииСтроки в форме списка справочника. Если у этого реквизита включить Индексировать - это поможет? |
Не поможет наверное, низкая селективность в теории, но что мешает развернуть копию базы и поиграться ?. Тормозит получение любого элемента и любого реквизита этого справочника. Статистику базы давно обновляли ? |
+ (1) даже и при высокой селективности не поможет, бо ТС ПОЛУЧАЕТ его значение, а не строит на его основе отбор/соединение и т.п. операции. Причина в чём-то другом. Возможно в ПриАктивацииСтроки получение значения происходит через точку от ссылки, а это заставляет систему считывать из БД в оперативку "Более 100 реквизитов"... |
Обращенние к базе в ПриАктивацииСтроки()? Т.е. на каждую строку, выводимую на экран делается запрос? Будет тормозить по определению. Динамический список вам в помощь. |
2 - Да, там из строки получается ссылка и из ссылки уже реквизиты. Переделал на запрос, в нём вытаскиваются все реквизиты, которые используются в процедуре - стало 14% времени. И да, именно этот реквизит стоит первым для получения. Я поэтому и думал, что он тормозной. А оказалось вот что.. Буду знать теперь. |
И ещё - я поменял работу и месяца не прошло. Решаю первые задачи и встал вопрос торможения этого справочника. Например, там привыводестроки выполнялся запрос по подсчёту количества строк, которые попали в отбор. И это только 1 пример.. Оптимизировал всё что смог, осталось 2 вопроса - этот и ещё один, но второй что-то даже не знаю, как к нему подойти. |
(4) всё-же посмотри Динамический список с вытаскиванием в колонки всего необходимого (если для визуализации они не нужны - не тащи их на форму, но данные получай всегда) |
да уж, проще на все строки сразу один раз запросом собрать и выводить уже собранное, чем каждый раз заново таблицы шерстить |
Текущее время: 07:05. Часовой пояс GMT +3. |