Access тормозит в режиме конструктора

Обновлено: 28.03.2024

Здравствуйте.
приложение работает всё, вроде ничего, но вот одна пробема: слишком медленно. Ну, по порядку.
Программа написана на VC++ 7.1 для доступа использую DAO (как я понимаю это доступ через драйвер Microsoft Jet, а он вроде бы говорили что тормозной) с использованием MFC.
Суть такова: Есть файл Out.mdb в нем три таблицы Tab_1, Tab_2, Out.
В таблицах Tab_1 и Tab_2 одинаковое количество полей (18), но не суть, суть в том что ключевую роль играют поля с номером (по порядку если):
0 — Key (счетчик);
1 — Date_time (дата и время: 1.09.2005 11:10:45); // В обоих таблицах Tab_1 и Tab_2 проведена индексация этих полей, для ускорения
. Bla, bla, bla
Число записей в Tab_1 около 10000, в Tab_2 несколько миллионов.
Принцип следующий:
беру из Tab_1 запись, получаю время и дату, выполняю запрос на получение из Tab_2 записи отличающиеся на X минут от взятой из Tab_1.
Запрос таков (16.09.2005 14:35:48 — взято из записи из Tab_1, предположим разница в 10 минут):

Далее по полученным из запроса записям провожу некоторый дополнительный поиск (записей получается не так много в пределах 1000 в худшем случае, обычно намного меньше) и в результате если условие выполнится в Tab_3 заношу значения ключевых полей из Tab_1 и Tab_2 строк для которых все условия выполнились.
В программе выполнения данного цикла для одной записи из Tab_1 проходит достаточно долго, причем, если в самом MS Access выполнить запрос происходит относительно того как программа быстро, если даже не сказать мнгновенно.

Внесите, плз, предложения по ускорению работы программы: перейти на другой доступ к базе, либо как то алгоритм менять?
Заранее благодарен.

T>Здравствуйте.
T> приложение работает всё, вроде ничего, но вот одна пробема: слишком медленно. Ну, по порядку.
T> Программа написана на VC++ 7.1 для доступа использую DAO (как я понимаю это доступ через драйвер Microsoft Jet, а он вроде бы говорили что тормозной) с использованием MFC.

по технике доступа — используй OLE DB интерфейсы jet-a будет шустрее + atl ole db templates.

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

T>Внесите, плз, предложения по ускорению работы программы: перейти на другой доступ к базе, либо как то алгоритм менять?
T>Заранее благодарен.

и еще — не совсем понятно где у тебя тормозит — я так понял ты сначала выполняешь селект, а затем
по нему лазишь? для результатов (для каждого в отдельности?) производишь вставку?
вставка тормзит?
+ на вставке может сильно тормозить в tab2 если там млн записей, и поле проиндексировано, ему надо
еще и в индекс вставить значение новое..

поскольку я вижу милисекнуды тебя не интересуют, можно еще попробовать время хранить в целочисленном
формате

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

От: algol about:blank
Дата: 16.09.05 14:04
Оценка: 2 (1)

Здравствуйте, Time, Вы писали:

T>Далее по полученным из запроса записям провожу некоторый дополнительный поиск (записей получается не так много в пределах 1000 в худшем случае, обычно намного меньше) и в результате если условие выполнится в Tab_3 заношу значения ключевых полей из Tab_1 и Tab_2 строк для которых все условия выполнились.
T> В программе выполнения данного цикла для одной записи из Tab_1 проходит достаточно долго, причем, если в самом MS Access выполнить запрос происходит относительно того как программа быстро, если даже не сказать мнгновенно.

Если обработка результатов запроса (дополнительный поиск и т.д.) производится на стороне приложения, то вероятно именно она и тормозит. Уточнить причину можно профайлером. Переход на другой вид доступа к базе здесь вряд ли поможет, нужно выносить обработку по максимуму в SQL. Что-то можно соптимизировать в запросах, например в приведенном коде можно двойной вызов DATEDIFF заменить одним:

Здравствуйте, dad, Вы писали:

dad>по технике доступа — используй OLE DB интерфейсы jet-a будет шустрее + atl ole db templates.
Можно, подробнее, плз, не разу не использовал. Ссылку?

Здравствуйте, dad, Вы писали:

dad>и еще — не совсем понятно где у тебя тормозит — я так понял ты сначала выполняешь селект, а затем
dad>по нему лазишь? для результатов (для каждого в отдельности?) производишь вставку?
лажу по выдаче Select'a и там выбираю только те записи у которых одно из полей равно определенному в Tab_1. Далее номера этих полей для которых всё совпало заношу в Tab_3 а не в Tab_2, т.е. Tab_3 хранит лишь Key(Счетчик собсвенный), Key_from_tab_1 и Key_from_tab_2
dad>вставка тормзит?
неа вставка не тормозит, даже на этапе создания таблиц Tab_1 и Tab_2 (т.е. даже в Tab_2 не тормозит)
dad>+ на вставке может сильно тормозить в tab2 если там млн записей, и поле проиндексировано, ему надо
dad>еще и в индекс вставить значение новое..

dad>поскольку я вижу милисекнуды тебя не интересуют, можно еще попробовать время хранить в целочисленном
dad>формате

это конечно можно попробовать, но разве то что я эти поля сделал индексированными не означает что для каждой записи сгенерился целочисленный иднекс?

Здравствуйте, Time, Вы писали:

T> В программе выполнения данного цикла для одной записи из Tab_1 проходит достаточно долго, причем, если в самом MS Access выполнить запрос происходит относительно того как программа быстро, если даже не сказать мнгновенно.

T>Внесите, плз, предложения по ускорению работы программы: перейти на другой доступ к базе, либо как то алгоритм менять?

Непохоже, что проблема в методе доступа, но я все же рекомендовал бы перейти на ADO (или OLE DB, но ADO удобнее)

Я думаю, что причина низкой производительности именно в алгоритме обработки данных. Ты в программном коде выполняешь работу, которую может выполнить и сам Access (точнее, MS Jet), причем гораздо более эффективно. Другими словами нужно руководствоваться принципом "If you can do it in SQL, do it in SQL!". В данном случае нужно составить запрос типа "INSERT . SELECT . ", который выполнит все этапы поиска и сразу вставит нужные данные в целевую таблицу. Он будет выглядеть примерно так:

Здравствуйте, wildwind, Вы писали:

W>Я думаю, что причина низкой производительности именно в алгоритме обработки данных. Ты в программном коде выполняешь работу, которую может выполнить и сам Access (точнее, MS Jet), причем гораздо более эффективно. Другими словами нужно руководствоваться принципом "If you can do it in SQL, do it in SQL!". В данном случае нужно составить запрос типа "INSERT . SELECT . ", который выполнит все этапы поиска и сразу вставит нужные данные в целевую таблицу. Он будет выглядеть примерно так:
W>

Да, сначала программа обрабатывала все данные в текстовом виде, потом решил перенести все на БД и SQL, но работать она стала хотя и удобнее но медленне. Вероятно моего опыта пока не хватило чтобы перенести всю логику на SQL .
Попробую составить запрос который мне нужен, отредактируйте, плз. Из таблицы tab_1 беру по порядку записи для каждой записи нужно найти из tab_2 такие записи которые различаются по времени не более чем на Х минут (возьмем для примера 10) и у которых либо поле Nomer_1 или Nomer_2 равно одному Nomer_1 или Nomer_2 из таблицы Tab_1. Т.е.
Tab_1
Key|Date_time|bla. bla|Nomer_1|Nomer_2

Tab_2
Key|Date_time|bla. bla|Nomer_1|Nomer_2
В общем виде, примерно, так:

Будет ли это оптимально? я ничего не напутал?
Заранее благодарен.
З.Ы.: прийдется завтра на работу бежать опробывать

Здравствуйте, Time, Вы писали:

T>Попробую составить запрос который мне нужен, отредактируйте, плз. Из таблицы tab_1 беру по порядку записи для каждой записи нужно найти из tab_2 такие записи которые различаются по времени не более чем на Х минут (возьмем для примера 10) и у которых либо поле Nomer_1 или Nomer_2 равно одному Nomer_1 или Nomer_2 из таблицы Tab_1.

Вот это условие я не понял, поясни. Что значит "либо"? Что, между таблицами нет однозначной связи?


Нет, это лишнее. Запрос будет выполняться один раз и обработает все записи.


T>Будет ли это оптимально? я ничего не напутал?

Я все же прдлагаю вместо DateDiff использовать DateAdd (обрати внимание, выше), это позволит эффективно использовать индекс по Tab_2.Date_time.

И еще: форматируй код пожалуйста, иначе посты становятся совершенно нечитабельными.

Здравствуйте, wildwind, Вы писали:

