медленное фомирование бух баланса по сети

1. gorinich235 12.11.12 11:15 Сейчас в теме
Народ, нужны свежии идеи по проблеме.
суть трабла такова:
есть сервер с файловой базой бух 2.0, база весит 1гб, с базой работают 4 пользователя, сеть 100мбит
база работает стабильно и довольно быстро, НО
если на любом пользовательском ПК запустить формирование Бух баланса за 9 месяцев, то может формировать его сутки и в итоге не сформирует.
если копировать базу в локал - то формируется тот же отчет за 2 минуты.
а самое главное если базу перенести со всеми логами в другой каталог на сервере, то отчет тоже формируется быстро (2 минуты) - но через пару дней работы пользователей с базой опять начинаются тормоза с этим отчетом.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
31. AlexO 135 21.11.12 10:19 Сейчас в теме
(1) gorinich235,
есть сервер с файловой базой бух 2.0

мне уже все ясно.
Очередные студенты, не удосужившиеся почитать про работу файловой версии?
2. Freon_Nsk 12.11.12 12:09 Сейчас в теме
Какой тип подключения используется к базе 1С на сервере? Не пробывали подключиться через терминальный сервер?
3. gorinich235 12.11.12 12:27 Сейчас в теме
(2) Freon_Nsk,
база файловая,на сервере просто расшарена папка,терминалки нет. подклучались и по ip и как сетевой диск, разницы нет - одинаково медленно
4. dimalf 12.11.12 12:43 Сейчас в теме
Поставьте терминальный доступ. Намного быстрее работает. Если нельзя, просите коллег выйти из базы на время формирования отчёта.
5. 1Cergey 15 12.11.12 13:08 Сейчас в теме
Есть предложение каждый раз очищать кэш конфигурации (попробуй не перекладывать базу в другую папку , а просто удалить ее из списка баз и заново завести) и посмотри будет ли изменяться быстродействие ?
6. gorinich235 12.11.12 13:36 Сейчас в теме
с терминалкой вариантов нет, так как нужно будет покупать терминальные лицензии,
да и 4 пользователя не такая уж великая нагрузка, не ясна причина что же влияет на скорость формирования баланса.
база протестирована на физ, лог и ссылочную целостность - ошибок нет.
проведен пересчет итогов, загрузка\выгрузка - не помогло.
выгонять пользователей, чистить кэш, менять id базы - не влияет на скорость формирования баланса.
пробовал даже запустить с чистого ПК на котором база не разу не работала - теже грабли вылезают !!!

P.S. база типовая. обновление програмников не помогло.
7. Sevens 6 12.11.12 13:55 Сейчас в теме
Чисто теоретически, следуя из этого
если копировать базу в локал - то формируется тот же отчет за 2 минуты.
а самое главное если базу перенести со всеми логами в другой каталог на сервере, то отчет тоже формируется быстро (2 минуты) - но через пару дней работы пользователей с базой опять начинаются тормоза с этим отчетом.

После формирования отчета и его закрытия, что-то куда-то пишется, и при многократном его вызывании забивается память, в следствии возникают тормоза. Осталось выяснить что, куда и почему пишется.
Проследить поток данных при формировании отчета и после его закрытия.
8. tango 506 12.11.12 14:15 Сейчас в теме
тупо замерить производительность не судьба?
9. gorinich235 12.11.12 14:45 Сейчас в теме
(8) tango,
замер производительности делал, тупо долго чего то делается при запросе данных по счетам.
для примера есть счет 76.01.2 на нем движухи нет,
если база работает медленно, то при формировании оборотки по этому счету скачет загрузка локалки до 35% и формируется около 30-50 сек.
если же ту же самую базу скопирую в другой каталог на этом же сервере, то оборотка по этому счету формируется 3 сек. и нагрузка на сеть 1-3% (в обоих случаях один пользователь).

при формировании бух баланса в медленном варианте тоже наблюдается всплеск сетевой нагрузки 35% и висит практически прямой линией на этом уровке (такая фигня на 5 разных ПК)
10. tango 506 12.11.12 15:36 Сейчас в теме
(9) gorinich235, а что там с рассчитанностью итогов?
11. tango 506 12.11.12 15:38 Сейчас в теме
я бы запустил какую-нито шнягу, отслеживающую активность файловой системы. что-то эта "платформа" типо кэширует
12. gorinich235 13.11.12 16:13 Сейчас в теме
(11) tango,

пересчет итогов запускался неоднократно - не помогает.
активность системы смотрел procmon в нем видно что 1с активно читает и пишет данные в файл *.1CD - что именно там происходит можно только предполагать.......
13. tango 506 13.11.12 17:01 Сейчас в теме
(12) gorinich235, хера се! прошу пардону, иначе не...
при формировании баланса шарашит в сидюшник ?!?

слушай, друже, у тебя точно баланс - типовая форма?
14. gorinich235 15.11.12 13:33 Сейчас в теме
(13) tango,

да точно по сети при формировании баланса идет чтение\запись к 1cd соотношение примерно такое 20(чтение)\1(запись).
база полностью типовая, проверял !!!
сегодня попробовал переложить базу с сервера на локальный пк, ситуация такая же:
локально баланс формируется 2 минуты, по сети бесконечно долго, первые несколько часов работала быстро!!!
сразу же беру в расшареной папке создаю пустую папку и копирую туда базу со всеми темпами и логами, прописываю новые пути и вуаля, по сети баланс фомируется за 2 минуты. Какой-то ПОЛТЕРГЕЙСТ !!!!
Не перекладывать же базу каждый день в другую папку ))))))
15. lDenisZl 15.11.12 21:22 Сейчас в теме
Проблема встречается у многих, тут поможет либо терминальный доступ либо 1с-сервер. Хотя можно еще поиграться с сеткой, на гигабитной с гигабитным коммутатором должно получше(но неизвестно насколько) работать. но опять же база чуть вырастет со временем и опять пойдут тормоза.
17. gorinich235 16.11.12 12:34 Сейчас в теме
(15) lDenisZl,

