Σύγκριση ταξινομήσεις SQL σε συρραφές των Windows

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 322112 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Στον Microsoft SQL Server 2000 και τον Microsoft SQL Server 2005, "Συρραφή" Καθορίζει πώς οι συμβολοσειρές σύγκριση και να ταξινομηθεί, και τι χαρακτήρα σύνολο χρησιμοποιείται για μη Unicode δεδομένα. SQL Server 2000 υποστηρίζει δύο τύπους ταξινομήσεις:
  • Οι συρραφές SQL
  • Συρραφές των Windows
Για μια περιγραφή κάθε τύπο συρραφής και ενός αγαθού Επισκόπηση του τρόπου να αποφασίσετε ποια συρραφής για να χρησιμοποιήσετε, ανατρέξτε στο θέμα "Ταξινομήσεις επιλέγοντας" SQL Server 2000 Books Online ή ανατρέξτε στο θέμα "Τύποι Συρραφή" SQL Server 2005 Books Online.

Αυτό το άρθρο ασχολείται με πρόσθετα ζητήματα που ενδέχεται να επηρεάσουν σας απόφαση σχετικά με το αν θέλετε να επιλέξετε μια συρραφή Windows ή μια Συρραφή SQL όταν εγκατάσταση του SQL Server 2000 ή SQL Server 2005.

Περισσότερες πληροφορίες

Σημασιολογία συρραφής

Για μια συρραφή Windows, είναι η σύγκριση των δεδομένων μη-Unicode υλοποιηθεί χρησιμοποιώντας τον ίδιο αλγόριθμο ως δεδομένα Unicode. Δύο Unicode και Ταξινόμηση μη Unicode είναι συμβατές με τους κανόνες της σύγκρισης συμβολοσειράς σε ένα συγκεκριμένο η έκδοση των Windows. Αυτό παρέχει συνοχή μεταξύ τους τύπους δεδομένων στον SQL Server. Επιτρέπει επίσης τους προγραμματιστές που χρησιμοποιούν το CompareString Συνάρτηση Win32 API για να ταξινομήσετε συμβολοσειρές στην εφαρμογή τους, χρησιμοποιώντας το ίδιους κανόνες που χρησιμοποιεί το διακομιστή SQL.

Σε μια Συρραφή SQL, SQL Server Ορίζει σύγκρισης διαφορετική σημασιολογία για μη Unicode δεδομένα. Βάσεων SQL Server Αυτές οι σημασιολογία σύγκρισης σε SQL "Ταξινόμηση". Για μια αντιστοίχιση σειρές ταξινόμησης να συρραφές SQL, ανατρέξτε στο θέμα "Όνομα Συρραφή SQL" στα βιβλία του SQL Server Ηλεκτρονικά.

Μια Συρραφή SQL οι κανόνες για την ταξινόμηση δεδομένων μη Unicode είναι συμβατό με οποιαδήποτε ρουτίνα ταξινόμησης που παρέχεται από τα Microsoft Windows λειτουργικό σύστημα Ωστόσο, η ταξινόμηση δεδομένων Unicode είναι συμβατό με μια συγκεκριμένη έκδοση των Windows κανόνες ταξινόμησης. Επειδή οι κανόνες σύγκρισης για μη Unicode και δεδομένα Unicode είναι διαφορετικά, όταν χρησιμοποιείτε μια Συρραφή SQL ενδέχεται να δείτε διαφορετικά αποτελέσματα για συγκρίσεις τους ίδιους χαρακτήρες ανάλογα με τον τύπο βάσης δεδομένων. Για παράδειγμα, εάν χρησιμοποιείτε την SQL Συρραφή "SQL_Latin1_General_CP1_CI_AS", η μη Unicode συμβολοσειρά 'α-γ' είναι μικρότερο από τη συμβολοσειρά 'ab' επειδή το ενωτικό ("-") ταξινομείται ως ξεχωριστό χαρακτήρα που βρίσκεται πριν από το "b". Ωστόσο, εάν μετατρέψετε αυτές τις συμβολοσειρές Unicode και εκτέλεση ίδια σύγκρισης, η συμβολοσειρά Unicode έαν το Συμβούλιο c» θεωρείται μεγαλύτερη από N'ab' επειδή οι κανόνες ταξινόμησης Unicode χρησιμοποιούν μια ταξινόμηση"word" που παραβλέπει το ενωτικό.

Συμβολοσειρά σύγκριση επιδόσεων

Ταξινόμηση Unicode κανόνες είναι πολύ πιο πολύπλοκα από τους κανόνες για ένα σειρά ταξινόμησης Unicode SQL. Όταν ο SQL Server, συγκρίνει δεδομένα Unicode, το χαρακτήρες αντιστοιχίζονται βάρος που δυναμικά τροποποιηθεί με βάση το τοπικές ρυθμίσεις της συρραφής. Δεδομένων επίσης τροποποιηθεί συγκριτικά ρυθμίσεις στυλ αυτών ως πλάτος, έμφασης ή ευαισθησία κάνα. Οι ρουτίνες ταξινόμησης Unicode υποστηρίζουν περισσότερες συμπεριφορές Intelligent ταξινόμησης, όπως ταξινόμηση από το word.

Επιπλέον, επειδή οι ρουτίνες πρέπει να χειριστείτε δεδομένα Unicode είναι αρκετά ευέλικτες ώστε να χειριστεί την ταξινόμηση και τη σύγκριση των αρκετά χιλιάδες διακριτές χαρακτήρες αντί για μέγιστη 255 χαρακτήρες που πιο Σειρές ταξινόμησης SQL Server μπορεί να χειριστεί. Για αυτούς τους λόγους, σύγκρισης συμβολοσειράς raw εργασία που χρησιμοποιεί Unicode κανόνες ταξινόμησης είναι συνήθως πιο ακριβοί από άποψη του χρόνου και κύκλους Επεξεργαστή από σύγκριση παρόμοιων συμβολοσειράς που χρησιμοποιεί ένα σειρά ταξινόμησης Unicode SQL.

Τι σημαίνει αυτό για την ενδεχόμενη Συνδυασμοί τύπων συρραφής στο διακομιστή SQL και τύπους δεδομένων:
  • Εάν η αποθήκευση και χειρισμό των δεδομένων σας με χρήση Οι τύποι δεδομένων μη-Unicode)CHAR, varchar, κείμενο), και χρησιμοποιείτε μια Συρραφή SQL, θα είναι οι συγκρίσεις συμβολοσειρών Εκτέλεση με μια σειρά ταξινόμησης Unicode SQL.
  • Εάν η αποθήκευση και χειρισμό των δεδομένων σας με χρήση Οι τύποι δεδομένων μη-Unicode)CHAR, varchar, κείμενο), και χρησιμοποιείτε μια συρραφή Windows, θα συγκρίσεις συμβολοσειρών η εκτέλεση Unicode κανόνες ταξινόμησης. Αυτό μπορεί να προκαλέσει ορισμένες λειτουργίες που είναι ασυνήθιστα εξαρτάται από τη συμβολοσειρά ταξινόμηση επιδόσεων να διαρκέσει περισσότερο και Για να χρησιμοποιήσετε περισσότερες CPU από μια παρόμοια λειτουργία που εκτελείται με SQL Συρραφή.
  • Εάν χρησιμοποιείτε (τύποι δεδομένων Unicodenchar, nvarchar, ntext), δεν υπάρχει διαφορά στη συμπεριφορά ταξινόμησης για την SQL και συρραφές των Windows. Και τα δύο θα χρησιμοποιήσει Unicode κανόνες ταξινόμησης.
Γενικά, ο βαθμός απόδοσης διαφορά μεταξύ της Τα Windows και τις ταξινομήσεις SQL δεν θα είναι σημαντικές. Μόνο η διαφορά εμφανίζεται αν ένα φόρτο εργασίας είναι δεσμευμένο CPU, αντί να περιορισμός I/O ή ταχύτητα του δικτύου και πιο αυτήν τη CPU προκαλείται επιβάρυνση από το επιβάρυνση της χειραγώγησης της συμβολοσειράς ή συγκρίσεις εκτελούνται στον SQL Server. Ένα παράδειγμα μιας εφαρμογής, όπου μπορεί να προφέρεται διαφορά επιδόσεων είναι ένα σύστημα όπου μια εφαρμογή μεταβιβάζει μια τιμή long συμβολοσειρά SQL Server αποθηκευμένη διαδικασία. Αποθηκευμένη διαδικασία κατόπιν αναλύει τη συμβολοσειρά μέσω εκτεταμένων χρήση συναρτήσεις Transact-SQL συμβολοσειρά χειρισμό όπως CHARINDEX ή PATINDEX. Εάν το φόρτο εργασίας είναι αρκετά μονοδιάστατη και κυριαρχούν εκτελέσεις της Αυτή η συμβολοσειρά ανάλυση αποθηκευμένη διαδικασία, τη διαφορά απόδοσης μεταξύ ενός Συρραφή SQL και μια συρραφή Windows μπορεί να είναι αισθητές. Ωστόσο, η σχεδίαση Οι περισσότερες εφαρμογές δεν οδηγεί σε μια κατάσταση όπου οι επιδόσεις διαφορά είναι σημαντική.

Συστάσεις

  1. Παρέχεται για συμβατότητα με συρραφές SQL παλαιότερες εκδόσεις του SQL Server. Συρραφές των Windows παρέχουν σταθερή συμβολοσειρά συγκρίσεις για δύο Unicode και για μη Unicode κειμένου στον SQL Server που είναι συμφωνεί επίσης με συγκρίσεις συμβολοσειρών στο λειτουργικό σύστημα των Windows. Για Αυτές οι αιτίες συρραφές των Windows προτιμούνται εκτός εάν οι παλαιότερες εκδόσεις ζητήματα συμβατότητας ή ζητήματα ειδικές επιδόσεις που απαιτούν SQL Συρραφή.
  2. Εάν εξετάζετε μια Συρραφή SQL που βασίζονται μόνο σε το χαρακτηριστικά απόδοσης μιας συρραφής SQL που υλοποιούν το απόδοση περισσότερες εφαρμογές επωφεληθούν σημαντικά από μια αλλαγή στην κατάταξη. Βεβαιωθείτε ότι έχετε απομονώσει ερωτημάτων που εμφανίζουν όφελος από μια Συρραφή SQL. Μόλις προσδιορίσετε τα ερωτήματα που επηρεάζονται, εξετάστε το παρακάτω εναλλακτικές λύσεις για την αλλαγή συρραφής. Και οι δύο αυτές τις εναλλακτικές λύσεις ενδέχεται να παρέχουν όφελος επιδόσεων που είναι μεγαλύτερος από ό, τι θα βλέπετε αν αλλάξετε τη συρραφή παρουσία μια Συρραφή SQL:
    1. Εάν η επιβάρυνση για τις συρραφές των Windows αποτυπωθούν σε Ρουτίνες Transact-SQL που εκτελούν χειρισμό ρητή συμβολοσειρά ή την ανάλυση, και εάν χρησιμοποιείτε τύποι δεδομένων μη Unicode, μπορεί να θέλετε να καθορίσετε μια Συρραφή SQL ή ένα δυαδικό αρχείο Συρραφή Windows για τη λειτουργία που εκτελείται συχνά και που είναι πιο ακριβά. Υποθέστε ότι χρησιμοποιείτε τη συνάρτηση PATINDEX για να προσδιορίσετε αν ένα στήλη κειμένου σε έναν πίνακα περιέχει το χαρακτήρα "x". Εάν επιβάλλετε μια Συρραφή SQL για το συγκεκριμένο σύγκριση λειτουργία και να συνεχίσετε να χρησιμοποιείτε Windows Συρραφή της βάσης δεδομένων και της εφαρμογής, δεν χρειάζεται να Αλλαγή της συρραφής για ολόκληρο το σύστημα:
      SELECT PATINDEX ('%x%', MemoFld COLLATE SQL_Latin1_General_Cp1_CI_AS) FROM ...
    2. Εάν η επιβάρυνση για τις συρραφές των Windows αποτυπωθούν σε μονότονη περισσότερα ερωτήματα που κάνουν δεν χρήση πολύπλοκων συμβολοσειρά λειτουργίες χειρισμό, Οι βελτιωμένες σχεδιάσεις ευρετήριο ή το ερώτημα μπορεί να παρέχει βελτιώσεις που εκείνες που dwarf θα δείτε, αλλάζοντας μια Συρραφή SQL. Ένα ερώτημα που να πληρούται από ιδιαίτερα επιλεκτική επιδιώκει στην κατάλληλη ευρετήρια δεν θα είναι ευαίσθητα σε δευτερεύουσες μεταβολές του κόστους σύγκρισης συμβολοσειράς. Σε αντίθεση, μια μικρή ποσότητα επιβάρυνση ανά σύγκρισης συμβολοσειράς να προσθέσετε γρήγορα σε ένα ερώτημα που πρέπει να εκτελέσετε μια σάρωση πίνακα και να συγκρίνετε μια συγκεκριμένη τιμή σε κάθε εκατομμύρια γραμμές. Εάν μπορείτε να αποτρέψετε μεγάλο πίνακα ή ευρετήριο σαρώνει από σχέδιο ερωτήματος, αλλάζοντας το ευρετήριο ή το ίδιο ερώτημα, θα εκτελέσει πολύ ταχύτερα από ότι αν αλλάξετε το ερώτημά σας για μια Συρραφή SQL.
Σημείωση Υπάρχει ένας τρίτος τύπος συρραφής που είναι μια παραλλαγή του SQL Συρραφή. Η τρίτη συρραφής είναι γνωστή ως "Συρραφή συμβατότητας" ή ένα "obsolescent Συρραφή". Μια συρραφή συμβατότητας είναι ένα σύνολο ταξινόμηση και σύγκριση κανόνες που έχουν ένα όνομα προκαθορισμένες συρραφής στον SQL Server 2000. Για παράδειγμα, εάν ρυθμίσετε τον SQL Server 7.0 με ένα ασυνεπής διάκριση πεζών-κεφαλαίων ρύθμιση για Unicode και για μη Unicode δεδομένα, θα έχετε μια Συρραφή συμβατότητας όταν κάνετε αναβάθμιση σε αυτήν την παρουσία του SQL Server 7.0 σε SQL Server 2000. Στη συζήτηση σε αυτό το άρθρο, πληροφορίες σχετικά με Οι συρραφές SQL ισχύει επίσης για συμβατότητα ταξινομήσεις.

Για περισσότερες πληροφορίες σχετικά με τη συμβατότητα ταξινομήσεις, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
270042INF: Περιγραφή ταξινομήσεις SQL Server συμβατότητας

Ιδιότητες

Αναγν. άρθρου: 322112 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbhowto kbinfo kbmt KB322112 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:322112

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com