I am back :)

So as I promised earlier I will start with sharing my experiences for the last two months. I was the performance team leader of my company’s biggest project in its life, we are in telco business and we have over 32 million customers – a huge operation and this project involved changing nearly %70 of all applications of the company. There were two phases, first a data migration limited with time constraints and second the applications performance after migration like internet, call center etc. I return with lots of new but mostly non-technical experiences summarised as follows –

1- if you are upto a critical mission project choose every single member of your team very carefuly, your team will take you to the destination so always work with the bests,

2- never stop learning, things you may see not needed or not very important at that point of time may have great value to you when time comes, test what you learn and turn it to a consistent knowledge because when the time comes you have to stand for it to your death, everyone will trust you and trust is something a leader should never loose,

3- if you understand something you know is different than you think do not be emotional, be rational and except the truth, always inform your managers with the truth even you did some mistake, again this is a trust issue(by the way during the project even I have taken high risks I never did a mistake, this note was for the group of people who were against my decisions:)

4- if you purchased physical memory use it! for oltp sga and for olap pga is very important – dont run with low buffer areas and suffer your customers, please dont. AWR and advisories are your friends, monitor and increase your cache areas upto limits, I have seen oltp systems which have 48 GB physical memory and their buffer cache was 800 MB,

5- never go into a critical project with Release 1 products – buffer cache advisory crashes system or job proses take 4-5gb memory and never returns them back to os – you will be telling these sentences to your top management and they will immediately ask why R1? immediately plan and test to migrate to Release 2 as I mentioned earlier,

6- operational dba groups must have a space for a risk, if not and you manage them with only availability focus they will loose their creativity and self confidence and of course performance point will have the greatest impact here,

7- always get prepared for the worst and have a b-c-d.. plans :)

8- if you want high performance this will have alternative costs, most probably you will be taking some risk, make those risks be calculated, dont let them turn into a gamble. For example during migration phase we used below three _parameters but we did very careful testing, as you know these parameters are to be used with the suggestion of Oracle support;
_pga_max_size / default : 209715200 – we used : 3650000000
_smm_max_size / default : 102400 – we used : 425000
_smm_px_max_size / default : 31457280 – we used : 68000000

Earlier with below two posts I mentioned the fundamental importance of settings when you are upto a data migration project, I will continue with the importance of pga management during data migration and give detail information on my experiences with the above parameters.

Until the coming post please check if you are using automatic pga management or not, if not please plan and test for a migration. Especially if you are responsible of an olap system check this presentation and try the above _parameters with test cases, you may fly like an angel as we did :)

By the way during this time 11g is now on the market :) Check out Oracle 11G database new features also Mr.Arup Nanda is again preparing one of his great top features series for 11g :)
Real Application Testing seems to be the most popular new feature for some time. Here you can find a summary for all 11g new features.

So last words are for my idol, Mr.Danişment Gazi Ünal, I was very lucky to work under his consultancy during this project. He is one of the most knowledgable Oracle consultants I have ever met, he is like a teacher always and like Mr.Jonathan Lewis he knows internals so well that he can show you the picture so simple as a result it is imposible to not to understand his points.


  1. ibrahimdemir says:

    Thanks for sharing your great experiences about a great migration.

    I think such risky and stressfull times are the ones that we learn most because on that times we think and decide much more carefully.

    And what affects the ease of our life is the ones around us as you mantioned in your post.

  2. That’s a great list – I’m definitely looking forward to reading more about your migration and performance experiences! I’ll be keeping on eye on this blog for sure.

  3. bhatipoglu says:

    Yes, first one is very important, as you wrote that first:

    Your team will take you to the destination, maybe to the door, to be fired :)

    Welcome back, the points are very good, and I know that was a great migration owing to you.

  4. A short explanation of above mentioned hidden pga parameters –

    The parameter defines the maximum size of the PGA memory for one process. Per default it is set to 200M .

    This parameter defines the maximum work area size (PGA memory allocated for one query operation) in auto mode (serial) . The default is min(5% of P_A_T, _pga_max_size/2). If you increase _pga_max_size you will not have to modify this parameter.

    This parameter defines the maximum work area size in auto mode (global). The default value for this parameter is 30% of P_A_T. In fact it limits the total amount of memory for one query operation allocated by all parallel processes together.

    References –


    Working with Automatic PGA by Christo Kutrovsky
    The Pythian Group 2005 Feb

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s