что за известная проблема? можно поподробней?
33. AlexO 135 21.11.12 10:25 Сейчас в теме
(15) lDenisZl,
тут поможет либо терминальный доступ либо 1с-сервер

А суть знаем? :)
(17) gorinich235,
что за известная проблема?

уж наверное, если эта проблема возникла СРАЗУ ПО ВЫХОДУ 1С8 в коммерческую эксплуатацию - она известная? Или нет?
35. gorinich235 21.11.12 12:05 Сейчас в теме
(33) AlexO,

написано много.... а по факту?
неужели 4 пользователя так сильно нагружают сеть, что им необходим сервер 1с и сиквель?
кстати для примера, 2 пользователя дают такую же нагрузку на сеть.
что для любой организации работы двух пользователей покупать сиквель с серваком 1с?
36. tango 506 21.11.12 12:05 Сейчас в теме
(35) gorinich235, сеть здесь не при делах
двух пользователей покупать сиквель

терминал
Прикрепленные файлы:
37. AlexO 135 21.11.12 12:20 Сейчас в теме
(36) tango,
я думаю, что как раз при делах - а при делах именно, как работает файловая 1С в сети :)
(35) gorinich235,
а по факту?

факт у вас перед глазами, нет? :)
неужели 4 пользователя так сильно нагружают сеть

открою страшную тайну 1С: при работе файловой 1С по сети она "тянет" почти всю базу на комп клиента, и там крутит. Сервера-то нет.
Так что вам и вашему руководству решать - покупать или нет сервер 1С.
38. AlexO 135 21.11.12 12:23 Сейчас в теме
(36) tango,
только терминал - временное решение. У ну, как начнутся взаимоблокировки намертво? В файле с этим все намного хуже, чем блокировки на уровне таблиц в СУБД.
39. gorinich235 21.11.12 12:43 Сейчас в теме
(38) AlexO,

ок принял к сведению, спасибо
тогда еще приоткройте страшную тайну все пользователи в составе двух человек на бескрайних просторах россии и не только - мучаются с этой проблемой или бегут покупать сервер 1с?
40. AlexO 135 21.11.12 12:50 Сейчас в теме
(39) gorinich235,
все пользователи в составе двух человек

ну все, уел :)
Просто наповал! Признаю, был не прав! Три раза! :))
А теперь, когда я признал свою неправоту - подумайте, все ли пользователи "на бескрайних просторах России и не только" работают на одинаковых серверах, по одной и той же сети, в одной конфигурации, одной платформе, с одними и теми же наборами данных, делают одни и те же отчеты, решают одни и те же задачи, работают одновременно всегда в одном количестве 2х человек?
И попробуйте сами ответить на вами поставленный вопрос:
"мучаются с этой проблемой или бегут покупать сервер 1с?"
PS: хоть поиск-то запустите по ИС - не вы один даже такой с 2-мя человеками, оказывается :)
41. gorinich235 21.11.12 13:14 Сейчас в теме
(40) AlexO,

ну конечно столько переменных не учтешь.
кстати уедать не собирался, интересует только мнение знающих людей по этой проблеме и все идеи с удовольствием выслушаю !!!!

моделировал даную ситуацию в гигабитной сети с другим сервером и другими машинами (тот же параметр был только таже самая база)
ситуация повторяется если к базе подключается второй пользователь.
его выход не влияет на увеличение скорости в обратную сторону.
второй пользователь ничего не делает только запускает базу.
42. tango 506 21.11.12 13:29 Сейчас в теме
(41) gorinich235, значит, переход 77:dbf -> 8х:CD ничего не изменил
46. AlexO 135 24.11.12 19:57 Сейчас в теме
(42) tango,
значит, переход 77:dbf -> 8х:CD ничего не изменил

совершенно верно, и это непонятно только студентам, якобы поназаканчивающим всякие МИФИ-фифи, факультеты ЭВМ с курсами информатики.
1С не сделал НИЧЕГО в плане написания своего компонента сетевого обмена, а тупо пользует файловый доступ ОС (что ему еще хорошо аукнется в экспансии 1С на Linux, и будет исправлятся мимнимум лет пять - на Linux, я имею ввиду, на Windows 1С-у не хватит ума такое написать никогда).
Поэтому второй пользователь ЗАБЛОКИРОВАН (или блокирует сам) доступ к сетевому файлу, и эта постоянная блокировка файла то от одного, то от другого не дает нормально получать данные из файла-базы.
В 7.7 с этим даже было проще - там этих файлов было размазано по базе немеряно :)
16. tango 506 15.11.12 23:47 Сейчас в теме
вот! знаю! надо убить аппаратное ускорение на видюхе! сто пудов помогает!
18. gorinich235 16.11.12 12:35 Сейчас в теме
(16) tango,
как бухи дадут доступ к ПК,попробую убить аппаратное ускорение, отпишусь по результатам.
19. tango 506 16.11.12 12:38 Сейчас в теме
(18) gorinich235, ну как бы пошутил. а попробовать надо, кроме шуток.
22. gorinich235 20.11.12 11:29 Сейчас в теме
(19) tango,