W>Вот это условие я не понял, поясни. Что значит "либо"? Что, между таблицами нет однозначной связи?
Таблицы 1 и 2 между собой не связаны. Одним словом БД не реляционная. Просто в табл 3 хранятся ключи совпавших записей из первой и второй таблицы, а потом я сделел в Access представление чтобы вместо ключей были даные из 1 и 2 й табл.
Ну таблицы хотя и "почти" одинаковые но получаются из разных источников и мне надо найти чтобы Номер либо 1й либо 2й из первой таблицы совпадал с либо 1м либо 2м из второй таблицы, т.е. не обязательно Номер 1й из 1й таблицы должен быть в поле Номер 1й во 2й таблицы, он может быть и в поле Номер 2й табл2. И наоборот для второго номера, причем надо учесть ещё чтобы это совпадение по номерам было в пределах Х минут. Возможно, что ни не найдется ни одной записи.

W>Нет, это лишнее. Запрос будет выполняться один раз и обработает все записи.

Честно говоря, я затрудняюсь составить запрос на один раз , помогите, плз.

W>Я все же прдлагаю вместо DateDiff использовать DateAdd (обрати внимание, выше), это позволит эффективно использовать индекс по Tab_2.Date_time.

В Вашем методе с DateAdd два раза используется DateAdd, а тут один раз DateDiff, жаль сегодня не могу проверить.
W>И еще: форматируй код пожалуйста, иначе посты становятся совершенно нечитабельными.
вроде старался.

Здравствуйте, wildwind, Вы писали:

W>Нет, это лишнее. Запрос будет выполняться один раз и обработает все записи.

Извините, протупил, на счет запроса за один раз, попробую составить, покритикуте, плз:

Блин, попробовал его ввести в свою Базу в Access, он прежде чем выполнится просит чтобы я задал ему Tab_1.Nomer_1 и Tab_2.Nomer_2. Херь какая то

Здравствуйте, Time, Вы писали:

T>Блин, попробовал его ввести в свою Базу в Access, он прежде чем выполнится просит чтобы я задал ему Tab_1.Nomer_1 и Tab_2.Nomer_2. Херь какая то

Да, пора уже баеньки, ошибку допустил, опечатался, ошибку нашел

dad>>и еще — не совсем понятно где у тебя тормозит — я так понял ты сначала выполняешь селект, а затем
dad>>по нему лазишь? для результатов (для каждого в отдельности?) производишь вставку?
T>лажу по выдаче Select'a и там выбираю только те записи у которых одно из полей равно определенному в Tab_1. Далее номера этих полей для которых всё совпало заношу в Tab_3 а не в Tab_2, т.е. Tab_3 хранит лишь Key(Счетчик собсвенный), Key_from_tab_1 и Key_from_tab_2

ну надо основной функционал перенести либо в саму конструкцию запроса, либо на хранимые процедуры (или как там они в акцессе называются)

dad>>поскольку я вижу милисекнуды тебя не интересуют, можно еще попробовать время хранить в целочисленном
dad>>формате

T>это конечно можно попробовать, но разве то что я эти поля сделал индексированными не означает что для каждой записи сгенерился целочисленный иднекс?

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

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

dad>>по технике доступа — используй OLE DB интерфейсы jet-a будет шустрее + atl ole db templates.
T>Можно, подробнее, плз, не разу не использовал. Ссылку?

нормально так "ссылку" тут одной ссылкой не обойдешься.
В МСДНе смотри "Introduction to OLE DB" в разделе Data Access/Microsoft Data Access Components (MDAC)/ OLE DB

инструментарий смотри в бибилотеке ATL +
Специально для Jet-a есть описание интерфейсов его, и бибилотека импорта.
сейчас ничего не помню (давно под макросовт не делал ничего), самплы где то в архивах на болванках есть
но далекоо.

ADO проще — но когда дело дойтет до того, что тебе нужно будет — создать новую базу вручную, сжать базу, поуправлять юзерами, то тебе так или иначе прийдется на более низкий уровень спуститься.

Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)

Здравствуйте, Time, Вы писали:

T>Извините, протупил, на счет запроса за один раз, попробую составить, покритикуте, плз:

Примерно так. И как работает на больших объемах?

Здравствуйте, wildwind, Вы писали:

W>Примерно так. И как работает на больших объемах?

Ну как сказать, сходил, я поставил, да узнать не могу ибо парочкой часов не обошлось. Сравнение с тем что было и с тем что стало можно провести будет в течении недельки. О результатах расскажу

Здравствуйте, wildwind, Вы писали:

W>Примерно так. И как работает на больших объемах?

