v7: К вопросу о быстродействии 1С 7.7 DBF #688427


#0 by Corvax46
Здравствуйте. Компьютер выделен под файловый сервер. Установлена Win 7 64 Pro (на нем установлена база ТиС, DBF). Имеются 5 рабочих станций, на них установлены Win XP и Win 7. Если в базу заходит один пользователь, даже в разделенном режиме, то всё работает отлично. Стоит другому пользователю зайти, как начинаются тормоза. Причем особенность... Тормоза начинаются если пользователь заходит в ту же базу. Если открывает другую, то проблем не возникает. Описание подобной проблемы было . Особенность в чем... Если пользователь открывает базу на одном компьютере (под разными пользователями), то тормозов не наблюдается. Если база открываются на разных компьютерах, то тормоза есть. Попробовал использовать программный кэш (как указано в статье) прироста скорости не заметил. На SQL переходить нет возможности, всё лицензионное. На терминал денюжки нет. Можно ли исправить ситуацию?
#0 by Corvax46
Здравствуйте. Компьютер выделен под файловый сервер. Установлена Win 7 64 Pro (на нем установлена база ТиС, DBF). Имеются 5 рабочих станций, на них установлены Win XP и Win 7. Если в базу заходит один пользователь, даже в разделенном режиме, то всё работает отлично. Стоит другому пользователю зайти, как начинаются тормоза. Причем особенность... Тормоза начинаются если пользователь заходит в ту же базу. Если открывает другую, то проблем не возникает. Описание подобной проблемы было . Особенность в чем... Если пользователь открывает базу на одном компьютере (под разными пользователями), то тормозов не наблюдается. Если база открываются на разных компьютерах, то тормоза есть. Попробовал использовать программный кэш (как указано в статье) прироста скорости не заметил. На SQL переходить нет возможности, всё лицензионное. На терминал денюжки нет. Можно ли исправить ситуацию?
#0 by Corvax46
Здравствуйте. Компьютер выделен под файловый сервер. Установлена Win 7 64 Pro (на нем установлена база ТиС, DBF). Имеются 5 рабочих станций, на них установлены Win XP и Win 7. Если в базу заходит один пользователь, даже в разделенном режиме, то всё работает отлично. Стоит другому пользователю зайти, как начинаются тормоза. Причем особенность... Тормоза начинаются если пользователь заходит в ту же базу. Если открывает другую, то проблем не возникает. Описание подобной проблемы было . Особенность в чем... Если пользователь открывает базу на одном компьютере (под разными пользователями), то тормозов не наблюдается. Если база открываются на разных компьютерах, то тормоза есть. Попробовал использовать программный кэш (как указано в статье) прироста скорости не заметил. На SQL переходить нет возможности, всё лицензионное. На терминал денюжки нет. Можно ли исправить ситуацию?
#0 by Corvax46
Здравствуйте. Компьютер выделен под файловый сервер. Установлена Win 7 64 Pro (на нем установлена база ТиС, DBF). Имеются 5 рабочих станций, на них установлены Win XP и Win 7. Если в базу заходит один пользователь, даже в разделенном режиме, то всё работает отлично. Стоит другому пользователю зайти, как начинаются тормоза. Причем особенность... Тормоза начинаются если пользователь заходит в ту же базу. Если открывает другую, то проблем не возникает. Описание подобной проблемы было . Особенность в чем... Если пользователь открывает базу на одном компьютере (под разными пользователями), то тормозов не наблюдается. Если база открываются на разных компьютерах, то тормоза есть. Попробовал использовать программный кэш (как указано в статье) прироста скорости не заметил. На SQL переходить нет возможности, всё лицензионное. На терминал денюжки нет. Можно ли исправить ситуацию?
#1 by KRV
Выросло поколение не знающее об особенностях работы семерки в разделенном режиме..
#2 by Chai Nic
Воткни памяти до упора и сделай рамдиск, помести базу на него. Для рамдиска отключение кэширования некритично.. Ну и архивируй базу почаще, можно прямо на горячую.
#3 by Godofsin
Вроде не пацан )
#4 by KRV
опасновато
#5 by mishaPH
не. этоне особенности работы 1с. это особенности кеширования виндов
#6 by KRV
Миша, я в курсе, меня не будешь просвещать? ))
#7 by Chai Nic
Да ладно... ночью делать нормальный бэкап, а каждый час горячий. Даже если последний горячий по какой-то причине окажется неконсистентным - есть высокая вероятность, что предыдущий нормальный.. и с гарантией нормальный - ночной. Вряд ли на базе с 5 пользователями ведется круглосуточная работа.
#8 by mishaPH
бэкап можно делать хоть каждые 10 минут. целостностый. Через УРБД например. иметь всегда дубль базы по системе урбд
#9 by Maximysis
sql express тебе в помощь.
#10 by mishaPH
с чего это? база 1с 7ка в монопольном режиме. гораздо шустрее базы скл. Тем более у автора если типовая, то перевод на скл выдаст сразу хорошие тормоза там. где их небыло
#11 by Maximysis
так речь идет про разделенный режим.
#12 by Chai Nic
не катит 1. Требуется покупать sql-версию семерки - вряд ли будут покупать недешевую и морально устаревшую платформу для всего 5 пользователей. 2. Официально v7 поддерживает лишь sql2000, а для него в бесплатной версии (msde) чересчур несерьезные ограничения на размер базы в 2 гигабайта. Установка же 2008 Express с 10-гиговым ограничением потребует патчить платформу, что в принципе нарушает лицензию 1с.
#13 by Maximysis
Если скуль не устроит тогда только терминал.
#14 by Chai Nic
"На терминал денюжки нет." Получаем, что рамдиск - единственное решение
#15 by Maximysis
Под линуксом есть бесплатные терминалы, только геморно настраивать 1С.
#16 by Corvax46
Спасибо, буду мучить RAM-disk.
#17 by Maximysis
рам не поможет.
#18 by Chai Nic
Ну попробовать то можно..
#19 by lion11
Так есть еще альтернативные терминалы, которые на обычную винду ставятся, например ViTerminal, у него еще триальный период есть в 30 дней - можно попробовать. Вполне норм. решение на 5 пользователей.
#20 by Chai Nic
Угу, только MS считает, что даже для терминальных решений сторонних производителей нужно покупать TS CAL.
#21 by Neg
работайте по очереди.
#22 by ДенисЧ
CAL нужны для мелкософтного терминала. Для других не нужно.
#23 by DGorgoN
Неправда. Терминал онли.
#24 by ДенисЧ
сфигали?
#25 by Voronve
Чо за бред ? Пруф
#26 by VladZ
Всех в терминал!
#27 by DGorgoN
Лицензионное соглашение мелкософта. Консультировался у ихних юристов. У нас тоже между прочим винь 2003 и терминалки стоят на стороннем софте.
#28 by Voronve
Ну в уши надуть юристы умеют, так же ты мог их неточно понять. Где в лицухе ихней сказано об этом ?
#29 by Chai Nic
#30 by Voronve
Жесть
#31 by kiruha
Можно установить компоненту 1С++ и потихоньку переписывать тормозящие места. Выигрыш ориентировочно на 2 порядка Ктраткий фак и см ветки форума прикрепленные
#32 by kiruha
Документация 1С++
#33 by Андрей_Андреич
на 5 юзеров? А ЗП приходящего эникейщика и штатного прямозапросника сравнивали? Да проще тупо железяки проапгрейдить.
#34 by kiruha
Да хоть миллион вложите  такого эффекта никогда не получите. Если вообще какой то эффект получите. Штатно программисту или автору основные отчеты (т.е. то что безопасно) можно переписать за месяц. Если и на это денег нет - ...
#35 by kiruha
Если типовая - можно пошукать - может у кого есть готовые
#36 by Андрей_Андреич
Я немного в курсе. Но для каждого клиента свои решения от потребностей и возможностей. Тем более ради 5 юзеров монстра городить. Даже если он на типовой - так это его счастье, а вы его на иглу садите.
#37 by Bigbro
сделайте базы распределенными и пусть каждый работает в своей периферийке )
#38 by kiruha
Я не предлагаю чего то то нового. Этот путь многие проделали еще 10 лет назад и вполне успешно. Как альтернатива по железу - купить SSD диски в зеркало  и гигабитный канал. Но это будет предел апгрейда по железу. Дальнейшие вложения бессмыслены т.к. остальные ресурса сервера в файловом варианте практически не задействованы
#39 by kiruha
А тут vandalsvq написал обертку >>- выполнение запроса на языке подобном 1Cv8 может так проще автору
#40 by 1s_ivan
Вопрос к или кто знает? Можно-ли положить базу в сеть, но "НЕ на Windows" какой-нибудь "сетевой девайс", который корректно сможет раздавать базу 1с?  В теории это должно решить проблему совместного доступа к файлам в Windows?
#41 by ДенисЧ
Новелл ставь... Или линух с самбой, но тут нужен очень грамотный гур.
#42 by D3O
никакой гуру не нужен - за смешные деньги покупается лицензия Etersoft-Wine, там же в местных форумах все расписано как по нотам что и как настраивать. И да, настраивается сервер терминалов на linux.
#43 by NS
И что, 1С++ включит кеширование диска при пяти подключениях?
#44 by ДенисЧ
Дада, не нужен.... Сам пробовал?
#45 by NS
Исправить можно, Железный raid с кешем и батарейкой.
#46 by NS
Второй, более дешевый вариант - базу на SSD.
#47 by ДенисЧ
Не болтай ерундой. Это не спасёт.
#48 by NS
Что не спасет? Проблема только в отсутствии кеширования (виндой) при сетевых подключениях. И быстрый диск с быстрым доступом (SSD), и аппаратный кеш на рейде с отложенной записью - еще как спасет. И всегда спасал.
#49 by Ork
Новел в шару настроить особой подготовки не нужно.
#50 by Прыгун
Из ссылки в есть вариант но проект этот закрыт. Но решение вполне рабочее, тестировалось (и до сих пор работает) в нескольких местах, оттуда мне даже не звонят, видимо работает.
#51 by Холст
Клиент-серверное решение для 1С:Предприятия 7.7 DBF
#52 by orefkov
Можно еще вот с одним из этого побаловаться:
#53 by kiruha
Вроде же крутой прогер, с 1С++ что ли не работал ?
#54 by Андрей_Андреич
1С++ решает проблему второго юзера? Хорош тут из письки по воробьям стрелять :)
#55 by NS
Каким образом 1C++ выключит виндовое кеширование? У тебя какой объем обращения к диску был штатно, такой-же и останется c 1C++. Узкое место совсем не там.
#56 by NS
Каким образом включит :)
#57 by Delorn
ты не прав. :) 1с++ это конечно оптимальное решение. Но если денег мало,.. То терминал и хорошие быстрые винты будут дешевле и быстрей. Вон видимо можно еще с побаловаться если сам Орефков советует.
#58 by kiruha
При чем тут кэш ? Обсуждать что делает 1С++  не готов, как наверно и другие, ибо все еще 10 лет назад перетерли в 1000+ тем на
#59 by Андрей_Андреич
рецепт из серии - Машина не едет - тормозной цидлиндр заклинило - Ставь турбину - поедет.
#60 by NS
При том, что время доступа к HDD на три порядка хуже чем к памяти (виндовому кешу). И когда кеш отключается (озвученный в глюк винды при нескольких сетевых подключениях), то любая операция с базой становится медленней в разы. И если известно узкое место, то его и нужно исправлять, тем более исправляется элементарно - либо аппаратным кешем, например на гигабайт, который естественно не отключается при сетевых подключениях, либо просто помещением базы на SSD, у которой время доступа на пару порядков меньше чем у HDD.
#61 by kiruha
См SSD уже посоветовали. К сожалению проблема не только в кэше. Повторюсь - все это уже 100 раз обсуждали У того же хогика обсуждений на 10 страниц см
#62 by NS
Нет логики. Простая установка SSD дает точь-в-точь такой-же эффект как и установка другой оси с нормальным кешированием при сетевом подключении, и все остальные методы.
#63 by Холст
поднятие темы о падении скорости в ДБФ базе 7.7 предлагаю считать троллингом, тема обсуждалась 100500 раз последние 15лет
#64 by AndrosKrasnodar
Привет! В общем Решение на самом деле оказалось очень простым! сам имею супермаркет хозтоваров... в общем на виндовс7 поднял терминальный сервер, убрал ограничение на количество подключений... Главное все компы имеют Хрюшку или 7 Если заинтересовало то посмотри здесь я думаю у тебя все будет путем... Мне помогло, я и мои "домочадцы" БАЛДЕЮТ!
#65 by ДенисЧ
К тебе уже вылетели.
#66 by AndrosKrasnodar
Эт ты мне?
#67 by ДенисЧ
нет, товарищу Нуралиеву и господину Гейтсу, чтобы они обратили внимание...
#68 by AndrosKrasnodar
Дак а что тут противозаконного ? %) у меня все лицуха... :)
#69 by AndrosKrasnodar
Тебе смешно ДенисЧ, а я Е***лся очень долго, и ничего не помогало... а это обалденно спасло всех... В ОБЩЕМ Я доволен...
#70 by Джордж1
ага , лицуха.
#71 by ДенисЧ
"на виндовс7 поднял терминальный сервер, убрал ограничение на количество подключений" Вот она. Причина. Кстати, на особо крупный уже тянет....
#72 by AndrosKrasnodar
Ладно... видимо у тебя поприкалываться больше не очем...
#73 by Aleksey
он не прикалывается, а у тебя прямое нарушения лицензионного соглашения
#74 by Aleksey
Элементарно каллы есть? (терминальные лицензии)
#75 by Андрей_Андреич
Ежли винду не покупали, то и лицензионного соглашения нет и значит оно не нарушено
#76 by Aleksey
вот поэтому и выехали за использования пиратского софта
#77 by NS
Судят не за нарушение лицензионного соглашения, а за нарушение законов. Лицензионное соглашение только дает пользователю права, и расширяет права пользователя. Иначе быть не может.
#78 by Андрей_Андреич
да я шутил так. Кстати, ТС первым пунктом указал. что интересуют только законные средства.
#79 by Злопчинский
Сколько раз ни пробовал БАЗУ класть на рамдрайв - эффекта никакого.
#80 by Прыгун
на рамдрайв надо класть папки пользователей. Вот это эффект дает.
#81 by Mikeware
на массовых операциях в монопольном режиме - летает. правда, базенки только супермелкие вмещатся.
#82 by Злопчинский
хз, не получалось у меня. даже массовое перепроведение особого эффекта не дало
#83 by Mikeware
а у меня баз таких давно нет...
#84 by NS
А что, бывают большие dbf базы?
#85 by Aleksey
у меня рабочая 4.6 гигов чисто dbf + 1 гиг индексы
#86 by Chai Nic
Нюанс в том, что каталог временных файлов 1с тоже должен быть перенаправлен на рамдиск. Ибо у 1с есть нехорошая привычка его использовать для выборки данных..
#87 by Mikeware
ну, у меня максимальная была порядка 23Г (комплексная). Достаточно приличная по объему. Уперлась во что-то в бухподсистеме (типа итогов по субконто, не помню уже)
#88 by ЧеловекДуши
Ты еще забыл добавить... Иметь при этом ОТЛИЧНЫЙ Упс, прекрасный сервер и крутые яйца :)
#89 by NS
При сетевом доступе к файловой базе никакого смысла рисковать базой в памяти (рамдиск) нет, ибо быстродействие упирается в быстродействие сети, при правильной организации работы дисков (рейд либо ssd)
#90 by Прыгун
Можно ТОЛЬКО папки пользователей на рамдиск положить, при этом целостность базы не нарушится если что. Уже эффект будет.
#91 by NS
Не будет. У тебя допустим 1 мс. доступ к сети, прибавь время доступа к SSD (0.1 мс), либо к памяти (0.001 - 0.01 мс) - никакой практической разницы нет.
#92 by Злопчинский
нет, скорее всего у тебя уперлось в отборы по счетам 1SBsel (типа такого) скорее всего в лимит 16 млн записей. . я у себя уперся в бухбазе в это очень быстро. Отключил это, бо практически не используется.
#93 by Холст
в каком месте в конфигураторе отключать отбор по счетам ? вместо базы на рамдрайв помогает патч dbeng32.dll "самый простой способ включить кэширование записи для всех файлов- отключить вызов FlushFileBuffers(hFile). для этого для платформы 7.70.025 надо пропатчить файлик dbeng32.dll: ищем последовательность "50 FF 15 40 C0 11 1F", заменяем на "B8 FF FF FF FF 90 90". Теперь 1С не будет делать принудительный сброс файловых буферов на диск при каждой записи, т.е. запись на диск будет кэшироваться и сброс файловых буферов будет делаться средствами самой ОС (для NTFS каждые несколько секунд). Значительно уменьшается фрагментация файлов на диске и отпадает необходимость помещать временные файлы на RAM-диск. Этот метод дает очень хорошие результаты для локального и терминального режимов. Использовать это для сетевого режима не рекомендую, т.к. не тестил и вероятно может привести к повреждению базы."
#94 by NS
Не будет. Ибо кеширование дисков в винде при сетевом доступе отключается при любом сценарии. Хоть сбрасывай буфер, хоть не сбрасывай. Поэтому и написано что работает только при терминальном и локальном использовании.
#95 by NS
И отключается и на чтение, и на запись.
#96 by Холст
я не утверждал, что автору поможет патч dbeng32.dll этот хак для вместо использования базы на рамдиске а для автора мой ответ
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С