Как решить проблему TimeOut Expired? - PullRequest
10 голосов
/ 13 октября 2009

Использование SQL Server 2005 и VB6

Когда я выполняю годовые данные или данные более чем за 3 месяца, появляется ошибка «Истекло время ожидания». Это не выполняется полностью.

Строка подключения

ConnectionString = "Provider=SQLOLEDB.1;" & _
    "Persist Security Info=False; " & _
    "User ID=" & Settings.SQL_Username & _
    "; Password = " & Settings.SQL_Password & "; " & _
    "Initial Catalog=" & Settings.SQL_DatabaseName & ";" & _
    "Data Source=" & Settings.SQL_ServerAddress

Как мне решить эту проблему?

Plz ...

Ответы [ 4 ]

17 голосов
/ 13 октября 2009

Там нет «черной магии вуду» - либо вы можете ускорить ваш запрос (вернуть меньше данных, улучшить дизайн базы данных, найти и применить индексы, которые ускоряют выполнение ваших запросов), либо увеличить время ожидания, которое вы разрешаете запрос, выполняемый до истечения времени ожидания.

Это ваши два варианта - сделайте свой выбор.

ОБНОВЛЕНИЕ: небольшой поиск в Google показывает:

Dim cmd
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandTimeout = 120   ' number of seconds

Марк

3 голосов
/ 13 октября 2009

Вы должны установить .CommandTimeout в команде. Он не работает, если вы установите его в строке подключения.

1 голос
/ 13 октября 2009

Я полагаю, что вы либо пытаетесь получить много данных, а SQL Server требует больше времени по умолчанию для ADO (30 или 40 секунд?), Чтобы вернуть эти данные.

Или это не очень много данных, но у вас нет приличного индекса в таблице - поэтому я проверю индексы по вашему запросу (план выполнения здесь ваш друг).

Или это смесь обоих.

Сколько времени занимает запрос, если вы выполняете его напрямую в SQL Management Studio?

0 голосов
/ 13 октября 2009

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

Или вы можете попытаться оптимизировать свое приложение, для вывода данных потребуется много времени.

...