Ну как сказать, сходил, я поставил, да узнать не могу ибо парочкой часов не обошлось. Сравнение с тем что было и с тем что стало можно провести будет в течении недельки. О результатах расскажу. Только вот поблемка: создаю CDaoQueryDef, записываю запрос, делаю Execute и звиздец дело на длительный срок. Вот как бы мне узнать скоко процентов выполнилось или что то в этом роде, а написать в проге "Ждите. " на несколько часов как то не очень.

Здравствуйте, Time, Вы писали:

W>>Примерно так. И как работает на больших объемах?
T>Ну как сказать, сходил, я поставил, да узнать не могу ибо парочкой часов не обошлось. Сравнение с тем что было и с тем что стало можно провести будет в течении недельки. О результатах расскажу

Ну ты даешь. Как ты ставишь клиентам, не тестируя?

Здравствуйте, wildwind, Вы писали:
W>Ну ты даешь. Как ты ставишь клиентам, не тестируя?

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

В этой статье содержатся советы по повышению производительности базы Microsoft Office Access. Следуя этим советам, вы сможете ускорить выполнение многих операций с базами данных, таких как запуск отчетов или открытие форм, основанных на сложных запросах.

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

В этой статье не рассмотрены способы оптимизации производительности отдельных объектов базы данных, например с помощью индекса. Дополнительные сведения см. в статье "Создание и использование индекса для повышения производительности".

В этой статье

Повышение производительности локальной базы данных

Ниже указаны рекомендации по оптимизации производительности локальной базы данных Access — базы данных, которая хранится на локальном жестком диске, а не в сети.

Отключение автоcorrect имен

Функция автоcorrect имен обеспечивает работоспособность объектов базы данных при переименовании других объектов базы данных, от которых они зависят. Например, если вы переименовыли таблицу и в них есть запросы, которые ее используют, автоcorrect не будет нарушать эти запросы из-за изменения. Эта функция может быть полезной, но она замедляет производительность.

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

Откройте базу данных, которую вы хотите оптимизировать.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области диалогового окна Параметры Access выберите категорию Текущая база данных.

В области справа в области "Параметры автозаверия имен" разобирайте все флажки.

Настройка автоматического сжатия и восстановления базы данных

Со временем производительность файла базы данных может замедлиться из-за того, что остается место, выделенное для удаленных или временных объектов. Команда "Сжатие и восстановление" удаляет это место и помогает быстрее и эффективнее работать с базой данных. Вы можете настроить автоматическое сжатие и восстановление базы данных при закрытии базы данных.

Откройте базу данных, которую вы хотите оптимизировать.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области диалогового окна Параметры Access выберите категорию Текущая база данных.

В области справа в меню "Параметрыприложений" выберите параметр "Сжатие при закрытии".

Открытие базы данных в монопольном режиме

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

Запустите Access, но не открывайте базу данных. Если у вас уже открыта база данных, закроем ее.

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

Щелкните стрелку на кнопке "Открыть" и выберите "Монопольно".

Отключение параметров автоcorrect

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

Откройте базу данных, которую вы хотите оптимизировать.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области диалогового окна "Параметры Access" щелкните "Проверку".

В области справа в области параметров автоcorrectнажмите кнопку "Параметры автоcorrect".

В диалоговом окне "Параметры автоcorrect" разберите флажки для нужных параметров.

Примечание: Вам не нужно отключать все параметры автоcorrect, чтобы увидеть преимущество, но чем больше параметров автоcorrect вы отключите, тем больше преимущество.

Повышение производительности в многослойной среде

Ниже вы можете оптимизировать производительность базы данных Access, которая используется в многослойной среде.

Разделение базы данных

При разделении базы данных таблицы данных помещались в файл базы данных на сетевом сервере в так называемую серверную базу данных. Другие объекты базы данных, такие как запросы, формы и отчеты, помещались в другой файл базы данных, который называется передней базой данных. Пользователи могут хранить собственную копию передней базы данных на своих компьютерах. Производительность повысится, так как только данные отправляются по сети.

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

На вкладке "Инструменты базы данных" в группе "Перемещение данных" нажмите кнопку "База данных Access".

Изменение параметра блокировки на уровне страницы или на уровне записи

Access блокирует определенный объем данных при редактировании записей. Объем заблокированных данных зависит от параметра блокировки, который вы выбрали. Вы можете повысить производительность, выбрав блокировку на уровне страницы. Однако блокировка на уровне страницы может привести к снижению доступности данных, так как больше данных заблокировано, чем при блокировке на уровне записи.

