Sunday, September 27, 2009

Getting certified

I have been working for more than 8 year in programming position. Finally, I think it's about time to get a certification to officially become a professional.

I believe there are some discussion on whether being certified really bring the value to work and personal growth. Well, I think it's better to have a goal on a certain profession and then move on to the next level. For example, I have been certified on XXX programming language and this means I have sufficient knowledge on that language. However, experience does contribute more than just programming language and perhaps, that can be consider the next level after certification.

So far, getting a lot experience does not have a point, if without certification, because who knows the experience really does apply the skill on the job. Maybe the skill wasn't apply at all time (e.g 20% using skill, 80% in meetings. 5 years of experience is actually 1 year only).

In short, I think having experience is valuable, getting the certification is just to anchor that claim.

(I'm currently doing self study for the exam. Oh well, it feels like I'm going back to college again.)

Wednesday, September 9, 2009

Process large volume of data using mod function and multiple session

The scope of this process is that we only process data on a huge table (> 1 million records) and the CPU is no limitation.

The idea is simple. Organise the data into different part and run them in different sessions. This is done by using the unique numeric field in the table and separate them using mod function.

Example:
Table: Product table with 1 million records.
Table Field: ID (Unique Number ID), Name (varchar), Spec (varchar)
Procedure: ProcessProduct(iModby in number, iModRemainder in number);

Code snipper for ProcessProduct:
Begin
.
.
for r in (Select * from product where mod(id, iModby) = iModremainder)
--should be using bulk collect example
.
.
end;

To run the procedure in 2 session. In the first sqlplus window:
Begin
ProcessProduct(iModby => 2, iModRemainder => 0);
end;

In second sqlplus window:
Begin
ProcessProduct(iModby => 2, iModRemainder => 1);
end;

In conclusion, there are improvement by using this way to process large volume of data (e.g. data migration) and the number of session can be go higher if required. However, it may differ if CPU is fully utilized in just one session.