When packaging is on, optimizer will evaluate ALL access paths available to a statement thus ensuring the best path is chosen.
Access path is then added to package file
Next time statement is executed, access path is retrieved from the package and the expensive optimization process is avoided.