Ισχύει για
SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup

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

Συμπτώματα

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

  • Έχετε ένα μοντέλο και οντότητα Master Data Services (MDS) που έχει ένα χαρακτηριστικό που βασίζεται σε τομέα στο Microsoft SQL Server 2008 R2. Το χαρακτηριστικό που βασίζεται σε τομέα έχει σχεδιαστεί για να αναφέρεται μόνο του στο ίδιο χαρακτηριστικό.Για παράδειγμα, έχετε μια οντότητα υπαλλήλου που έχει ένα χαρακτηριστικό ManagerName. Το χαρακτηριστικό ManagerName αναφέρεται στην ίδια οντότητα Υπάλληλος.Σημείωση Ένας διευθυντής είναι επίσης ένα είδος υπαλλήλου.

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

  • Μπορείτε να φορτώσετε τιμές δεδομένων που περιέχουν μία ή περισσότερες κυκλικές αναφορές στον ενδιάμεσο πίνακα MDS. Αυτή η συμπεριφορά προκαλεί κυκλική αναφορά και ο πρώτος κόμβος στο χαρακτηριστικό δεν αποτελεί μέρος του κύκλου.Για παράδειγμα, το παρακάτω μοτίβο δεδομένων δείχνει μια κυκλική αναφορά. Ωστόσο, η τιμή μέλους Member1 δεν αποτελεί μέρος του κύκλου:

    Μέλος1 --χαρακτηριστικό διαχειριστή--> μέλος2 --χαρακτηριστικό διαχειριστή--> Μέλος3 --χαρακτηριστικό διευθυντή--> Μέλος2 --χαρακτηριστικό διαχειριστή--> Μέλος3

    insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
  • Μπορείτε να χρησιμοποιήσετε μία από τις παρακάτω μεθόδους για τη φόρτωση τιμών δεδομένων στην οντότητα, χρησιμοποιώντας τη διαδικασία ενδιάμεσου σταδίου mds:

    • Εκτελέστε το Exec [mdm]. Διαδικασία [udpStagingSweep] χρησιμοποιώντας τις απαραίτητες παραμέτρους για την επεξεργασία των δεδομένων σταδιακής επεξεργασίας.

    • Κάντε κλικ στην επιλογή Διαχείριση ενοποίησης για να επισκεφθείτε την αρχική σελίδα της τοποθεσίας Web του MDS. Στη σελίδα Εισαγωγή εξαγωγής , στην κεφαλίδα της ενότητας Αταίριαστες ενδιάμεσες εγγραφές , κάντε κλικ στο εικονίδιο γραναζιού για να επεξεργαστείτε τις εγγραφές για ένα συγκεκριμένο μοντέλο και έκδοση.

Σε αυτό το σενάριο, η διαδικασία παρασκηνίου κατά τη διάρκεια της διαδικασίας ενδιάμεσου σταδίου μπορεί να αντιμετωπίσει έναν άπειρο βρόχο όταν η διαδικασία παρασκηνίου καλεί εσωτερικά το [mdm]. Διαδικασία [udpMemberRecursiveCircularCheck].

Αιτία

Αυτό το πρόβλημα παρουσιάζεται επειδή οι διαδικασίες udpStagingSweep και udpStagingMemberAttributeSave καλούν τη διαδικασία udpMemberRecursiveCircularCheck μία φορά για κάθε γραμμή ενδιάμεσου σταδίου. Αυτή η συμπεριφορά θα πρέπει να ελέγξει μια τιμή χαρακτηριστικού που βασίζεται σε τομέα και επιστρέφει ένα σφάλμα εάν η γραμμή ενδιάμεσου σταδίου προκαλέσει μια κυκλική αναφορά μαζί με τα υπάρχοντα δεδομένα. Αφού ελεγχθούν όλες οι σειρές ενδιάμεσου σταδίου, λαμβάνετε τα ακόλουθα αποτελέσματα:

  • Οι γραμμές ενδιάμεσου σταδίου χωρίς σφάλματα εφαρμόζονται.

  • Οι γραμμές ενδιάμεσου σταδίου με σφάλματα σημειώνονται με έναν κωδικό σφάλματος.

Εάν οι συνθήκες που περιγράφονται στην ενότητα "Συμπτώματα" είναι αληθείς, τότε [mdm]. [udpMemberRecursiveCircularCheck] η διαδικασία επαναλαμβάνεται επ' αόριστον μέχρι να εξαντληθούν οι πόροι του διακομιστή ή να παρουσιαστεί λήξη χρονικού θέματος.

Επίλυση

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

SQL Server 2008 R2 Service Pack 1

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

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

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

Κατάσταση

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

Λύση

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

  • Για να αποτρέψετε το πρόβλημα, ακολουθήστε τα παρακάτω βήματα:

    1. Εξετάστε με μη αυτόματο τρόπο τις τιμές δεδομένων μέλους που εισάγονται στον ενδιάμεσο πίνακα πριν εκτελέσετε τη διαδικασία προεργασίας.

    2. Βεβαιωθείτε ότι όλες οι τιμές μέλους για οποιαδήποτε χαρακτηριστικά που βασίζονται σε τομέα δεν περιέχουν κυκλικές αναφορές που περιγράφονται στην ενότητα "Συμπτώματα"

  • Όταν παρουσιαστεί το πρόβλημα που περιγράφεται στην ενότητα "Συμπτώματα", ακολουθήστε τα παρακάτω βήματα για να διορθώσετε το πρόβλημα:

    1. Προσδιορίστε την περίοδο λειτουργίας που εκτελείται στον άπειρο βρόχο.

    2. Σκοτώστε την συνεδρία για να σταματήσετε την επανάληψη.

    3. Διαγράψτε τις τιμές κυκλικής αναφοράς από τον ενδιάμεσο πίνακα πριν από την εκ νέου επεξεργασία της κυκλικής αναφοράς.

Σημειώσεις

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

    • Χρησιμοποιήστε μια οθόνη δραστηριότητας στο Microsoft SQL Server Management Studio.

    • Επιλέξτε από το sys.sysprocesses ή sys.dm_exec_requests δυναμική προβολή διαχείρισης (DMV) για να προσδιορίσετε τις περιόδους λειτουργίας που λειτουργούν μέσα στη βάση δεδομένων MDS στην οποία η CPU και ο χρόνος αυξάνεται γρήγορα. Βεβαιωθείτε ότι το τρέχον ερώτημα που εκτελείται στην περίοδο λειτουργίας συμφωνεί με τα ονόματα διαδικασιών που περιγράφονται στην ενότητα "Αιτία".

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

    • Κάντε δεξί κλικ στο μενού "Λεπτομέρειες" σε κάθε διεργασία της λίστας διεργασιών παρακολούθησης δραστηριότητας.

    • Χρησιμοποιήστε μία από τις ακόλουθες παραμέτρους:

      • Η εντολή DBCC INPUTBUFFER (spid) μαζί με το αναγνωριστικό περιόδου λειτουργίας.

      • Η συνάρτηση SELECT * FROM sys.dm_exec_sql_text(sqlhandle) μαζί με την αντίστοιχη παράμετρο λαβής SQL κατά τη χρήση της εξόδου DMV.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με το πώς μπορείτε να ανοίξετε μια οθόνη δραστηριότητας στο SQL Server Management Studio, επισκεφθείτε την ακόλουθη τοποθεσία Web του MSDN:

Πώς να ανοίξετε μια οθόνη δραστηριότητας στο SQL Server Management StudioΓια περισσότερες πληροφορίες σχετικά με τη σύνταξη KILL, επισκεφθείτε την ακόλουθη τοποθεσία Web του MSDN:

Γενικές πληροφορίες σχετικά με τη σύνταξη KILLΓια περισσότερες πληροφορίες σχετικά με το sys.dm_exec_requests DMV, επισκεφθείτε την ακόλουθη τοποθεσία Web του MSDN:

Γενικές πληροφορίες σχετικά με το sys.dm_exec_requests DMVΓια περισσότερες πληροφορίες σχετικά με το sys.dm_exec_sql_text DMV, επισκεφθείτε την ακόλουθη τοποθεσία Web του MSDN:

Γενικές πληροφορίες σχετικά με το sys.dm_exec_sql_text DMVΓια περισσότερες πληροφορίες σχετικά με την εντολή DBCC INPUTBUFFER, επισκεφθείτε την ακόλουθη τοποθεσία Web του MSDN:

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

935897 Ένα μοντέλο επαυξητικής συντήρησης είναι διαθέσιμο από την ομάδα SQL Server για την παράδοση άμεσων επιδιορθώσεων για προβλήματα που έχουν αναφερθείΓια περισσότερες πληροφορίες σχετικά με το σχήμα ονοματοθεσιών για ενημερώσεις SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο στη Γνωσιακή βάση της Microsoft:

822499 Νέο σχήμα ονοματοθεσίας για πακέτα ενημέρωσης λογισμικού του Microsoft SQL Server Για περισσότερες πληροφορίες σχετικά με την ορολογία ενημέρωσης λογισμικού, κάντε κλικ στον αριθμό του παρακάτω άρθρου για να προβάλετε το άρθρο στη Γνωσιακή βάση της Microsoft:

824684 Περιγραφή της τυπικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft

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

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

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