Η Microsoft διανέμει τις ενημερώσεις κώδικα του Microsoft SQL Server 2012 ως ένα αρχείο με δυνατότητα λήψης. Επειδή οι ενημερώσεις κώδικα είναι αθροιστικές, κάθε νέα έκδοση περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2012 έκδοση της ενημέρωσης κώδικα.
Συμπτώματα
Ας υποθέσουμε ότι χρησιμοποιείτε τον παράγοντα διακομιστή SQL για να εκτελέσετε πολλά πακέτα υπηρεσιών ενοποίησης του SQL Server 2012 (SSIS 2012) παράλληλα. Επιπλέον, το συμβάν SSIS έχει ρυθμιστεί να καταγράφεται στους πίνακες SSISDB ή MSDB. Σε αυτήν την περίπτωση, η εκτέλεση ενός πακέτου SSIS τελειώνει απροσδόκητα και έχει κατάσταση "ακυρώθηκε". Όταν συμβεί αυτό, δεν καταγράφονται μηνύματα σφάλματος. Για παράδειγμα, μια μακρά εκτέλεση ενός πακέτου SSIS που διαρκεί 2 έως 3 ώρες λήγει απροσδόκητα, έχει κατάσταση "Ακυρώθηκε" και δεν έχει καταγεγραμμένα μηνύματα σφάλματος.
Σημείωση
- Το αναμενόμενο αποτέλεσμα είναι ότι η εκτέλεση του πακέτου θα πρέπει να επιτύχει ή να αποτύχει με ορισμένα σφάλματα. Επιπλέον, η κατάσταση "Ακυρώθηκε" θα πρέπει να εμφανίζεται μόνο για εκτελέσεις πακέτων που έχουν διακοπεί ρητά.
- Αυτό το ζήτημα είναι πιο πιθανό να παρουσιαστεί όταν η παρουσία του μηχανισμού βάσεων δεδομένων SQL Server στην οποία καταγράφονται τα συμβάντα SSIS είναι κάτω από αγχωτικές συνθήκες. Οι αγχωτικές συνθήκες μπορεί να περιλαμβάνουν αποκλεισμό, αργή απόδοση ή καθυστερήσεις που προκαλούνται από την ανάπτυξη της βάσης δεδομένων SSISDB.
Αιτία
Το πρόβλημα παρουσιάζεται επειδή λήγει το χρονικό όριο καταγραφής του συμβάντος. Αυτό έχει ως αποτέλεσμα την πρόωρη ακύρωση της εκτέλεσης του πακέτου SSIS.
Όταν ένα συμβάν SSIS έχει ρυθμιστεί για καταγραφή στους πίνακες SSISDB ή MSDB, μια εντολή Insert εγγράφει εσωτερικά τα στατιστικά στοιχεία συμβάντων καταγραφής και επιδόσεων σε αυτούς τους πίνακες. Όταν υπάρχουν πολλές παράλληλες εκτελέσεις πακέτων SSIS, εκτελούνται πολλές παράλληλες εντολές Insert. Επομένως, το σφάλμα χρονικού ορίου είναι πιο πιθανό να παρουσιαστεί και να προκαλέσει το ζήτημα που περιγράφεται στην ενότητα "Συμπτώματα".
Επίλυση
Μετά την εφαρμογή της ενημέρωσης κώδικα, ο χρόνος λήξης χρονικού ορίου για την εντολή "Εισαγωγή" αυξάνεται από 30 δευτερόλεπτα σε 120 δευτερόλεπτα. Επιπλέον, εάν το χρονικό όριο προκύψει μετά από καθυστέρηση 120 δευτερολέπτων, η εκτέλεση του πακέτου SSIS δεν θα ακυρωθεί. Αντί για αυτό, τα εκκρεμή συμβάντα καταγραφής παραλείπονται για να αποφευχθεί η αποτυχία του πακέτου.
Πληροφορίες αθροιστικής ενημέρωσης
Αθροιστική ενημερωμένη έκδοση πακέτου 3 για SQL Server 2012
Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 3. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστική ενημερωμένη έκδοση για SQL Server 2012, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
2723749 Αθροιστική ενημερωμένη έκδοση 3 για SQL Server 2012Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2012 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης ενημερώσεων κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:
2692828 Ο SQL Server 2012 δημιουργεί που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2012
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Λύση
Για να επιλύσετε το πρόβλημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
- Προσπαθήστε να εκτελείτε λιγότερα πακέτα SSIS ή λιγότερες εργασίες παράλληλα.
- Προσπαθήστε να μειώσετε την παράμετρο Επίπεδο καταγραφής όταν εκτελείτε ένα πακέτο από το Management Studio ή από μια εργασία SQL Server Agent. Για παράδειγμα, εάν χρησιμοποιείτε λεπτομερή καταγραφή, μπορείτε να ορίσετε την παράμετρο "Επίπεδο καταγραφής" σε "Βασικό" ή "Κανένα". Εάν χρησιμοποιείτε τις ρυθμίσεις καταγραφής από τις ρυθμίσεις πακέτου SSIS στο πρόγραμμα σχεδίασης εργαλείων δεδομένων του SQL Server, μπορείτε να καταγράψετε τα συμβάντα σε ένα αρχείο κειμένου αντί στους πίνακες βάσης δεδομένων SSISDB ή MSDB.