Многие используют SAMPLE думая, что он выполняется быстрее и с меньшей нагрузкой на ЦП. Для тестирования этого утверждения, создадим тестовую таблицу Х
create table X
as
select *
from all_objects
/
После этого, выполним запрос на выборку всех данных
set autotrace traceonly explain

После этого, запустим запрос с SAMPLE

Как вы видите, мы хоть и выбираем 1% данных, но стоимость осталась практически таже. Это происходит из-за того, что идет сканирование всей таблицы случайным образом и выбирается только 1% данных.
Для уменьшения стоимости, укажем, что сканирование должно происходить только по блоку

Как вы можете видеть, стоимость запроса и время выполнения существенно уменьшилось.
create table X
as
select *
from all_objects
/
После этого, выполним запрос на выборку всех данных
set autotrace traceonly explain
После этого, запустим запрос с SAMPLE
Как вы видите, мы хоть и выбираем 1% данных, но стоимость осталась практически таже. Это происходит из-за того, что идет сканирование всей таблицы случайным образом и выбирается только 1% данных.
Для уменьшения стоимости, укажем, что сканирование должно происходить только по блоку
Как вы можете видеть, стоимость запроса и время выполнения существенно уменьшилось.