Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизBDE, ADO, сравнение скорости доступа Найти похожие ветки
← →
ррр (2003-12-17 13:45) [0]Уважаемые мастера!
Созрел для перехода с BDE на ADO. Перед переходом порвел несколько тестов и во всех тестах скорость работы BDE выше скорости ADO. Кто-нибудь проводил подобные пробы? Какие результаты? Если BDE быстрее, зачем от него уходить.
← →
MV (2003-12-17 13:48) [1]Ну, и Вы думаете, что Ваших данных достаточно, чтобы понять, где собака порылась?
← →
ррр (2003-12-17 13:54) [2]Может быть и нет, но явных изъянов в пробах никто не нашёл.
← →
JibSkeart (2003-12-17 13:56) [3]http://www.rsdn.ru/article/db/DBSpeed.xml
← →
ррр (2003-12-17 14:01) [4]JibSkeartу спасибо!
← →
MV (2003-12-17 14:02) [5]Что у Вас за сервер?
Какие компоненты доступа используете?
Какого типа рабочие запросы?
Как Вы собираетесь распространять приложения?
Чем вы собираетесь заниматься на LongHorn?
... и т.п.
← →
ррр (2003-12-17 14:24) [6]Сервер у меня локальный, СУБД SQl2000 и SQL7
Компоненты доступа - Query, StoredProc и аналоги в ADO
Рабочие запросы - выборки, выборки с параметрами, запуск хранимых процедур (тоже выборки)
Речи о распространении приложения пока не идёт, но прошлые распространялись выполняемыми файлами (если Вы об этом)
Планов на LongHorn не имею.
И вообще, вопрос пока в теоретической плоскости.
← →
Nikolay M. (2003-12-17 14:38) [7]Было дело, тестил БДЕ и АДО на скорость выборок ради интереса.
Насколько помню, АДО получилось медленнее раза в полтора, поскольку дельфевые компоненты - это всего лишь обертка над ActiveX-овыми компонентами.
Для MS SQL логичнее, конечно, применять АДО - хотя бы потому, что не нужно на клиента тянуть все БДЕ.
← →
MV (2003-12-17 14:44) [8]Ну, так и что огород городить?
← →
sniknik (2003-12-17 14:48) [9]Nikolay M. © (17.12.03 14:38) [7]
как тестил и что? и какие параметры ADO?
у меня даже на локальных таблицах разница не в полтора раза меньше. а для серверов(MSSQL) было быстрее (хотя настроек много можно и заметного замедления добиться если постараться).
а уж если сравнивать функциональность... ассинхронное получение данных... (даже сравнивать нечего все в пользу ADO однозначно).
> Ну, так и что огород городить?
зачем? купи себе счеты (я видел на них считают гораздо быстрее чея я на калькуляторе!).
← →
MV (2003-12-17 14:59) [10]Правильно!
Обязательно переводи отлаженные приложения на ADO, получишь скорость выполнения запросов в 1,5 раза больше! Не 0,1 сек., а 0,15! И на форуме тебя зауважают! А как юзеры обрадуются, получив вместо рабочего прилоджения бету, но с ADO - внутри!
Брат, о какой скорости работы идет речь? У тебя ж SQL - сервер! Ему ж пофигу, как ты к нему обращаешься: ADO-BDE-DBExpress... Сформировал запрос, и жди, пока сервер результат не выдал.
(Если, конечно, ты не вынес бизнес-логику на внешний к серверу уровень... Тады - да. Ищи, чем быстрее данные фетчить.)
← →
Stas (2003-12-17 15:14) [11]Что тут спорить ?
ADO конечно быстрее !
Я непойму как Bde может быть быстрее, когда ADO работает напрямую ?
Разве что BDE ведет какую-то обработку на клиенте, а на сервер отправляет уже обработанные данные, но это сработает только при слабеньком сервере, плохинькой сети, и мощным клиентским компом.
← →
MV (2003-12-17 15:18) [12]На самом деле TTable, к примеру - очень мощная штука, которая выполняет всякие там кэширования и потому очень быстрая. И др. компоненты BDE очень долго "вылизывались" в плане оптимизации доступа. Но, как понимаете, для НОВЫХ проектов про BDE лучше зыбыть.
← →
sniknik (2003-12-17 15:26) [13]Stas © (17.12.03 15:14) [11]
> Что тут спорить ?
> ADO конечно быстрее !
это смотря с чем сравнивать, если с локальными таблицами(dbf,db) то BDE открывает таблицу непосредственно, а ADO всегда работает через ядро (сервер) даже с локальными, таблица при открытии перекачивается в рекордсет... визуально BDE открывает быстрее. но вот если общую работу брать, выборки копирования с условием... через sql, тут уж скорость почти одинаковая (локальные!). а за счет функциональности условий/вычислений в запросах ADO может быть быстрей.
хотя о чем это я, какое ADO? это будет заслуга OLEDB драйвера к которому подключен, ADO посредник. а BDE с чем сравниваем с локальными? native встроенными. глупо.
← →
Stas (2003-12-17 15:33) [14]sniknik © (17.12.03 15:26) [13]
>>это смотря с чем сравнивать.
Я имел в виду MSSQL. Да и с Access наверное тоже.
← →
Anatoly Podgoretsky (2003-12-17 15:36) [15]MV (17.12.03 15:18) [12]
Забывать надо не для новых проектов, а для других форматов кроме Парадокс и dBase, и соответственно наоборот.
← →
MV (2003-12-17 16:42) [16]Забывать надо не для новых проектов, а для других форматов кроме Парадокс и dBase, и соответственно наоборот.
Да-да, я проект почти год писал, а теперь сопровождаю, и на какие шиши я буду его под другой движок переводить?
← →
Anatoly Podgoretsky (2003-12-17 17:14) [17]Про старые проекты вообще речи нет, это слишком жирно переделывать ради моды.
← →
Nikolay M. (2003-12-17 17:43) [18]
> sniknik © (17.12.03 14:48) [9]
> Nikolay M. © (17.12.03 14:38) [7]
> как тестил и что? и какие параметры ADO?
Тестил, признаю, весьма тупо - брался набор из 10 таблиц и для каждого столбца каждой из таблиц пытался выполниться запрос типа
SELECT * FROM Table[i]
WHERE Field[j] = [k]
и так 10 раз (для каждой из 10 таблиц)
Сервер - не локальный (сетка у нас, правда, весьма тормознутая, может тут собака покопалась?).
Какие именно параметры АДО интересуют?
← →
SergP (2003-12-17 18:09) [19]
> Nikolay M. © (17.12.03 17:43) [18]
Ну это простые запросы...
Ты сделай такой запрос чтобы хотябы секунд 15 выполнялся...
Тогда сможешь точнее сравнить...
← →
Denisiy (2003-12-17 18:09) [20]Давеча выполнял действия , аналогичные Nikolay M.
Также получил скорость при использовании BDE выше в полтора раза.. Мож чего не так настроил в ADO.., хотя вроде следовал инструкциям из вумной книжки (до этого с ADO никогда не работал)
Присовокупляю свой знак вопроса к вышеупомянутым.
← →
ZrenBy (2003-12-17 18:46) [21]Для начала разберитесь вот в чем.
Вы тестируете ADO или компоненты TADO ??? !!!
А ведь это две большие разницы именно для закачки данных на
клиента, типа
SELECT * FROM Table[i]
WHERE Field[j] = [k].
Попробуйте поработать напрямую с интерфейсами ADO,
а потом приводите данные.
Я не могу, так как с BDE не работал
← →
sniknik (2003-12-17 19:23) [22]Nikolay M. © (17.12.03 17:43) [18]
тоже весьма тупой тест
простейший запрос
SELECT * FROM MTABLE
ADO ~ 6.55сек
Выполнено применительно к 141312 записям
BDE (SQL explorer) моментально (мигание ~ пол/четверть сек.) количество то же (условий where то нет)
вывод: не может быть, моментально ничего не далается. проверяем, тянем прокруткой к концу таблицы, так и есть получаем зависание на ~15-20сек
вывод: используется серверный курсор. при скачке на конец таблици данные ушли в докачку. (тут надо хлопнуть себя по лбу и сказать "ччерт а у ADO то по умолчанию локальный!")
переделываем ADO на серверный курсор. открывается моментально (то же самое мигание грида при старте), при прокрутке на конец повисание на 10-15сек. почти аналогично...
(проверил одноразово, никакой информационной ценности это не несет. для серьезных тестов нужно множество повторений)
← →
Nikolay M. (2003-12-18 09:37) [23]
> sniknik © (17.12.03 19:23) [22]
> тянем прокруткой к концу таблицы
Нет, ну ненастолько же я наивен.
С серверными курсорами связываться нет никакого желания, поэтому после выполнения запроса каждому НД (TQuery/TADOQuery) делалось Last. Курсор, соответственно, clUseClient.
> нужно множество повторений
Собссно у меня и было множество повторений, причем перед запуском тестов они еще прогонялись вхолостую без замера времени, дабы исключить кеширование выполнения запроса, если таковое вдруг будет иметь место быть.
> ZrenBy © (17.12.03 18:46) [21]
> Вы тестируете ADO или компоненты TADO ??? !!!
Мы тестируем дельфевые компоненты TADOXXX.
← →
KSergey (2003-12-18 10:02) [24]Почему я считаю, что для доступа к MS SQL надо использовать ADO:
1.Поддержка множественных рекордсетов
2.Наличие ADOX
← →
sniknik (2003-12-18 10:29) [25]> Нет, ну ненастолько же я наивен.
> С серверными курсорами связываться нет никакого желания, поэтому после выполнения запроса каждому НД
> (TQuery/TADOQuery) делалось Last. Курсор, соответственно, clUseClient.
а помоему есть немного. ;о)) (наивности)
если используется clUseClient то в Last нет необходимости, оно и так все выкачает. Last нужен если хочеш выкачать все с серверным курсором.
причем по времени (мы же скорость обсуждаем)
запрос с clUseClient время выполнения меньше чем clUseServer + Last. а результат одинаков.
попробуй проверь. (только не одноразово, нужна целая серия т.к. время сильно разнится (наверняка кэшируется ADO/MSSQL) первый запрос может к примеру 10сек, а повтор тутже 5сек.... (даже если между ними реконект сделать))
проверять думаю на ADO надо. (BDE почти не знаю, не знаю даже как переставить на clUseClient, как работает по умолчанию так и проверил и также ADO запустил)
← →
Nikolay M. (2003-12-18 11:20) [26]
> sniknik © (18.12.03 10:29) [25]
> > Нет, ну ненастолько же я наивен.
> а помоему есть немного. ;о)) (наивности)
Ну, не знаю, не знаю, может тебе виднее... :?)
Ладно, если дойдут руки до более-менее нормального тестирования с разными настройками, протестю и дельфевые компоненты, и активиксовые. О результатах напишу.
Хотя не думаю, что если даже и подтвердится, что АДО в 1.5 раза медленнее АДО, это будет серьезным поводом для отказа от использования БДЕ. Тем более я согласен, что если тестировать не на множестве мелких выборках, а на выборках большого объема из нескольких таблиц, то разница будет меньше, чем 1.5 раза - бОльшая часть времени будет уходить на обработку запроса на сервере + передачу по сети, если таковая, конечно, есть.
ПС, офф.
А у тебя аська есть? Можешь ко мне стукнуться, если не против? :?)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.009 c