Переключение на Главную Страницу Страницы: 1 2 [3] 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Ускорить проведение документа (число прочтений - 15682 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ускорить проведение документа
Ответ #30 - 08. Февраля 2011 :: 11:25
Печать  
Тип того.

  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #31 - 08. Февраля 2011 :: 11:32
Печать  
Просто в учебнике по 1СРР именно такая методика приведена (да и 1СV8 тоже вроде), вот и взял ее за основу. Интересно услышать, кто еще как у себя реализовывал на практике, и насколько но получается быстрее или медленнее в итоге...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Ускорить проведение документа
Ответ #32 - 08. Февраля 2011 :: 11:54
Печать  
Neo писал(а) 08. Февраля 2011 :: 11:32:
Просто в учебнике по 1СРР именно такая методика приведена (да и 1СV8 тоже вроде), вот и взял ее за основу. Интересно услышать, кто еще как у себя реализовывал на практике, и насколько но получается быстрее или медленнее в итоге...

конечно списком быстрее будет и чем больше строк в табличной части  тем
больше будет разница
скорость выполнения запроса на 100 товаров и на один будет одинаковой
а запросов будет один вместо ста.
Ну и еще если повторяюся одинаковые товары
то табличнуб часть надо свернуть чтобы правильно рассчитывались минусы по остаткам
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Ускорить проведение документа
Ответ #33 - 08. Февраля 2011 :: 11:56
Печать  
и еще полезно включить:
RecordSet.ОбратныйРасчетОтТА(1)
  

1&&2&&3
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #34 - 08. Февраля 2011 :: 12:11
Печать  
Цитата:
скорость выполнения запроса на 100 товаров и на один будет одинаковой
а запросов будет один вместо ста.


Ладно, поэкспериментирую на досуге. Хотя мне все равно не ясно, в чем принципиальная разница. Имхо, SQL Server достаточно умен, чтобы правильно разобраться в таких ситуациях. Например, есть у нас табличка из 10 записей, и мы делаем левый джоин к другой большой таблице. Либо мы сразу делаем запрос к 2-й таблице с условием вхождения в список по первой табличке. По-моему, для скуля большой разницы не будет. Хотя может и ошибаюсь...
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #35 - 08. Февраля 2011 :: 12:15
Печать  
Цитата:
и еще полезно включить:
RecordSet.ОбратныйРасчетОтТА(1)


При получении остатков на ТА наверное это не актуально. В моем случае расходная проводится в 99% процентов случаев после ТА.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ускорить проведение документа
Ответ #36 - 08. Февраля 2011 :: 12:16
Печать  
Neo писал(а) 08. Февраля 2011 :: 12:11:
Цитата:
скорость выполнения запроса на 100 товаров и на один будет одинаковой
а запросов будет один вместо ста.


Ладно, поэкспериментирую на досуге. Хотя мне все равно не ясно, в чем принципиальная разница. Имхо, SQL Server достаточно умен, чтобы правильно разобраться в таких ситуациях. Например, есть у нас табличка из 10 записей, и мы делаем левый джоин к другой большой таблице. Либо мы сразу делаем запрос к 2-й таблице с условием вхождения в список по первой табличке. По-моему, для скуля большой разницы не будет. Хотя может и ошибаюсь...


смотри план выполнения запроса.
Он всё покажет.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ускорить проведение документа
Ответ #37 - 08. Февраля 2011 :: 12:18
Печать  
+ у тебя лишнее условие в виртуальной табличке на товар.. ибо ты унутри ВТ и так присоединяешь строки документа по иннеру + on товар в ВТ = товар в тч дока.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Ускорить проведение документа
Ответ #38 - 08. Февраля 2011 :: 12:23
Печать  
Neo писал(а) 08. Февраля 2011 :: 12:15:
Цитата:
и еще полезно включить:
RecordSet.ОбратныйРасчетОтТА(1)


При получении остатков на ТА наверное это не актуально. В моем случае расходная проводится в 99% процентов случаев после ТА.

Это актуально как раз при получении остатков на ТА.
Уж поверь мне. Не веришь - проверь: посмотри отладку запроса, в частности как разворачивается ВТ "РегистрОстатки" при вкл. и при выкл. режиме обратного рассчета.

сори. соврал.
этот режим имеет смысл для позиций близких к ТА, но не после ТА
  

1&&2&&3
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #39 - 09. Февраля 2011 :: 08:33
Печать  
Как лучше объединять данные из нескольких регистров: джоинами или юнионами?
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Ускорить проведение документа
Ответ #40 - 09. Февраля 2011 :: 08:45
Печать  
Neo писал(а) 09. Февраля 2011 :: 08:33:
Как лучше объединять данные из нескольких регистров: джоинами или юнионами?

Все зависит от задачи и исходных данных. Джойнами можно случайно надублировать строки!
Также никто не запрещал подзапросы.
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #41 - 09. Февраля 2011 :: 08:51
Печать  
Задача все та же, получение остатков в модуле проведения. Роль играют даже доли секунды, хочется по максимум ускорить.

Например, получаю я остатки из регистра ОстаткиТоваров по списку товаров из ТЧ. Но надо еще получить стоимость. Что будет лучше: приджойнить по полю товар или опять же сделать запрос по списку товаров из ТЧ и объединить юнионом?
  
Наверх
 
IP записан
 
Злой Бобр
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Украина, Кривой Рог
Зарегистрирован: 07. Марта 2009
Пол: Мужской
Re: Ускорить проведение документа
Ответ #42 - 09. Февраля 2011 :: 09:10
Печать  
Neo писал(а) 09. Февраля 2011 :: 08:33:
Как лучше объединять данные из нескольких регистров: джоинами или юнионами?

На самом деле смотря что за запрос. Иногда джойнить быстрее, а иногда джойны просто вешают систему поэтому лучше юнион делать. Поэтому ответ в самом вопросе - джоинами или юнионами.
  

Если у вас есть деньги тогда мы идем к вам!!!
Наверх
ICQ  
IP записан
 
Злой Бобр
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Украина, Кривой Рог
Зарегистрирован: 07. Марта 2009
Пол: Мужской
Re: Ускорить проведение документа
Ответ #43 - 09. Февраля 2011 :: 09:12
Печать  
Neo писал(а) 09. Февраля 2011 :: 08:51:
Например, получаю я остатки из регистра ОстаткиТоваров по списку товаров из ТЧ. Но надо еще получить стоимость. Что будет лучше: приджойнить по полю товар или опять же сделать запрос по списку товаров из ТЧ и объединить юнионом?

Что-то мне подсказывает что быстрее джойн отработает. Сделай так и так и замерь скорость.
  

Если у вас есть деньги тогда мы идем к вам!!!
Наверх
ICQ  
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Ускорить проведение документа
Ответ #44 - 09. Февраля 2011 :: 10:49
Печать  
Попробовал переделать запрос из (27) на запрос с фильтром по списку из ТЧ. Получилось еще медленее. Причем с юнионом медленее гораздо, чем с джоином. Ниже привожу оба варианта запроса.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 
ОтправитьПечать