Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: файл сервер тормоза
 
 автор: Гамлет   (24.02.2009 в 08:03)   личное сообщение
 
 

Всем привет

Разделил базу на таблицы (сервер) и прочий интерфейс (клиент). В результате код который выполнялся за 2 секунды, выполняется за 30. Клиентов всего 3, вес базы 80 мегов, аксесс2000.

Сделал следущее:
1. Клиентов преобразовал в mdе
2. Убрал на клиентах галку "отслеживать автозамену имен"
3. Сжал «Сервер» и «клиентов». Сервис - Служебные - Сжать и востановить
4. «Сервер» и «клиентов» добавил в доверенную зону антивируса
5. SubdatasheetName property у всех таблиц на сервере установил [None]

В результате один и тот же код
- На «клиенте» на машине с «сервером» - 5 сек
- На других «клиентах» - 10 сек
Примерно такие пропорции быстродействия относятся и к другим процедурам и действиям

Что ещё можно сделать для повышения быстродействия ?

  Ответить  
 
 автор: alecks_lp   (24.02.2009 в 10:43)   личное сообщение
 
 


В результате код который выполнялся за 2 секунды, выполняется за 30

- не имея кода трудно дать рекомендации, однако банально - оптимизация кода vba может существенно повысить производительность

Клиентов всего 3, вес базы 80 мегов

- ИМХО имеет значение не только количество клиентов, а также количество связанных таблиц и количество записей в таблицах. 500 000 записей акс "жуёт" не так быстро как хотелось бы. Такие таблицы желательно размещать и обрабатывать на сервере.
- вместо технологии связанных таблиц применяйте технологии ADO.

  Ответить  
 
 автор: Гамлет   (24.02.2009 в 11:55)   личное сообщение
 
 

Спасибо за отклик

С оптимизацией приложения вроде все понятно остается только эксперементировать.
А если посмотреть на сеть, что в ней можно сделать, что настроить.

После описанных выше действии результат такой
- На «клиенте» на машине с «сервером» - 5 сек
- На других «клиентах» - 10 сек

Получается 5 секунд теряется в сети.

Нужны еще советы и мнения

Добавлено
Таблиц штук 40, почти все связанные между собой
Одна большая 400 000 записей

  Ответить  
 
 автор: osmor   (24.02.2009 в 12:10)   личное сообщение
 
 

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q261000
еще
попробуйте сделать следующее.
сразу после открытия приложения
открыть какой-то рекордсет по маленькой связанной таблице (она может быть никак не связана с другими данными, главное что бы была в том же файле что и остальные таблицы)
Set rst = CurrentDb.OpenRecordset(tblName, dbOpenSnapshot)
лучше если он останется открытым
и после этого посмотрите скорость

  Ответить  
 
 автор: Гамлет   (24.02.2009 в 13:55)   личное сообщение
 
 

1) http://support.microsoft.com/default.aspx?scid=kb;EN-US;q261000
я вроде это уже сделал

5. SubdatasheetName property у всех таблиц на сервере установил [None]


2) Выполнил Set rst = CurrentDb.OpenRecordset(tblName, dbOpenSnapshot)
В результате выполнение проверяемого кода
- На «клиенте» на машине с «сервером» - 4 сек (т.е. минус 1 сек)
- На других «клиентах» - 8 сек (т.е. минус 1 сек)

На что влияет открытие Рекордсета, что долнжо было получиться ?
На сколько я знаю Рекордсеты нужно вообще-то закрывать и разрушать

  Ответить  
 
 автор: osmor   (24.02.2009 в 14:54)   личное сообщение
 
 

Блин с этим переездом кусок форума ушел в небытие
Вот хвосты
http://am.rusimport.ru/MSAccess/topic.aspx?ID=228

  Ответить  
 
 автор: Гамлет   (24.02.2009 в 15:24)   личное сообщение
 
 

Спасибо
будем разбираться

  Ответить  
 
 автор: Lukas   (24.02.2009 в 15:49)   личное сообщение
 
 

Я для поддержания постоянного соединения с файлом бд использовал форму, связанную с небольшой табличкой, открытую в "в тени".
Сильного увеличения производительности не заметил (файл бд лежит в сетке на внешнем
USB-HDD), но заметил другую полезность - файл бд перестал пухнуть как на дрожжах.

  Ответить  
 
 автор: alecks_lp   (24.02.2009 в 12:35)   личное сообщение
 
 


Таблиц штук 40, почти все связанные между собой


- Я Вам толкую про связь клиента и файл-сервера и рекомендую ADO: создали подключение, закачали данные, отключились от источника, поработали с данными, снова подключились и передали в источник.


Получается 5 секунд теряется в сети.


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


Одна большая 400 000 записей


- предпосылка размещения таблиц на сервер.

  Ответить  
 
 автор: Гамлет   (24.02.2009 в 13:58)   личное сообщение
 
 

Спасибо за идеи
будем посмотреть

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList