• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Прервать выполнение запроса к MSSQL

  • Автор темы max
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

max

Может, вопрос глупый, но проблема такая: есть скрипт, с которого запускается очень длительный запрос к MSSQL (может выполняться до 10-30 минут). У пользователя в это время "висит" надпись "Подождите" и есть кнопка "Отмена", которая выполняет закрытие окна браузера. Вопрос: как реализовать прекращение выполнения скрипта? Пробывал вот так:
set_time_limit(0);
ignore_user_abort(true);
$query = "EXEC MakeReportTurnoverByCountry $im_ex, '$rc_periods', '$rc_countries', '$rc_delivery_tems'";
$rs = $engine->dba_usr->exec($query);
if (connection_aborted())
{
$engine->dba_usr->disconnect();
exit;
}
Не работает. Заранее спасибо.
 
B

Barmutik

Насколько мне известно прервать запрос не возможно...

Может не совсем в тему совет:

Время выполнения правильно построенного запроса на грамотно настроенный сервер не должно превышать 10-20 секунд.

Возможно стоит попробовать перестроить запрос или алгоритм обращени к данным.
 
G

Guest

Не написал, но почему-то этот вариант завершается сразу (выполнение запроса прерывается).
$query = "EXEC MakeReportTurnoverByCountry $im_ex, '$rc_periods', '$rc_countries', '$rc_delivery_tems'";
$rs = $engine->dba_usr->exec($query);
$engine->dba_usr->disconnect();
exit;

А насчет перестройки запроса - не выйдет. Это программа статистической обработки, данных очень много и оптимизировать до 20-и секунд не получится :(
 
B

Barmutik

Ну может стоит разработать другой механизм хранения статистической информации ...

Т.е. после её поступления в базу происходит постпроцессинг, который позволяет хранить данные уже в подготовленной сгрупированной форме.

А поьлзователь при своём обращении работает уже с подготовленными данными...
 
M

max

Мы систему сдаем через неделю :( Не, ну понятно, что глупо, что раньше не подумали, но это не моя вина. А заканчивать-то надо :(
 
B

Barmutik

Ну вообщем то да ... но просто система в которой время ожидания выполнения запроса пользователя достигает 10-20 минут ...

Ну как бы ... мягко говоря не совсем красиво смотрится ... но это в принципе моё мнение ... :(
 
G

Guest

Да, забыл сказать: работа с базой идет через ODBC
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!