Гы )), убил аппаратное ускорение - не помогло ((((
отключил журнал регистрации - не помогло.......
идей больше нет!!!!
23. tango 506 20.11.12 11:56 Сейчас в теме
(22) gorinich235, прогнал заполнение баланса
оказалось, вызывается такая шняга:
ОнлайнСервисыРегламентированнойОтчетности

и эта шняга пишет в кэш!

Процедура СохранитьДанныеВКэшеСправочнойИнформации(Имя, Тип, Данные)
	
	РезультатПоиска = КэшСправочнойИнформации.Найти(Тип, "Тип");
	Если РезультатПоиска <> Неопределено Тогда
		КэшСправочнойИнформации.Удалить(РезультатПоиска);
	КонецЕсли;
	
	НовСтр = КэшСправочнойИнформации.Добавить();
	НовСтр.Имя = Имя;
	НовСтр.Тип = Тип;
	НовСтр.Данные = Данные;
	
КонецПроцедуры
Показать



глянь, может у тебя - оно?
20. maksimkonkov 16.11.12 13:15 Сейчас в теме
4 юзера - это не так уж и много для стоимости терминального расширения вашего сервака. причем, из-за этого решатся многие ваши проблемы. в том числе и если база будет расти, количество пользователей вырастет и т.д. и т.п. я в свое время прокидывал IP. в таком случае скорость работы пользователей даже при удаленной работе неизменно росла. и пропускная способность вашей сети тут абсолютно не при чем... все равно скорость 100МБ вы никогда не получите в практике...
21. gorinich235 16.11.12 13:52 Сейчас в теме
(20) maksimkonkov,

вариант с терминалкой вопрос конечно можно попробовать решить, но остается суть проблемы
НЕЧТО при формировании баланса гонит сильно сетевой трафик - причем это происходит даже если я всех выгоню из базы и запущу формирование баланса с единственным пользователем в базе.
а вот как отловить это "НЕЧТО" ????
24. tango 506 20.11.12 12:02 Сейчас в теме
еще возможный трабл, тоже при заполнении:
Процедура ВключитьОбработчикАвтосохранения(Форма) Экспорт
	
	Форма.мИнтервалАвтосохранения = ЗначениеИнтервалаАвтосохраненияРегламентированнойОтчетности();
	Если Форма.мИнтервалАвтосохранения <> 0 Тогда
		Форма.ПодключитьОбработчикОжидания("ОбработчикСобытияПоТаймеру", Цел(Форма.мИнтервалАвтосохранения * 60));
	КонецЕсли;
		
КонецПроцедуры
28. gorinich235 21.11.12 10:13 Сейчас в теме
(24) tango,

забыл добавить выход из базы второго пользователя после того как уже нагрузка на сеть возросла ни как не влияет не на загрузку сети, не на скорость формирования отчета !!!!!
34. tango 506 21.11.12 10:32 Сейчас в теме
(28) gorinich235, фраза звучит один в один как описание файловой 77
25. tango 506 20.11.12 12:06 Сейчас в теме
посмотри, вызываются ли у тебя при заполнении баланса что-нибудь из блока
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ПОЛУЧЕНИЯ ИЗ ИНТЕРНЕТ, РАЗБОРА И СОХРАНЕНИЯ В ИБ
// СПРАВОЧНОЙ ИНФОРМАЦИИ МЕХАНИЗМА

обработки
ОнлайнСервисыРегламентированнойОтчетности
27. gorinich235 21.11.12 10:12 Сейчас в теме
(25) tango,

в кэши точно что то пишется причем в две папки:
C:\Users\USR1\AppData\Local\1C\1Cv82
C:\Users\USR1\AppData\Roaming\1C\1Cv82
но вроде не сильно много туда падает.

выловил аналогичную ситуацию в другой сети и с другой базой.

есть возможность аналогичную ситуацию проимулировать?
Условия такие: кидаем любую бух типовую в сетевую расшареную папку.
с компа по сети лезем к ней и запускаем бух отчетность (январь-сентябрь 2012)
загрузка сети сначала скачет потом падает почти до нуля и около него колеблется, время формирования ~2мин
если же с с другого компа или с этого запустить туже базу еще раз, то загрузка сети сразу скачет до 10-50%
и стабильно там висит,соответственно время формирования увеличивается значительно !!!
29. tango 506 21.11.12 10:15 Сейчас в теме
(27) gorinich235,
я бы попробовал заглушить процедуры из (23),(24)
26. maleshov.maxim 82 20.11.12 12:06 Сейчас в теме
Была аналогичная проблема после перехода с БП 1.6 на БП 2.0. Проблема однозначно связана с использованием сетевой папки под платформой Windows. Дико долго формировался не только отчетность, но и любая оборотка.

Единственным решением (кроме серверной версии) был терминальный доступ (ярлык через RemoteApp).
32. AlexO 135 21.11.12 10:20 Сейчас в теме
(26) Sax-mmS,
Единственным решением (кроме серверной версии) был терминальный доступ (ярлык через RemoteApp).

Студенты, хоть ИС почитайте, КАК РАБОТАЕТ ФАЙЛОВАЯ ВЕРСИЯ 1С!
ПО СЕТИ КАК РАБОТАЕТ! СО СКОЛЬКИМИ ПОЛЬЗОВАТЕЛЯМИ!
И почему все покупают сервер 1С, хотя он и не стоит своих денег.
43. maleshov.maxim 82 22.11.12 09:46 Сейчас в теме
(32) AlexO, я в курсе, как работает файловая версия.

Проблема возникала при сочетании двух конкретных фактов: файловая версия в расшареной папке Windows-сети и БП 2.0 (видимо в части запросов на СКД). На БП 1.6 при тех же условиях (Windows, платформа 1С) все летало. При переносе базы в локальную папку тоже проблем нет. Терминальный доступ решает эту проблему, а блокировки в базе из 4-х пользователей на БП, это скорее из области фантастики.
44. tango 506 22.11.12 10:31 Сейчас в теме
(43) Sax-mmS, пожалуйста, покажите пальцем конкретный отчет, по которому можно обнаружить указанную разницу между 1.6 и 2.0
45. maleshov.maxim 82 22.11.12 13:38 Сейчас в теме
(44) tango
У клиента была ровно та же проблема, что описана в первом сообщении.
Баланс за месяц с шары формировался 1.5-2 часа, в локальной копии секунды.
Про больший период и говорить нечего, время росло сообразно увеличению периода.
49. AlexO 135 24.11.12 20:06 Сейчас в теме
(45) Sax-mmS,
У клиента была ровно та же проблема, что описана в первом сообщении.

это ровно все одна и та же старейшая проблема 1С8, которая именно вот такими же студентами с ровно точно таким же подходом к жизни и программированию не решается уже 12 лет (и все 15 - с 1С7).
48. AlexO 135 24.11.12 20:04 Сейчас в теме
(44) tango,
по которому можно обнаружить указанную разницу между 1.6 и 2.0

Михаил, вам сейчас еще про разницу регистров в 1.6 и 2.0 начнут рассказывать :)
47. AlexO 135 24.11.12 20:03 Сейчас в теме
(43) Sax-mmS,
я в курсе, как работает файловая версия

нифига вы не в курсе, как вообще сеть работает, а тем более - у 1С.
Проблема возникала при сочетании двух конкретных фактов

проблема вознивает ВСЕГДА на файловой версии по сети, когда пользователи не ИБДэшат.
На БП 1.6 при тех же условиях (Windows, платформа 1С) все летало.

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

вот именно поэтому я сделал вывод, что вы ничего не знаете про сетевой доступ в принципе.
И то, и другое из вашего поста - это локальный доступ к файлу.
а блокировки в базе из 4-х пользователей на БП, это скорее из области фантастики.

а из этого я сделал вывод, что вы ничего не знаете и про работу 1С по сети.
30. tango 506 21.11.12 10:18 Сейчас в теме
Куда платформа пишет временные таблицы запроса в файловом варианте?
http://www.forum.mista.ru/topic.php?id=606126
50. Aleksand1985 7 25.11.12 16:24 Сейчас в теме
По всем высказываниям согласен с AlexO. Недавно знакомый сисадмин обратился с таким же вопросом как и gorinich235 "При формировании баланса по сети база думает минут 30, переношу на локалку, летает! ЧЁ ДЕЛАТЬ?!". Ему бухи плешь проели из-за этого! Посоветовал для начала терминальный сервер и в план разводить начальство на SQL! Он подключил всех через терминал! И как результат у меня в баре стоит бутылочка достойного армянского коньяка! Щас разводит начальстов на SQL и по-моему учпешно!
Так что судите сами!
51. tango 506 25.11.12 18:30 Сейчас в теме
(50) Aleksand1985, подумать страшно, что у тебя в баре появится после развода на сиквель
52. gorinich235 26.11.12 13:56 Сейчас в теме
(50) Aleksand1985,

тут ситуация хуже, 30 минут бухи бы подождали а вот ожидание 10 часов что-то их огорчает....
53. AlexO 135 26.11.12 14:06 Сейчас в теме
(52) gorinich235,
30 минут бухи бы подождали

какие дрессированные терпеливые бухи :)
подстраивайтесь под 1С, раз уж связались.
54. gorinich235 27.11.12 15:04 Сейчас в теме
(53) AlexO,
как можете прокоментировать сложившуюся ситуацию?
все та же медленно работающая база, все та же сеть и тд.
накинул следующее обновление и о чудо база даже при нескольких пользователях
стала формировать баланс за 2 минуты.
56. AlexO 135 29.11.12 11:21 Сейчас в теме
(54) gorinich235,
все та же медленно работающая база, все та же сеть и тд.

база работает стабильно и довольно быстро, НО
если на любом пользовательском ПК запустить формирование Бух баланса за 9 месяцев, то может формировать его сутки и в итоге не сформирует.
если копировать базу в локал - то формируется тот же отчет за 2 минуты.

- где-то вы лукавите.
накинул следующее обновление и о чудо база даже при нескольких пользователях
стала формировать баланс за 2 минуты.

- хотите сказать, что 1С "оптимизировала" вашу сеть новым обновлением? :)
Или сломала все свои наработки и принципы работы платформы - и всего лишь за одно неизвестное обновление, причем конфигурации?
У вас прямо противоположные высказывания, вытекающие из недостатка знаний и информации. То у вас "работает быстро, но тормозит по сети, причем сеть не загружена", то "быстро заработала по сети".
И что база может быть уже закэширована на клиенте - тоже не подумали.
И НИКОГДА 1С не оптимизировала тормозные отчеты, если таковые "находила", за одно обновление.
Так что у вас даже исходные постулаты "задачи" (тут быстро, тут - медленно, а тут - снова быстро вдруг) - вызывают сомнения в последовательности, которой они указаны, точности и качестве наблюдений, и в предпринимаемых действиях и соответствии описываемых работ по решению "проблемы" - с реальными выполненными манипуляциями в сети/сервере.
57. gorinich235 29.11.12 19:37 Сейчас в теме
(56) AlexO,

странная у вас манера отвечать на вопросы уважаемый....
ну да ладно по факту:
что там 1с что-то неожиданно оптимизировала в новом релизе - это конечно фантастика.
"медленно работающая база" имеется в виду, база в которой баланс формируется медленно (ибо баз разных много, а проблема с медленным формирование баланса только в этой).
насчет что-то там закэшировано это вопрос интересный, но что и как закэшировано честно не знаю.
опишу последние результаты
имеем базу, релиз базы 2.0.40.9, база типовая
работают 4 человека,у всех стоит платформа 8.2.16.368, база лежит в расшареной сетевой папке на сервере.
подключение к базе идет по толстому клиенту просто прописан путь к сетевой папке.sql и терминала нет.
формирование баланса нагружает сеть до 50% и идет очень долго (~10 часов), а может вообще висеть непонятно сколько.

1) Если в базу зайдет один пользователь и запустит формирование баланса, то он сформируется за 2 минуты и нагрузка на сеть 1% во время формирования баланса.

