FIX: Rekenkundige overloopfout gebeurt soms tijdens de fase "Een momentopname van sys.dm_exec_query_stats verzamelen" nadat u een gegevensverzamelaarset in SQL Server 2008 ingeschakeld

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 975915 - Bekijk de producten waarop dit artikel van toepassing is.
Microsoft distribueert oplossingen voor Microsoft SQL Server 2008 als één downloadbaar bestand. Aangezien de oplossingen cumulatief zijn, bevat elke nieuwe versie de hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2008 zijn release opgelost.
Alles uitklappen | Alles samenvouwen

Symptomen

Het volgende scenario.
  • U kunt de gegevensverzamelaarset.
  • Onder een zware of langdurige werkbelasting wanneer de gegevensverzamelaarset wordt uitgevoerd, kan database onderhoud activiteit op zeer grote databases opnieuw opbouwen van indexen en statistieken bijwerken leiden tot de rekenkundige overloopfout als volgt. Deze rekenkundige overloopfout optreedt tijdens het verzamelen een momentopname van de sys.dm_exec_query_stats-fase.
Bericht: SSIS foutcode DTS_E_OLEDBERROR. OLE DB-fout is opgetreden. Foutcode: 0x80040E57.
Een OLE DB-record is beschikbaar. Bron: 'Microsoft SQL Server Native Client 10.0' Hresult: 0x80040E57 beschrijving: 'fout rekenkundige overloop expressie converteren naar type int. gegevens'.

Als u het registratieniveau gegevens verzamelen 2 (bijvoorbeeld uitvoeren de ' exec sp_syscollector_update_collection_set @ collection_set_id =<collectionsetid>, @ logging_level = 2 "instructie), worden de volgende foutberichten weergegeven:</collectionsetid>
<date time="">SEQ - vastleggen en analyseren van statistieken van de query en queryplan en tekst, fout, 6569,,,, SSIS fout Code DTS_E_OLEDBERROR. OLE DB-fout is opgetreden. Foutcode: 0x80040E57.<nl></nl>Een OLE DB-record beschikbaar is. Bron: 'Microsoft SQL Server Native Client 10.0' Hresult: 0x80040E57 beschrijving: 'fout rekenkundige overloop expressie converteren naar data type int.'.,, <date time="">,,<date time="">,,,, OnError,-1071636471 <date time="">, QueryActivityUpload, fout, 6569,,,, SSIS foutcode DTS_E_OLEDBERROR. OLE DB-fout is opgetreden. Foutcode: 0x80040E57.<nl></nl>Een OLE DB-record beschikbaar is. Bron: 'Microsoft SQL Server Native Client 10.0' Hresult: 0x80040E57 beschrijving: 'fout rekenkundige overloop expressie converteren naar data type int.'.,, <date time="">,,<date time="">,,,, OnError,-1071636471</date></date></date></date></date></date>

<date time="">DFT - interessante query's uploaden Batch maken, fout, 6569,,,, component 'ODS - Get actuele momentopname van dm_exec_query_stats' (16412) de pre-execute-fase en geretourneerde foutcode 0xC0202009.,, <date time="">,,<date time="">,,,, OnError,-1073450982</date></date></date>

<date time="">SEQ - vastleggen en analyseren van statistische query query plan en tekst, fout, 6569,,,, component 'ODS - Get actuele momentopname van dm_exec_query_stats' (16412) de pre-execute-fase en geretourneerde foutcode 0xC0202009.,, <date time="">,,<date time="">,,,, OnError,-1073450982</date></date></date>

<date time="">QueryActivityUpload, fout, 6569,,,, component 'ODS - Get actuele momentopname van dm_exec_query_stats' (16412) de pre-execute-fase en geretourneerde foutcode 0xC0202009.,, <date time="">,,<date time="">,,,, OnError,-1073450982 </date></date></date>


In dit scenario wordt de volgende instructie wordt uitgevoerd door SQL Server rekenkundige overloopfout:
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
Dus als u deze instructie handmatig uitvoeren, verschijnt ook het volgende foutbericht weergegeven:
Msg 8115, niveau 2, staat 16
Rekenkundige overloopfout expressie geconverteerd naar het gegevenstype int

Oplossing

De correctie voor dit probleem werd eerst uitgebracht in 5 cumulatieve Update voor SQL Server 2008 Service Pack 1. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over dit cumulatieve updatepakket:
975977Pakket 5 cumulatieve update voor SQL Server 2008 Service Pack 1
OpmerkingOmdat de builds cumulatief zijn, elke nieuwe release correctie bevat alle hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2008 zijn release opgelost. Microsoft raadt aan u de meest recente fix release waarin deze hotfix toepast. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
970365SQL Server 2008 bouwt die zijn uitgebracht na Service Pack 1 voor SQL Server 2008 is uitgebracht
Microsoft SQL Server 2008 hotfixes gemaakt voor specifieke SQL Server servicepacks. U moet een hotfix voor SQL Server 2008 Service Pack 1 toepassen op een installatie van SQL Server 2008 Service Pack 1. De hotfix die in SQL Server servicepack is opgenomen in het volgende servicepack voor SQL Server.

Status

Microsoft heeft bevestigd dat dit probleem in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op' is.

Referenties

Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over de incrementele Servicing-Model voor SQL Server:
935897Een incrementele Servicing-Model is beschikbaar vanaf de SQL Server-team leveren hotfixes voor gemelde problemen


Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het naamgevingsschema voor SQL Server-updates:
822499Nieuw naamgevingsschema voor software-updatepakketten voor Microsoft SQL Server


Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over terminologie voor software-update:
824684Beschrijving van de standaardterminologie die wordt gebruikt om software-updates voor Microsoft te beschrijven

Eigenschappen

Artikel ID: 975915 - Laatste beoordeling: zaterdag 19 maart 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Trefwoorden: 
kbexpertiseadvanced kbsurveynew kbqfe kbfix kbmt KB975915 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:975915

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com