Register Login

Diagnosing Slow Oracle Server Performance

Updated Aug 25, 2024

What would be the reason for the sudden dead slowdown of the Oracle server?

Hi Oracle Experts,

One of my Oracle servers suddenly became dead slow so I want to know what may be the cause for this. I want to know where should I look for the reason. As I am a Plsql developer, I do not know much about DBA things. So please suggest to me the right solution and cause for this problem faced by me.

Thanks in Advance!

Solution

1. Check for Blocking Sessions

Issue: Blocking Sessions happens when one session locks a resource that other sessions are attempting to access.

Action: Run the following query to identify :


SELECT
    blocking_session,
    sid,
    serial#,
    wait_class,
    seconds_in_wait
FROM
    v$session
WHERE
    blocking_session IS NOT NULL;
    

2. Look at Active Sessions

Issue: Too many active sessions can lead to performance degradation.

Action: Use the following query to see active sessions:


SELECT
    COUNT(*)
FROM
    v$session
WHERE
    status = 'ACTIVE';
    

3. Check for Long-Running Queries

Issue: Sometimes executing long-running queries can consume significant resources of the server thus resulting in Slow Oracle Server.

Action: Identify long-running queries using:


SELECT
    sid,
    sql_id,
    elapsed_time,
    sql_fulltext
FROM
    v$sql
WHERE
    elapsed_time > 10000000; -- Adjust the threshold as needed
    

4. Inspect CPU and Memory Usage

Issue: Sometimes high CPU or memory usage on the server may result in the slowness of the oracle server.

Action: If you have access to the server, you can use OS-level commands like top or vmstat on Linux, or Task Manager on Windows.

5. Check for Resource Contention

Issue: Resource contention, such as CPU or I/O bottlenecks, may be the reason for slowing down your Oracle server.

Action: Execute this code to identify resource-intensive sessions:


SELECT
    sid,
    serial#,
    username,
    program,
    event,
    wait_time,
    state
FROM
    v$session
WHERE
    wait_class <> 'Idle';
    

6. Check Tablespace Usage

Issue: A full tablespace can cause performance issues.

Action: Execute the code mentioned below to check tablespace usage:


SELECT
    tablespace_name,
    SUM(bytes)/1024/1024 "MB"
FROM
    dba_data_files
GROUP BY
    tablespace_name;
    

7. Examine Database Alerts

Issue: Oracle generates alerts for critical issues.

Action: Review the alert.log file, that contains important messages about the database's health.

8. Review Execution Plans

Issue: Inefficient execution plans can cause slow performance.

Action: Use EXPLAIN PLAN to analyze the execution plans of slow-running queries.

9. Consult with DBA

If the above-mentioned checks are unable to identify the problem. It might be necessary to involve your DBA to investigate the database performance further, such as by looking for disk I/O bottlenecks, network latency, or other complex problems.

The above mentioned steps should give you a starting point to diagnose the performance issue. It might be best to share this information with your DBA team so they can provide further assistance if you're unfamiliar with any of these commands or queries.


Comments

  • 28 Aug 2015 4:43 pm Rohit Mahajan

    You need to check the following:
    1.Check Space in Drives
    2.Check Storage of Data File
    3.Check Temp Folders

  • 28 Aug 2015 4:46 pm Nitesh Singh

    Genarate AWR ASH reports and dig to find out root cause. Try to intimate DBA. You need to verify those objects for any poor query and any full table scans and row level table level locks also. And need to verify all active sessions and what query those users and sessions using. You need to gather Statistics DB level, schema level.

  • 28 Aug 2015 4:47 pm Romil Tripathi

    You need to check SGA target and sga max size.

  • 28 Aug 2015 4:47 pm Jyoti Pandey

    First intimate to DBA. He knows where to check and what to do?

  • 28 Aug 2015 4:47 pm Chandan Singh Parihar

    You need to fetch addm report and find what sql is taking much time to execute.


×