Hi bond :) 007 I can't tell you which is the best way, but I can tell you how I wold solve it. I'll give you an example how I solved three performance complex problems after migration to 10gr2 0) statistics remove statistics and recalculate them This is what I currently use, because I didn't time to find a better way, but I know of some issues can affect bigger database. But for me this is ok now, I still didn't found that issues apply to my small database ( 6GB). - database statistics as you gather usually EXEC DBMS_STATS.DELETE_DATABASE_STATS(); EXEC DBMS_STATS.GATHER_database_STATS( GATHER_SYS=>TRUE,ESTIMATE_PERCENT=>20); EXEC DBMS_STATS.GATHER_database_STATS( GATHER_SYS=>TRUE,ESTIMATE_PERCENT=>20,METHOD_OPT=>'FOR ALL COLUMNS SIZE SKEWONLY'); - plus *give a check to documentation before running if you don-t know this commands} eXEC DBMS_STATS.gather_dictionary_stats; EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; EXEC DBMS_STATS.GATHER_SYSTEM_STATS ('NOWORKLOAD'); 1) sizing sga components and problem sizing parameters You must know what is sga_target, etc. after running some hours or days the advisor, chekc the advisros for: pga_target, sga_target( if you are using otherwise use cache advisors, etc.), Obvkously there are parmeter like compatible, etc. set correctly, I'm not going to mention that becaues that is obvoius, if you don't know that then better you go back to documentation and start reading concepts and administration manual. . Set the parameter, you must be aware of the __ parameter if you are using spfile, you'll verify this when you can't lower to zero for example the streams_pool_size if you don't use it. alter system set "__streams_pool_size"=0 scope=both sid='isoa'; alter system set "__shared_pool_size"=0 scope=both sid='isoa'; alter system set "__large_pool_size"=0 scope=both sid='isoa'; alter system set "__java_pool_size"=0 scope=both sid='isoa'; this parameters sets the lower limit of memory 2) Then check if everything works ok. identifiying problem changing hidden parameters. You must know about hidden paramete here, jhonatan lewsi for example has a list of optimizer related parameter changed between releases. Otherwise don't do it until you understand this. a)I had a problem with a union all, there was no point to fix using hints, neither other way, then I started to disable/enable one by one the new parameter, until the performance fixed on that query, I found the problem fixed changing the parameter: alter SYSTEM set "_optimizer_squ_bottomup"=false SCOPE=BOTH; This is obviously a temporary soultion, and the goal is to identify the problem, this is not intended as a permanente solution and unless this is a bug. Do it in your test database please. b) I had a problem with performance solved increasing alter system set "_optimizer_max_permutations"=2500 scope=both; I set so previously based on a Don Burleson advice and this works good. c) Unknown problem on a super copmlex view, calling another views. I solved it, analizing performance I started to create some indexes, then was necessary because load grow ( you could run sql access advisor) The problem simply dissapear.