![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что быстрее? DBF или Firebird? [D6, IB6.x, Firebird]
Sirus © (2005-06-23 14:23:00)Вот собственно и весь вопрос. Просто я с другом поспорил: он говорит DBF я говорю Firebird. Он работает на FoxPro и Delphi. Я только на Delphi.
Danilka (2005-06-29 01:52:00) [1]sniknik © (28.06.05 11:11)
если к примеру тот же расчет получить на сервере запросом/процедурой, и сравнить время получения... разница наверняка будет не очень впечатляющая.
Как сказать.. запросто может быть и впечатляющая разница, вот только в какую сторону? :)
Сам-же говорил (впрочем, я и сам потом на личном опыте убедился) разница в отчетах 1С 7.7 к базе MSSQL через нормальные SQL запросы и через встроенный механизм запросов, на 3 порядка, то-есть в тысячу раз. При этом, если база 1С на ДБФ-ках, то все очень шустро через встроенный механизм запросов, однако, когда есть тот-же самый вариант базы но на MSSQL, практически всегда нормальный SQL запрос бывает быстрее.
Вобщем, на реальных задачах, больших объемах данных, нормальная РСУБД запросто уделает по скорости ДБФ-ки, но очень важна кривизна рук. :)
sniknik (2005-06-28 11:11:00) [2]Sirus (28.06.05 09:39) [23]
> хотя алгоритм один и тот же.
вот это основная ошибка в сравнениях. файл серверная/локальная технологии не переносятся прямо "as is" на клиент серверные (не должны), а там где переносятся (идиотов хватает) там не только тормоза но и глюки...
вот что значит открытие таблицы в локальной системе? простое открытие файла, получение хендла от системы. а что в клиент серверной? открытие, чтение всего до конца, передача на клиента, создание на клиенте копии возможно с буферизацией на диск (большая таблица).
первое делается моментально независимо от размера, второе на этот самый размер очень завязано...
в общем вы сравниваете > Desdechado © (23.06.05 15:12) [8]
арбуз с паровозом...
если хотите реально сравнить, сравнивайте по задачам (не цикл по таблице, пустой) а к примеру выборка данных для отчета по критериям... и т.д. т.е. время получения конечного результата, а методы пусть использует каждый свои оптимизированные под собственно возможности движка/сервера.
вот если к примеру тот же расчет получить на сервере запросом/процедурой, и сравнить время получения... разница наверняка будет не очень впечатляющая. при условии что и там и там грамотно написано.
Sergey13 (2005-06-28 09:53:00) [3]2[23] Sirus (28.06.05 09:39)
> И его программка делает некоторые расчеты гораздо быстрее чем моя, хотя алгоритм один и тот же.
А что за расчет?
Поменяйся с другом базами. Пусть он положит свою БД у тебя, а ты работай с сервером на его машине. 8-)
Anatoly Podgoretsky (2005-06-28 09:46:00) [4]Sirus (28.06.05 09:39) [23]
У твоего друга программа правильнее написана, а может и тебе сделать программу под ДОС?
Sirus (2005-06-28 09:39:00) [5]Для теста мы с другом сделали одну и ту же программу для работы с базой одной структуры, только я на Delphi с Firebird, а он на FoxPro под DOS. И его программка делает некоторые расчеты гораздо быстрее чем моя, хотя алгоритм один и тот же.
Но если взять данные из двух таблиц и выбрать те которые соответствуют некоторому условию, то я оказываюсь впереди с простым запросом SELECT... На FoxPro тоже можно оказывается такой запрос сделать.
Sergey13 (2005-06-24 10:15:00) [6]2 [21] Danilka © (24.06.05 09:09)
Да в принципе это понятно. Просто не думаю, что это будет ощутимобыстрее в некоторых ситуациях. 20 милисекунд, 15 милисекунд - почувствуй разницу. 8-)
Danilka (2005-06-24 09:09:00) [7][19] Sergey13 © (23.06.05 16:22)
Дык, любой человечьей СУБД, тем более работающей с транзакциями, телодвижений надо сделать намного больше, чем просто прочитать данные из файла, в котором все записи одной длины и лежат одна за другой.
y-soft (2005-06-23 21:13:00) [8]При локальном однопользовательском коннекте движок FoxPro 2.5 for Windows в среднем пожалуй будет побыстрее современных СУБД...
По крайней мере так на довольно сложных выборках из наборов до 100000 записей при условии, что все таблицы проиндексированы...
Другое дело, что назвать ее полноценным сервером SQL можно только с ооооочень большой натяжкой :)
Особенно в смысле реализации многопользовательского удаленного доступа и контроля за целостностью данных :(
Sergey13 (2005-06-23 16:22:00) [9]2[17] Danilka © (23.06.05 16:18)
> но в случае когда мы высасываем целиком таблицу из Фиребирда, Орокла, или еще откуда, это будет по-любому медленнее чем с дбф-кой,
Пачиму это? Не факт.
Danilka (2005-06-23 16:19:00) [10][16] evvcom © (23.06.05 16:16)
дык, я не зря написал: "методами файл-сервера"
:)
Danilka (2005-06-23 16:18:00) [11][15] Sergey13 © (23.06.05 16:08)
> Выключать на ночь не нада. 8-)
не, просто у нас база для разработки каждую ночь переливается дампом с рабочей базы. шоб свежие данные были.
> Ну например
это да. :)
но в случае когда мы высасываем целиком таблицу из Фиребирда, Орокла, или еще откуда, это будет по-любому медленнее чем с дбф-кой, это я и имел ввиду под работой "методами файл-сервера". Естественно, чем больше таблиц участвующих в запросе, больше объем данных в этих таблиц, меньше канал по которому все "сосется", и сервер мощнее клиента, тем в большей луже ДБФ-ки. :)
evvcom (2005-06-23 16:16:00) [12]
> хм, интересно, а в каком случае?
Случаи разные бывают. Все это абстрактный разговор. Скорость работы с dBase-форматом сильно зависит от движка. Мы можем предполагать, что работаем через BDE или ADO, но есть и море альтернатив. То же касается и Оракла, многое зависит от версии, установленных патчей и прочего. Многое зависит от задачи. Если тебе выбрать из базы 'Hello, World!', то Оракл использовать, как из пушки по воробьям. А если задача серьезная, сложные запросы из больших таблиц, то сомневаюсь, что BDE+SQLLinks обгонит Oracle. Естественно, что СУБД должны быть поставлены в равные условия, удовлетворяющие минимальным требованиям.
Sergey13 (2005-06-23 16:08:00) [13]2 [14] Danilka © (23.06.05 16:01)
>о да. особливо по утрам первые запросы прямо со скрипом запускаюцца. :)
Выключать на ночь не нада. 8-)
>хм, интересно, а в каком случае?
Ну например если я попрошу у далекой базы показать мне годовой заработок всех сотрудников предприятия, у которых в прошлом году не было нарушений и чья зарплата превышает среднюю в полтора раза. 8-)
Danilka (2005-06-23 16:01:00) [14][9] Sergey13 © (23.06.05 15:14)
:)
о да. особливо по утрам первые запросы прямо со скрипом запускаюцца. :)
[10] Val © (23.06.05 15:18)
гыыы :)
[13] Sergey13 © (23.06.05 15:36)
хм, интересно, а в каком случае? ежели в случае кэша, дык, он и в дбф-ках сработает - тока системный, а не субд-шный. :)
Sergey13 (2005-06-23 15:36:00) [15]2[6] Danilka © (23.06.05 15:09)
>Если работать методами файл-сервера, то ДБФ будет быстрее, думаю, в некоторых случаях даже быстрее в разы.
Если работать методами файл-сервера, то ДБФ будет медленнее, думаю, в некоторых случаях даже медленнее в разы.
Все дело в случае. 8-)
Val (2005-06-23 15:33:00) [16]не факт. но рецидив налицо.
Sergey13 (2005-06-23 15:24:00) [17]2[10] Val © (23.06.05 15:18)
>есть более страшная тайна. они оба dbf. :)
Не факт. У меня по умолчанию ora. Догадайся на какой. 8-)
Val (2005-06-23 15:18:00) [18]есть более страшная тайна. они оба dbf. :)
Sergey13 (2005-06-23 15:14:00) [19]2[6] Danilka © (23.06.05 15:09)
>Открою страшную тайну - ДБФ-ки при этом будут также быстрее даже Оракла.
Подумаешь. Оракла - самая тормозная весчь. Пока ее гигабайты разгонятся, фокса все по килобайтам раскидает. 8-)
Desdechado (2005-06-23 15:12:00) [20]что быстрее - арбуз или паровоз?
а смотря как их ускорять :)