Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

это реализация ADO такая или руки у меня кривые?   Найти похожие ветки 

 
alienka   (2003-06-11 12:54) [0]

Почему то при использовании DBE коннект к базе, открытие таблиц и обновление их - все происходит быстро. При использовании ADO - один коннект занимает почти 3 минуты!
Что я не так настроила?

Мне намекнули, что это реализация ADO кривая, но не хочется от него отказываться....


 
Сумрак   (2003-06-11 13:29) [1]

Если доступ с помощью ODBC то понятно, работает медленно. Попробуй Microsoft OLE DB Provider 3.5 или 4.0


 
clickmaker   (2003-06-11 13:51) [2]

Хоть БДЕ все и ругают, но как показывает практика, в большинстве случаев оно шустрее. ADO основана на COM, а любая COM-технология медленней, чем обычные вызовы ф-ий из DLL, как это делает БДЕ


 
bushmen   (2003-06-11 13:56) [3]

ADO по-любому работает медленнее BDE, но не настолько медленно.


 
alienka   (2003-06-16 19:38) [4]

Это может быть связано с версией адо? У меня адо 2.51... тормозит жутко. Проверяла на 2.53.6200 - вроде шустрее работает.


 
sniknik   (2003-06-16 20:12) [5]

> один коннект занимает почти 3 минуты
что имеется в виду? ADOConnection.Open? не должно быть такого, ни в коем разе.

BDE быстрей но не намного (обычно на табличном доступе) но работа в общем (сложные запросы с вычислениями/переброска данных/линковка к внешним источникам/.... ets) чаще на ADO быстрее. за счет функционала драйверов провайдера (jet к примеру, больше позволяет, функции из бейсика в запросах и т.д.).


 
Nikolai_S   (2003-06-17 11:09) [6]

2 sniknik.

У меня аналогичная проблема - слишком медленно открывается таблица Access на 80000 записей через TADOQuery. Я использую Microsoft OLE DB Provider 4.0.
Я не сравнивал с BDE, но все равно хотелось бы ускорить. Программа открывается минуты 2-3 на Celeron 400 и RAM 256 MB. Это медленно, тем более что у заказчиков компьютеры намного слабее. В самом Access"е же таблица открывается за долю секунды.

Нет ли каких-нибудь конкретных советов, как можно ускорить открытие больших таблиц?


 
ЮЮ   (2003-06-17 11:47) [7]

Не открывать их вообще, а делать только осмысленные выборки с ограниченным количеством записей :-)


 
Nikolai_S   (2003-06-17 12:07) [8]

2 ЮЮ.
Об этом я уже тоже думал :-). Но все равно хотелось бы знать как можно ускорить процесс открытия больших таблиц. Ведь сам Access открывает свои таблиц где-то в 100 раз быстрее. Неужели нельзя никак ускорить?


 
sniknik   (2003-06-17 12:24) [9]

Nikolai_S © (17.06.03 11:09)
так это не коннект, это выборка, не надо путать.

Nikolai_S © (17.06.03 12:07)
решений несколько. лутше всего ЮЮ © (17.06.03 11:47) > осмысленные выборки.
только те данные которые обрабатываются/просматриваются.
+ асинхронное получение данных (работа как с сервером), пользователь видит первые записи моментально остальные докачиваются в процессе.
+ серверный курсор, на клиента поступают только то что нужно в данный момент. открывается тоже очень быстро.
+ режим директтабле, непосресственный доступ, тоже быстро но лутше использовать при локальном доступе(тут конечно можно спорить Access вобще локальный, так что теоретически всем режимам нужен локальный доступ а не файл серверный к примеру).

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


 
alienka   (2003-06-17 15:38) [10]

Извините, а разве может быть дело в провайдере? У меня в приложении используется MSDASQL, но возможности для перехода на Microsoft Jet OLEDB 4 нет, по крайней мере не вижу ее.. База на сервере, субд mysql, adoconnection.open на моей машине (win2000, 256 ram, компоненты ado версии 2.51) выполняется ~2-3 минуты, на другой машине (win2000, 128ram, компоненты ado версии 2.53) выполняется секунды 4.
Я, конечно, человек в этом неопытный и может быть не те выводы сделала не из тех данных..


 
Nikolai_S   (2003-06-17 15:42) [11]

