MySQL Stored Procedures

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Manin
Δημοσιεύσεις: 50
Εγγραφή: 22 Μαρ 2006 20:42

MySQL Stored Procedures

Δημοσίευση από Manin » 13 Ιαν 2009 12:58

Καλημέρα..
Προσπαθώ να φτιάξω μια εφαρμογή στη VB 2008 για μια βάση MySQl.
Θέλω να φτιάξω την αναζήτηση, αλλά έχω μπερδευτεί.
Ο πίνακάς μου έχει 25 στήλες.
Χρησιμοποιώ τη SELECT μέσα από τη vb για κάθε περίπτωση ξεχωριστά με textboxes;
Φτιάχνω queries στη βάση;
Φτιάχνω stored procedures;
Ποια είναι η καλύτερη περίπτωση και με γρήγορα αποτελέσματα;
Όποιος φοβάται, πέφτει και κοιμάται.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

MySQL Stored Procedures

Δημοσίευση από soteres2002 » 13 Ιαν 2009 14:00

Αυτό που έχεις να κάνεις ώς σχεδιαστής της βάσης για να έχεις γενικώς καλά αποτελέσματα είναι να σχεδιάσεις σωστά τη βάση σου, και αυτό συνήθως γίνεται σχεδιάζοντάς την ώστε να ακολουθεί διάφορες ιδιότητες (συγκεκριμένα να ανήκει σε κάποια κανονική μορφή, normal forms ). Στο http://en.wikipedia.org/wiki/Database_normalization θα βρείς μερικά πραγματάκια για κανονικοποίηση ΒΔ.

Πέρα από αυτά τα θεωρητικά, τα γρήγορα αποτελέσματα εξαρτώνται από την ΒΔ που χρησιμοποιείς. Επίσης, τα stored procedures μερικές φορές μπορεί να δίνουν καλύτερη απόδοση κυρίως επειδή αποθηκεύονται στην ΒΔ και η επεξεργασία τους γίνεται μόνο 1 φορά (το μόνο κόστος είναι η κλήση τους επειδή η λογική τους προ-μεταγλωττίζεται κατά τη δήλωση), έτσι κάθε φορά που ζητούνται δεδομένα από το σχήμα της βάσης, παραλείπονται κάποια βήματα από την ΒΔ. Αντίθετα, ένα "κλασσικό" SQL statement όπως μία SELECT περιλαμβάνει διάφορετικά βήματα (ανάλογα με την ΒΔ που χρησιμοποιείς) όπως (βασικά) parsing, security checking, authorization, ..., retrieval κτλ. Τα stored procedures όμως είναι καλό να τα χρησιμοποιείς όταν έχεις να κάνεις κάποιους υπολογισμούς σε δεδομένα της βάσης (χρησιμοποιώντας και άλλες δομές και δυνατότητες που δίνει η βάση) ή όταν δεν μπορείς να ενσωματώσεις κάποια συγκεκριμένη (συνήθως σύνθετη) λογική επεξεργασία στα δεδομένα. Και για το διαταύτα, αν ο σκοπός σου είναι να πάρεις απλά κάποια δεδομένα που ικανοποιούν κάποιες συνθήκες, κάντο με ένα SELECT statement, αρκεί να εξασφαλίσεις ότι ο σχεδιασμός σου για την βάση είναι "καλός", τσιμπώντας τις παραμέτρους αναζήτησης από τα control fields της εφαρμογής σου (textboxes, radio buttons, κτλ).

Επίσης, διάβασε το http://dev.mysql.com/tech-resources/art ... ation.html καθώς και τα reference links στο τέλος.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

MySQL Stored Procedures

Δημοσίευση από cherouvim » 13 Ιαν 2009 14:10

Μετά το normalization που σου πρότεινε ο soteres να αποφύγεις stored procedures και να φέρεις όλα τα fields ανεξαρτήτου ποιανού χρειάζεσαι κάθε φορά. Το όφελος σε ταχύτητα είναι μηδαμινό για το project με το οποίο θα ασχολείσαι. Θα έχεις 1 query να συντηρείς μόνο.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

MySQL Stored Procedures

Δημοσίευση από soteres2002 » 13 Ιαν 2009 14:13

Κι εγώ αυτό πιστεύω... Λογικά θα είναι μια σχετικά μικρή βάση.

Manin
Δημοσιεύσεις: 50
Εγγραφή: 22 Μαρ 2006 20:42

MySQL Stored Procedures

Δημοσίευση από Manin » 13 Ιαν 2009 15:16

να στε καλά ρε παιδια
ευχαριστώ
Όποιος φοβάται, πέφτει και κοιμάται.

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες