![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL connection timed out [D7, MSSQL]
SoLRoN © (2005-06-02 06:00:00)Lock time out.
SQL connection timed out.
Не могу побороть ошибку, может я не там копаю? Кто сталкивался? Как избавиться? Драйвер MSSQL...
SoLRoN (2005-06-02 13:55:00) [1]УРА! получилось изменить настройки в BDE Administratore и запрос отработал... Минут за 30 :)
SoLRoN (2005-06-02 12:35:00) [2]Не пинайте сильно, но чтотакое BOL?
BDE Administrator - до боли что то знакомое казалось, и действительно! Нашел, поменял! Тестю...
Nikolay M. (2005-06-02 11:20:00) [3]
> SoLRoN (02.06.05 11:15) [8]
Подробные ответы на первые 3 вопроса находятся в BOL.
SoLRoN (2005-06-02 11:15:00) [4]Эх ещё бы по понятнее обяснили, что за DeadLoсk? SET LOCK_TIMEOUT в скрипте sql? //еще можно попробовать указать в хинтах всех таблиц запроса (NOLOCK) - это как сделать? Где BDE Administrator? А шут их знает эти серваки какие, они в других городах находятся...
Nikolay M. (2005-06-02 10:32:00) [5]
> Если происходит дэдлок и сервер решает убитьодин из запросов
Nikolay M. (2005-06-02 10:30:00) [6]
> У Вас 2 (или больше) транзакции дерутся за таблицу (вроде,
> в 6-ке блокировок строк ещё не было ;)) - пытаются наложить
> блокировку на уже заблокированную (другим запросом) таблицу.
> Очень может быть DEADLOCK. Если не он - попробуйте
> SET LOCK_TIMEOUT timeout_period
Если происходит дэдлок и сервер решает один из запросов, участвующих в дэдлоке, сообщение об ошибке будет совсем другим. А вот SET LOCK_TIMEOUT будет весьма полезным.
+ еще можно попробовать указать в хинтах всех таблиц запроса (NOLOCK).
ЮЮ (2005-06-02 10:21:00) [7]>Во первых я пытаюсь конектится через BDE
Странно, что во-первых проявилось лишь в третьем посту.
В BDE Administratore установи нужный TIMEOUT.
Хотя 5 мин для оптимизиованного лучше некуда запроса !!!
Железо то хоть нормальное?
MOA (2005-06-02 10:12:00) [8]Для 6 BDE лучше, ПМСМ.
>Lock time out.
У Вас 2 (или больше) транзакции дерутся за таблицу (вроде, в 6-ке блокировок строк ещё не было ;)) - пытаются наложить блокировку на уже заблокированную (другим запросом) таблицу. Очень может быть DEADLOCK. Если не он - попробуйте
SET LOCK_TIMEOUT timeout_period
Если же он, клинч, - посмотрите, отчего он возникает.
Удачи!
SoLRoN (2005-06-02 08:44:00) [9]Ищу истину уже 4 дня...
Во первых я пытаюсь конектится через BDE (пробывал ещё Zeos)...
Через адо тоже пытался соедениться, но у нас сервер версии 6 и при создании строки подключения он ругаеться что ему нужен как минимум 6.5.[сколько то] обновления не придвидится, поэтому пытаюсь выкручиваться...
А запрос оптимизиован лучше некуда, но база огромная... причем не одна а 4 штуки в связке и одна больше другой...
dmitry501 (2005-06-02 08:12:00) [10]SoLRoN (02.06.05 6:00)
Это происходит, когда запрос выполняется более, чем указано в
ConnectionTimeout
CommandTimeout
у TADOConnections
по умолчанию они равны 30 сек.
напиши
ADOConnection.ConnectionTimeout := 480;
ADOConnection.CommandTimeout := 480;
и будет тебе щастье
Но лучше оптимизируй запрос, которые так долго выполняется.
ЮЮ (2005-06-02 07:28:00) [11]Не могу возпромзвести ошибку, может я не там копаю? Как столкнулся? Как добиться? ADO + MS OLE DB provider for SQL Server. ODBC провайдер не помогает