Индекс против расширенной статистики - PullRequest
0 голосов
/ 01 октября 2019

В чем конкретно Oracle и, возможно, другие платформы, в чем разница между индексами и расширенной статистикой? Они, похоже, сконструированы подобным образом и выполняют ту же функцию. Должны быть некоторые основные различия - кто-нибудь может предоставить подробности?

1 Ответ

2 голосов
/ 01 октября 2019

Хммм. ,,Они кажутся мне совершенно другими.

Индекс - это копия данных в одном или нескольких столбцах таблицы (возможно, с выражениями), структурированная для ускорения доступа или для применения уникального ограничения. Индекс может быть непосредственно использован для возврата значений из этих столбцов (или выражений).

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

Статистика (и расширенная статистика) описывают свойства одного или нескольких столбцов. Эти свойства используются оптимизатором, чтобы выбрать лучший алгоритм для выполнения запроса. Наиболее важным свойством является количество элементов - количество различных рядов - хотя асимметрия также может быть важной.

Статистика не используется для прямого возврата значений в результирующие наборы. Они влияют только на оптимизатор. Индексы могут быть использованы для возврата значений;информация, собранная при создании индексов, также может быть использована оптимизатором для определения наилучшего плана выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...