wurdu,
хочется всегда получать второй план от 10.2.0.4, либо такой (получается при ALTER TABLE dm_folder_r ADD UNIQUE(r_folder_path)):
----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 108 | 3 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 108 | 3 (0)| 00:00:01 |
| 2 | NESTED LOOPS | | 1 | 92 | 2 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| DM_FOLDER_R | 1 | 30 | 1 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | D_1F00005080000015 | 1 | | 1 (0)| 00:00:01 |
|* 5 | TABLE ACCESS BY INDEX ROWID| DM_SYSOBJECT_S | 1 | 62 | 1 (0)| 00:00:01 |
|* 6 | INDEX UNIQUE SCAN | D_1F00005080000109 | 1 | | 1 (0)| 00:00:01 |
|* 7 | INDEX UNIQUE SCAN | D_1F00005080000143 | 1 | 16 | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("R_FOLDER_PATH"=:1)
5 - filter("GJ_"."OBJECT_NAME"=:2 AND "GJ_"."I_HAS_FOLDER"=1 AND "GJ_"."I_IS_DELETED"=0)
6 - access("GJ_"."R_OBJECT_ID"="R_OBJECT_ID")
7 - access("GJ_"."R_OBJECT_ID"="TGB_"."R_OBJECT_ID")
22 rows selected.
Проблема заключается в том, что в схеме имеет место быть перекос данных и доступ по r_folder_path всегда более оптимальный нежели все остальные (оптимизатору получается это объяснить либо подсовыванием левой статистики, либо "_optimizer_cost_based_transformation"=OFF в 10g (вендор не обременяет себя добавлением unique constraint в схеме)), зафиксировать план по сути возможности нет - приведенный SQL генерируется только если пользователь приложения является администратором, в других случаях там еще страшные куски по проверке прав доступа приклеиваются. Вообщем если вменяемых (т.е. левая статистика не подходит) решений нет, то, думаю, нужно заводить дефект у вендора приложения.