Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ruby+Oracle, OCI8: дико медленно, Скорость выполнения запросов низкая 
:(
    Опции темы
maep
Дата 27.6.2008, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



Господа, еще один вопросик.

Есть база оракла. руби, оси8.

Делаю так:
Код


conn = OCI8.new('zh', 'forest', 'bp_test3')
 conn.exec('select account_id from account where account_id < 100000') do |r| 
   c = r[0]
  end



в PL\SQL делаю так:
Код


DECLARE
  aa NUMBER;
BEGIN
  FOR rec IN (SELECT * FROM account a WHERE a.account_id < 100000)
  LOOP
    aa := rec.account_id;
  END LOOP;
END;


вроде одно и то же.
Время выполнения программы руби в 20 (двадцать) раз больше, чем pl\sql. Понятно, что pl\sql быстрее будет работать,
но не в 20 же раз... смущает такой разброс.

Наличие вложенных запросов в цикле усугубляет ситуацию. В чем может быть проблема, или это норма и "не лечится"?

Заранее спасибо


PM MAIL   Вверх
Grengo
Дата 15.2.2009, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Насколько я знаю руби достаточно медленный язык как таковой. На том же пхп делал запросы в SQL и все работало шустро. Даже очень шустро... Если для вас Это дело принципа, то из дельного знаю только то, что с базами надо работать на рельсах, т.е. эээ  RoR.
PM MAIL   Вверх
source777
Дата 18.2.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Grengo, не троли, в данном случае вопрос к Руби вообще отношения не имеет, скорость запросов к БД определяется:
1) запросом
2) скоростью соединения с БД
3) адаптером (в данном случае OCI)
4) ну и самой СУБД

Что касается Oracle, то как показывает практика это самая медлительная из всех пропиаренных СУБД, так что если хочешь использовать Oracle, то твой выбор PL/SQL, на других языках работа с Oracle только в тягость...

Цитата(maep @  27.6.2008,  09:54 Найти цитируемый пост)
В чем может быть проблема, или это норма и "не лечится"?

лечится это заменой Oracle на MySQL  smile 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
fixxer
Дата 19.2.2009, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: нет
Всего: 27



Цитата(source777 @ 18.2.2009,  23:00)
Что касается Oracle, то как показывает практика это самая медлительная из всех пропиаренных СУБД

 smile Ой, насмешил

Вообще Oracle всегда считался одной из самых быстрых СУБД, причем на огромных объемах. Также известно, что она очень капризна в настройка и в неграмотных руках может вести себя неадекватно по производительности. Так что топикстартеру стоит привести DDL, индексы, объем данных, и сколько возвращается запросом. Сравнивать удаленный вызов с PL/SQL, работающим внутри базы, вообще некорректно. Может все время чисто на фетчинг и сжирается.


--------------------
user posted image
PM MAIL ICQ   Вверх
source777
Дата 19.2.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата(fixxer @  19.2.2009,  00:07 Найти цитируемый пост)
Вообще Oracle всегда считался одной из самых быстрых СУБД, причем на огромных объемах. 
На огромных может быть, на небольших объёмах она жутко тормозит... не всем же нужны таблицы по 10 Гб, да и для них я лично лучше PostgeSQL возьму, хотя о вкусах не спорят...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Grengo
Дата 22.3.2009, 17:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



Цитата(source777 @  18.2.2009,  23:00 Найти цитируемый пост)
Grengo, не троли, в данном случае вопрос к Руби вообще отношения не имеет, скорость запросов к БД определяется:1) запросом


Вот-вот ) Но судя по "запросу" автора сложно сказать что там нечто объёмное. Затем следущее - Время выполнения программы руби в 20 (двадцать) раз больше, чем pl\sql. Это слова самого же автора. Т.е. нужно учитывать и то насколько быстро обработчик руби всё это дело поймёт, обработает, и отошлёт в базу в приемлемом для неё виде. И кто сказал что руби адаптирована под эти базы? Я знаю (как и многие), что для руби есть RoR, как я уже говорил, т.е. собственная разработка, и видел гайды в которых учат работать с рельсами. И там всё быстро, просто и наглядно.
П.С. и всё таки руби - медленный язык. Это из-за его "высокоуровневости" 8)

Это сообщение отредактировал(а) Grengo - 22.3.2009, 18:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.1270 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.