Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-49481
miracle_fox
2004-01-04 13:18
2004.01.16
как сохранить в файл текст из richedit так, чтобы ...


1-49569
Alik
2004-01-05 19:58
2004.01.16
как бмп проявить


3-49468
Kirill_S
2003-12-17 16:48
2004.01.16
Работа нескольких пользователей с данными


3-49407
Mord_Sit
2003-12-19 11:10
2004.01.16
Partitioned table


6-49661
BelAS
2003-11-14 07:08
2004.01.16
Обновление по сети





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский