Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.10.2011, 20:20
dmit2222 dmit2222 вне форума
Новичок
 
Регистрация: 16.04.2008
Сообщения: 51
Репутация: 10
По умолчанию База данных Access тормозит при обращении через Delphi

Добрый день! У меня есть программа, в которой данные сохраняются в базе Access. Все работало нормально и прекрасно, но в один момент программа начала жутко тормозить при обращении к базе. Например, когда я делаю какой-нибудь запрос. Я сначала подумал, что это из-за размера базы и кол-ва записей в ней (все-таки уже порядка 20000 записей). Сократил кол-во записей в базе вдвое, но результата не появилось. Тормозит также. Затем пробовал сжать и восстановить базу данных, но результата не последовало. И затем вообще удалил все записи из базы (база стала пустая), но тормоза никуда не исчезли. Что это может быть? Ведь работало все прекрасно, ничего не изменялось и тут вдруг на тебе и тормозить начала. Кто-нибудь сталкивался с подобным?
Ответить с цитированием
  #2  
Старый 26.10.2011, 21:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Попробуйте выставить для свойства CursorLocation состояние clUseServer
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 27.10.2011, 19:28
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию База данных Access тормозит при обращении через Delphi

У меня по этому поводу такое соображение: если в базу часто вносятся и удаляются данные, то у Access есть такая особенность - допустим у вас в базе изначально 100 записей, каждая запись имеет, к примеру, поле key (типа счётчик), с нумерацией от 1-й до 100-й. Ежели вы удаляете свои записи, а затем вносите снова, то база помнит максимальный номер счётчика пусть уже и удалённой записи и вновь введенные записи продолжает нумеровать дальше, от 100-й и далее. Ежели у вас база имеет почтенную историю, с массой удалений и довведений, то представляю какого порядка там уже счётчики накрутились. Не знаю, может быть в этом причина. Попробуйте счётчики обнулить. Это не так уж и просто в Access. Технолгию обнуления поищите у Microsoft в и-нете
Ответить с цитированием
  #4  
Старый 27.10.2011, 19:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

1. Значение в счетчике никак не влияет и не может влиять на производительность БД. Могут быть небольшие тормоза при использовании собственных ключевых полей не числового типа, но это отдельная тема.
2. Обнулить счетчик, не просто, а очень просто. Для этого достаточно очистить таблицу и провести упаковку. Но при рабочей БД делать этого категорически не надо, т.к. вы не просто потеряете связи между таблицами, а еще и получите массу абсолютно некорректных связей.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 30.10.2011, 14:37
dmit2222 dmit2222 вне форума
Новичок
 
Регистрация: 16.04.2008
Сообщения: 51
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Попробуйте выставить для свойства CursorLocation состояние clUseServer
Тоже самое. Тормозит.
Ответить с цитированием
  #6  
Старый 30.10.2011, 20:20
dmit2222 dmit2222 вне форума
Новичок
 
Регистрация: 16.04.2008
Сообщения: 51
Репутация: 10
По умолчанию

Разобрался. Оказалось я немного не так написал запрос. Что приходилось проганять всю таблицу несколько раз. А в таблице более 16000 записей. Вот и тормозило. Я оптимизировал и начало нормально бегать.
Всем спасибо за советы.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:49.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter