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

Σφάλμα #: 187868 (Συντήρηση περιεχομένου)VSTS: 1340145

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

Συμπτώματα

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

  • Μπορείτε να δημιουργήσετε μια αποθηκευμένη διαδικασία που χρησιμοποιεί μια παράμετρος τιμής πίνακα (TVP) σε Microsoft SQL Server 2012.

  • Μπορείτε να χρησιμοποιήσετε SQL Profiler ή συμβάντα εκτεταμένο διακομιστή SQL για να καταγράψετε το RPC: εκκίνηση και RPC: ολοκληρώθηκε συμβάντα.

  • Μπορείτε να εκτελέσετε ένα ερώτημα που χρησιμοποιεί το TVP.

  • Το χρονικό όριο του ερωτήματος.

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

System.Data.SqlClient.SqlException (0x80131904): Λήξη χρονικού ορίου. Την περίοδο χρονικού ορίου παρήλθε πριν τη ολοκλήρωση της λειτουργίας ή ο διακομιστής δεν ανταποκρίνεται.
στο System.Data.SqlClient.SqlInternalConnection.OnError (SqlException εξαίρεση, Boolean breakConnection)
σε System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
στο System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, σφάλμα UInt32)
στο System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult, TdsParserStateObject stateObj)
σε System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
σε System.Data.SqlClient.TdsParserStateObject.ReadByte()
στο System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
στο System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, resetOptionsString συμβολοσειρά)
στο System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean ασύγχρονη)
στο System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, μέθοδος συμβολοσειρά, DbAsyncResult αποτέλεσμα)
στο System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult αποτέλεσμα, methodName συμβολοσειρά, Boolean sendToPipe)
σε System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
στο TVPApp.Program.Main (συμβολοσειρά args [])


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

< Ημερομηνία >< ώρα > Χρήση διακομιστή 'dbghelp.dll' έκδοση '4.0.5'
< Ημερομηνία >< ώρα > διακομιστής *** δεν είναι δυνατή η λήψη περιβάλλοντος νήματος για spid #
<Date><Time> Server * *******************************************************************************
< Ημερομηνία >< ώρα > διακομιστή *
< Ημερομηνία >< ώρα > διακομιστή * ένδειξης ΣΦΑΛΜΆΤΩΝ ΣΤΟΊΒΑΣ ΈΝΑΡΞΗΣ:
< Ημερομηνία >< ώρα > διακομιστή * < ημερομηνία >< ώρα > spid #
< Ημερομηνία >< ώρα > διακομιστή *
< Ημερομηνία >< ώρα > διακομιστή * χρονοδιάγραμμα μη δώσουν
< Ημερομηνία >< ώρα > διακομιστή *
<Date><Time> Server * *******************************************************************************
< Ημερομηνία >< ώρα > υπογραφή στοίβας διακομιστή για την ένδειξη σφαλμάτων είναι 0x000000000000002C
< Ημερομηνία >< εξωτερικό διακομιστή ώρας > Επιστροφή διεργασία ένδειξης σφαλμάτων κώδικα 0x20000001.
Διαδικασία εξωτερικής ένδειξης επέστρεψε χωρίς σφάλματα.
< Ημερομηνία >< ώρα > διεργασία διακομιστή 0:0:0 (0x1670) εργαζόμενος 0x0000000004EDE160 φαίνεται να είναι μη δώσουν στο χρονοδιάγραμμα 5. Ώρα δημιουργίας του νήματος: 13014210386757. Χρησιμοποιείται περίπου νήμα CPU: πυρήνα 0 ms, Δις χρήστη 70106 διαδικασία χρήσης 16%. 77% αδράνειας συστήματος. Διάστημα: 70140 ms.
< Ημερομηνία >< ώρα > διεργασία διακομιστή 0:0:0 (0x1670) εργαζόμενος 0x0000000004EDE160 φαίνεται να είναι μη δώσουν στο χρονοδιάγραμμα 5. Ώρα δημιουργίας του νήματος:

Αιτία

Αυτό το ζήτημα παρουσιάζεται εξαιτίας ενός σφάλματος στο μηχανισμό βάσης δεδομένων του SQL Server 2012. Στις στήλες κειμένου του TVP υλοποιούνται καθώς εισάγετε συμβολοσειρές ή buffers και αύξηση του αριθμού των γραμμών αυξάνεται ο αριθμός των buffer. Ωστόσο, η διαδικασία που απελευθερώνει buffers είναι χρονοβόρα. Επομένως, δημιουργείται ένα σφάλμα χρονοδιαγράμματος μη δώσουν όταν απελευθερώσετε και συρρίκνωση λειτουργίες προκύψει.

Σημείωση Ένα παρόμοιο θέμα περιγράφεται στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft. Ωστόσο, το πακέτο αθροιστική ενημερωμένη έκδοση που περιγράφεται στο άρθρο δεν είναι για ένα ζήτημα του χρονικού ορίου ερωτήματος.

2520808 ΕΠΙΔΙΌΡΘΩΣΗ: Σφάλμα χρονοδιαγράμματος μη δώσουν κατά την εκτέλεση ενός ερωτήματος που χρησιμοποιεί ένα TVP στον SQL Server 2008 ή στον SQL Server 2008 R2, αν χρησιμοποιείται SQL Profiler ή SQL Server Extended συμβάντα

Προτεινόμενη αντιμετώπιση

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

Πακέτο αθροιστικών ενημερώσεων 5 για το SQL Server 2012 Service Pack 1 (SP1)

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

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

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

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

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

  • Μην χρησιμοποιείτε SQL Profiler ή συμβάντα εκτεταμένο διακομιστή SQL.

  • Κάντε κλικ για να καταργήσετε την επιλογή του RPC: εκκίνηση και RPC: ολοκληρώθηκε πλαίσια ελέγχου στον ορισμό της ανίχνευσης.

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

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

2520808 ΕΠΙΔΙΌΡΘΩΣΗ: Σφάλμα χρονοδιαγράμματος μη δώσουν κατά την εκτέλεση ενός ερωτήματος που χρησιμοποιεί ένα TVP στον SQL Server 2008 ή στον SQL Server 2008 R2, αν χρησιμοποιείται SQL Profiler ή SQL Server Extended συμβάντα

Πληροφορίες στοίβας κλήσεων

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x14
sqllang!CTraceTvpData::`scalar deleting destructor'+0x1e
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33
sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70
sqllang!CRPCExecEnv::~CRPCExecEnv+0x2ab
sqllang!CRPCExecEnv::`scalar deleting destructor'+0x14
sqllang!process_request+0x10b1
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x299
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfb
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x11
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55
sqllang!CRpcTraceHelper::TracePostExec+0x1bf
sqllang!CRPCExecEnv::OnExecFinish+0xaa
sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2
sqllang!process_request+0x764
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x29a
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0x1a
ntdll!RtlUserThreadStart+0x1d

Κατάσταση

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

Author: jannaw
Writer: v-yipli
Τεχνικές αναθεωρητής: pradm; jannaw; hozhan
Editor: v-mordew

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

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

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

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

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

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

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

×