Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Метапарсер (и) тормоз. (число прочтений - 2792 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Метапарсер (и) тормоз.
15. Августа 2006 :: 08:24
Печать  
Нашёл ситуацию, когда запрос к ВТ Обороты выполняется в 3 раз медленнее, чем запрос на языке запросов 1С.

Вкратце:

Когда у регистра стоит флажок "Быстрая обработка движений", в таблицу движений добавляются поля DATE_TIME_IDDOC, IDDOCDEF и индекс DATETIME. ВТ Обороты для отбора по периоду использует DATE_TIME_IDDOC и попадает в индекс DATETIME. Всё красиво.

Когда флажок "Быстрая обработка движений" не стоит, но стоит флажок "Отбор движений" у любого измерения/реквизита, добавляются те же поля и индекс вида
Код
Выбрать все
CREATE UNIQUE INDEX [VIAxxx] ON [dbo].[RAzzz]([SPxxx], [DATE_TIME_IDDOC], [LINENO_], [ACTNO]) ON [PRIMARY] 


ВТ Обороты для отбора по периоду использует DATE_TIME_IDDOC и, при отсутствии отбора по SPxxx, не попадает в индекс VIAxxx.

Результат:
  • Запрос с присоединением _1SJOURN и отбором по _1SJOURN.DATE_TIME_IDDOC - 1 секунда.
  • Запрос на языке запросов 1С - 3 секунды.
  • Запрос к ВТ Обороты - 10 секунд.

Предлагаю эту "фичу" исправить. Ну, или, хотя бы задокументировать.

P.S. А потом я выпил ещё фанты, и тормознул 1С++...  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Метапарсер (и) тормоз.
Ответ #1 - 15. Августа 2006 :: 09:11
Печать  
Имхо это ошибка, и подлежит исправлению.
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Метапарсер (и) тормоз.
Ответ #2 - 28. Августа 2006 :: 06:41
Печать  
Предлагается принимать решении о присоедиении журнала не по наличию поля DATE_TIME_IDDOC,
а только по флажоку "Быстрая обработка движений".

Но, если все же будет фильтр по измерению/реквизиту, план выполнения будет менее эффективен, т.к. не будет использован индекс VIAxxx.

Вопрос: можно ли этим пренебреч? Иначе нужно анализировать наличие фильтра
  

1&&2&&3
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Метапарсер (и) тормоз.
Ответ #3 - 28. Августа 2006 :: 09:43
Печать  
trad писал(а) 28. Августа 2006 :: 06:41:
Предлагается принимать решении о присоедиении журнала не по наличию поля DATE_TIME_IDDOC,
а только по флажоку "Быстрая обработка движений".

Хоть так..

К сожалению, я не могу оценить трудозатраты на анализ фильтра.  Печаль
Поэтому в принятии решения предпочёл бы не участвовать.
Разве не достаточно будет получить список найденных метаимен-измерений/реквизитов из секций <Соединение> и <Условие> при парсинге ВТ?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать