Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl + ODBC, проблема больших запросов 
:(
    Опции темы
Hellb0y
Дата 18.9.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

Не уверен, что данная проблема относится к Перлу, но так как пишу именно на нем - то решил спросить здесь. Возможно, кто-то сталкивался...

Использую ODBC для соединения с базой в перл скрипте. 

Допустим, простенький скрипт вида:

Код

my $result;
$db = new Win32::ODBC("DSN=DSNName;UID=$login;PWD=$pass") or die;
print "Connected to DB! \n";
$db->Sql    ("Select name from person");
while ($db->FetchRow) {
    $result = $db->Data();
    print "Result is - $result";
}


Проблема в том, что если выполнять просто запрос, не требующий длительного времени - то все прекрасно. Коннект к дб, выполнение запроса, вывод результата. Супер.
Если запрос большой и выполняется хотя бы несколько минут или больше - то результат ничего не выводит. И даже не заходит в цикл while. Запрос начинает выполняться, проходит какое-то время, скрипт заканчивает выполнение и никакого результата. 
Возможно ли, что стоит какое-то ограничение на время? Ограничение сессии? Что-нибудь подобное? В чем может быть проблема?
Если кто сталкивался - подскажите. Буду очень признателен.
Спасибо.
PM MAIL   Вверх
dva300
Дата 18.9.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а БД какая ? 
я сей модуль никогда не использовал - всегда хватало DBD::ODBC и DBI
а если выполнить sql в ручном режиме ? выполняется ? 
вообщем-то все равно не правильно если запрос выполняется так долго. что за запрос то хоть ? timeout можно выставить в настройках ODBC

--------------------
Участник движения Культура Вождения
PM   Вверх
Hellb0y
Дата 18.9.2010, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(dva300 @ 18.9.2010,  13:08)
а БД какая ? 
я сей модуль никогда не использовал - всегда хватало DBD::ODBC и DBI
а если выполнить sql в ручном режиме ? выполняется ? 
вообщем-то все равно не правильно если запрос выполняется так долго. что за запрос то хоть ? timeout можно выставить в настройках ODBC

Конечно же выполняется. Несколько минут, но выполняется.
Долго - потому что огромная база огромное, и в запросе хватает джоинов, декоде и пр. То, что долго - это не страшно. Запрос и вообще все это используется в целях автоматизационного тестирования, а не для вывода данных конечному пользователю. 
БД Оракл 11. 
PM MAIL   Вверх
dva300
Дата 18.9.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

БД Оракл 11.

не вижу тут ODBC ни разу. зачем третий персонаж ? 
я бы попробовал через  DBD::Oracle & DBI

--------------------
Участник движения Культура Вождения
PM   Вверх
Hellb0y
Дата 18.9.2010, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(dva300 @ 18.9.2010,  13:25)
Цитата

БД Оракл 11.

не вижу тут ODBC ни разу. зачем третий персонаж ? 
я бы попробовал через  DBD::Oracle & DBI

Обьсняю: Хотел создать что-то универсальное, не привязываясь к БД. Использовать созданный DSN и все. 
PM MAIL   Вверх
dva300
Дата 18.9.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Обьсняю: Хотел создать что-то универсальное, не привязываясь к БД. Использовать созданный DSN и все.


ну так нет проблем : выставьте timeout в настройках ODBC и вуаля.
только глупости все это. одной Ж.. на все стульях не уседишь. если бы подобного рода универсализм работал всегда и без сбоев то не было бы дополнительных решений.



Это сообщение отредактировал(а) dva300 - 18.9.2010, 13:46
--------------------
Участник движения Культура Вождения
PM   Вверх
tishaishii
Дата 29.9.2010, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



DBI - Database Independent Interface.
У тебя: а) плохой запрос, б) плохо составленная БД, ц) реально большая БД (какая?).
PM MAIL ICQ Skype   Вверх
Hellb0y
Дата 1.10.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(tishaishii @ 29.9.2010,  23:47)
DBI - Database Independent Interface.
У тебя: а) плохой запрос, б) плохо составленная БД, ц) реально большая БД (какая?).

Реально большая пребольшая БД. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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