Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема "Быстрая обработка движений" - есть ли смысл использовать ? (число прочтений - 3233 )
mrgreen
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 01. Августа 2009
"Быстрая обработка движений" - есть ли смысл использовать ?
06. Августа 2009 :: 06:49
Печать  
Как все понимают речь идет о признаке "Быстрая обработка движений" у регистра по которому в таблицу движений добавляется доп. поле с ссылкой на док-т/время.

Так вот в чем вопрос. Имеет ли смысл его добавлять если вывести сам док-т всё равно прийдётся ? т.е. не просто использовать для определения вхождения в период а ещё и вытягивать его из самого журнала.

Получается что если мы это поле не добавляем в тб движений то для определения периода используем чтото типа

Код
Выбрать все
INNER JOIN _1SJOURN As TabJ
    ON (TabReg.IDDOC = TabJ.IDDOC)
WHERE
    TabJ.DATE_TIME_IDDOC >= @PERIODN
    AND TabJ.DATE_TIME_IDDOC <= @PERIODK 



и потом оттуда же (TabJ) вытягиваем и данные по документу

если же используем

Код
Выбрать все
WHERE     (CAST(LEFT(Остатки.DATE_TIME_IDDOC, 8) AS datetime) >= @PERIODN) AND (CAST(LEFT(Остатки.DATE_TIME_IDDOC, 8) AS datetime) <= @PERIODK) 



то потом уже всё равно прийдётся обращаться к таблице журнала док-тов для вытягивания оного НО сам то запрос для определения периода не лезет в эту таблицу и соответсвенно работает пошустрее

а вот таблица движений "пухнет" (если там и так несколько десятков миллионов записей) получается и хорошо

так вот есть ли смысл включения этой галочки или нет ?
  
Наверх
 
IP записан
 
MichaelM
YaBB Newbies
*
Отсутствует



Сообщений: 10
Зарегистрирован: 20. Августа 2007
Пол: Мужской
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #1 - 06. Августа 2009 :: 07:38
Печать  
Этот признак относится  категории оптимизации.

все зависит от конфигурации SQL server, если попадание в кэш - гуд, а дисковая подситема слабая (дешовый сервер для малого количества пользователей  ) - то лучше не использовать тк  индекс по этому полю создает доп. нагрузку.   
Если дисковая система мощная (индексы,логи темп и бд разнесены )
то будет выигрыш. Вообщем проверьте на проведении документов с максимальным колвом строк ТЧ.

для уточнения измерения запустите на тестовом сервере какую- нибуть нагрузочную задачу по конвертации  видео на диск с логом


и примерно будет ясно.

http://www.softpoint.ru/article_id36.htm

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


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #2 - 06. Августа 2009 :: 08:27
Печать  
С этим признаком добавляется 2 поля iddocdef и date_time_iddoc.
1) К таблице журнала обращаться не нужно, т.к. есть iddocdef и iddoc
2) В условии для периода такого лучше не писать (CAST(LEFT(Остатки.DATE_TIME_IDDOC, 8) AS datetime), так не будет использоваться индекс.
Лучше так ТекстЗапроса = "Остатки.DATE_TIME_IDDOC between '"+Формат(НачДата,"ДГГГГММДД")+"' and '"+Формат(КонДата+1,"ДГГГГММДД")+"'
  
Наверх
 
IP записан
 
mrgreen
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 01. Августа 2009
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #3 - 10. Августа 2009 :: 09:45
Печать  
кстати а почему КонДата+1

between же работает "по" т.е. включая и получается есть возможность попадания в выборку (скажем до 01.01.01 00:00:000) док-та с позицией с той же позицией 01.01.01 00:00:000

т.е. такое вряд ли будет т.к. ночью тут не водят но всё же есть такая возможность ?

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


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #4 - 10. Августа 2009 :: 11:15
Печать  
Потому что date_time - это строка в 1С.
например, хотим по 10.08.09 включительно, тогда Формат('10.08.09' + 1,"ДГГГГММДД") = "20090810". В выборку попадут date_time,например "20090809 ZZZZZ" и не попадут "20090809 00000" "20090810 00000"
  
Наверх
 
IP записан
 
mrgreen
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 32
Зарегистрирован: 01. Августа 2009
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #5 - 10. Августа 2009 :: 11:32
Печать  
точно, там же скл передается строка а не дата и 20090101 0000000 просто в любом случае больше просто 20090101
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: "Быстрая обработка движений" - есть ли смысл использовать ?
Ответ #6 - 10. Августа 2009 :: 11:38
Печать  
Цитата:
Код
Выбрать все
ТекстЗапроса = "Остатки.DATE_TIME_IDDOC between '"+Формат(НачДата,"ДГГГГММДД")+"' and '"+Формат(КонДата+1,"ДГГГГММДД")+"'  


Я считаю что стоило бы написать вот так
Код
Выбрать все
ТекстЗапроса = "Остатки.DATE_TIME_IDDOC between :НачДата and :КонДата~"  


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