Фев 132013
 

При смене параметра optimizer_features_enable с 9.2.0.8 на 11.2.0.3, очевидно, могут сильно измениться планы запросов и их стоимость с точки зрения оптимизатора. Но есть и неочевидные следствия изменения поведения оптимизатора, об одном из которых и будет эта статья.

Начиная с версии Oracle 10g в запросах с группировкой вместо операции SORT GROUP BY при операциях сортировки может использоваться новый внутренний алгоритм сортировки, HASH GROUP BY. В общем случае (если не используется специфический хинт /*+ no_use_hash_aggregation */), предсказать, какой именно алгоритм выберет оптимизатор, нельзя. Для нас важно то, что в случае использования HASH GROUP BY поменяется порядок возвращаемых строк, т.е. результат будет неотсортированным!

Рассмотрим небольшой пример: Continue reading »