Переключение на Главную Страницу Страницы: 1 ... 35 36 [37] 38 39 ... 60 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" (число прочтений - 314120 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #540 - 29. Марта 2010 :: 05:46
Печать  
Немного в продолжение. Еще час потраченного времени выявил необходимость достаточно детальной переработки подготовки запроса.
При этом даже по предварительным данным после изменений подготовка запроса с использованием 2 ВТ (БИОстатки + БИОбороты) уменьшается на 60%. Очень неплохой выигрыш.

Счас исследую вопрос, а что далее. Хочется добиться снижения в 70-80%. Т.е. план таков из тестового запроса 150-160 мс сделать не более 50 мс.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #541 - 29. Марта 2010 :: 05:54
Печать  
vandalsvq писал(а) 29. Марта 2010 :: 05:46:
Немного в продолжение. Еще час потраченного времени выявил необходимость достаточно детальной переработки подготовки запроса.
При этом даже по предварительным данным после изменений подготовка запроса с использованием 2 ВТ (БИОстатки + БИОбороты) уменьшается на 60%. Очень неплохой выигрыш.

Счас исследую вопрос, а что далее. Хочется добиться снижения в 70-80%. Т.е. план таков из тестового запроса 150-160 мс сделать не более 50 мс.

Огромное спасибо за развитие поднятой темы. Если чем-то могу помочь - пишите в почту или в личку.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #542 - 29. Марта 2010 :: 06:13
Печать  
В общем в том же тестовом запросе после некоторых "ковырялок" я достиг показателя в 35-45 мс. Т.е. снижение времени на 70% достижимо.
2 leshik, за предложение помощи спасибо. В принципе помочь можешь. Там не самая сложная работа в принципе, просто надо сидеть и внимательно все перечитывать. Я могу дать направление, ты посмотришь. Решишь что не осилишь добьем совместно когда время у меня будет. Осилишь, мой тебе низкий поклон Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #543 - 29. Марта 2010 :: 06:17
Печать  
vandalsvq писал(а) 29. Марта 2010 :: 06:13:
В общем в том же тестовом запросе после некоторых "ковырялок" я достиг показателя в 35-45 мс. Т.е. снижение времени на 70% достижимо.
2 leshik, за предложение помощи спасибо. В принципе помочь можешь. Там не самая сложная работа в принципе, просто надо сидеть и внимательно все перечитывать. Я могу дать направление, ты посмотришь. Решишь что не осилишь добьем совместно когда время у меня будет. Осилишь, мой тебе низкий поклон Подмигивание

Жду информацию на как и говорил. Рад подключиться и по мере возможности помочь.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #544 - 29. Марта 2010 :: 09:33
Печать  
В общем первая ласточка.
Оптимизированы ВТ "РегистрОстатки" и "РегистрОбороты".
Тестировал на DBF.
На SQL прошу проверить. Ошибки кидать в виде txt в данную тему. Ну и собственно о своих замерах отпишитесь.
Самый простой способ проверить время, не утруждая систему вываливаением сообщений - РежимОтладки = -1.
Выдаст только время на подготовку и выполнение.
Прошу отписаться о полученных результатах.

Главный КОП менять не буду, ибо пока все не оттестируем страшновато Улыбка.

Пы.сы. в очередной раз изменил своим обещанием заняться данным вопросом позже. А работа стоит, а сроки идут. Во всем виновата 8-ка Улыбка.

Продолжение смотреть тут
« Последняя редакция: 30. Марта 2010 :: 17:52 - vandalsvq »  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #545 - 29. Марта 2010 :: 11:11
Печать  
За полтора часа смельчаков не нашлось?  Смех
Ладно пока поприще оптимизации оставлю. Посмотрим на отклик общественности.  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #546 - 30. Марта 2010 :: 13:04
Печать  
Ну собственно все ВТ по регистрам и БИ оптимизированы. Прошу любить и жаловать бета версия класса. В ближайшее время я буду гонять ее на своих решениях, вам предлагаю на своих.

Версия 1.06.001 (бета)

leshik замеры можешь уже сюда выкладывать.
« Последняя редакция: 31. Марта 2010 :: 10:02 - vandalsvq »  