Блокировка на уровне страницы Access блокирует страницу с записью (страница — это область памяти, в которой хранится запись). Изменение записи с включенной блокировкой на уровне страницы также может привести к блокировке других записей, хранимных рядом в памяти. Однако при использовании блокировки на уровне страницы, а не на уровне записи, производительность обычно выше.

Блокировка на уровне записи Access блокирует только редактируемую запись. На другие записи это не влияет.

Изменение параметра блокировки на уровне страницы или на уровне записи

Откройте базу данных, которую вы хотите изменить.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области щелкните "Параметры клиента".

В области справа в разделе "Дополнительные" выберите или скройте окно "Открытие базы данных" с помощью окна блокировки на уровне записей.

Выбор параметра блокировки записей

Access блокирует записи во время их редактирования. Количество записей, которые блокирует Access, и время их блокировки зависят от того, как именно.

Блокировки не заблокировок Access не блокирует запись или страницу, пока пользователь не сохранит в них изменения, что делает данные более доступными. Однако при использовании этого параметра могут возникать конфликты данных (одновременные изменения, внося в ту же запись). В случае конфликта данных пользователь должен решить, какую версию данных сохранить. Как правило, это самый быстрый вариант, но конфликты данных могут привести к конфликту производительности.

Отредактированная запись Access заблокирует запись, как только пользователь начнет ее редактировать. В результате записи блокировются на более длительный период времени, но конфликты данных менее вероятны.

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

Изменение параметра блокировки записей

Откройте базу данных, которую вы хотите изменить.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области щелкните "Параметры клиента".

В области справа в разделе "Дополнительные параметры" в разделе блокировки записей по умолчанию выберитенужный параметр.

Настройка параметров обновления сети

Попробуйте настроить интервал обновления (с),интервал обновления (msec),количество истраиваемых обновлений и параметры интервала обновления ODBC (с), если это применимо.

С помощью параметров "Интервал повторного обновления" и "Число попыток обновления" можно указать, как часто и сколько раз Access пытается сохранить запись, если она заблокирована другим пользователем.

С помощью параметров интервала обновления ODBC и интервала обновления можно управлять частотой обновления данных в Access. При обновлении обновляются только данные, которые уже есть в вашей таблице или форме. При этом не происходит переусортовка записей, отображение новых записей и удаление удаленных записей и записей из результатов запроса, которые больше не соответствуют указанным условиям. Чтобы просмотреть такие изменения, необходимо повторно создать записи для таблицы или формы.

Изменение параметров обновления сети

Откройте базу данных, которую вы хотите ускорить.

На вкладке Файл выберите пункт Параметры, чтобы открыть диалоговое окно Параметры Access.

В левой области щелкните "Параметры клиента".

В области справа в разделе "Дополнительные параметры" измените нужные параметры.

Совет: Чтобы повторно сделать это, нажмите shift+F9.

Повышение производительности Access на компьютере

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

Евгений Ачкасов

Проблема. Локальная одноуровневая сеть. Таблицы базы расположены на одном из компом в отдельном mdb-файле. На остальных компах терминальные приложения тоже в формате mdb (конвертнуть в формат mde почему-то не удается – пришет: «Приложение не смогло создать базу данных mde).

База не очень большая (~19M ядро с таблицами и 9М терминальные приложения – много форм и отчетов). ~70 тыс. записей в основной таблице, но много дополняющих связанных таблиц. Базе больше 10 лет и работала живенько.

В какой-то момент на терминальных компах стала работать медленно (кроме того, естественно, где стоит ядро базы). Если на основном формы и отчеты открываются (обновляются) за 2-3 сек, то на терминальных 30-35 сек. Причем при этом сеть вообще не загружена…

Нашел рекомендации:
1. Убрать автокоррекцию имен
2. В свойстве связанных таблиц «Имя подтаблицы» вместо «Авто» поставить «Нет».
3. Больше никаких рекомендаций по данному вопросу не нашел…

В первый момент помогло так, что очень обрадовался. Везде формы обновлялись за 2-3 сек. Но дальше стало еще непонятнее! Такая нормальная работа идет 5-10 минут. Потом снова включаются тормоза. Причем, если закрыть и снова открыть терминальное приложение, снова имеем 5-10 минут нормальной работы.

Есть такое предположение (только мое, и может неправильное), что терминальные приложения при каждом запросе устанавливает новую связь с таблицей ядра базы, а после выполнения запроса, эта связь остается открытой. При следующем обновлении устанавливается еще одна связь. Когда этих открытых связей (5-10 минут работы) становится много, и включаются тормоза…

Может быть, можно какими-то командами их принудительно закрыть/разорвать? Или здесь работает на замедление что-то еще?

