Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Διαφορές μεταξύ ΥΠΑΡΧΕΙ & ΣΕ σε SQL

Μια επίμονη πρόκληση για τη χρήση του SQL προσδιορισμό της κατάλληλης χρήσης του ΥΠΑΡΧΕΙ ΣΤΗΝ και φορείς . Οι δύο επιχειρήσεις μπορούν να παράγουν τα ίδια αποτελέσματα , αλλά δεν έχουν πάντα έτσι . Επίσης , δεν υπάρχει ουσιαστική συζήτηση για το πώς κάθε φορέας εκμετάλλευσης είναι βελτιστοποιημένη για την ταχύτητα . Οι χρήστες θα πρέπει να κατανοήσουν τα διαφορετικά χαρακτηριστικά του κάθε επιχειρηματία και να προσπαθήσουμε τόσο να καθορίσει την κατάλληλη λειτουργία . ΣΤΗΝ Operator
Η

Ο χειριστής ΣΕ επιστρέφει μια γραμμή εάν ΟΠΟΥ συσκευασμένων αξία table.field ταιριάζει μια λίστα τιμών IN . IN χρησιμοποιείται συνήθως ως μέρος ενός κεντρικό ερώτημα ή σε συνδυασμό με ένα δευτερεύον ερώτημα

Παράδειγμα 1 : . WHERE Table.Field σε ( 'a', 'b' , ' c' )

παράδειγμα 2 : WHERE Table.Field σε (σετ επιστροφή δευτερεύον ερώτημα των αξιών )
εικόνων ΥΠΑΡΧΕΙ Operator
Η

η ΥΠΑΡΧΕΙ φορέας επιστρέφει όλες τις κύριες γραμμές ερώτημα αν το δευτερεύον ερώτημα περιέχει κάποιες γραμμές .

ΥΠΑΡΧΕΙ χρησιμοποιείται μόνο σε συνδυασμό με ένα δευτερεύον ερώτημα . Οι σειρές επιστρέφονται καθορίζονται από το φιλτράρισμα στο επίπεδο του κύριου ερωτήματος . Παράδειγμα : ΟΠΟΥ ΥΠΑΡΧΕΙ (σετ επιστροφή δευτερεύον ερώτημα των αξιών )

Η διαφορά
Η

ΣΤΗΝ δεν μπορεί να αξιολογήσει τιμές NULL , έτσι ώστε αυτές οι γραμμές είναι πάντα ψευδής και δεν επιστρέφεται .

ΥΠΑΡΧΕΙ μπορεί να αξιολογήσει τιμές NULL , έτσι ώστε αυτές οι γραμμές μπορούν να επιστραφούν .
εικόνων ομοιότητες
Η

ΥΠΑΡΧΕΙ ΣΤΗΝ και τόσο για την υποστήριξη συσχετίζονται και μη συσχετιζόμενα υποερωτήματα, και και οι δύο μπορούν να παράγουν κύρια παρόμοια αποτελέσματα. Όταν συσχετίζονται , ΥΠΑΡΧΕΙ ΣΤΟ αγώνα και ένα κύριο πεδίο ερωτήματος σε ένα δευτερεύον πεδίο (πρώην : main.id = subquery.id ) . Το δευτερεύον ερώτημα αξιολογεί ανά γραμμή , για κάθε αγώνα βρέθηκε . Σε αυτή την περίπτωση , IN και ΥΠΑΡΧΕΙ θα επιστρέψει τις ίδιες γραμμές με βάση παρόμοιες αγώνες id . Όταν η μη - συσχέτιση , ΥΠΑΡΧΕΙ ΣΤΟ διαδικασία και υποερωτήματα τους πρώτα , στη συνέχεια να ταιριάζουν τα αποτελέσματα στο κύριο ερώτημα .
Αποδοσεις των ΥΠΑΡΧΕΙ ΣΤΗΝ και
Η

απόδοση καθορίζεται από τη βάση δεδομένων βελτιστοποίησης και το σχέδιο εκτέλεσης που χρησιμοποιεί για τον κώδικα που εκτελούνται . Για ΥΠΑΡΧΕΙ και IN , η βελτιστοποίηση μπορεί να επιλέξει διαφορετικές διαδρομές . Στην Oracle , αυτό είναι με το να ΜΗΝ ΥΠΑΡΧΕΙ αποφυγή αντι -join , και συνήθως αποδεικνύεται ταχύτερη από ό, ΟΧΙ ΣΕ . Στο τέλος , κάποια δοκιμή και σφάλμα που απαιτούνται για τη συγκριτική αξιολόγηση την ταχύτερη διαδρομή , ανάλογα με τη βάση δεδομένων και είναι έκδοση που χρησιμοποιείται . Να είστε βέβαιος να χρησιμοποιήσει το φορέα που εξασφαλίζει τα σωστά αποτελέσματα πρώτα , στη συνέχεια, αν όλα είναι το ίδιο , δοκιμάστε υποκατάστασης ΥΠΑΡΧΕΙ ΣΕ και να δούμε πραγματικά ποια είναι ταχύτερη .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα