timeout для SQL запроса (MS SQL SERVER 2000)

evgeniy

Guest
timeout для SQL запроса (MS SQL SERVER 2000)

для соединения и выполнения запроса использую СОМ
($db = new COM("ADODB.Connection") ,не пользуюсь либами ПХП.
если запрос выполняется более 30 секунд, вылетает ошибка по тайм ауту.
подскажите плз, где выставляется тайм аут?
возможно это либо при создании объекта адо можно сделать,может где то в ODBC...

В С++, при создании объекта Адо-соединения там можно в свойствах указать тайм аут,поэтому думаю что может точно так же можно сделать и в пхп,если конечно тайм аут устанавливается именно через свойства ком-объекта.

P.S
сервер MS SQL 2000, веб -сервер апачи под виндой 2000
 

_RVK_

Новичок
Сходи по ссылке и поймешь.

-~{}~ 13.10.04 14:20:

Это я предположил что MSSQL тут не причем, а привышено время выполнения скрипта. Ты же не показал текст ошибки, приходится телепатией заниматься....
 

evgeniy

Guest
error

Fatal error: Maximum execution time of 30 seconds exceeded script.php on line 516

вот такая вот ошибка
а это 516 строка:

$rs=$db->Execute($query);
вылетает на выполнении либо запроса либо интервал выполнения скрипта..не знаю...я в этом темный еще пока что..:((
 

_RVK_

Новичок
evgeniy
Сходи по ссылке!

-~{}~ 13.10.04 14:29:

НО! Скорее всего у тебя неоптимально составленн запрос к базе. Покажи запрос.
 

evgeniy

Guest
:))спасиба таврищ дизель!!

большой сенкс за помощь.дело действительно в тайм ауте выполнения скрипта а не запроса,хотя все равно хотелось бы узнать,где же тайм аут выполнения запроса лежит..ну и уж совсем малнекий(я надеюсь) вопросик:
чтоб везде не тулить это set_time_limit в пхп.ини это строка
maximum_execution_time?...а то лень теперь по скрипту бегать,это искать все дело.
что касается неоптимизированного запроса,тут просто довольно большой запрос из многих баз данных,вряд ли там что то оптимизируешь..хотя..
$query="SELECT T1.*,DB1..S$NUM.TXT AS TXT FROM T1,DB1..S$NUM
WHERE N=$n AND ID=$ID AND FIELD=$FLD
AND DB1..S$NUM.VOL=T1.CL ORDER BY NP FOR XML AUTO,ELEMENTS";
вобщем не думаю что в этом запросе что то оптимизировать можно,да и не надо это..в принципе я тестирую на своей сетевой тачке,на которой стоит веб-сервер,а на другой тачке в сссети стоит скуел сервер(а там машина слабая,памяти мало,поэтому и тайм аут)..но предполагается большая база данныйх,в которой запрос может выполняться несколько минут.


еще раз спасибо за помощь.!
 

_RVK_

Новичок
Сколько записей в базе? Индексы по полям N, ID, FIELD и т.д. есть? Что то подозрительно долго всетаки....
 

evgeniy

Guest
:))

индексов нет..ну это мне пока что не надо..:))
потом даже при индексированной базе запросы будут выполняться по несколько минут(база большая,миллиарды записей где то)
 

_RVK_

Новичок
evgeniy
Ясно. Надеюсь в реальной базе индексы будут, а то кроме времени жизни скрипта, есть еще время жизни человека, функции для изменения которого я к сожалению не знаю :)
 

evgeniy

Guest
:))

хахаха,точно!!:))умер..ну вроде все выяснил:))
правда,не знаю как убить тему ..
 
Сверху