Как изменить время ожидания для запроса, выполняемого вручную в SQL Server? - PullRequest
10 голосов
/ 04 февраля 2009

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

Истекло время ожидания. Период ожидания истекший до завершения операция или сервер не отвечает.

Я не хочу изменять какие-либо глобальные настройки сервера, чтобы иметь возможность запускать этот файл. Есть ли какие-либо команды, которые я мог бы поместить в начало файла, чтобы увеличить время ожидания только для этого сценария / транзакции?

Ответы [ 7 ]

12 голосов
/ 04 февраля 2009

Если вы используете SQL Management Studio, в параметрах есть две настройки (я имею в виду Management Studio из SQL Server 2005, которую я использую):
(моя Management Studio на немецком языке, поэтому я надеюсь, что я правильно перевел названия на английский)

Вы можете найти оба в меню в разделе «Дополнительно» -> «Параметры»

В опциях, первый из которых находится в разделе «Выполнение запроса», вы можете установить там «Время выполнения» (у меня уже был ноль)

Второй (и я думаю, что это то, что вам нужно) - это первый параметр в разделе «Дизайнер», он говорит что-то вроде «Переопределить тайм-аут для обновлений дизайнера таблицы», вы можете установить флажок и ввести значение там.
Некоторое время назад у меня была проблема, похожая на вашу (сообщение о превышении времени ожидания при запуске ALTER TABLE для большой таблицы), и я решил ее, установив для этой опции более высокое значение.

5 голосов
/ 04 октября 2010

Увеличение свойства CommandTimeout решит проблему т.е.

SqlCommandObject.CommandTimeout = 500000

4 голосов
/ 22 марта 2013

Увеличьте значения времени ожидания запроса и времени ожидания подключения в Visual Studio, используя процедуры, описанные ниже. Изменение времени ожидания запроса:

В Visual Studio IDE перейдите в Инструменты -> Параметры -> Инструменты базы данных -> Дизайнеры запросов и представлений Вы можете снять флажок «Отменить длительный запрос» или изменить значение «Отменить после» на более высокое значение. Изменение времени ожидания соединения:

В Visual Studio IDE включите Обозреватель серверов, перейдя в «Просмотр» -> «Обозреватель серверов». В обозревателе сервера щелкните правой кнопкой мыши соединение с SQL Server, на котором развертываются объекты CLR, и выберите «Изменить соединение». Нажмите кнопку «Дополнительно» в окне «Изменить подключение». В окне «Дополнительные свойства» измените значение «Время ожидания подключения» в разделе «Инициализация» на более высокое значение.

http://support.microsoft.com/kb/2011805

2 голосов
/ 20 января 2012

@ христианский ответ у меня не сработал (изменение настроек в SQL Management Studio).

Ответ Бисвы работал на меня. Я включу код, чтобы уточнить

SqlCommand cmd = new SqlCommand("MyReport", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 60;  /* note default is 30 sec */
1 голос
/ 04 февраля 2009

SQL Server будет ждать бесконечно, прежде чем вернуться к пользователю. Скорее всего, было установлено свойство тайм-аута на стороне клиента. Например, вы можете установить свойство timeout для объекта команды ADO .

Ура, Энди.

0 голосов
/ 27 декабря 2013

Просто хотелось уточнить конкретные шаги для Microsoft SQL Server Management Studio 2005 ... Значения по умолчанию для «Дизайнера», безусловно, необходимо скорректировать, даже если для него установлено значение «0» в разделе «Выполнение запроса», поскольку «Дизайнер» переопределяет Настройки «Выполнение запроса».

  1. Откройте Microsoft SQL Server Management Studio 2005
  2. Инструменты >> Параметры
  3. Развернуть "Дизайнеры"
  4. Я обнаружил, что установка «Время ожидания транзакции после» в 120 отлично работает для обновлений таблиц с несколькими миллионами записей.
0 голосов
/ 04 февраля 2009

Не берите в голову, я могу нормально запустить его с SQL Management Studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...