Поделиться через


Определение секций в моделях DirectQuery

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

В этой статье описывается, как секции используются в моделях DirectQuery. Более общие сведения о секциях в табличных моделях см. в разделе Секции в табличных моделях.

Примечание

Хотя таблица может содержать несколько секций, в режиме DirectQuery для использования при выполнении запросов может быть назначена только одна из них. Требование использовать одну секцию относится к моделям DirectQuery на всех уровнях совместимости.

Использование секций в режиме DirectQuery

Для каждой таблицы следует указать одну секцию, которая будет использоваться в качестве источника данных DirectQuery. Если есть несколько секций, при переводе модели в режим DirectQuery по умолчанию первая секция, которая была создана в таблице, будет отмечена как секция DirectQuery. Это можно изменить позже с помощью диспетчера секций в конструкторе табличных моделей в Visual Studio.

Почему в режиме DirectQuery разрешена только одна секция? В табличных моделях (как и в моделях OLAP) секции таблицы определяются запросами PowerQuery M или SQL-запросами. Разработчик, создающий определение секции, должен следить за тем, чтобы секции не пересекались. Службы Analysis Services не проверяют принадлежность записей к одной или нескольким секциям.

Секции в кэшированной табличной модели ведут себя одинаково. При использовании модели, находящейся в памяти во время доступа к кэшу, DAX-формулы вычисляются для каждой секции, а результаты объединяются. Тем не менее, когда табличная модель работает в режиме DirectQuery, невозможно выполнить вычисление для нескольких секций, объединить результаты и преобразовать их в одну инструкцию SQL для отправки в реляционное хранилище данных. Это может привести к неприемлемой потере производительности, а также к потенциально неточным результатам после их объединения.

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

Если явно определенных секций нет, ядро просто создает SQL-запрос для всего реляционного источника данных, выполняет операции на основе наборов, определяемые DAX-формулой, и возвращает результаты запроса.

Изменение раздела DirectQuery

Поскольку только одну секцию в таблице можно определить как секцию DirectQuery, службы Analysis Services по умолчанию используют первую секцию, созданную в таблице. Во время разработки проекта модели можно изменить раздел DirectQuery с помощью диспетчера секций. Для развернутых моделей можно изменить раздел DirectQuery с помощью SQL Server Management Studio.

Изменение секции DirectQuery для проекта табличной модели

  1. В Visual Studio в конструкторе моделей щелкните таблицу (вкладку), содержащую секционированную таблицу.

  2. Щелкните Расширения Секции>таблицы>.

  3. В диспетчере секцийсекцией является текущая секция DirectQuery, имя которой содержит префикс (DirectQuery) .

    Выберите другую секцию в списке Секции , затем выберите Установить в качестве DirectQuery. Кнопка Установить в качестве DirectQuery неактивна, если выбрана текущая секция DirectQuery, и не отображается, если в модели не поддерживается режим прямых запросов.

Изменение секции DirectQuery для развернутой табличной модели

  1. В SQL Server Management Studio откройте базу данных модели в обозреватель объектов.

  2. Разверните узел Таблицы , щелкните правой кнопкой мыши секционированную таблицу и выберите команду Секции.

    Имя секции, определенной для использования в режиме DirectQuery, имеет префикс (DirectQuery).

  3. Чтобы перейти к другой секции, щелкните значок Прямой запрос на панели инструментов, чтобы открыть диалоговое окно Настройка секции DirectQuery . Значок панели инструментов DirectQuery недоступен в моделях, не поддерживающих прямые запросы.

  4. Выберите другую секцию в раскрывающемся списке Имя секции и при необходимости измените параметры обработки.

См. также раздел

Секции