у меня есть это очень простой запрос в моей базе данных в SQL Server 2008 R2:SQL Server 2008 - UPDATE никогда не закончить
UPDATE Table1
SET Field1 = 'This value'
WHERE ID = '12345'
Я попытался выполнить этот запрос, и я никогда не получить успешные результаты. Во-первых, он выполняется очень долго. Однажды я выполнил этот запрос и оставил его там, пока я принимаю обед. Когда я вернулся через 2 часа, он все еще не закончен.
Мне нужно выполнить этот запрос программно. У меня есть все необходимое для его выполнения, но единственная проблема в том, что он дает мне сообщение об ошибке «Тайм-аут». Я попытался увеличить свой CommandTimeOut, но при этом будет удерживать программу в течение более длительного времени. (Поскольку выполнение запроса в SQL Server действительно занимает много времени, см. Мой сценарий раньше)
Может ли кто-нибудь указать мне хорошее решение, чтобы избежать этой проблемы? И да, таблица, к которой я обращаюсь, имеет множество записей, таких как тысячи. Это никогда не было проблемой раньше, но теперь это так. :(
Заранее спасибо :)
Два вопроса: (1) есть ли индекс ** в столбце 'ID'? И (2) - какой тип данных является «ID» ?? Если это числовой тип данных, вы не должны использовать строку для указания своего идентификатора - вместо этого используйте 'WHERE ID = 12345' (без кавычек). И PS: * тыс. * Строк ** НИЧЕГО ** - если мы говорим несколько сотен миллионов - тогда у нас есть «лоты» .... –
Сколько строк вы ожидаете изменить? Вы посмотрели на профилировщик SQL? Выполняли ли вы похожие запросы ('где id = '23456'')? – hkf
«много записей, таких как тысячи». Это очень небольшое количество строк. Чтобы представить это в перспективе, 100 миллионов достаточно велики. –