Если кто-то сталкивался с проблемами работы в локалке, напишите-помогите. Решение должно быть…

Больше надежды, чем ожидания . Я уже некоторое время живу с тем фактом, что Access 2010 загружается на мой ноутбук за минуту или две. Проблема заключается в том, что у меня также загружены Access 2003 и 2007 (мы обучающая компания, поэтому они мне нужны). Я сейчас удалил Access 2003, но все еще имею ту же проблему. Я пробовал все виды вещей, как рекомендовано другими сайтами, включая изменения в реестре. Кто-нибудь может помочь? Заранее спасибо.

2 ответа 2

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

Даже на более слабом ноутбуке Access загружается для меня практически без задержки.

Это широко известная проблема, и ХОРОШО ЗНАЕТЕ, что переконфигурирование и переустановка меню, которое вы видите, является ОБЩЕЙ проблемой, когда у вас установлено несколько версий Office. Это даже не ограничено доступом.

Проблема не в медленной загрузке, а в следующем диалоговом окне:


Выше будет происходить, даже если у вас есть SSD-накопитель.

Слово.Приложение или доступ.заявка

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

Таким образом, "длительная задержка" - это на самом деле офисные биты и детали, которые перерегистрируются для данной версии офиса. Существует ГРУЗОВАЯ НАГРУЗКА ссылок, которые необходимо изменить.

Даже если вы кэшируете Access 2003 и 2010 в оперативной памяти - вы обнаружите эту задержку.

Задержка возникает ТОЛЬКО при повторном запуске РАЗНОЙ версии. И вы НЕ ДОЛЖНЫ запускать + запускать оба одновременно.

Так что, если вы запускаете 2010, получаете более позднюю задержку, то дополнительные загрузки выполняются мгновенно и без задержек.

Как уже отмечалось, задержка ТОЛЬКО при перерегистрации и повторном указании офисного приложения (в данном случае Access) должна быть установлена в качестве "версии по умолчанию" для автоматизации.

Таким образом, если последняя версия какого-либо офисного продукта, который вы используете, НЕ была последней версией, то произойдет большая задержка и длительная перерегистрация. Конечно, как только вы переключаетесь, дополнительная загрузка приложения практически мгновенная.

Если вам действительно нужно работать с несколькими версиями Office и вам часто приходится переключаться, то вы получаете удар с задержкой, близкой к 45 или почти 60 секундам, тогда я предлагаю вам использовать Virtual Pc и устанавливать в нее отдельные версии.

У меня 2003 и 2010 годы, и так как я не переключаюсь каждый день, то я согласен с этой единственной задержкой. Однако, если вы поддерживаете несколько версий на одном устройстве, я предлагаю режим VPC или даже режим Windows XP - он отлично работает, устраняет задержку, и вы даже можете запускать обе сразу.

Решение проблем в _Access — не устанавливается? Не запускается? Тормозит? Вылетает? Лагает? Ошибка? Не загружается?

К сожалению, в играх бывают изъяны: тормоза, низкий FPS, вылеты, зависания, баги и другие мелкие и не очень ошибки. Нередко проблемы начинаются еще до начала игры, когда она не устанавливается, не загружается или даже не скачивается. Да и сам компьютер иногда чудит, и тогда в _Access вместо картинки черный экран, не работает управление, не слышно звук или что-нибудь еще.

Что сделать в первую очередь

  1. Скачайте и запустите всемирно известный CCleaner (скачать по прямой ссылке) - это программа, которая очистит ваш компьютер от ненужного мусора, в результате чего система станет работать быстрее после первой же перезагрузки;
  2. Обновите все драйверы в системе с помощью программы Driver Updater (скачать по прямой ссылке) - она просканирует ваш компьютер и обновит все драйверы до актуальной версии за 5 минут;
  3. Установите Advanced System Optimizer (скачать по прямой ссылке) и включите в ней игровой режим, который завершит бесполезные фоновые процессы во время запуска игр и повысит производительность в игре.

Системные требования _Access

Второе, что стоит сделать при возникновении каких-либо проблем с _Access, это свериться с системными требованиями. По-хорошему делать это нужно еще до покупки, чтобы не пожалеть о потраченных деньгах.

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

Файлы, драйверы и библиотеки

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

Начать стоит с драйверов для видеокарты. Современные графические карты производятся только двумя крупными компаниями — Nvidia и AMD. Выяснив, продукт какой из них крутит кулерами в системном блоке, отправляемся на официальный сайт и загружаем пакет свежих драйверов:


