Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

Что быстрее и лучше BDE или ADO???   Найти похожие ветки 

 
bardi   (2002-05-17 09:42) [0]

Здраствуйте!!! Что лучше, старичок BDE или универсал ADO для Сервака MS SQL.
Провел небольшой тест, и очень удивился, что BDE работает в 5-5,5 раза быстрее. Неужели за универсальный ADO надо платить скоростью, но не во столько раз.Кинул на форму Database1, Query1, подключил через BDE, и ADOConnection1, ADOQuery1. Создал цикл до 5000 раз ,машина P3-600/64M/ ось NT BDE-34c. ADO-3м07сцикл до 10000раз, машина Сeler-1000/256M/ осьW200 BDE-17c. ADO-1м27с


//пример
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; TimeX :TTime;
begin
TimeX := now;
Query1.DisableControls;
for i := 1 to 5000 do
begin
Query1.Close;
Query1.Open;
end;//for
Query1.EnableControls;
Label1.Caption:= TimeToStr(now-TimeX);
end;

procedure TForm1.Button2Click(Sender: TObject);

var i:integer; TimeX :TTime;
begin
TimeX := now;
ADOQuery1.DisableControls;
for i := 1 to 5000 do
begin
ADOQuery1.Close;
ADOQuery1.Open;
end;//for
ADOQuery1.EnableControls;
Label1.Caption:= TimeToStr(now-TimeX);
end;


 
wicked ©   (2002-05-17 10:22) [1]

какие-то у тебя тесты нереальные... :)
вообще-то в разных ситуациях быстрее будет то ado, то bde... ado лучше по тем причинам, что с ним легче работать...


 
Юрий Жуков ©   (2002-05-17 11:23) [2]

Для MSSQL я выбрал бы однозначно ADO.
Результаты у тебя действительно странные. Вот например результы для IB:
http://delphiplus.spils.lv/articles/DelphiIBAccses.html

ConnectionString в студию(а также версии MSSQL и ADO)


 
sniknik ©   (2002-05-17 11:25) [3]

Была ситуация, надо было файл dBase обработать, по записям и с конца файла. Курсор однонаправленный (Delphi естественно эмуляцию двунапр. делает догадываетесь как?) так обработка 3200 записей шла 1 мин. 40 сек. То же на BDE 2 сек.
С другой стороны выборки с сервера через ADO быстрее.

По моему нельзя сравнивать несовместимые вещи для разного предназначенные. Имеет смысл сравнить BDE верий 5.0 и 5.1 но этого никто не делает. Почему.


 
Lusha ©   (2002-05-17 11:39) [4]

>sniknik © (17.05.02 11:25)
С другой стороны выборки с сервера через ADO быстрее.
Да ну? Это за счет чего, если не секрет? :)


 
sniknik ©   (2002-05-17 12:00) [5]

Не знаю, у меня так получалось. Выборка с файл сервера через ADO Jet прим. 1,31 сек. (среднее) BDE 1.38 сек.

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


 
bardi   (2002-05-17 12:08) [6]

А что, jet на сервере, кто такой и как его едят...
Тест проводился на локольной машине и серваке.


 
Fellomena   (2002-05-17 13:22) [7]

2 sniknik © (17.05.02 12:00):
Полученные различия - порядка погрешности при работе с сетью.

Было замечено, что при добавлении большого кол-ва записей (порядка (2~3)E+3) BDE делает это быстрее в полтора(!) раза, чем при использовании ADO.
(BDE ~ 15 мин., AD0 ~ 23 мин.)
Естественно на одной и той же машине.
БД - Paradox 7


 
DmitryK   (2002-05-17 14:36) [8]

2bardi

Попробуй вот какую штуку:

- Поставь цикл всего повторов на 10 (не больше, но и не меньше 5)
- запусти программу SQLTrace (она идет в комплекте с сервером SQL, я надеюсь знаешь как ей пользоваться)
- посмотри какие реально выполняются запросы в одном и другом случае

В в свое время получил аналогичные результаты, пока не нашел однозначного ответа на свои вопросы, но вот что выяснил:
1) задержка на сервере происходит из-за того, что реально выполняется вместо одного запроса 2-3.
2) если клиент и сервер находятся на разных машинах, вознивает задержка на клиенте, по всей вероятности, связанная с транспортом данных через АДО (с этим мне пока еще меньше понятно).



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

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
4-31036
Sirus
2002-04-06 11:35
2002.06.10
Проблема с выгрузкой формы в DLL из памяти


1-30915
DiHLoS
2002-05-29 18:49
2002.06.10
Перекодировка Win в Dos


1-30881
opezhvv
2002-05-29 14:15
2002.06.10
Изменение размеров в RUNTIME


3-30711
Slawik
2002-05-18 13:08
2002.06.10
Проблема использования IMMEDIATE в IB


4-31044
TALLA
2002-04-07 13:36
2002.06.10
как скомпилить не мою DLL с моим проектом (exe-шником)