Форум: "Базы";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизЧто быстрее и лучше 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c