|
|
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Всю жизнь мечтал поработать с Oracle, т.к. много слышал хорошего об этой СУБД и даже немного с ней познакомился в ВУЗе. Выдалось свободное время, установил Oracle 10g XE и начал тестировать. Создал простейшую табличку с числовым автоинкрементным ключом и числовым полем данных. Ввел первую запись и начал запросом удваивать количество записей. На том же компьютере повторил эти же операции в Access XP. Результаты: Oracle: 32к инсертов за 12 секунд. Access: 1М инсертов за 19 секунд. - Access в 19,7 раз быстрее. Сделал запрос на обновление всех записей. Во всех записях менял значение неключевого поля на другое число. Результат: Oracle: 256к апдейтов за 73 секунд Access: 2М записей за 27 секунд. Я крайне удивлен результатами, и поэтому у меня вопрос: 1) С чем связана такая низкая производительность Оракла по сравнению с Аксесом? 1а) Может ли это быть исправлено какими-то настройками Оракла? 2) За что тогда любят Оракл? Какие его сильные стороны, если высокой производительности он не показывает? Или производительность его проявляется только на терабайтных БД? Заранее спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 00:34 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестер, ну нажмите резет чтоли, когда аксес будет миллионами строк ворочать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 00:54 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловАнонимный_тестер, ну нажмите резет чтоли, когда аксес будет миллионами строк ворочать Т.е., если я Вас правильно понял, смысл Оракла - это сохранность данных, широкие возможности PL/SQL, еще что-то, но не производительность? Т.е. для проекта с не особо ценными данными, но требующего высокой производительности по БД, Оракл подходит плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:00 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестер, Welcome сюда . Как раз Аксесса там и не хватает. Надо показывать структуры данных и запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:14 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Siemargl, вот SQL коды Структура таблицы в Oracle Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код для удвоения количества записей: ORACLE: Код: plaintext INSERT INTO tbltest1 ( DATA1 ) SELECT tbltest1.DATA1 FROM tbltest1; Код для обновления Oracle: Код: plaintext UPDATE tbltest1 SET tbltest1.DATA1 = 200; Только что пришла в голову умная мысля об отсутствии индекса в Оракле по ключевому полю, что наверняка тормозит проверку CONSTRAINT "TBLTEST1_PK" PRIMARY KEY ("KEY") при добавлении. Но апдейты-то почему такие медленные? А индекс я сейчас добавлю.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:37 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерСоздал простейшую табличку с числовым автоинкрементным ключом ...В оракле автоинкремент сделан триггером? Понимаю, что вставка доставляет удовольствие... но вставка строки вставке строк рознь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:38 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Нет, индексы для PK и в Оракле, и в Аксесе создались автоматически. Умная мысля оказалась не умная, и вообще пришла в голову не вовремя. Так что я нуждаюсь в ваших разъяснениях... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:41 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
-2-, спасибо за ваш ответ. Т.е. надо пользоваться не SQL, а именно PL/SQL. Только его использовании достигается высокая производительность, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:47 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
-2-, прокомментируйте, пожалуйста, заодно и ситуацию с обновлениями. Кстати, вставки-то у вас не такие, как были у меня по смыслу. Вы вставляете одно и то же значение, а я вставляю содержимое записей, которые лишь в примере одинаковые, но в общем случае содержат разные значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 01:55 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Кроме того, не сравнивайте свои сотни милисекунд с моими десятками секунд, т.к. опыты я провожу на 1.6 ноутбучном селероне, а у Вас какое железо, я не знаю. Извините за 4 сообщения подряд, объединил бы их в одно, будь у меня такая возможность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 02:01 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестер, На вставку в Вашем случае, скорее всего мешает триггер. Но вообще, уж слишком подозрительно медленно все происходит. Те тесты, что я приводил в ссылке, проводились _вообще на виртуалке_. И то в разы быстрее. Приведите конфигурацию бука, есть подозрение, что катастрофически мало памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 02:11 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Celeron M 1.6Ghz кеш по-селероновски маленький, точно не знаю. RAM 768 минус 64 на видео = 704Мб DDR2 533Mhz Винт относительно медленный: 5400, 20-22Мб/сек - реальная скорость чтения/записи (не одновременно). Активных задач помимо СУБД, потребляющих процессорное время, в процессе эксперимента не выполнялось. Естественно, запросы на разных СУБД выполнялись не параллельно, а последовательно. При вставке записей заметной перекачки страниц между жестким диском и ОЗУ не наблюдалось. Могу ради интереса повторить эксперименты с включенным perfmon (но уже завтра), чтобы удостовериться в том, что перекачка страниц не шла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 02:22 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерЗаранее спасибо за ответы.Друже, ты не поверишь - на ровном гладком асфальте любая легковушка не напрягаясь уделает по скорости любой карьерный самосвал. Но стОит сменить условия: уйти с асфальтированного трека на раздолбанные горные грунтовые дороги как всё изменится: там любой карьерный самосвал в сопли уделает любую легковушку. А если в задачи обоим испытуемым вменить ещё и перевозку с пункта А в пункт В 300т полезного груза в виде горной каменной породы, то карьерный самосвал сделает это легко и непринужденно, за одну ходку. А уж чего будет с твоей легковушкой, если на неё нагрузить 300т груза - мне и представить-то себе страшно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 04:54 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестер, 0. Характеристики компа и файл параметров оракла покажите. 1. Аксес нелимитирован по использованию памяти, так что сожрёт всю не напрягаясь. 2. По умолчанию в аксесе автокоммит, как часто вы делали коммит в оракловом тесте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 09:19 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестер 2) За что тогда любят Оракл? Какие его сильные стороны, если высокой производительности он не показывает? Или производительность его проявляется только на терабайтных БД? Это вопрос типа "Порше ездит быстрее Белаза. Так почему в промышленности так любят использовать Белазы?" ...Отвечать надо или так понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 09:24 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерИзвините за 4 сообщения подряд Нет, индексы для PK и в Оракле, и в Аксесе создались автоматически. Если бы я сделал PK, вставка еще бы замедлилась. Т.е. надо пользоваться не SQL, а именно PL/SQL. Только его использовании достигается высокая производительность, так? Мне неочевиден ваш вывод. В примере SQL-инсерт прошел быстрее, чем "PL/SQL"-инсерты. Ваш тормоз из-за триггера. в общем случае содержат разные значения в общем случае есть еще роль приложения. Вставка по одной записи из клиентского приложения не критично 20мкс или 400мкс, но может быть 20 одновременных транзакция пройдут за те же 400мкс. А массовая вставка делается массивами. Однозначно, обновление, ориентированное на конкуренцию и сохранность транзакции после сбоев, будет заведомо медленнее записи строки в текстовый файл. т.к. опыты я провожу на 1.6 ноутбучном селероне 1 x xeon 2.8ГГц 4 core, 32ГБ, 4 x SAS15k. Оракл очень прожорлив до памяти и дисков. Апдейты базы, сидящей на одном ноутбучном винчестере будут в разы медленнее. Хотя при вставке в одно горло может быть разница и не большая. Для оценки влияния можно сравнить ожидания по трейсам. По крайней мере, повторите эксперимент без триггера. Модератор: Тема перенесена из форума "Oracle". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 09:43 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
вы бы ещё оракл на кпк поставили ps тест у вас неравноценный. акцесс - файловая база данных. про минимальные требования оборудования для оракла почитайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 15:44 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
в структурированые файлы ищо быстрее писать можно, тч уважаемый ТС протестируйте производительность sqllite, найдёте себе нового кумира) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 19:17 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Т.е. низкая производительность Оракла по сравнению с Аксесом - это так и надо что ли? Я надеялся, с вашей помощью понять, в чем дело, что я делаю неправильно, или что работает неправильно, но этого пока нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 20:09 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерТ.е. низкая производительность Оракла по сравнению с Аксесом - это так и надо что ли? Я надеялся, с вашей помощью понять, в чем дело, что я делаю неправильно, или что работает неправильно, но этого пока нет. производительность 3х строк ? вам уже намекнули что попробуйте обработать десяток шестизнаков в записях и потом судите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 22:52 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерТ.е. низкая производительность Оракла по сравнению с Аксесом - это так и надо что ли? Я надеялся, с вашей помощью понять, в чем дело, что я делаю неправильно, или что работает неправильно, но этого пока нет. Поддержка целостности данных небесплатна, и потому в ряде случаев Access просто обязан быть быстрее. Хотя это и не означает, что Oracle всегда будет проигрывать в равных условиях. Вопрос ведь ещё в том, какие это равные условия. Возьмите большое количество одновременно работающих юзеров и/или сложные запросы на большом объёме данных и/или серьёзное серверное железо с большим процессорных ядер, большим количеством ОЗУ и 64бит ОС... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 23:28 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерТ.е. низкая производительность Оракла по сравнению с Аксесом - это так и надо что ли? Я надеялся, с вашей помощью понять, в чем дело, что я делаю неправильно, или что работает неправильно, но этого пока нет. Чем вы слушаете и читаете, Вам уже сказали, что эти продукты предназначены для разных условий эксплуатации... Кроме всего прочего, на ваших тестах любая поделка, имеющая в качестве основы плоский файл, сделает и access и oracle... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 23:36 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovКроме всего прочего, на ваших тестах любая поделка, имеющая в качестве основы плоский файл, сделает и access и oracle...В дополнение к моему предыдущему тесту Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2010, 02:00 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Анонимный_тестерВсю жизнь мечтал поработать с Oracle, т.к. много слышал хорошего об этой СУБД и даже немного с ней познакомился в ВУЗе. Прально делали что мечтали. Я тоже перед Ораклом на Аксцессе сидел и тоже мечтал. Оракл при записях данных в БД может на виндах тормозить, например, из-за Каспера. У Него да есть настройки. Но и счас мне приходится готовить отчет в ПФ, который на Аксе (я давно налабал и до сих пор не сменили они систему). Ну я предпочел рядом поставить Оракл, прилепить его к Аксу, и выполнять запросы на Оракловом, потому что Оракловый диалек SQL покруче. Вплоть до того что на Оракле моно все еще SQL обойтись там где на Аксе нуно Васика привлекать. Да призводиительность при чтении. Так Аксцессный сложный запрос к небольшому обему данных может уйти минут на 20, а Оракловый крутит неск сек. Правда, берите ЕЕ редакцию - она для изучения бесплатна. Там Вы может сравнить производительность на чтение во всей красе. Там есть секционирование. Представьте таблу за много месяцев, лет, хде скажем 20 млн записей за месяц, соответсвенно 120 млн за год. И вот Оракл моно настроиь, что он за любой месяц буит считывать тока 20 млн с диска (как буд-то за кажный месяц тока одна табла на Аксцессе), но табла одна у него, а в синтаксис SQL обычный. А на Аксае Так не получится. Оракл када записываеит, старается минимизировать объем на диске - ище свободные места, чтобы заполнить. Ить главное для БД чтение - извлечение инфы собсно для чего БД создают. Но моно поставит хинт , моно в табле сказать как заполнять блоки. Ну ускорится запись, но файл пошишрше будет, читать помедленнее с него будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2010, 08:37 |
|
||
|
Наперегонки с Access
|
|||
|---|---|---|---|
|
#18+
Access достаточно быстрая СУБД и в однопользовательском порвёт большинство клиент-серверных СУБД по следующим причинам: 1. Oracle ведёт журналирование транзакций, access нет. Можно кстати запрос в oracle запустить в режиме nolog. 2. В Oracle более сложный процесс управления памятью и куча процессов, которые сами по себе прожорливы и жрут ресурсы системы просто для того, чтобы Orаcle работал. 3. В оракле постоянно идёт обращение к словарю данных System tablespace, который сам по себе представляет довольно объёмную БД и поэтому говорить о равных условиях не приходится. 4. Для чистоты эксперимента нужно ещё в Windows отключить кэширование файлов, так как Oracle этот механизм не использует и вставились данные - это ещё не означает, что они физически записались на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 12:07 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36538424&tid=1552819]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 384ms |

| 0 / 0 |
