DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 975915 - Geändert am: Montag, 16. November 2009 - Version: 1.1

 
Microsoft stellt Updates für Microsoft SQL Server 2008 als downloadbare Datei. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in vorherigen SQL Server 2008 enthalten waren.

Problembeschreibung

Stellen Sie sich das folgende Szenario vor.
  • Sie aktivieren das Datensammlungsprogramm.
  • Unter einer Arbeitsauslastung bei starker oder einen längeren Wenn das Datensammlungsprogramm ausgeführt wird, kann Wartung Datenbankaktivität bei sehr großen Datenbanken, z. B. Indizes neu erstellt werden, und Aktualisieren von Statistiken, zu der Arithmetischer Überlauffehler wie folgt führen. Dieses Arithmetischer Überlauffehler tritt zeitweise während der sammeln einen Snapshot der sys. dm_exec_query_stats-Phase.
Nachricht: SSIS-Fehlercode DTS_E_OLEDBERROR. Ein OLE DB-Fehler ist aufgetreten. Fehlercode: 0x80040E57.
Ein OLE DB-Datensatz ist verfügbar. Quelle: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Beschreibung: "Fehler arithmetischer Überlauf beim Konvertieren Ausdrucks in Datentyp int".

Wenn Sie die Daten Collector Protokollierungsstufe auf 2 erhöhen (z. B. Ausführen der "Exec Sp_syscollector_update_collection_set @ Collection_set_id <collectionsetid>=, @ Logging_level = 2"-Anweisung), werden die folgenden Fehlermeldungen zurückgegeben:
<Datum Uhrzeit >, SEQ - sammeln und Analysieren von Abfragestatistiken und Abfrage-Plan und Text, Fehler, 6569,,,, SSIS-Fehler Code DTS_E_OLEDBERROR. Ein OLE DB-Fehler ist aufgetreten. Fehlercode: 0x80040E57. <nl/> ein OLE DB-Datensatz ist verfügbar. Quelle: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Beschreibung: "Fehler arithmetischer Überlauf beim Konvertieren Ausdrucks in Datentyp int".,, < Datum-Uhrzeit >,, < Datum-Uhrzeit >,,,, OnError,-1071636471 < Datum-Uhrzeit >, QueryActivityUpload, Fehler, 6569,,,, SSIS-Fehler Code DTS_E_OLEDBERROR. Ein OLE DB-Fehler ist aufgetreten. Fehlercode: 0x80040E57. <nl/> ein OLE DB-Datensatz ist verfügbar. Quelle: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Beschreibung: "Fehler arithmetischer Überlauf beim Konvertieren Ausdrucks in Datentyp int".,, < Datum-Uhrzeit >,, < Datum-Uhrzeit >,,,, OnError,-1071636471

<Datum Uhrzeit >, DFT - erstellen interessanter Abfragen uploaden Batch, Fehler, 6569,,,, Komponente "ODS - Get aktuellen Snapshot der Dm_exec_query_stats" (16412) fehlgeschlagenen der Pre-execute-Phase und der zurückgegebene Fehlercode 0xC0202009.,, < Datum-Uhrzeit >,, < Datum-Uhrzeit >,,,, OnError,-1073450982

<Datum Uhrzeit >, SEQ - aufzeichnen und Analysieren von Abfragestatistiken und Abfrage Plan und Text, Fehler, 6569,,,, Komponente "ODS - Get aktuellen Snapshot der Dm_exec_query_stats" (16412) fehlgeschlagenen der Pre-execute-Phase und der zurückgegebene Fehlercode 0xC0202009.,, < Datum-Uhrzeit >,, < Datum-Uhrzeit >,,,, OnError,-1073450982

<Datum Uhrzeit >, QueryActivityUpload, Fehler, 6569,,,, Komponente "ODS - Get aktuellen Snapshot der Dm_exec_query_stats" (16412) fehlgeschlagenen der Pre-execute-Phase und der zurückgegebene Fehlercode 0xC0202009.,, < Datum-Uhrzeit >,, < Datum-Uhrzeit >,,,, OnError,-1073450982