2) Если в базу зайдут два пользователя и первый запустит формирование баланса. то баланс формируется за ~10 часов, а может вообще висеть непонятно сколько, и в это время нагружается сеть до 50%.

дошли руки установить обновление 42.6

так вот после установки этого обновления вариант 1) и вариант 2) формируют баланс за 2 минуты.

что там такого происходит с базой во время обновления что заработало быстрей не имею ни малейшего понятия.
видно только что проходила реструктуризация....

от себя добавлю, что реструктуризация штатными средствами 1с не решила проблему медленного формирования баланса. так же при обновлении ни каких кэшей не чистилось и id базы не менялся.
печально, то что скорее всего ускорение формирования баланса всего лишь временно явление и через некоторое время проблема вернется. так как ситуация с обновлением и последующим ускорением уже повторялась и через некоторое время все вернулось на место - бухи зажаловались......
58. hogik 443 29.11.12 22:49 Сейчас в теме
(57)
Можно даже и не знать детали работы "восьмерки", чтобы сделать выводы:
1) Это проблема аналогичная "DBF-ной семерки" и ЛЮБОЙ "файловой" сУБД. Т.е. при одновременном открытии файла по сети двумя и более пользователями отключается кэширование на стороне РАБОЧЕЙ станции.
2) После обновления созданы заново индексы и/или уменьшено количество "промежуточной" (рабочей, временной и т.д.) информации в таблицах БД. Тем самым уменьшается объем информации передаваемый по сети требуемой для выполнения "бух баланса"(с).
P.S.
Можно предположить, что возможно придумать некую обработку, которая будет приводить базу данных в состояние близкое к тому, что происходит после "обновления". И выполнять её периодически. Когда "бухи"(с) начнут жаловаться. ;-)
59. AlexO 135 30.11.12 10:48 Сейчас в теме
(58) hogik,
После обновления созданы заново индексы и/или уменьшено количество "промежуточной" (рабочей, временной и т.д.) информации в таблицах БД

В 1С индексы вообще минимальное значение имеют - можно сказать, никакого. Так, баловство...
"Передача промежуточной информации" - по сети в файловой 1С8 передается практически вся база на клиента.
Плюс - доступ без сервера к одному файлу двух и более пользователей одновременно ограничен, совершенно верно.
60. hogik 443 30.11.12 18:25 Сейчас в теме
(59)
"В 1С индексы вообще минимальное значение имеют"(с)
Любому обращению к строке (записи) таблицы предшествует чтение и обработка "ключа" из индексной "структуры". Ключи хранятся в страницах. Количество чтений различных страниц для получения ключа конкретной записи зависит от степени "деградации" индексной "структуры". При доступе по сети, при двух и более активных сессиях, страницы не кэшируются и для каждого обращения к записи по ключу каждый раз передаётся приложению несколько страниц. После реиндексации количество страниц потребных для получения "адреса" строки по ключу индекса уменьшается. Индексные "структуры" подвержены "деградации" в процессе обновления информации в таблицах.
"по сети в файловой 1С8 передается практически вся база на клиента"(с)
Нет никакой особой связи Сеть/НеСеть. Приложению в любом режиме передаётся ровно столько информации, сколько нужно чтобы поучить необходимую информацию. ;-) И количество ПОЛЕЗНЫХ "байт" прочитанных из базы данных одинаково. Вопрос только сколько раз перечитывается одна и та же "страница" (блок, запись) с реального диска для получения "потребного" кусочка "страницы" или она уже ранее прочитана в оперативную память буфера (кэша) приложения. Возможность использовать кэш на стороне приложения (клиента, рабочей станции) "исчезает" в многопользовательском режим т.к. требуется обеспечивать и проверять факт изменения информации другим приложением. Некие средства (инструменты) ОС и/или СУБД позволяют выяснить появление второго приложения работающего с базой данных и отключить инструмент кэширования на стороне приложения. Если эти приложения работают в режиме терминал-сервера (локально), то кэширование на стороне приложения тоже отключается. Но, благодаря системному кэширования дисковых операций I/O скорость не сильно падает. Т.е. системный кэш для уменьшения I/O к дискам продолжает успешно использоваться. В случае сети приходится передавать блоки данных приложению не через оперативную память, а по сети. Тут и возникает эффект "второго пользователя.
(1)
"если базу перенести со всеми логами в другой каталог на сервере, то отчет тоже формируется быстро"(с)
После такого переноса уменьшаются обращения к диску, т.к. практически вся база данных "сидит" в системном кэше. До очередной перезагрузки системы. Это имеет смысл подтвердить или опровергнуть. Кроме этого такое перетаскивание уменьшает фрагментация файлов базы данных. В любом случае такое проявление намекает об очень плохую дисковой подсистеме. При таком разительном отличии времени выполнения задачи.
"но через пару дней работы пользователей с базой опять начинаются тормоза"(с)
Это говорит о "деградации" индексов и фрагментации файла базы данных из-за, думаю, больших обновлений информации. Сами таблицы базы данных тоже подвержены "деградации" в результате инструмента использования пространства удаленных записей новыми записями.
Т.е. технологические процедуры типа реиндексации, упаковки, выгрузки/загрузки, дефрагментации файла БД (копированием), разнесение на разные диски файла базы данных и рабочих файлов (кроме чисто скорости, еще и уменьшается фрагментация БД) должны помогать в решении проблемы тормозов.
Существуют настройки дисковой подсистемы уменьшающие проблемы. Но, они связаны со снижением надежности. Пока не буду о них рассказывать... ;-)
61. gorinich235 30.11.12 21:02 Сейчас в теме
(60) hogik,

