|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
База данных Access тормозит при обращении через Delphi
Добрый день! У меня есть программа, в которой данные сохраняются в базе Access. Все работало нормально и прекрасно, но в один момент программа начала жутко тормозить при обращении к базе. Например, когда я делаю какой-нибудь запрос. Я сначала подумал, что это из-за размера базы и кол-ва записей в ней (все-таки уже порядка 20000 записей). Сократил кол-во записей в базе вдвое, но результата не появилось. Тормозит также. Затем пробовал сжать и восстановить базу данных, но результата не последовало. И затем вообще удалил все записи из базы (база стала пустая), но тормоза никуда не исчезли. Что это может быть? Ведь работало все прекрасно, ничего не изменялось и тут вдруг на тебе и тормозить начала. Кто-нибудь сталкивался с подобным?
|
#2
|
||||
|
||||
Попробуйте выставить для свойства CursorLocation состояние clUseServer
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
База данных Access тормозит при обращении через Delphi
У меня по этому поводу такое соображение: если в базу часто вносятся и удаляются данные, то у Access есть такая особенность - допустим у вас в базе изначально 100 записей, каждая запись имеет, к примеру, поле key (типа счётчик), с нумерацией от 1-й до 100-й. Ежели вы удаляете свои записи, а затем вносите снова, то база помнит максимальный номер счётчика пусть уже и удалённой записи и вновь введенные записи продолжает нумеровать дальше, от 100-й и далее. Ежели у вас база имеет почтенную историю, с массой удалений и довведений, то представляю какого порядка там уже счётчики накрутились. Не знаю, может быть в этом причина. Попробуйте счётчики обнулить. Это не так уж и просто в Access. Технолгию обнуления поищите у Microsoft в и-нете
|
#4
|
||||
|
||||
1. Значение в счетчике никак не влияет и не может влиять на производительность БД. Могут быть небольшие тормоза при использовании собственных ключевых полей не числового типа, но это отдельная тема.
2. Обнулить счетчик, не просто, а очень просто. Для этого достаточно очистить таблицу и провести упаковку. Но при рабочей БД делать этого категорически не надо, т.к. вы не просто потеряете связи между таблицами, а еще и получите массу абсолютно некорректных связей. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Цитата:
|
#6
|
|||
|
|||
Разобрался. Оказалось я немного не так написал запрос. Что приходилось проганять всю таблицу несколько раз. А в таблице более 16000 записей. Вот и тормозило. Я оптимизировал и начало нормально бегать.
Всем спасибо за советы. |