Обязательным условием для успешного функционирования _Access является наличие самых свежих драйверов для всех устройств в системе. Скачайте утилиту Driver Updater, чтобы легко и быстро загрузить последние версии драйверов и установить их одним щелчком мыши:

  • загрузите Driver Updater и запустите программу;
  • произведите сканирование системы (обычно оно занимает не более пяти минут);
  • обновите устаревшие драйверы одним щелчком мыши.


Фоновые процессы всегда влияют на производительность. Вы можете существенно увеличить FPS, очистив ваш ПК от мусорных файлов и включив специальный игровой режим с помощью программы Advanced System Optimizer

  • загрузите Advanced System Optimizer и запустите программу;
  • произведите сканирование системы (обычно оно занимает не более пяти минут);
  • выполните все требуемые действия. Ваша система работает как новая!

_Access не скачивается. Долгое скачивание. Решение

Скорость лично вашего интернет-канала не является единственно определяющей скорость загрузки. Если раздающий сервер работает на скорости, скажем, 5 Мб в секунду, то ваши 100 Мб делу не помогут.

Если _Access совсем не скачивается, то это может происходить сразу по куче причин: неправильно настроен роутер, проблемы на стороне провайдера, кот погрыз кабель или, в конце-концов, упавший сервер на стороне сервиса, откуда скачивается игра.

_Access не устанавливается. Прекращена установка. Решение

Перед тем, как начать установку _Access, нужно еще раз обязательно проверить, какой объем она занимает на диске. Если же проблема с наличием свободного места на диске исключена, то следует провести диагностику диска. Возможно, в нем уже накопилось много «битых» секторов, и он банально неисправен?

В Windows есть стандартные средства проверки состояния HDD- и SSD-накопителей, но лучше всего воспользоваться специализированными программами.

Но нельзя также исключать и вероятность того, что из-за обрыва соединения загрузка прошла неудачно, такое тоже бывает. А если устанавливаете _Access с диска, то стоит поглядеть, нет ли на носителе царапин и чужеродных веществ!

_Access не запускается. Ошибка при запуске. Решение

_Access установилась, но попросту отказывается работать. Как быть?

Выдает ли _Access какую-нибудь ошибку после вылета? Если да, то какой у нее текст? Возможно, она не поддерживает вашу видеокарту или какое-то другое оборудование? Или ей не хватает оперативной памяти?

Помните, что разработчики сами заинтересованы в том, чтобы встроить в игры систему описания ошибки при сбое. Им это нужно, чтобы понять, почему их проект не запускается при тестировании.

Обязательно запишите текст ошибки. Если вы не владеете иностранным языком, то обратитесь на официальный форум разработчиков _Access. Также будет полезно заглянуть в крупные игровые сообщества и, конечно, в наш FAQ.

Если _Access не запускается, мы рекомендуем вам попробовать отключить ваш антивирус или поставить игру в исключения антивируса, а также еще раз проверить соответствие системным требованиям и если что-то из вашей сборки не соответствует, то по возможности улучшить свой ПК, докупив более мощные комплектующие.

В _Access черный экран, белый экран, цветной экран. Решение

Проблемы с экранами разных цветов можно условно разделить на 2 категории.

Во-первых, они часто связаны с использованием сразу двух видеокарт. Например, если ваша материнская плата имеет встроенную видеокарту, но играете вы на дискретной, то _Access может в первый раз запускаться на встроенной, при этом самой игры вы не увидите, ведь монитор подключен к дискретной видеокарте.

Во-вторых, цветные экраны бывают при проблемах с выводом изображения на экран. Это может происходить по разным причинам. Например, _Access не может наладить работу через устаревший драйвер или не поддерживает видеокарту. Также черный/белый экран может выводиться при работе на разрешениях, которые не поддерживаются игрой.

_Access вылетает. В определенный или случайный момент. Решение

Играете вы себе, играете и тут — бац! — все гаснет, и вот уже перед вами рабочий стол без какого-либо намека на игру. Почему так происходит? Для решения проблемы стоит попробовать разобраться, какой характер имеет проблема.

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

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

_Access зависает. Картинка застывает. Решение

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

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

Проверить загрузку и температуры для видеокарты и процессоров проще всего в программе MSI Afterburner. При желании можно даже выводить эти и многие другие параметры поверх картинки _Access.

Какие температуры опасны? Процессоры и видеокарты имеют разные рабочие температуры. У видеокарт они обычно составляют 60-80 градусов по Цельсию. У процессоров немного ниже — 40-70 градусов. Если температура процессора выше, то следует проверить состояние термопасты. Возможно, она уже высохла и требует замены.

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

