2014-02-17 8 views
0

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

Этот запрос:

SELECT ID, 
     ISNULL(LINK,'0'), 
     FLOOR(ISNULL(AMOUNTPAID,'0')), 
     CONVERT(VARCHAR(8), DATEPAID, 5), 
     PAYSOURCE 
    FROM finance 
WHERE DATEADD(month,24,DATEPAID) > GETDATE() 
     AND ID IN (A LIST OF IDs) 

Первый выбор составляет около 1,4 миллионов результатов и список идентификаторам есть около 100,000 идентификаторов.

Есть ли другой способ построить этот запрос?

ответ

0

Я предполагаю, что вы используете длинный список 100000 IN значений и видим эту ошибку

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

В соответствии с предложением на this Connect item вместо списка идентификаторов вместо таблицы указана таблица.

+0

Я попробую. Благодаря! – Antonio

0
select ID,ISNULL(LINK,'0'),FLOOR(ISNULL(AMOUNTPAID,'0')),CONVERT(VARCHAR(8), DATEPAID, 5) ,PAYSOURCE 
from dbo.finance f inner join listofid l on f.id=l.id 
where DATEADD(month,24,DATEPAID) > GETDATE() 

также вам нужно создать некластеризованный индекс на DATEPAID.hope id is pk. BTW, список идентификаторов поступает из таблицы/переменной?

Я думаю, что запрос будет быстрым. Вы хотите сказать, что есть другой запрос, в котором вы помещаете список id в переменную.

+0

Список идентификаторов был первым запросом, но теперь я пробую список идентификаторов, например: ('10000', '10010', 10022 ', ...) – Antonio

+0

@Antonio - Почему вы отказались от использования запрос на список идентификаторов? Запрос - лучший способ. –

+0

Потому что я должен использовать этот идентификационный список в 3 других запросах. Я сделал это, чтобы избежать 4 одинаковых выбора. – Antonio

Смежные вопросы