Summary
The increasing trend of moving from the old-fashioned centralized database systems into distributed ones significantly increased the query optimization problem's complexity, leading to complicated optimization algorithms based on time and resource-consuming analytical methods.
This study proposes introducing natural language processing techniques combined with Deep Learning architectures as a statistical alternative to the traditional analytical query optimization approach to address this issue.
In the context of this paper, based on the assumption that both the queries in a database and the corresponding optimal execution plans are text sequences, it was investigated whether a sequence-to-sequence deep neural network (Neural Machine Translation) architecture can adequately predict or approximate the optimal execution plan, given a query in an existing database.
The experiment based on the CoSQL dataset which was loaded in a PostgreSQL database and used to generate the experimental dataset. Using the EXPLAIN command for each query on the database, the corresponding optimal execution plan was generated by the database optimizer. The text sequence of each query was fed as input to the neural network and the optimal execution plan was used as the output for model training.
The conducted experiments indicated that the complexity and the sparsity of the input and output sequences exceed the learning capabilities of the proposed deep neural network, producing inefficient or even non-trainable (resource-wise) models. However, the examined architecture shown promising results on extracting valuable insights that the ordinary optimizers can use as hints to conclude faster and more accurate decisions during the optimization process regarding operators' implementation and execution order.
Περίληψη
Η αυξανόμενη τάση μετάβασης από τα παραδοσιακά συγκεντρωμένα συστήματα βάσεων δεδομένων, σε αρχιτεκτονικές που δομούνται από κατανεμημένες μονάδες, αύξησε σημαντικά την πολυπλοκότητα του προβλήματος βελτιστοποίησης ερωτημάτων στις βάσεις δεδεμένων, οδηγώντας σε περίπλοκους αλγορίθμους βελτιστοποίησης που βασίζονται σε αναλυτικές και στοχαστικές μεθόδους και αυξάνουν σημαντικά τις απαιτήσεις σε χρόνο και πόρους.
Η παρούσα μελέτη προτείνει την χρήση τεχνικών επεξεργασίας φυσικής γλώσσας σε συνδυασμό με αρχιτεκτονικές Νευρωνικών Δικτύων ως στατιστική εναλλακτική λύση στην υφισταμένη αναλυτική προσέγγιση βελτιστοποίησης ερωτημάτων για την αντιμετώπιση αυτού του προβλήματος.
Στα πλαίσια της παρούσας εργασίας, με βαση την παραδοχή ότι τα ερωτήματα σε μια βάση δεδομένων αλλά και το βέλτιστο πλάνο εκτέλεσης, αποτέλεσμα του optimizer της βάσης, πρόκειται για λεκτικές ακολουθίες, εξετάστηκε κατά πόσο μια αρχιτεκτονική sequence-to-sequence βαθύ νευρωνικού δικτύου (
Neural Machine Translation) μπορεί να προβλέψει ή να προσεγγίσει επαρκώς το βελτίστο πλάνο εκτέλεσης, δοθέντος ενός ερωτήματος σε μία υπάρχουσα βάση δεδομένων.
Για την εκτέλεση των πειραμάτων χρησιμοποιήθηκε το σετ δεδομένων CoSQL, το οποίο φορτώθηκε σε μία PostgreSQL βάση. Με τη χρήση της εντολής EXPLAIN για κάθε ερώτημα πάνω στη βάση, παρήχθει το αντίστοιχο βέλτιστο πλάνο εκτέλεσης από τον optimizer της βάσης. Η λεκτική ακολουθία του ερωτήματος τροφοδοτήθηκε σαν είσοδο στο νευρωνικό δικτύο και το πλάνο εκτέλεσης χρησιμοποιήθηκε σαν επιθυμητή έξοδος για την εκπαίδευση του μοντέλου.
Τα πειράματα που διεξήχθησαν έδειξαν ότι η πολυπλοκότητα και η δομή των ακολουθιών εισόδου και εξόδου υπερβαίνουν τις δυνατότητες μάθησης του προτεινόμενου βαθύ νευρωνικού δικτύου, παράγοντας αναποτελεσματικά ή ακόμη και μη εκπαιδεύσιμα μοντέλα. Ωστόσο, η συγκεκριμένη αρχιτεκτονική έδειξε υποσχόμενα αποτελέσματα όσον αφορά την εξαγωγή πολύτιμων πληροφοριών που οι συνήθεις βελτιστοποιητές μπορούν να χρησιμοποιήσουν ως υποδείξεις για να καταλήξουν σε ταχύτερες και ακριβέστερες αποφάσεις κατά τη διαδικασία βελτιστοποίησης όσον αφορά την εφαρμογή και τη σειρά εκτέλεσης των τελεστών.