_Access тормозит. Низкий FPS. Просадки частоты кадров. Решение

  • Разрешение теней — определяет, насколько детальной будет тень, отбрасываемая объектом. Если в игре динамические тени, то загружает ядро видеокарты, а если используется заранее созданный рендер, то «ест» видеопамять.
  • Мягкие тени — сглаживание неровностей на самих тенях, обычно эта опция дается вместе с динамическими тенями. Вне зависимости от типа теней нагружает видеокарту в реальном времени.


Один из них — специальная программа под названием Advanced System Optimizer. Она сделана специально для тех, кто не хочет вручную вычищать компьютер от разных временных файлов, удалять ненужные записи реестра и редактировать список автозагрузки. Advanced System Optimizer сама сделает это, а также проанализирует компьютер, чтобы выявить, как можно улучшить производительность в приложениях и играх.

_Access лагает. Большая задержка при игре. Решение

Многие путают «тормоза» с «лагами», но эти проблемы имеют совершенно разные причины. _Access тормозит, когда снижается частота кадров, с которой картинка выводится на монитор, и лагает, когда задержка при обращении к серверу или любому другому хосту слишком высокая.

Именно поэтому «лаги» могут быть только в сетевых играх. Причины разные: плохой сетевой код, физическая удаленность от серверов, загруженность сети, неправильно настроенный роутер, низкая скорость интернет-соединения.

В _Access нет звука. Ничего не слышно. Решение

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

Сначала нужно определить масштаб проблемы. Где именно нет звука — только в игре или вообще на компьютере? Если только в игре, то, возможно, это обусловлено тем, что звуковая карта очень старая и не поддерживает DirectX.

Если же звука нет вообще, то дело однозначно в настройке компьютера. Возможно, неправильно установлены драйвера звуковой карты, а может быть звука нет из-за какой-то специфической ошибки нашей любимой ОС Windows.

В _Access не работает управление. _Access не видит мышь, клавиатуру или геймпад. Решение

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

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

Таким образом, нужно узнать точную модель устройства и постараться найти именно ее драйвер. Часто с устройствами от известных геймерских брендов идут собственные комплекты ПО, так как стандартный драйвер Windows банально не может обеспечить правильную работу всех функций того или иного устройства.

Если искать драйверы для всех устройств по отдельности не хочется, то можно воспользоваться программой Driver Updater. Она предназначена для автоматического поиска драйверов, так что нужно будет только дождаться результатов сканирования и загрузить нужные драйвера в интерфейсе программы.

Нередко тормоза в _Access могут быть вызваны вирусами. В таком случае нет разницы, насколько мощная видеокарта стоит в системном блоке. Проверить компьютер и отчистить его от вирусов и другого нежелательного ПО можно с помощью специальных программ. Например NOD32. Антивирус зарекомендовал себя с наилучшей стороны и получили одобрение миллионов пользователей по всему миру.

ZoneAlarm подходит как для личного использования, так и для малого бизнеса, способен защитить компьютер с операционной системой Windows 10, Windows 8, Windows 7, Windows Vista и Windows XP от любых атак: фишинговых, вирусов, вредоносных программ, шпионских программ и других кибер угроз. Новым пользователям предоставляется 30-дневный бесплатный период.

Nod32 — анитивирус от компании ESET, которая была удостоена многих наград за вклад в развитие безопасности. На сайте разработчика доступны версии анивирусных программ как для ПК, так и для мобильных устройств, предоставляется 30-дневная пробная версия. Есть специальные условия для бизнеса.

_Access, скачанная с торрента не работает. Решение


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

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

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

Поэтому при возникновении каких-либо проблем с играми, скачанными с торрентов или же взломанных с помощью тех или иных средств, следует сразу же удалить «пиратку», почистить компьютер при помощи антивируса и приобрести лицензионную копию игры. Это не только убережет от сомнительного ПО, но и позволит скачивать обновления для игры и получать официальную поддержку от ее создателей.

_Access выдает ошибку об отсутствии DLL-файла. Решение

Как правило, проблемы, связанные с отсутствием DLL-библиотек, возникают при запуске _Access, однако иногда игра может обращаться к определенным DLL в процессе и, не найдя их, вылетать самым наглым образом.

Если ваша проблема оказалась более специфической или же способ, изложенный в данной статье, не помог, то вы можете спросить у других пользователей в нашей рубрике «Вопросы и ответы». Они оперативно помогут вам!

Читайте также: