Ρύθμιση απόδοσης ερωτημάτων σχεσιακής βάσης δεδομένων

Πολλοί πελάτες αντιμετωπίζουν προβλήματα με την απόδοση με τις εφαρμογές αποθήκης δεδομένων. Σε ορισμένες περιπτώσεις, τα ερωτήματα SQL που δημιουργούνται από το Oracle Analytics είναι περίπλοκα για ανάλυση. Αυτό το θέμα παρέχει ορισμένες οδηγίες για το πώς να αναλύετε και να ελαχιστοποιείτε τα προβλήματα απόδοσης που ενδέχεται να προέρχονται από τα ερωτήματα SQL που δημιουργούνται από το Oracle Analytics.

Αυτό το θέμα δεν καλύπτει ζητήματα απόδοσης λόγω προβλημάτων με το δίκτυο, το πρόγραμμα περιήγησης ή την παρουσίαση αναφορών.

Ανάλυση του αρχείου καταγραφής ερωτημάτων για το Oracle Analytics (Απαιτείται επίπεδο καταγραφής 3)

Για πληροφορίες σχετικά με τον τρόπο εύρεσης αυτού του αρχείου καταγραφής ή κατανόησης του περιεχομένου, δείτε το θέμα Συγκέντρωση και ανάλυση αρχείων καταγραφής ερωτημάτων.

  1. Συγκρίνετε τον χρόνο που αφιερώνει το ερώτημά σας στο Oracle Analytics με τον χρόνο που αφιερώνει στη βάση δεδομένων, δηλαδή τον χρόνο απόκρισης σε σχέση με τη διάρκεια φυσικού ερωτήματος. Συνήθως, ο χρόνος που αφιερώνεται στο Oracle Analytics δεν υπερβαίνει τα λίγα δευτερόλεπτα.
  2. Αν ο χρόνος απόκρισης είναι μεγαλύτερος από λίγα δευτερόλεπτα, αναλύστε τα ξεχωριστά βήματα που εκτελούνται στο Oracle Analytics για να εντοπίσετε την αιτία (απαιτείται επίπεδο καταγραφής 5).

Ανάλυση του φυσικού ερωτήματος SQL

  1. Ελέγξτε αν όλοι οι πίνακες που περιλαμβάνονται στο ερώτημα είναι απαραίτητοι. Ελέγξτε για τυχόν πίνακες που είναι συνενωμένοι αλλά δεν περιλαμβάνονται στη φράση SELECT και δεν έχουν εφαρμοσμένα φίλτρα (πραγματικά φίλτρα, όχι συνθήκες συνένωσης).
  2. Προσδιορίστε πόσα φυσικά ερωτήματα και υποερωτήματα δημιουργούνται. Για την ακρίβεια, πόσες φορές το ερώτημα εκτελεί ανάγνωση ενός πίνακα δεδομένων; Σε έναν τέλειο κόσμο, το ερώτημα εκτελεί ανάγνωση ενός μεμονωμένου πίνακα δεδομένων και μόνο μία φορά. Όταν υπάρχουν περισσότεροι από ένας πίνακες δεδομένων, βρείτε τον λόγο και δείτε αν μπορείτε να καταργήσετε κάποιους.
  3. Ελέγξτε για εξαιρούμενες στήλες, μη προσθετικούς κανόνες συνάθροισης (REPORT_AGGREGATE, count(distinct)...), βήματα επιλογής, ένα υποερώτημα στην αναφορά, τελεστές συνόλων (UNION), σύνολα, υποσύνολα, πολλαπλές προβολές και ούτω καθεξής.
  4. Ελέγξτε για τυχόν εξωτερικές συνενώσεις. Ανακαλύψτε από πού προέρχονται και αν μπορείτε να καταργήσετε ορισμένες αλλάζοντας τη σχεδίαση.

Ανάλυση του σχεδίου εκτέλεσης

Αν η βελτιστοποίηση της SQL δεν αρκεί, αναλύστε το σχέδιο εκτέλεσης για να εντοπίσετε τη βασική αιτία του ζητήματος απόδοσης. Ζητήστε βοήθεια από τον διαχειριστή της βάσης δεδομένων σας (DBA). Υπάρχουν τέσσερις κύριοι τρόποι να βελτιώσετε την απόδοση σε αυτό το σημείο:
  1. Μειώστε τον όγκο των κλήσεων εισόδου-εξόδου βελτιώνοντας τις διαδρομές πρόσβασης στα δεδομένα (ευρετήρια).
  2. Μειώστε τον όγκο των κλήσεων εισόδου-εξόδου μειώνοντας τον όγκο των αναγνωσμένων δεδομένων. Για παράδειγμα, μπορείτε να εξετάσετε τα φίλτρα που εφαρμόζονται ή τη δομή του μοντέλου δεδομένων (δείτε την επόμενη ενότητα).
  3. Αυξήστε τον παραλληλισμό (αριθμό νημάτων που χρησιμοποιούνται για την ανάγνωση μεγάλων πινάκων).
  4. Βελτιώστε την ταχύτητα των κλήσεων εισόδου-εξόδου (βελτιώσεις υποδομής, βάση δεδομένων στη μνήμη και ούτω καθεξής).

Έλεγχος και βελτίωση του μοντέλου δεδομένων για να μειωθεί ο όγκος των αναγνωσμένων δεδομένων

  1. Δημιουργήστε πίνακες συνάθροισης.
  2. Χρησιμοποιήστε τον διαχωρισμό.

    Για παράδειγμα, αν οι χρήστες επιλέγουν κυρίως δεδομένα από το τρέχον έτος, τρίμηνο ή μήνα, μπορείτε να διαχωρίσετε τα δεδομένα σε δύο πίνακες: τρέχοντα και αρχειοθετημένα. Στη βάση δεδομένων Oracle, μπορείτε να χρησιμοποιήσετε επίσης τη διαμέριση.

  3. Χρησιμοποιήστε αποκανονικοποίηση για να μειώσετε τον αριθμό των συνενώσεων.
  4. Χωρίστε τους πίνακες για να μειώσετε τον αριθμό στηλών.

    Ο όγκος των αναγνωσμένων δεδομένων δεν εξαρτάται μόνο από τον αριθμό των σειρών σε κάθε πίνακα. Ο όγκος του πίνακα εξαρτάται επίσης από τον αριθμό και το μέγεθος των στηλών του. Για παράδειγμα, μπορείτε να χωρίσετε έναν μεγάλο πίνακα με 500 στήλες σε δύο πίνακες: έναν πίνακα με τις 50 πιο συχνά χρησιμοποιούμενες στήλες και τον άλλον με τις υπόλοιπες 450 στήλες που χρησιμοποιούνται σπάνια.

Πολλά ζητήματα απόδοσης στο Oracle Analytics προέρχονται από την κακή σχεδίαση καθώς αυτή προκαλεί τη δημιουργία ερωτημάτων SQL που δεν είναι τα καταλληλότερα. Με την τροποποίηση της σχεδίασης, μπορείτε να βελτιώσετε τα ερωτήματα SQL που δημιουργεί το Oracle Analytics. Αυτό μπορεί να έχει τεράστια επίδραση, όχι μόνο στην απόδοση των αναφορών σας, αλλά και στον αριθμό των πόρων που χρησιμοποιούνται στη βάση δεδομένων.