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

Συμπτώματα

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

  • Ένα συνδεδεμένο διακομιστή ρυθμίζεται μεταξύ ενός τοπικού διακομιστή και έναν απομακρυσμένο διακομιστή ότι και τα δύο έχουν παρουσίες 2012 του Microsoft SQL Server.

  • Ο τοπικός διακομιστής ρυθμίζεται χρησιμοποιώντας μία συρραφή, όπως μια συρραφή διάκριση πεζών-κεφαλαίων.

  • Ο απομακρυσμένος διακομιστής έχει ένα αντικείμενο που έχει ρυθμιστεί σε μια διαφορετική κατάταξη από τον τοπικό διακομιστή, όπως η συρραφή με διάκριση πεζών-κεφαλαίων.

  • Πραγματοποιείται μια σύνδεση από το πρόγραμμα οδήγησης JDBC της Microsoft για τον SQL Server, το πρόγραμμα οδήγησης Microsoft ODBC για SQL Server, η υπηρεσία παροχής SQL OLE DB ή SQL Native Client στον τοπικό διακομιστή.

  • Το πρόγραμμα οδήγησης εκτελείται ένα ερώτημα ενημέρωσης Transact-SQL ως μια έτοιμη πρόταση που καλεί τη διαδικασία sp_prepexec αποθηκεύονται στον τοπικό διακομιστή.

  • Το ερώτημα ενημερώνει έναν πίνακα στον απομακρυσμένο διακομιστή. Αυτό περιλαμβάνει ένα αντικείμενο στήλη που χρησιμοποιεί μια διαφορετική κατάταξη από τον τοπικό διακομιστή.

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

Για παράδειγμα, το ερώτημα είναι έτοιμη στον τοπικό διακομιστή που έχει προεπιλογή συρραφής διάκριση πεζών-κεφαλαίων και ο απομακρυσμένος διακομιστής έχει έναν πίνακα T1 που περιέχει μια στήλη που είναι διάκριση πεζών-κεφαλαίων. Η ενημερωμένη έκδοση θα σαρώσει όλες τις γραμμές του Τ1.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Αιτία

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

Κάθε νέα αθροιστική ενημερωμένη έκδοση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ασφαλείας διορθώνει που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Αποσύρετε τις πιο πρόσφατες αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server:


Πληροφορίες άμεσης επιδιόρθωσηςΜια υποστηριζόμενη άμεση επιδιόρθωση είναι διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η άμεση επιδιόρθωση προορίζεται για τη διόρθωση μόνο του προβλήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε αυτήν την άμεση επιδιόρθωση μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο πρόβλημα.

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

Σημείωση Εάν προκύψουν πρόσθετα ζητήματα ή απαιτείται αντιμετώπιση προβλημάτων, ίσως χρειαστεί να δημιουργήσετε ξεχωριστή αίτηση εξυπηρέτησης. Για πρόσθετες ερωτήσεις υποστήριξης και θέματα που δεν αφορούν τη συγκεκριμένη άμεση επιδιόρθωση, ισχύουν οι συνηθισμένες χρεώσεις υποστήριξης. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσία εξυπηρέτησης πελατών της Microsoft και υποστήριξη ή για να δημιουργήσετε μια ξεχωριστή αίτηση εξυπηρέτησης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:

http://support.microsoft.com/contactus/?ws=supportΣημείωση Η φόρμα "Διαθέσιμη λήψη άμεσης επιδιόρθωσης" εμφανίζει τις γλώσσες για τις οποίες είναι διαθέσιμη η άμεση επιδιόρθωση. Εάν η γλώσσα σας δεν εμφανίζεται, τότε η άμεση επιδιόρθωση δεν είναι διαθέσιμη για αυτήν τη γλώσσα.

ΠροϋποθέσειςΓια να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε εγκατεστημένο το SQL Server 2012.

Πληροφορίες μητρώουΔεν χρειάζεται να αλλάξετε το μητρώο, αφού εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

Πληροφορίες αντικατάστασης άμεσης επιδιόρθωσηςΑυτή η επείγουσα επιδιόρθωση δεν αντικαθιστά άλλες επείγουσες επιδιορθώσεις.


Κατάσταση

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

Εναλλακτικός τρόπος αντιμετώπισης

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

  • Μην χρησιμοποιείτε το έτοιμων προτάσεων στον πηγαίο κώδικα εφαρμογής προγράμματος-πελάτη. Μπορείτε να χρησιμοποιήσετε ad-hoc δηλώσεις ή οι δηλώσεις που είναι δυνατή η κλήση όπως αποθηκευμένες διαδικασίες αν το πρόγραμμα οδήγησης υποστηρίζει αυτές τις διασυνδέσεις.

  • Χρήση συρραφής που ταιριάζουν και στους δύο διακομιστές.

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

Για να ενεργοποιήσετε τη σημαία παρακολούθησης, προσθέστε την παράμετρο εκκίνησης -T4199 ή DBCC TRACEON(4199,-1) πριν την έτοιμη πρόταση έχει μεταγλωττιστεί ώστε να ενεργοποιήσετε τη συμπεριφορά της.

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

  • Πριν από την εκκίνηση του SQL Server, χρησιμοποιήστε το Microsoft SQL Server Configuration Manager, κάντε δεξιό κλικ στην παρουσία που επηρεάζονται και προσθέστε την παράμετρο εκκίνησης -T4199 έτσι ώστε να παραμένει από διάφορες επανεκκινήσεις και όλες τις συνδέσεις με την παρουσία στο μέλλον.

  • Δυναμικά να ενεργοποιήσετε τη ρύθμιση κατά το χρόνο εκτέλεσης όταν γίνεται εκκίνηση της υπηρεσίας και καθολικά για όλες τις "(-1) συνδέσεις." Θα πρέπει να ελευθερώσετε τη μνήμη cache διαδικασία εάν σκοπεύετε να κάνετε δοκιμές με το διακόπτη ενεργοποιημένη ή απενεργοποιημένη.

    Χρησιμοποιήστε τα ακόλουθα για να ενεργοποιήσετε τη ρύθμιση καθολικά και δυναμικά:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Χρησιμοποιήστε τα ακόλουθα για να απενεργοποιήσετε τη ρύθμιση καθολικά και δυναμικά:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


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

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

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

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

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

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

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

×