In diesem Szenario bewirkt die folgende Anweisung, die von SQL Server ausgeführt wird, dass den Arithmetischer Überlauffehler:
SET NOCOUNT ON
DECLARE @p1 datetime
SET @p1 = GETDATE()

SELECT 
    [sql_handle],
    statement_start_offset,
    statement_end_offset,
    -- Use ISNULL here and in other columns to handle in-progress queries that are not yet in sys.dm_exec_query_stats.  
    -- These values only come from sys.dm_exec_query_stats. If the plan does not show up in sys.dm_exec_query_stats 
    -- (first execution of a still-in-progress query, visible in sys.dm_exec_requests), these values will be NULL. 
    MAX (plan_generation_num) AS plan_generation_num,
    plan_handle,
    MIN (creation_time) AS creation_time, 
    MAX (last_execution_time) AS last_execution_time,
    SUM (execution_count) AS execution_count,
    SUM (total_worker_time) AS total_worker_time,
    MIN (min_worker_time) AS min_worker_time,           -- NULLable
    MAX (max_worker_time) AS max_worker_time,
    SUM (total_physical_reads) AS total_physical_reads,
    MIN (min_physical_reads) AS min_physical_reads,     -- NULLable
    MAX (max_physical_reads) AS max_physical_reads,
    SUM (total_logical_writes) AS total_logical_writes,
    MIN (min_logical_writes) AS min_logical_writes,     -- NULLable
    MAX (max_logical_writes) AS max_logical_writes,
    SUM (total_logical_reads) AS total_logical_reads,
    MIN (min_logical_reads) AS min_logical_reads,       -- NULLable
    MAX (max_logical_reads) AS max_logical_reads,
    SUM (total_clr_time) AS total_clr_time,
    MIN (min_clr_time) AS min_clr_time,                 -- NULLable
    MAX (max_clr_time) AS max_clr_time,
    SUM (total_elapsed_time) AS total_elapsed_time,
    MIN (min_elapsed_time) AS min_elapsed_time,         -- NULLable
    MAX (max_elapsed_time) AS max_elapsed_time,
    @p1 AS collection_time
