Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тормоза при использовании Delphi + ADO + Access 
:(
    Опции темы
byaka
Дата 13.7.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



Понимаю, что вопрос общего характера. но может кто-то сталкивался с данной проблемой?
Написана база на Delphi 7. Для связи с базой используется ADO компоненты, например, ADOConnection для свзяи с базой.
Провайдер : Microsoft.Jet.OLEDB.4.0
Код

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\base.mdb;Mode=ReadWrite;Extended Properties="";
Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
  

База лежит локально : D:\base\base.mdb в MS Access.

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

Думаю, что проблемма не в MS Access, т.к. делали реализацию базы на mysql на сервере под linux и ситуация повторяется - на всех машинах программа работает не так быстро , как хотелось бы. 

Значит проблема в ADO компонентах и их настройке. Может кто-то сталкивался с данной ситуацией. очень нужна помощь. Если надо, могу привести исходные коды тех кусков, которые нужны для анализа.! Спс, жду ответов
PM MAIL   Вверх
DarkProg
Дата 15.7.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 1
Всего: 19



У ADO есть ограничение по скорости, в зависимости от того как реализовали у вас подключение к серверу(ну т.е. там где БД) и будет получаться либо быстро но компу где лежит приходится тяжело, либо медленно для всех и компу где БД хорошо.


Если не прав поправьте, а то чего-то никто ничего не пишет...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
~FoX~
Дата 15.7.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



DarkProg, Это где такое написано?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
byaka
Дата 16.7.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



Цитата(DarkProg @ 15.7.2010,  18:29)
У ADO есть ограничение по скорости, в зависимости от того как реализовали у вас подключение к серверу(ну т.е. там где БД) и будет получаться либо быстро но компу где лежит приходится тяжело, либо медленно для всех и компу где БД хорошо.


Если не прав поправьте, а то чего-то никто ничего не пишет...

Ну, бросаю код, тут все просто :
Код

ADO.Connected := false;
ADO.ConnectionString:= LinkLine; // здесь то что писал в первом посте
ADO.Connected := true;


остальные функции обращения к базе, например:
Код

ADOQuerySection.Active := false;
SQLString := 'SELECT code, name, type, file, code_main_supplier, section_order, counter_code, out_code FROM BSection ORDER BY section_order ASC';
ADOQuerySection.SQL.Clear;
ADOQuerySection.SQL.Add(SQLString);
ADOQuerySection.Active := true;


больше ничего сложного нет.
И не понятно, почему несколько клиентов ведут себя неадекватно.
Я думаю, что где-то в настройках, надо выбрать приоритетность работы базы с клиентами, видимо локально приложение загребает на себя работу базы. Не знаю, даже что делать   smile 
PM MAIL   Вверх
~FoX~
Дата 16.7.2010, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



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


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Keeper89
Дата 16.7.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Зачем вообще играться в сетевой вариант с СУБД, которая для этого не предназначена?
Ссылка по теме.

Это сообщение отредактировал(а) Keeper89 - 16.7.2010, 14:50


--------------------
PM MAIL WWW   Вверх
byaka
Дата 16.7.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 12.2.2009

Репутация: нет
Всего: нет



Цитата(~FoX~ @ 16.7.2010,  13:38)
Клиент, в данном случае, что то эфимерное, и обусловлен только тем что БД лежит не на локальном диске... Jetпровайдеру в принципе до серенивой звезды где лежит база... Проблема возникает в случае когда к базе подключены больше одного пользователя... Нужно смотреть в сторону курсоров и блокировок редактируемых записей.....

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

Добавлено через 1 минуту и 28 секунд
Цитата(Keeper89 @ 16.7.2010,  14:49)
Зачем вообще играться в сетевой вариант с СУБД, которая для этого не предназначена?
Ссылка по теме.

Есть идеи? mysql не помог - дело где-то в ADO!
PM MAIL   Вверх
Keeper89
Дата 16.7.2010, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Цитата(byaka @  16.7.2010,  15:10 Найти цитируемый пост)
Есть идеи? mysql не помог - дело где-то в ADO! 

Тогда мне кажется проблема в коде работы с базой, и ADO тут не при чем. Может что-то часто обновляется или т.п.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.