sniknik,
Спасибо, понял.


 
sniknik   (2003-06-17 15:57) [12]

alienka (17.06.03 15:38)
> База на сервере, субд mysql, adoconnection.open на моей машине (win2000, 256 ram, компоненты ado версии 2.51) выполняется ~2-3 минуты, на другой машине (win2000, 128ram, компоненты ado версии 2.53) выполняется секунды 4.
вот это ненормально, то что adoconnection.open так долго. а может наоборот нормально (если в имени сервера именно имя сервера стоит то время может на получение адреса (IP) тратится, особенно если не напрямую а через какиенибудь маршрутизаторы, DNS и WINS (сам смутно представляю где и что)) в общем от сети тоже может зависеть. попробуй IP явно задать и посмотри что получится.
у тебя конечно своя строка
Provider=MSDASQL;Persist Security Info=False;Extended Properties="DSN=myodbc3-test;DESC=MySQL ODBC 3.51 TEST DSN;DATABASE=MySql; SERVER=192.168.0.99;UID=root;PASSWORD=;PORT=3306;OPTION=3;STMT=;"
но на месте выделенного явно имя сервера стоит типа SERVER=MySqlServer. нет???
(т.е. хочу сказать не версии зависит а от машины и настроек(в твоем случае))


 
bushmen   (2003-06-17 16:02) [13]

To alienka> А что тебе мешает установить ado версии 2.7 ?


 
Shaman   (2003-06-17 17:08) [14]


> To alienka> А что тебе мешает установить ado версии 2.7
> ?

Или лучше используй dbExpress.


 
paxer   (2003-06-17 17:35) [15]

Рекомендую компоненты Зеос:
http://www.sourceforge.net/projects/zeoslib
Доступ без БДЕ. Быстро. Бесплатно.


 
alienka   (2003-06-17 17:46) [16]

to sniknik: в имени сервера стоит ip.
Приложение с коннектом на сервер одно, только запускалось на разных компьютерах (я написала в чем разница там). Т.е. в принципе не может влиять на скорость то, что в приложении указано (так ведь?). Тут по моему дело все же в версии адо..


 
sniknik   (2003-06-17 17:51) [17]

alienka (17.06.03 17:46)
ну если поставиш мдак 2,7(ADO) и время соеденения на той же машине c 3мин опустится до ~2-5сек, то других вариантов нет.
осталось попробовать.


 
alienka   (2003-06-19 14:40) [18]

поставила mdac 2.7
как ни странно время коннекта к базе сократилось до 10 сек. НО! смотрим сведения о компонентах ядра ADO: ADOConnectionObject.ADOConnectionObject.1 версия 2.00.00.8425, а все остальные компоненты - версии 2,71..
Далее, если опустить коннект к базе, а рассмотреть например перемещение между связанными мастер-детайл датасетами: несмотря на обновление версии перемещается примерно минуту.. :( Что-то тут все же не так.. Посоветуйте где еще порыть в этом ado?


 
Максым   (2003-06-19 15:45) [19]

Рекомендую почитать справочную систему, поставляемую вместе с Delphi.
Там написано, что ежели Вы работаете не с визуальными компонентами (типа DBGrid), то нужно вызвать DisableControls на Query, иначе ADO кеширует все данные выборки перед тем, как отдать её Вам.


 
alienka   (2003-06-19 16:53) [20]

2 Максым: работаю с визуальными компонентами, именно с DBGrid. Перемещение по связанной главной таблице происходит очень медленно. буквально минуты. на отдельно взятой машине, на других все нормально.. значит дело в принципе не в программе(повторяюсь).



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.009 c
7-44930
Renegate
2003-05-05 09:26
2003.07.14
Считывание и запись данных паралельного порта.


7-44925
РАуль
2003-04-29 09:20
2003.07.14
Windows Messages


1-44689
Bel
2003-06-30 18:33
2003.07.14
Excel Worksheets default?


3-44614
Evgenij Kardash
2003-06-20 18:39
2003.07.14
Число записей в таблице MSAccess


14-44867
Lord Warlock
2003-06-27 09:39
2003.07.14
SkinEngine





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский