Получение сводных данных
Формирование сводных статистических отчетов о транзакциях для систем поддержки принятия решений может быть сложной и ресурсоемкой операцией. При многомерном анализе данных SQL Server программисты должны использовать в качестве основных инструментов следующие компоненты.
SQL Server Integration Services
Службы Integration Services поддерживают извлечение сведений о транзакциях и их преобразование в сводные статистические выражения в хранилище данных или в витрине данных. Дополнительные сведения см. в разделе Общие сведения (службы Integration Services).
SQL Server Службы Analysis Services
Службы Службы Analysis Services преобразуют данные из хранилища данных в многомерные кубы с предварительно вычисленными сводными данными. Эти данные позволяют быстро давать ответы на сложные аналитические запросы. Служба PivotTable® Service предоставляет клиентам доступ к многомерным данным. Кроме того, в службах Службы Analysis Services предусмотрен набор мастеров для определения многомерных структур, которые используются в аналитической обработке, а также оснастка консоли управления (MMC) для управления аналитическими структурами. Затем приложения могут использовать набор API для анализа данных Analysis Services. Дополнительные сведения см. в разделе Разработка и внедрение с помощью среды Business Intelligence Development Studio.
Создание простых сводных отчетов с помощью Transact-SQL
Приложения, формирующие простые сводные отчеты, могут использовать следующие элементы языка Transact-SQL.
Операторы CUBE, ROLLUP или GROUPING SETS. Эти операторы являются частью предложения GROUP BY инструкции SELECT. Дополнительные сведения см. в разделе GROUP BY (Transact-SQL).
Операторы COMPUTE и COMPUTE BY. Они также связаны с предложением GROUP BY. Дополнительные сведения см. в разделе Суммирование данных с помощью COMPUTE и COMPUTE BY.
Эти операторы формируют результирующие наборы, которые содержат как строки с подробными сведениями о каждом элементе в наборе, так и сводные строки для каждой группы, где показаны суммы для статистических выражений в каждой группе. С помощью предложения GROUP BY можно формировать результаты, содержащие статистические выражения для каждой группы, но не строки с подробными сведениями.
Вместо операторов CUBE, ROLLUP, COMPUTE и COMPUTE BY приложения должны использовать службы Службы Analysis Services. Конкретнее, операторы CUBE и ROLLUP должны быть зарезервированы для сред, не имеющих доступа к OLE DB или ADO, например для сценариев или хранимых процедур.
Операторы COMPUTE и COMPUTE BY поддерживаются в целях обратной совместимости. Оператор ROLLUP предпочтительнее COMPUTE и COMPUTE BY. Сводные значения, сформированные операторами COMPUTE и COMPUTE BY, возвращаются как отдельные результирующие наборы, которые чередуются с наборами, содержащими подробные сведения по каждой группе, либо возвращаются как результирующий набор с итоговыми данными, которые добавляются в конец основного результирующего набора. Обработка нескольких таких результирующих наборов увеличивает сложность программного кода в приложении. Ни COMPUTE, ни COMPUTE BY не поддерживаются серверными курсорами. Однако серверные курсоры поддерживают оператор ROLLUP. Операторы CUBE и ROLLUP формируют один результирующий набор, который содержит внедренные строки подытогов и итогов. Кроме того, иногда оптимизатор запросов может формировать для оператора ROLLUP более эффективные планы выполнения, чем для COMPUTE и COMPUTE BY.
Если предложение GROUP BY используется без этих операторов, то оно возвращает единственный результирующий набор с одной строкой на каждую группу, содержащей подытоги статистических выражений этой группы. В этом результирующем наборе отсутствуют строки с подробными сведениями.