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

Тема в разделе "SQL", создана пользователем max, 28 мар 2005.

Статус темы:
Закрыта.
  1. max

    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;
    }
    Не работает. Заранее спасибо.
     
  2. Barmutik

    Barmutik Гость

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

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

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

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

    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-и секунд не получится :(
     
  4. Barmutik

    Barmutik Гость

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

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

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

    max Гость

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

    Barmutik Гость

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

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

    Guest Гость

    Да, забыл сказать: работа с базой идет через ODBC
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей