2015-06-02 4 views
0

У меня есть один комплексный отчет, который извлекает записи из нескольких таблиц.Ошибка производительности в SSRS - несколько наборов данных

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

SELECT TOP 100 *,Itempath,parameters, 
    TimeDataRetrieval + TimeProcessing + TimeRendering as [total time], 
    TimeDataRetrieval, TimeProcessing, TimeRendering, 
    ByteCount, [RowCount],Source, AdditionalInfo 
FROM ExecutionLog3 where ItemPath like '%GetServiceCalls%' 
ORDER BY Timestart DESC 

Чтобы избавиться от этого, я удалил все фильтры набора данных и прикладной фильтр на tablix. После этого я вижу, что процедура вызывается только один раз. Но это не сильно влияет на производительность.

Теперь вопрос, который приходит ко мне, заключается в том, как именно я могу улучшить производительность отчета SSRS.

Примечание: Мой запрос выполняется за 13 секунд, а отчет занимает почти 20 минут.

Пожалуйста, помогите мне решить эту проблему.

С уважением,

Dhaval

ответ

3

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

Моя рекомендация заключалась бы в том, чтобы выполнить всю «работу с ворчанием», кроме сортировки в SQL, а затем сделать любые виды в SSRS.

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

+0

Я удалил фильтр строки из tablix и поместил фильтр на целое число, и это сработало, а производительность также улучшилась. –

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