Обратите внимание, в этом запросе нет условия WHERE и сервер SQL возвращает всю таблицу DimDate.
Данные от источника данных с уровнем конфиденциальности Private никогда не пересылаются другому источнику. А это как раз необходимо, чтобы произошел Query Folding запроса. Например, значение из книги Excel – текст Friday – должно быть вставлено в условие WHERE запроса SQL для отсылки на сервер, чтобы фильтрация произошла внутри базы данных. Риск использования Query Folding запросов заключён в том, что администратор базы данных может отслеживать запросы, приходящие на сервер. Просмотр условия WHERE позволит увидеть данные книги Excel. Это не представляет проблемы для названия дня недели, но может стать такой в случае конфиденциальных данных таких как имена и адреса клиентов. Поэтому при уровне книги Private для обеспечения конфиденциальности происходит скачивание всей таблицы DimDate и дальнейшая фильтрация данных идёт внутри Excel. Запрос остаётся работоспособным, но выполняется дольше чем при складывании запроса. Если же уровень конфиденциальности книги Excel установлен Public, то данные могут быть отосланы на сервер и происходит Query Folding запроса.
Подведём итог. В этой статье рассмотрено, как разные уровни конфиденциальности влияют на производительность запроса, определяя, происходит ли Query Folding запроса. Во второй части мы рассмотрим, как различные параметры конфиденциальности определяют, выполнится ли запрос вообще.