http://www.oracle.com/technetwork/articles/sql/11g-plsql-091775.html
As you can see from above link, simple_integers can't be used just anywhere; you have to be careful in deciding the boundary conditions (especially the potential wrapping of values) before implementing them. Furthermore, simple_integers are designed for native compilation. In interpreted compilation, they may not offer a large performance boost (but it doesn't hurt either, as you'll see later). In real native mode, the performance benefits of simple_integers are far more pronounced.
Most business applications in PL/SQL are actually SQL-heavy so these applications will not see a significant performance boost from native compilation.
Because this technique cannot do much to speed up SQL statements called from PL/SQL, it is most effective for compute-intensive PL/SQL procedures . PL/SQL native compilation provides the greatest performance gains for computation-intensive procedural operations.
select name, PLSQL_code_type from user_plsql_object_settings;
ALTER PROCEDURE hello_native COMPILE
PLSQL_CODE_TYPE=NATIVE
REUSE SETTINGS;
OR
alter session set plsql_code_type = native;