When you are developing code in SQL or PL/SQL it is useful to be able to optimise your queries, and gain the maximum efficiency advantage. It saves time, money and frustration. The ability to understand the optimizer for handling queries and techniques for finding the swiftest access path to data cannot be underestimated. It is necessary to understand how cost-based and heuristic (self learning) based optimisers work. Understanding optimisers also includes being able to understand the output of query execution plans. This provides the user with guidance for amending or deleting code which is not efficient under execution. Both DBAs and developers should develop these skills to be effective. Here I will provide a brief step by step guide on how to work with the optimizer and plan execution in Oracle.