спасибо за содержательный ответ.

а существуют какие нить методы которыми можно добиться результата "типа обновление иб на след. релиз"

попробовал штатные средства:
1) тестирование
2) реиндексацию
3) реструктуризацию
4) загрузку/выгрузку в .dt
5) даже попробавал выгрузить всю базу в xml и затянуть обратно в чистую
ничего из перечисленного не помогло ускорить работу.

дало результат (не проверено на какой период времени) обновление до версии бух 3.0, но это другая история и пока в расчет не берем.
62. hogik 443 30.11.12 22:18 Сейчас в теме
(61)
Давайте сначала "прокрутим" в голове ;-) Ваши наблюдения (тесты, замеры, исследования, манипуляции и т.д.) с учетом факта, что эффект "второго пользователя" сохраняется до перезагрузки системы или переноса базы данных в другой каталог.
Т.е. загрузили сервер. Работаем по сети. Запустили пару обычных сессий пользователя. Вышли. Запустили одну сессию. Выполняем "проблемный" отчет - тормоза неизбежны.
63. AlexO 135 30.11.12 22:32 Сейчас в теме
(60) hogik,
Любому обращению к строке (записи) таблицы предшествует чтение и обработка "ключа" из индексной "структуры"

это в нормальной СУБД, а не 1С.
В 1С "ключи" - это что-то навроде кучи номеров строк, которые настоящими ключами (и обеспечивающие все последующие оптимизации с данными - размещение, сортировка и т.д.).
А со свалкой ничего не сделаешь, даже если и пометишь свалку номером.
После реиндексации количество страниц потребных для получения "адреса" строки по ключу индекса уменьшается.

Это не про 1С. В 7.7 в DBF (которая путная и продуманная БД) - да, индексация данных, ускорение доступа.
В 1С8 - реиндексация бесмыссленна и бесполезна: хоть на SQL, хоть в файле.
Прироста никакого нет.
Приложению в любом режиме передаётся ровно столько информации, сколько нужно чтобы поучить необходимую информацию.

- не про 1С.
В файловой сетевой 1С практически ВСЯ база качается на клиента каждый раз при синхронизации. А синхронизация происходит не один раз за сессию.
Сама "типа база" разруливанием данных, а тем более - никакой их обработкой, ни "первичной", ни "вторичной", не занимается - это только "платформа", поддерживающая хоть какую-то "связь" между клиентами: все остальное происходит на клиенте.
только сколько раз перечитывается одна и та же "страница" (блок, запись) с реального диска для получения "потребного" кусочка "страницы"

все это в рассматриваемом варианте происходит уже на клиенте, который превращается в полноценную "платформу исполнения".
Некие средства (инструменты) ОС и/или СУБД

1С - ни разу не СУБД. И никогда ею не была.
Или давайте признаки СУБД.
Я напишу приложение, котрое читает файл с данными с диска - я СУБД создал?
Если эти приложения работают в режиме терминал-сервера (локально)

1С НЕ РАБОТАЕТ в файловой версии в режиме "термина-сервер". ТАМ ВООБЩЕ НЕТ СЕРВЕРА.
Поэтому в принципе не может быть никаких "то кэширование на стороне приложения тоже отключается".
В случае сети приходится передавать блоки данных приложению не через оперативную память, а по сети.

В случае 1С передается вся база каждому пользователю, а не блоки, и работа осуществляется тасканием огромных блоков данных туда-сюда по сети, которое называется "синхронизация базы".
Тут и возникает эффект "второго пользователя.
эффект "второго пользователя" возникает из-за блокировки файла данных первым пользователем - до окончания синхронизации.
(58) hogik,
Это проблема аналогичная "DBF-ной семерки" и ЛЮБОЙ "файловой" сУБД

