Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Η Microsoft διανέμει τις επιδιορθώσεις του Microsoft SQL Server 2008 Service Pack 1 (SP1) ή SQL 2008 R2 ως ένα αρχείο με δυνατότητα λήψης. Επειδή οι επιδιορθώσεις είναι αθροιστικές, κάθε νέα έκδοση περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με τον προηγούμενο SQL Server 2008 SP1 ή την έκδοση της ενημέρωσης κώδικα SQL 2008 R2.

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:

  • Στον Microsoft SQL Server 2008 ή στον SQL Server 2008 R2, μπορείτε να εκτελέσετε ένα ερώτημα σε μια συγκεκριμένη στήλη σε έναν πίνακα που έχει πολλές γραμμές. Το ερώτημα έχει ένα κατηγόρημα CONTAINs σε έναν όρο WHERE.

  • Ο όρος που χρησιμοποιείτε για το κατηγόρημα περιέχει περιέχει μια λέξη. Η λέξη εμφανίζεται σε ορισμένες στήλες που περιλαμβάνονται σε ένα ευρετήριο πλήρους κειμένου του πίνακα.

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

SELECT count(*)FROM dbo.MyLargeTable whereCONTAINS (email_address, '"name@contoso.com"')

Σημειώσεις

  • Ας υποθέσουμε ότι το ". com" εμφανίζεται σε ορισμένες στήλες που περιλαμβάνονται σε ένα ευρετήριο πλήρους κειμένου του πίνακα.

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

Αιτία

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

Επίλυση

Πληροφορίες αθροιστικής ενημέρωσης

SQL Server 2008 Service Pack 2

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε για πρώτη φορά στην αθροιστική ενημερωμένη έκδοση 4 για τον SQL Server 2008 Service Pack 2. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2527180 Αθροιστική ενημερωμένη έκδοση πακέτου 4 για τον SQL Server 2008 Service Pack 2Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

2402659 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 2 Οι επείγουσες επιδιορθώσεις του Microsoft SQL Server 2008 δημιουργούνται για συγκεκριμένα Service Pack του SQL Server. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 2 σε μια εγκατάσταση του SQL Server 2008 Service Pack 2. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση που παρέχεται σε ένα Service Pack του SQL Server περιλαμβάνεται στο επόμενο Service Pack του SQL Server.Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 13. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστικής ενημερωμένης έκδοσης για τον SQL Server 2008 SP1, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2497673 Αθροιστική ενημερωμένη έκδοση πακέτου 13 για τον SQL Server 2008 Service Pack 1 Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 SP1 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

970365 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 1

SQL Server 2008 R2 Service Pack 1

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 1 για τον SQL Server 2008 R2 Service Pack 1. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2544793 Πακέτο αθροιστικών ενημερώσεων 1 για τον SQL Server 2008 R2 Service Pack 1Σημείωση Επειδή οι εκδόσεις είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη έκδοση της ενημέρωσης κώδικα του SQL Server 2008 R2. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

2567616 Οι εκδόσεις του SQL Server 2008 R2 που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 7. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστικής ενημερωμένης έκδοσης για τον SQL Server 2008 R2, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2507770 Πακέτο αθροιστικών ενημερώσεων 7 για τον SQL Server 2008 R2 Σημείωση Επειδή οι εκδόσεις είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη έκδοση της ενημέρωσης κώδικα του SQL Server 2008 R2. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

981356 Οι εκδόσεις του SQL Server 2008 R2 που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 R2

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".

Λύση

Για να επιλύσετε αυτό το πρόβλημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:

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

    SELECT count(*) FROM dbo.MyLargeTabel where CONTAINS (*, '"test@contoso.com"')
  • Πραγματοποιήστε τη λέξη "Διακοπή" του Word που εμφανίζεται συχνά, χρησιμοποιώντας μια πρόταση ALTER κειμένου STOPLIST. Για περισσότερες πληροφορίες σχετικά με τη δήλωση ALTER κειμένου STOPLIST για την Transact-SQL, επισκεφθείτε την ακόλουθη τοποθεσία Web του Microsoft Developer Network (MSDN): Γενικές πληροφορίες σχετικά με τη δήλωση Alter κειμένου STOPLIST για την Transact-SQL

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

Για να παρακολουθήσετε τον χρόνο μεταγλώττισης του ερωτήματος, ακολουθήστε τα παρακάτω βήματα:

  1. Καταγράψτε ένα ίχνος SQL Profiler όταν εκτελείτε το ερώτημα. Για να το κάνετε αυτό, Παρακολουθήστε τα συμβάντα TSQL: BatchCompleted και TSQL: StmtCompleted ή τα συμβάντα RPC: Complete και SP: StmtCompleted.

  2. Σημειώστε το χρόνο της δέσμης CPU και την ώρα της CPU δήλωσης.

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

Για περισσότερες πληροφορίες σχετικά με τον τρόπο χρήσης ενός κατηγόρημα CONTAINs για την Transact-SQL, επισκεφθείτε την ακόλουθη τοποθεσία Web του Microsoft Development Network (MSDN):

Πώς μπορείτε να χρησιμοποιήσετε ένα κατηγόρημα περιέχει για την Transact-SQL

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×