Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Как ускорить время доступа к локальной базе? |
Автор: Max1m 30.5.2007, 12:54 |
На фирме, где я устроился наладчиком есть проблема с 1С версии 7.7. Описане ситуации: На сервере хранится локальная база данных, к ней обращаются 9 клиентских машин, причем если 2-3 из них в данный конкретный момент обращаются к данным базы, то 4-ая машина ждёт обработки данных (в лучшем случае) 2-3минуты. Я понимаю, что этого не может быть. Это -явный сбой или неправильная настройка конфигуратора. Если кто-нибудь из Вас встречался с подобной проблеммой или просто знает возможность решения - пожалуйста, напишите возможные варианты розрешения проблеммы. Заранее премногоблагодарен за Вашу помощь. |
Автор: _Valery_ 30.5.2007, 17:20 |
Если 1C-база в файловом варианте (данные хранятся в dbf-файлах) и в ней достаточно много данных, то со временем она начинает притормаживать =( Пути борьбы с этим безобразием (предварительно надо всех пользователей выгнать из программы и сделать резервную копию!!!) : 1. Сделать переиндексацию - а именно удалить из каталога базы все индексные файлы (cdx) и запустить базу в режиме Предприятие в монопольном режиме. 2. Сделать в режиме Конфигуратор "Тестирование и исправление" 3. Сделать в Конфигураторе "Выгрузить информационную базу", установить чистую 1С и в нее через Конфигуратор, опять же, "Загрузить информационную базу" (то что выгрузили из своей) + в "новенькую" перекнести из старой вложенный каталог ExtForms. Как правило после этого база работает быстрее. Это если дело в самой 1С. Если же какие-то настройки сети мешают - то тут я вряд ли подскажу... |
Автор: Max1m 1.6.2007, 16:22 |
2 Valery Спасибо за Ваш ответ. Попробовал сделать как Вы советовали, но, к сожалению, безрезультатно. Настройки сети я проверил в первую очередь - там всё в порядке. Очевидно проблемма в распределении прав доступа между пользователями, так как при роботе одного пользователя(зшедшего с любой из машин сети) время отзыва базы - минимально(буквально пара секунд). Если же подключается второй пользователь во время роботы первого - то второй машине уже приходится ждать задержку(примерно от минуты до 3ёх!). Пожалуйста, если у кого-нибудь возникнут идеи по решению данного вопроса - пожалуйста, отпишите. |
Автор: Zero 3.6.2007, 21:56 |
Max1m, есть другой вариант. У нас стоит один мощный комп, мы его сделали сервером и на нём установлена сетевая версия 1С. ОС Windows 2003 Server. А остальные компы работают в терминале эмулируя сам сервак. Т.е. посылают запросы на обработку на сервер, на нём всё выполняется и рез-т возвращаеться на клиентские компы. У нас стоит 15 компов, всё работает отлично. Причём независимо от того, что некоторые компы полный хлам. |
Автор: evGenie 7.6.2007, 11:35 |
Да, надо переводить всех в терминал или переходить на SQL-версию. |
Автор: Lustin 8.6.2007, 23:29 |
А вот такую связку не пробовали - 1С77s + MSDE2000 + 1cpp.dll + toySQL. или также 1С77 + vfpOLEDB + 1cpp.dll Теперь по проблеме: 1. Управление компьютером - Открытые файлы = необходимо смотреть как ведут себя клиентские машины по сети 2. _GetPerformanceCounetr или Замер Отладчика покажут слабые места по времени. 3. Если сеть с Доменом, необходимо посмотреть в сторону ActiveDirectory и ЖурналаСобытий системы 4. Перекопирования баз с места на место причину не выявят и не исправят..... |
Автор: Lustin 9.6.2007, 08:19 | ||
Так или иначе, но анализ узких мест покажет где проблема, чтобы её решить все равно придется её локализовать... А насчет серьезных модификаций... Если сервер + сеть не справляются с 3-мя активно работающими пользователями, серьезные модификации необходимы однозначно ![]() |
Автор: dumb 9.6.2007, 12:20 |
это и без анализа ясно - проблема в механизме кэширования "расшаренных" файлов в виндузе. |
Автор: Zero 11.6.2007, 08:40 | ||
И что же конкретно за проблема? |
Автор: dumb 14.6.2007, 12:29 | ||
![]() при подключении более одного пользователя кэширование просто отрубается. подробности неизвестны, так как не проверял этот момент, но по всем признакам дело обстоит именно так. |
Автор: dionisiu 14.6.2007, 12:52 |
может, юзверь больно опытный попался, или права где получил? вот у нас, например, админский пароль на сеть и сервера не знает только уборщица (ей дела нету), а так, как в примере Zero, я вхожу в терминал, запускаю отчёт по обороту продукции по датам по агентам по клиентам по позициям по-штучно (нужно очеень), после чего заставляю это всё сохранить в эксель (6 метров отчёта), и чтоб сильно долго мне не ждать, в диспетчере задач ставлю себе высший приоритет, после чего ни один другой юзверь даже курсор мышки не может по экрану сдвинуть (я, кстати, тоже), пока сохранение не завершится. может, и у Вас такой-же "админ" завёлся? |
Автор: Max1m 15.6.2007, 12:16 |
Спасибо за помощь. Буду настаивать на изменении конфигурации. 2 dionisiu Админ на нашем предприятии, волею судеб, я. По сути заниматься должен только сетью, софтом и железом, а приходится(как в принципе это часто бывает) заниматься чемто посторонним - в данном слчае 1С. Сеть настроена нормально, поэтому я так понял(с помощью Ваших ответов), что проблемма действительно заключается в конфигурации. PS Всё также жду Ваших предложений по решению данного вопроса, так-как конфигурация покаместь еще та же. |
Автор: Zero 15.6.2007, 22:33 | ||
Max1m, если конфига у тебя типовая, то проблема однозначно не в ней. Кроме того нужно смотреть на то какая у тебя ОС. В частности если это XP, то у неё есть ограничение на одновременное количество открытых файлов, и соответетственно количество пользователей одновременно работающих в сети. В качестве решения рекомендую ставить на сервер (где находиться база конфигурации 1С) Windows 2000 Server или 2003. Лучше 2003. После установке этой ОС, и правильной её настройки, проблемы которые сейчас у тебя присутствуют, полностью отпадут. Кроме того, если сервак мощный, а остальные компы слабые, советую в настройках ОС разрешнить удалённое подключение. И с клиентских машин заходить в терминале к серверу. PS: это самый эффективный и правильный способ из всех предложенных. Можешь мне поверить... Я тоже админ 1С, у нас на фирме сейчас 16 компов, размер базу уже приближен к 2ГБ. Тем неменее, работает пока всё а ура. Тьфу, тьфу. ![]() |
Автор: dionisiu 16.6.2007, 13:26 | ||
сочувствую. но я не об этом. Вопрос подразумевал следующее: кто из сотрудников может знать админский пароль, или имеет права на запуск диспетчера задач (у меня дополнительно есть "официальный" логин и пароль к серверу в роли "гостя", под этой учётной записью я не могу в диспетчере выставить приоритет и/или посмотреть чужие процессы). Перечитал топик и не понял одной вещи: Вы говорите
То есть, сервер - не терминальный, а файловый (расшареный каталог с файлами базы), и на остальных 9-ти машинах локальные установки 1С-ки с путём к инфобазе типа "\\server\Base1C\" - так, что ли? Тогда мой совет Вам не подходит однозначно - тут проблемы сети и/или файл-сервера. У нас проще: есть машина под W2Ks, на ней установлена 1С77 (если не ошибаюсь - профессионал, но не SQL, файловая), через службу терминалов юзверь подключается и открывает себе удалённый рабочий стол (12 машин, 15 лицензий), запускает на сервере свой экземпляр 1С-ки и работает, пока не надоест. А тут такой я подключаюсь и говорю: "Пока" ![]() Сорри за непроизвольный оффтоп. |
Автор: SaschaL 17.6.2007, 02:27 |
Доброго времени суток! У нас в конторе былр подобная проблема. Пропала она после слудующих действий: Перенос базы на машину с установленной оперционной системой MS Windows 2003 Server Клиенские части терминального подключения к серверу, все пользователи этой базы цепляются через терминал Иными словами обратка проводится на серверной машине! так же для всех пользователей работающих с этой базой и терминальным подключением объединили в одну рабочую группу и назначили все одни равнозначные права! Проблема на этом исчерпа себя. Что конкретно убрало проблему точно не скажу, может все меры вышеперечисленные в сумме. Хотя в базе у нас работает одновременно до 15 пользователей! Попробуй сделать тоже самое и проверишь, но в полне возможно это клюк в самой конфигурации если она у тебя типовая. Добавлено через 3 минуты и 27 секунд Да ксати забыл маленькие подробности часть конфигурации я переделывал под свое предприятие, имелась такая необходимость, мною были переделаны некоторые обработки и отчеты, так часть конфы правили для нашего предприятия партнеры 1С. |
Автор: Max1m 19.6.2007, 12:30 |
2 dionisiu Пароль кроме меня знают еще 2 человека, но я точно знаю что с диспечером они не балуются(чесно говоря - с трудом верится что они ВООБЩЕ знают как). Сервер - действительно файловый - не более( что меня прсто ставит в тупик, ведь 1С стоит SQLевский и я прекрасно понимаю что, по идее, на сервере должна стоять серверная часть SQL, а на других - клиентские, но..... такова была конфикурация когда я пришел на фирму) ОС - Windows 2003SE. Админ, ставивший и настраивавший всю сеть с самого начала(это было еще ДО моего прихода) с своей задачей справился на "ура" - сама сеть и права розданы какнельзя лучшим образом. 2 SaschaL "Иными словами обратка проводится на серверной машине!" Как раз сейчас я и пытаюсь добиться от директора разрешения на такуюже как и у Вас методу работы, либо попытаюсь нормально настроить Клиент-Скрверный SQL, который сейчас является, по сути, только(!) клиентским(- без сервера) SQLем. Спасибо за Ваше участие и помощь в розрешении проблеммы. |