1Cv7_query_new.rar ( 73 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #547 - 30. Марта 2010 :: 16:00
Печать  
Довожу до сведения общественности результаты тестирования:
1. Тестирование проводилось следующим образом:
   1.1. Инициализация экземпляра КОП
   1.2. 100 проходов по подготовке текста запросов.
   1.3. Проводилось 3 независимых испытания то есть сеанс предприятия закрывался и открывался при каждом испытании.
2. Результаты тестирования для ВТ Оперативного учета

2.1. Вариант с двумя ВТ в запросе: РегистрОстатки+РегистрОбороты

Время    Время  Разница   Разница
 тек.     оптим.     (мс)           (%)
3003      1596      1407      46,85
3011      1588      1423      47,26
2999      1595      1404      46,81

2.2. Вариант с тремя ВТ в запросе: РегистрОстатки+РегистрОстатки+РегистрОстаткиОбороты
Время    Время  Разница   Разница
 тек.     оптим.     (мс)           (%)
7766      4885      2881      37,09
7692      4845      2847      37,01
7744      4851      2893      37,35

На основании результатов тестирования, можно говорить о значительном приросте при построении текста запроса после проведенной оптимизации.
При этом при увеличении текста запроса практически на 50% (присоединение 3-й ВТ - ОстаткиОбороты) падение производительности было порядка 10%, что говорит о целесообразности проведенной оптимизации в том числе и для больших запросов.
3. Тестирование ВТ Бухгалтерского учета:
3.1. Вариант с одной ВТ в запросе: БиОстатки

Время    Время  Разница   Разница
 тек.     оптим.     (мс)           (%)
4528      1573      2955      65,26
4468      1574      2894      64,77
4466      1577      2889      64,68

3.2. Вариант с тремя ВТ в запросе: БиОстатки+БиОборотыДтКт+БиОбороты
Время    Время  Разница   Разница
 тек.     оптим.     (мс)           (%)
18270      12446      5824      31,87
18631      12433      6198      33,26
18126      12426      5700      31,44
Ну как бы можно сделать выводы о значительной оптимизации на маленьких запросах и  о приросте в 30-33% на больших запросах.
« Последняя редакция: 30. Марта 2010 :: 17:21 - leshik »  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #548 - 30. Марта 2010 :: 17:22
Печать  
Небольшая ремарка.
ОстаткиОбороты = Подготовка + Выполнение запросов Остатки и Обороты. Что соответственно отражается на времени "подготовки". Для ОстаткиОбороты подготовка включает в себя сам запрос и пересчет. Соответственно для проверки производительности они конечно подходят, но не советую. Лучше просто насаживать дополнительные остатки или обороты. А ВТ ОстаткиОбороты тестировать сами по себе в сравнении с "себеподобными". Тогда это будет более правильно.

Хочется от себя выразить благодарность всем кто меня допекал вопросом производительности  Подмигивание. leshik-у отдельная благодарность как первому кто откликнулся на призыв тестирования.

Пы.сы. кстати в последней версии исправлены некоторые ошибки при построении ВТ.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #549 - 30. Марта 2010 :: 17:30
Печать  
Запишу сюда, а то забуду (ошибки найденные мною при переборке некоторых ВТ):
1. Метод СоздатьТаблицу, а в частности парсинг видов значений не работает если после $ТипВид идет ",".
2. ВТ неправильно разбираются если внутри нее встречаются уже подставленные параметры, т.е. конструкции вроде (Чтото = '     0   '). - не подтверждается
3. Парсинг реквизитов :Тип.Документ||:ВидДокумента.ТакойТо неправильный. Кто виноват? - виноват тип документа

Надо будет покопаться перед выпуском "не беты".
« Последняя редакция: 31. Марта 2010 :: 09:38 - vandalsvq »  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #550 - 30. Марта 2010 :: 17:33
Печать  
vandalsvq я вот думаю - а может конфигурацию для юнит-тестов попробовать сделать?
Вроде это достаточно удобно будет - можно будет все тесты на новой версии класса прогонять и смотреть за результатом.
Я же думаю, что если непонятно что-то будет при создании конфигурации гуру в области тестирования помогут Подмигивание
В смысле если не против - то я попробую пожалуй именно через юнит-тестирование сделать.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #551 - 30. Марта 2010 :: 17:51
Печать  
leshik, на счет тестирования (конфигурации, и прочего) отдаю тебе все карты в руки. Если напишешь я приму с большим удовольствием и благодарностью.
Сам когда-то думал над этим, уже было начинал, но ограничился конфой для поставщика. А прямой запрос так и остался "ручной" работой.

Пы.сы. яйцо фаберже блин.  Смех
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #552 - 30. Марта 2010 :: 17:56
Печать  
Сразу несколько мыслей:
- необходимо создать справочники с реквизитами всех возможных вариантов: строки, числа, даты, ссылки, периодические и неограниченной длины
- документы с аналогичными реквизитами
- регистр с типом Остатки
- регистры с типом Обороты с каждой периодичностью
- два плана счетов, с разными движениями
- разделитель учета
- всякого рода галочки на отборах чтобы проверять индексы
Ну и естественно:
- проверка парсинга таблиц
- проверка парсинга реквизитов
- проверка парсинга ВТ
- проверка создания временных таблиц из ТЗ и СЗ

Ужас какой-то  Нерешительный
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #553 - 30. Марта 2010 :: 18:00
Печать  
Вот оно! Откровение!
А я имею желание но не знаю с чего начать - начну ка я с того что vandalsvq написал Улыбка
Конфигурацию с указанными объектами за вечер сделаю. Куда выкладывать?
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #554 - 30. Марта 2010 :: 18:17
Печать  
Ты на конфе напиши еще с десяток другой реально работающих запросов. А чтобы было интереснее ее (конфу) надо данными заполнить. И не на одну дату навешать, а на несколько чтобы запросы с периодами проверять.
Конечно хорошо было бы результаты сверять с тем что 1С думает на этот счет.
А вот еще что, некоторые ВТ (да что там говорить почти все) сильно зависят от параметров, так что если будешь делать тесты то учти и это. Изменение параметров может привести к совершенно иному тексту запроса и результату.

Собственно вот когда это будет можно делиться. Думаю ты и для себя что-то новое найдешь.

Пы.сы. хотя я по идее собирался тебя отговаривать. Время мне твое жалко... честно. Может не надо, а????
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 35 36 [37] 38 39 ... 60
ОтправитьПечать