кстати, частично эта проблема имеет место быть "аналогично", но в основном из-за "особенного пути" 1С8. И 1с8 и близко не стоит по файловой базе к 1С7.7.
66. hogik 443 30.11.12 23:09 Сейчас в теме
(63)
Отвечу только на это: "1С - ни разу не СУБД. И никогда ею не была."(с)
У меня написано: "Некие средства (инструменты) ОС и/или СУБД позволяют..."(с)
Буква перед большой буквой "С" не опечатка. Это буква "O", а не цифра "1". :-)
65. AlexO 135 30.11.12 22:48 Сейчас в теме
(60) hogik,
спасибо Владимиру за подвязку других СУБД - чего я давно добивался :)
И хотя это не имеет никакого отношения к 1С, это имеет огромное значение в просвещении далеко не самых выдающихся среди всех программистов 1сников...
64. AlexO 135 30.11.12 22:46 Сейчас в теме
(57) gorinich235,
и терминала нет.

сколько раз вам повторять - терминал - это не сетевой доступ к базе.
Это для вас, как для пользователя он "сетевой", а для базы - самый что ни на есть локальный.
формирование баланса нагружает сеть до 50% и идет очень долго (~10 часов), а может вообще висеть непонятно сколько.

и что вас удивляет? передача данных, обработка на клиенте, синхронизация с "основной базой", снова обработка, снова передача...
Так и идет неспеша, пока все данные для баланса не сведет. Вы с 1С или с чем работаете? Тут у нас сервера тормозят, а вы - с персоналкой ищете несуществующий фунт изюма..
то он сформируется за 2 минуты

и
то баланс формируется за ~10 часов
- быть такого не может, разница в 300 раз, даже если "зайдут два пользователя и первый запустит формирование баланса". В 5-7 раз - более реально при таких условиях.
Откуда 5-7 раз - когда первый формирует баланс, второй курит, и мешает первому формировать баланс своими запросами "а можно я? а я когда данные получу?"
так вот после установки этого обновления <оба варианта> формируют баланс за 2 минуты.

Такое возможно в ОДНОМ ЕДИНСТВЕННОМ случае: когда баланс на самом деле уже не формируется, а есть иммитация его формирования. Либо - первоначальный алгоритм формирвоания баланса похерили, а взамен вставили "пустышку".
видно только что проходила реструктуризация

реструктуризация исправляет ошибки хранения данных в базе, а не скорость увеличивает.
что реструктуризация штатными средствами 1с

а что, вы знаете нештатные средства? ознакомьте.
всего ускорение формирования баланса всего лишь временно явление

Если он вообще формировался как положено, а не брался уже готовый "старый" из какого-нибудь "загашника", куда его поместили предыдущие "расчеты".
67. hogik 443 01.12.12 03:04 Сейчас в теме
(64)
"быть такого не может, разница в 300 раз"(с)
А давайте проведем смешной эксперимент.
Объявляем справочник с полями:
фКод С[20]
фЗначение С[80]
Записываем в него 100 записей.
Теперь представляем безграмотный алгоритм.
Для поля фКод не создаем индекс. Забыли. ;-) А хотим по этому справочнику получать фЗначение для некоторого фКод. Т.е. грубо говоря искать по ключу одну запись. Например, расшифровку поля другой большой таблицы, строки которой мы последовательно читаем (выбрали предварительно запросом). В "восьмерке" можно написать такой поиск по ключу запросом? ;-) Пишем поиск фЗначение по фКод в цикле раз так 1000000. Для простоты в справочнике значение ФКод=" ", а ищем всегда по значение отличному от " ". Т.е. заставляем систему на каждый поиск по ключу просматривать последовательно все 100 записей.
Проверяем время выполнения этого "алгоритма" в следующих условиях.
1) Клиент-сервер. Все на одной железке.
2) Файловая версия локально 1 сессия.
3) Файловая версия локально 2 сессии.
4) Файловая версия по сети 1 рабочая станция.
5) Файловая версия по сети 2 рабочие станции.
В случае двух сессий/станций вторая сессия бездействует.
68. AlexO 135 01.12.12 03:24 Сейчас в теме
(67) hogik,
Для поля фКод не создаем индекс.

как это сделать в 1С?
"восьмерке" можно написать такой поиск по ключу запросом?

если под клюом понимается индекс - то нет.
а просто "посик чего-то" - то можно.
Пишем поиск фЗначение по фКод в цикле раз так 1000000

