Имя: Пароль:
1C
1C 7.7
v7: Теоретический вопрос о движении регистров и о быстроте обработки
,
0 lucifer
 
31.08.11
16:12
У нас в компании пользуются 1с7 + самописная конфигурация с 2006 года.
Сейчас стал вопрос о "архивации" старых документов, дабы убыстрить работу программы, идею по архивации предложил программист который это конфигурацию изначально написал.
Суть ее в следующем (вкратце, основные моменты):
создается новый документ, в нем должна хранитьcя информация по сальдо например с 2006 по 2008 гг. Что значит по сальдо, например есть регистр "склад" есть документы которые двигают его в + и есть которые двигают в -
и есть отчет в котором можно посмотреть конечное сальдо или сформировать отчет по документам (каким документом был приход а каким расход). Ну так вот в этом документе должны находиться такиеже позиции как и в отчете на определенную дату к примеру на конец 2008 года.
и вроде как по его словам это убыстрит работу системы т.к. будет проводиться один документ на не все скопом (кстати у нас каждый вечер все документы перепроводятся в системе)
Сделал я такой док, сформировал отчет, засек время на обработку запроса ~45 c. (это по сальдо), провел созданный мною документ, проводок в регистре стало в 2 раза больше и сальдо увеличилось в 2-е,
сформировал заново отчет время на обработку запроса такое же. Вопрос, так в чем эта затея может убыстрить систему? Да время на перепроведение ночью будет затрачено меньше, но только ради этого думаю не стоит заморачиваться,
к тому же там столько подводных камней, что боюсь потом не разгребусь.
1 akaBrr
 
31.08.11
16:14
(0) а старые документы сделали не проведенными?
2 lucifer
 
31.08.11
16:15
(1) да
3 Mikeware
 
31.08.11
16:15
формат базы какой?
4 lucifer
 
31.08.11
16:16
(3) sql (я думаю вы это имели ввиду)
5 Mikeware
 
31.08.11
16:17
(4) тогда это особого смысла не имеет. Достаточно регулярно переиндексироватся и обновлять статистику
6 lucifer
 
31.08.11
16:19
(5) вот и я так думаю. Код переиндексации таблицы sql у меня есть, а что значит обновлять статистику?
7 ДенисЧ
 
31.08.11
16:20
(6) dbcc updatestatistics
Почитай в литературе по sql про то, как строятся планы запросов по полям, по которым нет индекса
8 Mikeware
 
31.08.11
16:23
(7) продай ему BOL :-)))
9 ДенисЧ
 
31.08.11
16:23
(8) БОЛ не могу пока, с билли не договориться никак...
10 lucifer
 
31.08.11
16:25
(7) что-т не найду, поделиться литературой если есть
11 ДенисЧ
 
31.08.11
16:25
(10) Скуль-сервер стоит? документацию к нему установил? Там всё есть.
12 Mikeware
 
31.08.11
16:26
(9) можно подумать, насчет СП ты с Борей договорился... :-D
13 ДенисЧ
 
31.08.11
16:26
(12) подумать можно :-)
14 Mikeware
 
31.08.11
16:28
(13)
Штирлиц подумал...
ему понравилось...
"А не подумать ли еще", подумал Штирлиц...
©
15 acsent
 
31.08.11
16:31
Ничего не понял из (0)
16 lucifer
 
31.08.11
16:31
(15) не страшно
17 acsent
 
31.08.11
16:31
Как может быть сальдо С .. ПО .. ???
18 acsent
 
31.08.11
16:32
Или все движения из разных документов перенсети в 1???
19 lucifer
 
31.08.11
16:32
(17) а я так написал )) знач ошибся, не с  по а на дату
20 acsent
 
31.08.11
16:33
У тебя каждое предложение - взаимоисключающие параграфы
21 lucifer
 
31.08.11
16:34
Кстати а если вместо sql 2000 (его счас юзаем) заюзать 2005 это будет производительней? или разницы особой не будет?
22 lucifer
 
31.08.11
16:35
(20) ну я не на форуме русского языка, я даже не знаю что такое "взаимоисключающие параграфы" :D
23 Patrio_
O_Muerte
 
31.08.11
16:53
(21)Перейти то можешь, но лучше все таки на 2000 - 1с штатно не держит 2005 и 2008 SQL
24 lucifer
 
31.08.11
16:57
(23) понял
25 Patrio_
O_Muerte
 
31.08.11
17:01
+(23)я про 1с77 говорю
26 Mikeware
 
31.08.11
17:15
(17) динамическое :-D
27 FN
 
31.08.11
17:33
очень насторожила фраза
(кстати у нас каждый вечер все документы перепроводятся в системе)

что-то в консерватории не так
28 milan
 
31.08.11
17:36
(27) Восстановление последовательности ?
29 FN
 
31.08.11
17:40
(28) наверное...
с 2006 года...
каждый день...

ЗЫ если это так - то это очень быстрая база
30 lucifer
 
31.08.11
17:42
(27) ну так ее изначально написали.
Например что-то подправили в старом документе (такое у нас считается нормальным явлением) и что бы это отразилось в регистре, и что бы другие связаные документы были актуальные нужно перепроводить.
(29) да уж... с 10 вечера до 5 утра )))
31 lucifer
 
31.08.11
17:42
а какие еще есть варианты, тут ничего не поделаешь
32 МастерВопросов
 
31.08.11
17:46
(5) так  чо свертка для SQL ной базы не имеет смысла?
33 Ёпрст
 
31.08.11
17:47
(32) да.
34 Mikeware
 
31.08.11
17:48
(27)(30) к сожалению, у нас так же - приходится ежевечерне подтягивать последовательность, ибо pit так и не поделился секретным знанием...
правда, у нас это делается в разделенном режиме (ибо 24*7) и т.п. Но процедура пересчета своя...
35 МастерВопросов
 
31.08.11
17:48
(30) установи дату запрета редактирования документов.
36 Mikeware
 
31.08.11
17:52
(35) Если б это решало проблему....
37 МастерВопросов
 
31.08.11
18:05
(33)(36) так все таки раскройте тему ширее как данные в прошлых периодах влияют на работу регистра в текущем периоде (к примеру при проведении документа на ТА). ТС-у наверное тоже это интересно.
38 Mikeware
 
31.08.11
18:09
(37) Да никак. Точнее, влияют - но как и положено по математическим правилам...
А что касается их наличия, то никак не влияет, особенно если работа в основном ведется в одном периоде - ибо сиквелд достаточно хорошо кэширует данные...
39 FN
 
31.08.11
18:10
(30) если проблема "медленной работы" только в перепроводке документов, то для начала попробуй ReconectNative() из 1cpp, а еще лучше перепиши основные модули проведения (в частности расчет остатков) на прямые запросы.
После этих манипуляций скорость перепроводки сильно возрастет.
40 FN
 
31.08.11
18:14
(39)+ кстати, если перейти на 2005 скуль - то перепроводка документов будет идти шустрее (погугли про проблему замедления на 2000 скуле, ReconectNative() как раз костыль для этого).
Но лично я сомневаюсь, что 77+2005=стабильная связка
41 d_koz
 
31.08.11
19:39
(40) если (0) перейдет на скуль 2005, то на базе семерочной все равно придеться ставить галку совместимости со скулем 2000, врядли сильно ускорит, то что скуль 2005 будет пытаться работать, как скуль 2000
(0) советую просто сделать свертку базы, информация по сверке и как ее делать и обработки должны быть на ИТСе
42 FN
 
31.08.11
22:49
(41) никто не говорит об ускорении базы на 2005 скуле. Разговор про глюк 2000 скуля, который МС так и не исправила. в 2005 этого глюка нет, даже в режиме совместимости.
43 d_koz
 
31.08.11
23:15
(42) не буду спорить, не моя база, не мне перепроводить все документы с 2006 года каждый рабочий день :)
Но если сделать свертку, то база должна стать существенней легче, учитывая, что она аж с 2006, не свернутую(старую) хранить только для просмотра старых документов,а в новой(свернутой) спокойно пару лет еще работать, тогда не будет необходимости замены скуля на более новый, переписывать часть модулей на прямые запросы...А можно и все вместе варианты(свертка,скуль2005,прямые запросы,сервер проапгредить) сделать хД
44 lucifer
 
31.08.11
23:23
(41) а где кроме итс можно почитать про свертку?
(39) что такое прямые запросы?
45 FN
 
31.08.11
23:27
похвастаюсь...

у меня комплексная база нерезанная с 2002, в день 300-400 расходных документов (среднее кол-во позиций 48).
Перепроводка в разделенном режиме (перепроводка задним числом) 200-300 мс на один документ.

Параметры сервера на уровне добротной домашней машины

(44) смотри форум на 1cpp.ru - там есть "методичка" для начинающих
46 FN
 
31.08.11
23:33
47 d_koz
 
31.08.11
23:37
(45) 7.7 ? А весит база уже сколько ?
48 FN
 
31.08.11
23:38
(47) 23гб
49 d_koz
 
31.08.11
23:40
50 d_koz
 
31.08.11
23:41
(48) и ни слова про платформу ;)
51 FN
 
31.08.11
23:42
(50) ну так ветка же про 7.7
У меня в частности 7.7 (27) + скуль 2000сп4
52 lucifer
 
31.08.11
23:56
неее обрезать нельзя, как я понял из (49) это подбить остатки и удалить доки со всеми связями. Что-т я слабо представляю как же это убрать основание (старые доки) что бы все еще коректно после этого работало
53 FN
 
31.08.11
23:58
(52) то что ты описывал в (0) - это та же свертка, только чуть-чуть не доконца выполненная
54 lucifer
 
01.09.11
00:10
(53) да помне то что я описал в (0) это гемор на мою опу )))
(46) скачал, бегло пробежался (завтра почитаю внимательнее) но там речь идет о выборке о обработке запросов, это убыстрит формирование отчетов, а проведение? в смысле движение регистров (приходвыполнить расход...) там не увидел такого
55 trad
 
01.09.11
00:24
(45)
хе-хе
В разделенном режиме (правда по ночам) 120-140мс - обычное дело. Иногда бывает и 70-100, но редко.
56 FN
 
01.09.11
00:25
(54) обычно в модулях проведения тормозит расчет остатков  задним числом. Время на расчет может достигать 99% от всего времени проведения документа.
Вот эту часть и нужно ускорять.

Сделай простой тест:
Запусти Отладчик, поставь замер производительности. Дальше нажми F11 - откроется предприятие, запусти перепроводку документов за неделю.
После того как закончится перепроведение возвращайся в Отладчик, останавливай замер и смотри на что тратится основное время.

Можешь сюда запостить первые 10 строк замера
57 lucifer
 
01.09.11
14:17
да тут и без замер понятно почему долго. Код сначала обнуляет некоторые значение в товарах, в счетах ... и все это перебором представляете сколько скопилось доков и товара, основная нагрузка на этом.