DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 975915 - Ultima modifica: lunedì 16 novembre 2009 - Revisione: 1.1

 
Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio di correggere tutte le correzioni di protezione che erano incluse nelle precedenti SQL Server 2008.

Sintomi

Si consideri il seguente scenario.
  • Si abilita l'agente di raccolta dati.
  • Sotto un carico di lavoro pesante o prolungato quando viene eseguito l'agente di raccolta dati, attività di manutenzione database sul database molto grandi, quali la ricostruzione degli indici e aggiornamento delle statistiche, può causare l'errore di overflow aritmetico come indicato di seguito. Questo errore di overflow aritmetico si verifica a intermittenza durante la raccolta uno snapshot della fase sys.dm_exec_query_stats.
Messaggio: Codice di errore SSIS DTS_E_OLEDBERROR. Si è verificato un errore OLE DB. Codice di errore: 0x80040E57.
Un record OLE DB è disponibile. Origine: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Descrizione: "Errore di overflow aritmetico conversione espressione al tipo di dati int.".

Se si aumenta il livello di registrazione di agenti di raccolta dati a 2 (ad esempio, si esegue il "exec sp_syscollector_update_collection_set @ collection_set_id = <collectionsetid>, @ logging_level = 2" istruzione), vengono restituiti messaggi di errore riportati di seguito:
<Data Ora >, SEQ - acquisizione e analizzare le statistiche sulle query e piano di query e testo, Error, 6569,,,, SSIS errore codice DTS_E_OLEDBERROR. Si è verificato un errore OLE DB. Codice di errore: 0x80040E57. <nl/> OLE DB un record è disponibile. Origine: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Descrizione: "Errore di overflow aritmetico conversione espressione al tipo di dati int.".,, < Data Ora,, > < Data Ora,,,, > OnError,-1071636471 < Data Ora > QueryActivityUpload, Error, 6569,,,, SSIS errore codice DTS_E_OLEDBERROR. Si è verificato un errore OLE DB. Codice di errore: 0x80040E57. <nl/> OLE DB un record è disponibile. Origine: "Microsoft SQL Server Native Client 10.0" HRESULT: 0x80040E57 Descrizione: "Errore di overflow aritmetico conversione espressione al tipo di dati int.".,, < Data Ora,, > < Data Ora,,,, > OnError-1071636471

<Data Ora >, DFT - crea interessanti query carica batch, Error, 6569,,,, componente "Get snapshot corrente di dm_exec_query_stats ODS" codice errore restituito non riusciti, la fase di pre-execute (16412) 0xC0202009.,, < Data Ora,, > < Data Ora,,,, > OnError-1073450982

<Data Ora >, SEQ - acquisizione e analizzare le statistiche sulle query e query piano e il testo, Error, 6569,,,, componente "Get snapshot corrente di dm_exec_query_stats ODS" codice errore restituito non riusciti, la fase di pre-execute (16412) 0xC0202009.,, < Data Ora,, > < Data Ora,,,, > OnError-1073450982

<Data Ora >, QueryActivityUpload, Error, 6569,,,, componente "Get snapshot corrente di dm_exec_query_stats ODS" codice errore restituito non riusciti, la fase di pre-execute (16412) 0xC0202009.,, < Data Ora,, > < Data Ora,,,, > OnError-1073450982


In questo scenario, la seguente istruzione viene eseguita da SQL Server causa l'errore di overflow aritmetico: datetime
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
pertanto, se si esegue manualmente questa istruzione, potresti inoltre ricevere il seguente messaggio di errore:
Msg 8115, livello 16, 2, stato
Errore di overflow aritmetico durante la conversione espressione nel tipo di dati int

Risoluzione

La correzione di questo problema è stato rilasciato per la prima volta nel 5 di aggiornamento cumulativo per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
975977  (http://support.microsoft.com/kb/975977/LN/ ) 5 Pacchetto di aggiornamento cumulativo per SQL Server 2008 Service Pack 1
Nota Poiché le generazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli aggiornamenti rapidi e rilascio di correggere tutte le correzioni di protezione che erano incluse nelle precedenti SQL Server 2008. Si consiglia di considerare l'applicazione alla versione più recente di correzione che contiene questo aggiornamento rapido (hotfix). Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
970365  (http://support.microsoft.com/kb/970365/LN/ ) Versioni di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 aggiornamenti rapidi vengono creati per specifici i service pack di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 1 per un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel successivo service pack di SQL Server.

Status

Microsoft ha confermato che si tratta di un problema con i prodotti elencati nella sezione "Si applica a".

Riferimenti

Per ulteriori informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
935897  (http://support.microsoft.com/kb/935897/ ) Un modello di manutenzione incrementale è disponibile dal team di SQL Server per recapitare gli aggiornamenti rapidi per i problemi segnalati


Per ulteriori informazioni sullo schema di denominazione degli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
822499  (http://support.microsoft.com/kb/822499/ ) Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL Server


Per ulteriori informazioni sulla terminologia di aggiornamento software, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684  (http://support.microsoft.com/kb/824684/ ) Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Chiavi: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975915 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 975915  (http://support.microsoft.com/kb/975915/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store