Πώς βρίσκουμε τα queries με την μεγαλύτερη διάρκεια σε βάση δεδομένων της Oracle

- Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard - 28 Απρίλιος 2025
- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
Στις βάσεις δεδομένων της 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;
Τα αποτελέσματα που θα επιστρέψει θα είναι όπως βλέπουμε ενδεικτικά στην παρακάτω εικόνα:
