Выполнить очень длинный запрос в приложении - PullRequest
0 голосов
/ 25 марта 2012

Я создаю приложение, которое будет запускать запрос из текстового файла с использованием C #.

Одна строка запроса выглядит так:

update table1 set value1 = (select valueA from table2 where valueB = 'someValue')
set ...
where value2 = 'anotherValue'

Операторы Set по 17 выглядят точно так же, как и выше, и все они в одном и том же операторе обновления.

Чтение файла занимает слишком много времени, программа не отвечает. И я даже попытался выполнить запрос в SSMS - он не работает.

Редактировать: у меня более 70000 обновлений.

И мне нужно решение на C #, а не на SQL.

Я использую Visual Studio 2010 Express и SQL Server 2008 Express.

1 Ответ

0 голосов
/ 26 марта 2012

При условии, что все в порядке с вашими индексами и планами запросов, Вы пробовали некоторые табличные подсказки (с ...), чтобы проверить, происходит ли это из-за проблемы с блокировкой?

update table1 set value1 = (select valueA from table2 with (nolock) where valueB = 'someValue')
set ...
where value2 = 'anotherValue'

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

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