Run a profile in SQL Developer

Id like to run a package(or a procedure in a package) and trace what is going on in the procedure and find out the points in which there is slow performance so I can reconsider how I am doing certain things. I have never used a trace, on or in, Oracle or SQL Developer. I have done this is SQL Server but can someone show me how I can do this in my current environment?
jknj72Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

slightwv (䄆 Netminder) Commented:
I would start off in the docs:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/tuning.htm

Specifically:
Profiling and Tracing PL/SQL Programs

To help you isolate performance problems in large PL/SQL programs, PL/SQL provides these tools, implemented as PL/SQL packages:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/tuning.htm#LNPLS01214


Before you ask:  I've never used them so don't know the inner workings.

I typically use dbms_output to troubleshoot my pl/sql.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jknj72Author Commented:
Yes Ive done this to get to where I am but come to think of it have not put any kind of timer in between certain calls....What would you use to get the time between a function call? Just a startime before the call and an end time after the call or is there a specific call instead ofdbms_output.put_line or something?
slightwv (䄆 Netminder) Commented:
>>a startime before the call and an end time after the call

That is what I typically do.

Just need a start_time (and I use timestamp because the math is easier)

start_time := systimestamp;
..do some code
dbms_output.put_line('Here at step1' || to_char(systimestamp-start_time));
start_time := systimestamp;
..do some more code
dbms_output.put_line('Here at step2' || to_char(systimestamp-start_time));
...
jknj72Author Commented:
Thanks I was able to figure out how to run the Compile With Debug and actually step through the code. This opens up a whole new world for me. I have been developing front end apps and stepping through code for years and now with the ability to do this in Oracle and check values and find out what is taking long times to run, Im gonna be able to figure this stuff out so much easier. Thanks for the info. I remember trying this at my last job, which looking back now would have helped me so much, but they would never give me the permissions to do it.  Oh well...  Thanks once again
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.