Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Web Intelligence регулярные отчеты / 2 сообщений из 2, страница 1 из 1
05.04.2010, 12:04
    #36560810
ustass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web Intelligence регулярные отчеты
Собственно вопрос:есть отчеты,к-рые запускаются регулярно по расписанию и выполняются за отрезок времени зависящий от даты запуска отчета(например текущий месяц,квартал,финансовый год).
У себя мы реализовали справочник дат, куда добавлен ряд псевдодат, которые в фильтрах или формулах заменяются на реальные даты с помощью функции или банального case
Код: plaintext
1.
2.
3.
4.
Is_LastMonth
case 
      when  MIS.dbo.Calendar.Date>=MIS.dbo.StartMonth(MIS.dbo.RealDate(@Prompt(' Select End  period','D',,Mono,Free,Persistent))) then  1  
      else  0  
end
Но проблема в том, что в случае использования функций в фильтре оптимизатор(ну по крайней мере MSSQL) не имеет понятия о том что вернет функция и поэтому неверно или совсем не используется статистика по индексу, покрывающему временное измерение.
Если кто то использует более красивое решение, которое к тому же позволяет правильно отработать оптимизатору СУБД бы ло бы интересно услышать.
...
Рейтинг: 0 / 0
06.04.2010, 12:07
    #36562959
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web Intelligence регулярные отчеты
а что конкретно генерируется в WHERE и не даёт использовать индексы и статистику?
у меня, например, фильтр такой:
Код: plaintext
Calendar.Date between dbo.func1('BeginCurrentPeriod') and dbo.func1('EndCurrentPeriod')
где Calendar.Date - физическое поле, а func1 - функция парсинга строки в нужную дату. в результате поле сравнивается с двумя константами и все необходимые индексы и статистики используются.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Web Intelligence регулярные отчеты / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]