Табличная селективность, индексная селективность , блочная селективность

Табличная селективность или селективность строк – соотношение количества строк, возвращаемых запросом к общему количеству строк в таблице.

Индексная селективность - отношение числа строк соответствующих конкретному ключевому значению к общему числу строк в индексе.
 
Селективность индекса – это показатель того, сколько строк от общего числа приходится на одно ключевое значение индекса. Построим формулу.
Селективность индекса = ( NUM_ROWS/DISTINCT_KEY) / NUM_ROWS = 1/DISTINCT_KEY 

Таким образом, чтобы рассчитать селективность индекса довольно посмотреть значение DISTINCT_KEYS в динамическом представлении ALL_INDEXES. Селективность чаще вычисляют в процентах. Чем больше этот процент, тем меньше (хуже) селективность. Селективность хороша, если мало строк имеют одинаковые ключевые значения.

Индексный доступ к данным имеет смысл при хорошей селективности. Это утверждение верно при равномерном распределении данных. Однако для ситуации с неравномерным распределением данных такой подход не оправдан. Рассмотрим пример. Предположим у нас есть только два ключевых значения: 1 и 2. Только у одной записи нашей таблицы ключевое поле равно 2. Все остальные записи имеют ключевое поле равное 1. Для нашего случая distinct_key=2, а значит селективность 0,5! Но реально для доступа по предикату ключ=2 использование индекса вполне оправдано. А для предиката ключ=1 индексный доступ вообще не имеет смысла.

Селективность блоков определяется как соотношение числа блоков, содержащих хотя бы одну строку, удовлетворяющую условию запроса к общему количеству блоков данных ниже high-water mark . Обратите внимание, что селективность строк практически всегда лучше блочной селективности.

Вас заинтересует / Intresting for you:

Служба поддержки Oracle Web Co...
Служба поддержки Oracle Web Co... 1589 просмотров Administrator SU Tue, 21 Nov 2017, 13:27:29
Сравнение и синхронизация  свя...
Сравнение и синхронизация свя... 6923 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:05
Использование функций SQL в за...
Использование функций SQL в за... 13008 просмотров Боба Wed, 18 Apr 2018, 04:56:26
Коррекция ошибок в Oracle: Fla...
Коррекция ошибок в Oracle: Fla... 4754 просмотров Ольга Потемкина Tue, 21 Nov 2017, 13:18:05
Печать
Войдите чтобы комментировать