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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Ускорение быстродействия базы на Access
 
 автор: reclient   (29.04.2015 в 16:30)   личное сообщение
 
 

Мне очень нужно кардинально повысить быстродействие (подгрузку записей в формах). Очень нужна ваша помощь. Жду любых практичных советов, идей.

1. Есть база на MS Access 2003-2007.
2. Базы (таблица) по клиентам + база (таблица) по взаимодействиям с ними (подчиненная форма). Сейчас там тысячи позиций по клиентам + более сотни тысяч записей по взаимодействиям.
3. База разделена на табличную часть и базу с запросами-формами.
4. База используется несколькими пользователями одновременно. Каждый запускает свою копию базы с запросами-формами.
5. При перелистывании в форме записей по клиентам проходит 10-20 секунд. Что, конечно, нереально долго.

Что сделать, чтобы скорость сократилась до долей секунды? Повторюсь, вопрос очень критичный.

P.S. Есть еще одна база. Там 90 тыс.клиентов и 350 тыс.взаимодействий. Там та же проблема.

Заранее спасибо!

  Ответить  
 
 автор: shanemac51   (29.04.2015 в 16:52)   личное сообщение
 
 

может нормальный поиск сделать, динамический
=========
раз листают --значит ищут
===============
какова цель работы
--только просмотр и распечатка выбранного
--корректировка

  Ответить  
 
 автор: reclient   (29.04.2015 в 17:01)   личное сообщение
 
 

1. Чуть подробнее про динамический поиск. Что это?
2. "Раз листают - значит ищут" - не понял смысл сообщения.
3. И просмотр, и корректировка.

  Ответить  
 
 автор: shanemac51   (29.04.2015 в 17:05)   личное сообщение
44 Кб.
 
 

если только поиск ---вот пример поиска

========
поиск не помешает и при корректировке

  Ответить  
 
 автор: reclient   (29.04.2015 в 18:28)   личное сообщение
 
 

Ещё раз посмотрел все формы. Самые большие зависания - когда источником данных для формы является каскад запросов.

Таблица ==> Запрос ==> Запрос + запрос ==> Форма.

Как ускорить действие базы в этом случае, если такой каскад запросов необходим... Можно ли как-то уменьшить задачу ему, например, если в абсолютном большинстве случаев в этих запросах используется лишь малая часть табличных данных (то есть выборки делаются по данным, скажем, последнего полугода... а вообще в базе данные за несколько лет)?

  Ответить  
 
 автор: shanemac51   (29.04.2015 в 18:38)   личное сообщение
 
 

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

select klient, tovar, mec. sum(kol), sum(summa) into rab1 in 'c:\temp\rab1.mdb'
where god=2014
group by klient, tovar, mec


далее итоги более высокого уровня и отчеты в разных разрезах с этой временной таблицы, основная таблица не занимается

  Ответить  
 
 автор: kot_k_k   (01.05.2015 в 07:43)   личное сообщение
 
 

как вариант ускорения всего процесса - RDP.
эффект будет налицо - сам так делал.

  Ответить  
 
 автор: kot_k_k   (03.07.2015 в 08:22)   личное сообщение
 
 


Как ускорить действие базы в этом случае, если такой каскад запросов необходим... Можно ли как-то уменьшить задачу ему, например, если в абсолютном большинстве случаев в этих запросах используется лишь малая часть табличных данных (то есть выборки делаются по данным, скажем, последнего полугода... а вообще в базе данные за несколько лет)?



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

и раз в период чистить оперативную таблу.

т.е. если период попадает в оперативную 90-95% запросов - все летает по "оперативной" табле. отсальные 5-10% радостно ждут около дымящегося компа


вариант № 2.
продумать логику работы клиента.
если менагер Вася работает с магазином № 2, 7, 15 - то инфа по магазинам 10, 66,88 ему не нужна.
при запуске пишем сообщение "Идет загрузка данных" и во временные таблы прогружаем инфу по Васиным магазинам, сэтими временными таблами Вася спокоуо раотает в течении дня.
можно добавить таймер на главную форму который будет подгружать данные во временные таблы если данные в них изменили другие юзеры.

  Ответить  
 
 автор: osmor   (01.05.2015 в 21:28)   личное сообщение
 
 

Вообще конечно грамотный поиск, а не вывод всего что бы народ "листал"
Но вообще "Там 90 тыс.клиентов и 350 тыс.взаимодействий", это довольно много для MSA.

  Ответить  
 
 автор: shanemac51   (02.05.2015 в 09:04)   личное сообщение
 
 

хотелось бы увидеть базы
вопрос 1--- сложно оценить потребный поиск
--90т клиентов требуют поиска по клиент-дата/период-операция(и другие поля....)
--для выбранного клиента показать подчиненные строки по дате/период......

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


например
--ленточная форма с поиском без прямого доступа к записям
--при клике на выбранной строке --переход на форму-корректировку

  Ответить  
 
 автор: kot_k_k   (03.05.2015 в 15:55)   личное сообщение
 
 

короче базу в студию

(ХР формат)

  Ответить  
 
 автор: Йожык   (02.07.2015 в 15:24)   личное сообщение
 
 

Базы (таблица) по клиентам + база (таблица) по взаимодействиям с ними (подчиненная форма). Сейчас там тысячи позиций по клиентам + более сотни тысяч записей по взаимодействиям.

По поводу главных и подчиненных форм:
Для аксесса давно уже использую такой порядок:
Записи основной таблицы - в главной форме.
На событие главной формы Form_Current создается источник данных для подчиненной формы.
То есть, в конструкторе "подчиненные поля" и "основные поля" не заполняются. Поскольку, как я понял, они читают ВСЮ таблицу, а потом фильтруют ее по необходимому полю.


База используется несколькими пользователями одновременно. Каждый запускает свою копию базы с запросами-формами.

Перелезайте на SQL, да хоть и на локальном компьютере.

у меня есть подобные по размерам таблицы
данные - на PostgreSQL
Все летает.

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