Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пт Май 30 2003 07:36 Заголовок сообщения: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
Да в теме, в общем-то всё сказано... Только вот не надо мне, пожалуйста, про "NT, IIS, ASP и SQL Server - отстой", а вот Linux, PHP и Oracle"... Знаю. И про "перепиши процедуру" наслушалась. Она и так идеальна. Ну, сложная просто... ) Так вот какие можно поменять настройки и у чего? И где? И как..? М-да... Или может есть другие пути? Пожалуйста, может кто знает... Помогите, а? |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Пт Май 30 2003 10:59 Заголовок сообщения: Re: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
А сколько по времени если не секрет выполняется "идеальная" процедура? |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пт Май 30 2003 11:22 Заголовок сообщения: Re: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
Полторы минуты, Вячеслав. Нет, ну правда сложная, чего вы все на эту процедуру грешите? Хорошая она. Может и не идеальная, конечно. Так идеи есть, или поиздеваться..? ) |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пт Май 30 2003 12:46 Заголовок сообщения: Обычно длительность таймаута определяется на сервере, хотя и клиентская сторона тоже может задавать свой таймаут. (+) |
|
|
Полторы минуты? Недолго, вообще-то. Посмотрите временные (ударение на ы) настройки Вашего клиента. И неплохо бы привести полную диагностику. Наверное, в ней кроме "Timeout Expired" что-то полезное есть. |
|
Вернуться к началу |
|
|
Sclis Гость
|
Добавлено: Пт Май 30 2003 13:11 Заголовок сообщения: угу... |
|
|
угу. и для начала поискать узкое место. та же процедура в лоб на сервере сколько выполняется? да? а клиентом нетребовательным? может узкое место - сеть? а может надо данные поразмашистей организовать? чтобы больше места занимали, но доступ быстрее был? полторы минуты это на тестовой базе в сотню записей? |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Сб Май 31 2003 12:09 Заголовок сообщения: Re: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
Варииант 1: Кроме кода процедуры есть еще и дизайн БД SQL server - судя по всему он весьма не здоровый (на это косвенно указывает время выполнения процедуры и ее сложность). Стоит еще обратить внимание на настройки сервера и на тип коннекта к серверу .
Варииант 2: Как я понимаю все решено в "лоб" в ASP открыт коннект к БД и выполнятся процедура !? Попробуй вынести код (логиику ) связанный с БД в отдельный компонент (например COM DLL) тогда можно отказаться от процедуры или при запуске процедуры запускать таймер (что позволит сделать на клиенте имитацию прогресс бара) и прочее |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пн Июн 02 2003 07:00 Заголовок сообщения: "Диагностику", говорите... :-) |
|
|
>>Полторы минуты? Недолго, вообще-то. Посмотрите временные (ударение на ы) настройки Вашего клиента. И неплохо бы привести полную диагностику. Наверное, в ней кроме "Timeout Expired" что-то полезное есть.
Здравствуйте, Борис. Спасибо что откликнулись... Понимаете в чем дело... Моему знакомству с АСП едва ли несколько дней... В общем, зря я, конечно, надеялась, что мне напишут конкретно: "Открываешь то-то и пишешь так-то"... А ведь надеялась... Уже посмотрела все настройки IIS, где что-то сказано про время. Меняла. Бесполезно. Настроить параметры соединения в коде asp-файла я не могу по причине ужасающей безграмотности в этом вопросе. А браузер выдает мне следующее: Технические сведения (для сотрудников службы поддержки) Тип ошибки: Microsoft OLE DB Provider for ODBC Drivers (0x80040E31) [Microsoft][ODBC SQL Server Driver]Timeout expired /debt.asp, line 19 Тип обозревателя: Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [en] Страница: GET /debt.asp Я мало что понимаю, но вроде как OLE DB Provider for ODBC - это о чем-то другом совсем, нежели настройки SQL сервера... Простите мне мою тупость... ) |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пн Июн 02 2003 07:06 Заголовок сообщения: Re: угу... |
|
|
>>угу. и для начала поискать узкое место. та же процедура в лоб на сервере сколько выполняется? да? а клиентом нетребовательным? может узкое место - сеть? а может надо данные поразмашистей организовать? чтобы больше места занимали, но доступ быстрее был? полторы минуты это на тестовой базе в сотню записей?
Я так думаю, что узкое место - мой мозг. )) Полторы минуты - это я её когда из Query Anayzer'а запускаю. То есть она выполняется нормально и сервер меня не посылает, что так долго ему работать приходится. Выходит, дело в IIS, что у меня установлен? Или там чего-то ещё про какие-то драйвера? Может настройки ODBC? Ну, вряд ли браузер, так ведь? Как думаете? |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пн Июн 02 2003 07:15 Заголовок сообщения: Re: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
>>Варииант 1: Кроме кода процедуры есть еще и дизайн БД SQL server - судя по всему он весьма не здоровый
Это точно. Но претензии не ко мне. И изменить я что-либо не в силах.
>>Варииант 2: >>Как я понимаю все решено в "лоб" >>в ASP открыт коннект к БД и выполнятся >>процедура !?
Ага. Это очень плохо?
>>Попробуй вынести код (логиику ) связанный с БД в отдельный компонент (например COM DLL) >>тогда можно отказаться от процедуры
Дело в том, что мне предстоит перевести кучу бухгалтерских отчетов в нашу интранет-сеть. То есть я не могу оптимизировать или переделать всё это море процедур, которые писала не я одна. Мне бы очень желательно воспользоваться тем, что есть. И поскорее. ))
>>или при запуске процедуры запускать таймер
Как мне может помочь таймер? ) Писать, типа: "До выдачи сообщения об ошибке осталось 10, 9, 8, 7,... секунд"? ) А Вы не могли бы дать мне свой адрес, чтобы я Вам всё подробно расписала? Я так думаю, если ломается машина на трассе, то кто-то берет ведь и тянет, так ведь, да? А если все будут высказывать предположения, типа: "Наверное это свечи полетели", "Стартер, кажись" или "Да у тебя вообще машина отстойная", то это не помощь, а издевательство, так ведь? ) |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Июн 02 2003 08:21 Заголовок сообщения: Re: "Диагностику", говорите... |
|
|
>>Microsoft OLE DB Provider for ODBC Drivers (0x80040E31) >>[Microsoft][ODBC SQL Server Driver]Timeout expired
Драйвер ODBC (на клиентской стороне) не может соединиться с SQL-сервером, и он, а не сервер, сообщает о таймауте.
>>/debt.asp, line 19
Это строка в исходном скрипте, в которой выполняется попытка соединения. Проанализируйте ее или выставите фрагмент с этой строкой здешнему товариществу для критики.
>>GET /debt.asp
Файл, в котором возникла ошибка, но это уже известно, поэтому пока не интересно. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Июн 02 2003 08:29 Заголовок сообщения: Дополнение к предыдущему сообщению |
|
|
Тут говорить о "выполнении" не приходится, так как Ваша машина 1,5 минуты просто ждет установления соединения, а потом, не получив ответа от сервера, прекращает работу.
PS. Ждем содержимого debt.asp, хотя причина, наверное, просто в неправильных параметрах установления соединения. |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пн Июн 02 2003 09:25 Заголовок сообщения: Рассказываю начистоту... :-)) Как врачу. :-) |
|
|
>>Тут говорить о "выполнении" не приходится, так как Ваша машина 1,5 минуты просто ждет
Ну, выкинула всё лишнее из файла. И откомментировала после проведения ряда опытов. Вот оно. Оговорюсь лишний раз, хотя со мной и так всё ясно, я новичок. И файл тестовый. А цель теста - посмотреть, возможно ли вообще сделать наши все отчеты на основе хранимых процедур доступными по внутренней сети. Впрочем, возможно всё. К делу.
"
Do While Not RS.EOF strOut = strOut & "" strOut = strOut & " " & RS.Fields("customer_code") & " " strOut = strOut & "" RS.MoveNext Loop
strOut = strOut & ""
RS.Close Conn.Close Set RS = Nothing Set Conn = Nothing Response.Write strOut %>
// Ну, тут всё ясно. Очень жду помощи. Доктор... |
|
Вернуться к началу |
|
|
tanya_nt
Зарегистрирован: 30.05.2003 Сообщения: 10
|
Добавлено: Пн Июн 02 2003 09:33 Заголовок сообщения: Ой!!! Это что такое? Ну, ещё раз, значит. |
|
|
Я наверное какие-то символы использовала, которые нельзя... Вот блин. Ну, ещё раз без них. Теги наверное нельзя, да? Вот черт. Позор-то какой. )) Ладно, на словах. Ну, там, объявление переменных, установка соединения, потом вызов процедуры с кучей параметров. Замечу, что когда я писала этот запрос в Query Analyzer'е, то он выполняется. Правда, от 40 секунд до 1,5 минут. Возвращает что-то несколько тысяч записей. Интересно, что, когда выполнялся этот файл, то сообщение об ошибке вываливалось через 35 секунд примерно. И всегда одно и то же время, что, наверное о чем-нибудь да говорит. О чем? Продолжаю. Ещё я пробовала выбрать все записи из таблицы поставщиков и заказчиков (15000 тысяч примерно), так вот ошибка выдана мне была через более чем полторы минуты (простите мой русский), но ошибка была другой - превышение времени исполнения скрипта, вроде. Но это я настроить смогу и понятно отчего. Рекордсет большой. Дальше. Пробовала выбрать данные из таблицы поменьше. Выбрала. Попробовала выполнить процедуру попроще. Сработало. Ну, дальше там всё закрываю и вывожу. Во-от... |
|
Вернуться к началу |
|
|
Вячеслав Гость
|
Добавлено: Пн Июн 02 2003 11:47 Заголовок сообщения: Re: ASP файл обращается к процедуре на SQL Server, но она долго выполняется и выдается ошибка Timeout Expired. Помогите!!! :-) |
|
|
>Как мне может помочь таймер? ) Писать, >типа: "До выдачи сообщения об ошибке >осталось 10, 9, 8, 7,... секунд"? )
наверное это самое лучшее решение
>А Вы не могли бы дать мне свой адрес, чтобы >я Вам всё подробно расписала?
Особенно интересно как открыто подключение к БД и где выполнятся SP надеюсь это Сommand? e-mail наверху |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Июн 02 2003 12:10 Заголовок сообщения: Вячеслав Вам поможет. Если все-таки хотите здесь (+) |
|
|
критику послушать, то вместо знака "меньше" пишите тег "<", остальные символы вроде здесь отображаются верно. |
|
Вернуться к началу |
|
|
|