а там нет таких задач.
Чтобы одно и то же делать 1 млн раз.
Не поддаются распараллеливанию 1С-процессы.
Даже чтение чего-то в 1 млн строк - это отнюдь не ЧТЕНИЕ 1 млн строк таблицы базы.
69. hogik 443 01.12.12 03:32 Сейчас в теме
(68)
Поле фКод не есть Код. Это обычное поле. В справочнике может быть и настоящее поле Код.
Да, там нет таких задач. Но мы хотим проверить совершенно другие нюансы. ;-)
Сделайте, пожалуйста. А потом обсудим результат. Можно начать со второго пункта. А первый может и не потребуется делать.
70. AlexO 135 02.12.12 15:01 Сейчас в теме
(69) hogik,
на чем я делать буду? нет у меня сейчас серверов. Да я домой не успеваю приезжать :)
Вон кто тут тестит все подряд - пусть сделают, но не так, как Санфото, а чтоб прозрачно и данные, и сервера какие, и условия проведения.
А неизвестно что по каждому пункту, как у него :)
71. hogik 443 02.12.12 17:48 Сейчас в теме
(70)
"нет у меня сейчас серверов"(с)
Для сравнительного тестирования можно использовать и VM-ы всякие.
Для первого осознания темы можно запускать одну дополнительную ОС.
Т.е. бездействующая сессия на реальной машине, а действующая в VM.
База данных на реальных дисках. Сеть можно организовать, даже, по "Microsoft Loopback Adapter". В моих сУУбд получаются многие сравнительные замеры очень похожие на реальную сетевую работу.
72. AlexO 135 02.12.12 20:18 Сейчас в теме
(71) hogik,
Владимир, а смысл? Знаете, почему нет никаких нормальных, полных тестов 1С (хотя на нагрузку других продуктов - полно, начиная от любительских, и заканчивая тестами независимых лабораторий), кроме тестов студентов на ИС?
Потому что это бессмысленное занятие - делать подобные тесты.
Даже у ТС - что-то работает быстро, а что-то - тормозит часами.
В 1С нет тестовых алгоритмов - там все по месту: как работает, так и работает.
Сделал код - не тормозит. Чуть изменил - все, ужасные тормоза.
Не покажет никакой реальной картины запись в цикле млн раз чего-либо - т.к. в 1С нельзя создать "просто так" реальную, 1совую, ситуацию с тормозами. Вы никак не поймете, что тормоза создает не "алгоритм работы проработанной СУБД", от которого (если бы он был в наличии) мы в праве ожидать, что он может быть разбит на мелкие операции, которые мы и можем повторить и замерить нагрузку своим "миллионоразовыми" запись-чтение.
В 1С на первом месте при работе с БД - это код конфигурации (глюки платформы) и реакция 1С на данные, которые у неё запрашивают - что-то (примитивных типов, что вы предлагаете протестировать) найдет быстро, а что-то (реально нужное) - будет "искать" и обрабатывать часами.
Вот у ТС тормозит отчет с такими-то данными - вот и пусть прогонит в разных ситуациях с фикисированием результатов.
А запись миллион раз ... что она покажет, что выявит? Производительность HDD? Скорость памяти? так это и так известно :)
73. hogik 443 02.12.12 21:12 Сейчас в теме
(72)
"А запись миллион раз ..."(с)
Сделайте 300 раз. :-)
"Не покажет никакой реальной картины запись в цикле млн раз..."(с)
Только не "запись", а "чтение" у меня предложено делать.
Читайте, пожалуйста, внимательнее.
"Вы никак не поймете, что..."(с)
Попробуйте и Вы понять ЧТО я предлагаю проверять данным тестом.
"что она покажет, что выявит? Производительность HDD? Скорость памяти? так это и так известно :)"(с)
Да. Известно. Но, надеюсь, Вы не считаете меня полным идиотом?
P.S.
Подождем автора темы. Надеюсь он заинтересуется проведением тестов для выявления причин проблемы.
76. gorinich235 04.12.12 17:37 Сейчас в теме
(73) hogik,

Автор темы появился, только так как он ни разу не программер,
поясните, что и как бум тестить...
78. AlexO 135 04.12.12 17:49 Сейчас в теме
(76) gorinich235,
а ничего программить не надо.
В (63) предложено испробовать ИМЕННО НА ТОМ САМОМ отчете разные варианты работы базы - 5 вариантов.
Ну, а потом можно и млн раз искать значение в справочнике, если захотите :)
74. red80 03.12.12 01:16 Сейчас в теме
(72) AlexO,
В 1С нет тестовых алгоритмов - там все по месту: как работает, так и работает.
Сделал код - не тормозит. Чуть изменил - все, ужасные тормоза.
Не покажет никакой реальной картины запись в цикле млн раз чего-либо - т.к. в 1С нельзя создать "просто так" реальную, 1совую, ситуацию с тормозами. Вы никак не поймете, что тормоза создает не "алгоритм работы проработанной СУБД", от которого (если бы он был в наличии) мы в праве ожидать, что он может быть разбит на мелкие операции, которые мы и можем повторить и замерить нагрузку своим "миллионоразовыми" запись-чтение.

Вместо того чтобы ныть, почитайте документацию.
77. AlexO 135 04.12.12 17:46 Сейчас в теме
(71) hogik,
В моих сУУбд получаются многие сравнительные замеры очень похожие на реальную сетевую работу.

Если б в 1С было все так прозрачно, мы бы здесь копья не ломали :)
79. hogik 443 04.12.12 19:50 Сейчас в теме
(77)
"Если б в 1С было все так прозрачно..."(с)
Какое отношение имеет "прозрачность" к описанию возможности проведения тестирования в VM, а не в реальной сети?
(78)
"а ничего программить не надо"(с)
Надо.
"предложено испробовать ИМЕННО НА ТОМ САМОМ отчете разные варианты работы базы "(с)
Нет.
"Ну, а потом можно и млн раз искать значение в справочнике"(с)
Еще раз. Суть предложенного теста не имеет непосредственного отношение к 1С-продукту, как Вы его представляете. Это ПЕРВЫЙ тест для опровержения Вашего представления о том, что "практически ВСЯ база качается на клиента"(с) Далее, возможно, еще потребуется пара простых тестов. После которых появится (надеюсь) возможность искать "узкие" места уже в самом алгоритме "бух баланса"(с).
Или Вам ближе подход:
"Сделал код - не тормозит. Чуть изменил - все, ужасные тормоза."(с) ? :-) :-) :-)
75. red80 03.12.12 01:21 Сейчас в теме
(70) AlexO,
Да я домой не успеваю приезжать :)

Пореже появляйся на форуме, все будешь успевать.
55. gorinich235 27.11.12 15:05 Сейчас в теме
нагрузка на сеть тоже пришла в норму.
80. alex_asoft 12.12.12 12:45 Сейчас в теме
1. Какая система на серверной машине?
81. gorinich235 17.12.12 16:19 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)