FROM
(
    SELECT  
        [sql_handle],
        statement_start_offset,
        statement_end_offset,
        plan_generation_num,
        plan_handle,
        creation_time,
        last_execution_time,
        execution_count,
        total_worker_time,
        min_worker_time,
        max_worker_time,
        total_physical_reads,
        min_physical_reads,
        max_physical_reads,
        total_logical_writes,
        min_logical_writes,
        max_logical_writes,
        total_logical_reads,
        min_logical_reads,
        max_logical_reads,
        total_clr_time,
        min_clr_time,
        max_clr_time,
        total_elapsed_time,
        min_elapsed_time,
        max_elapsed_time 
    FROM sys.dm_exec_query_stats AS q
    -- Temporary workaround for VSTS #91422.  This should be removed if/when sys.dm_exec_query_stats reflects in-progress queries. 
    UNION ALL 
    SELECT 
        r.[sql_handle],
        r.statement_start_offset,
        r.statement_end_offset,
        ISNULL (qs.plan_generation_num, 0) AS plan_generation_num,
        r.plan_handle,
        ISNULL (qs.creation_time, r.start_time) AS creation_time,
        r.start_time AS last_execution_time,
        1 AS execution_count,
        -- dm_exec_requests shows CPU time as ms, while dm_exec_query_stats 
        -- uses microseconds.  Convert ms to us. 
        r.cpu_time * 1000 AS total_worker_time,
        qs.min_worker_time,     -- min should not be influenced by in-progress queries
        r.cpu_time * 1000 AS max_worker_time,
        r.reads AS total_physical_reads,
        qs.min_physical_reads,  -- min should not be influenced by in-progress queries
        r.reads AS max_physical_reads,
        r.writes AS total_logical_writes,
        qs.min_logical_writes,  -- min should not be influenced by in-progress queries
        r.writes AS max_logical_writes,
        r.logical_reads AS total_logical_reads,
        qs.min_logical_reads,   -- min should not be influenced by in-progress queries
        r.logical_reads AS max_logical_reads,
        qs.total_clr_time,      -- CLR time is not available in dm_exec_requests
        qs.min_clr_time,        -- CLR time is not available in dm_exec_requests
        qs.max_clr_time,        -- CLR time is not available in dm_exec_requests
        -- dm_exec_requests shows elapsed time as ms, while dm_exec_query_stats 
        -- uses microseconds.  Convert ms to us. 
        r.total_elapsed_time * 1000 AS total_elapsed_time,
        qs.min_elapsed_time,    -- min should not be influenced by in-progress queries
        r.total_elapsed_time * 1000 AS max_elapsed_time
    FROM sys.dm_exec_requests AS r 
    LEFT OUTER JOIN sys.dm_exec_query_stats AS qs ON r.plan_handle = qs.plan_handle AND r.statement_start_offset = qs.statement_start_offset 
        AND r.statement_end_offset = qs.statement_end_offset 
    WHERE r.sql_handle IS NOT NULL 
) AS query_stats 
OUTER APPLY sys.dm_exec_sql_text (sql_handle) AS sql
GROUP BY [sql_handle], plan_handle, statement_start_offset, statement_end_offset 
ORDER BY [sql_handle], plan_handle, statement_start_offset, statement_end_offset
also, wenn Sie diese Anweisung manuell ausführen, außerdem möglicherweise die folgende Fehlermeldung:
Msg 8115, Ebene 16, Status, 2,
Arithmetischer Überlauffehler Ausdruck in Int-Datentyps konvertieren

Lösung

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulative Update 5 für SQL Server 2008 Service Pack 1 veröffentlicht. Weitere Informationen zu diesem kumulativen Update-Paket klicken Sie auf die folgende KB-Artikelnummer:
975977  (http://support.microsoft.com/kb/975977/LN/ ) Kumulatives Updatepaket 5 für SQL Server 2008 Service Pack 1
Hinweis: Da die Builds kumulativ sind, enthält jede neue Update-Version aller Hotfixes, und alle Sicherheitsupdates, die in vorherigen SQL Server 2008 enthalten waren. Microsoft empfiehlt, dass Sie sich die neueste Version der Updates, die diesen Hotfix enthält anzuwenden. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
970365  (http://support.microsoft.com/kb/970365/LN/ ) SQL Server 2008 erstellt, die nach der Freigabe von SQL Server 2008 Service Pack 1 veröffentlicht wurden
Microsoft SQL Server 2008 Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen einen Hotfix für SQL Server 2008 Service Pack 1 auf eine Installation von SQL Server 2008 Service Pack 1 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack zur Verfügung gestellt wird in das nächste Servicepack für SQL Server enthalten.

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Informationsquellen

Weitere Informationen zum inkrementellen Dienstmodell für SQL Server klicken Sie auf die folgende KB-Artikelnummer:
935897  (http://support.microsoft.com/kb/935897/ ) Ein inkrementelles Dienstmodell ist vom SQL Server-Team zum Übermitteln von Hotfixes für gemeldete Probleme verfügbar


Weitere Informationen zum Benennungsschema für SQL Server-Updates finden Sie die folgende KB-Artikelnummer:
822499  (http://support.microsoft.com/kb/822499/ ) Neues Benennungsschema für Softwareupdate-Pakete von Microsoft SQL Server


Weitere Informationen zur Terminologie für Softwareupdates finden Sie die folgende KB-Artikelnummer:
824684  (http://support.microsoft.com/kb/824684/ ) Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Keywords: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975915 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 975915  (http://support.microsoft.com/kb/975915/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: