Πώς βρίσκουμε τα queries με την μεγαλύτερη διάρκεια σε βάση δεδομένων της Oracle
- Πώς φτιάχνουμε Logon Trigger για να ελέγχουμε τους χρήστες που επιτρέπουμε να συνδεθούν σε Oracle Database - 13 Ιανουάριος 2025
- Πώς συλλέγουμε to actual execution plan από τα queries με χρήση Extended Event και πως διαβάζουμε τα δεδομένα του - 2 Δεκέμβριος 2024
- Πώς βρίσκουμε τι δικαιώματα έχει ένας χρήστης σε βάση δεδομένων της Oracle - 1 Νοέμβριος 2024
Στις βάσεις δεδομένων της Oracle έχουμε τη δυνατότητα να βρούμε στατιστικά δεδομένα για τα queries κάνοντας χρήση των αναφορών ASH και AWR. Όμως για να ενεργοποιήσουμε αυτή τη δυνατότητα πρέπει να έχουμε Enterprise έκδοση. Στην Standard μπορούμε να κάνουμε εγκατάσταση του πακέτου Statspack που μας παρέχει κάποιες πληροφορίες αλλά εμείς στο άρθρο αυτό θα δούμε πως μπορούμε να αντλήσουμε πληροφορίες για τα sql queries που είναι cached μέσω του dynamic view v$SQL.
Συγκεκριμένα θα δούμε ένα query με το οποίο μπορούμε να αντλήσουμε πληροφορίες για τα cached queries με κριτήρια το πότε έτρεξαν τελευταία φορά, τον χρόνο που έχουν διαρκέσει και τον χρήστη που το εκτέλεσε.
Ποια πληροφορία μπορούμε να βρούμε μέσα από το query στο v$SQL;
Με το query αυτό μπορούμε να δούμε τα παρακάτω:
- Το SQL Text
- Την τελευταία φορά που έτρεξε
- Πόσες φορές έχει τρέξει μέχρι που φορτώθηκε στην cache
- Ποιος χρήστης το έτρεξε
- Πόση διάρκεια είχε συνολικά
Ο κώδικας
select sql_text, sql_fulltext, sql_id, last_active_time, executions, PARSING_SCHEMA_NAME, round((elapsed_time/1000000),0) Duration_in_Seconds, round((elapsed_time/1000000/60),0) Duration_in_Minutes from v$sql where 1=1 and last_active_time > TO_DATE('2021-10-01 01:00:00', 'YYYY-MM-DD HH-MI-SS') and elapsed_time/1000000 > 0 --duration in seconds and upper(service) = (select upper(value) from v$parameter where name like '%service_name%') and parsing_schema_name not in ('SYS','SYSMAN','AUDSYS') and executions > 0 --and parsing_schema_name ='STRATOS' order by elapsed_time desc;
Τα αποτελέσματα που θα επιστρέψει θα είναι όπως βλέπουμε ενδεικτικά στην παρακάτω εικόνα: