Microsoft raspoređuje Microsoft SQL Server 2008 ispravke kao jednu datoteku za preuzimanje. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanom sustava SQL Server 2008 Fix.

Simptomi

Razmotrite sljedeći scenarij.

  • Omogućili ste kolektoru podataka.

  • U nastavku teškog ili dugotrajnog opterećenja kada se pokreće skupni podaci, aktivnost održavanja baze podataka u vrlo velikim bazama podataka, kao što je rekonstrukcija indeksa i ažuriranje statistika, može dovesti do pogreške aritmetičke mogućnosti na sljedeći način. Ova aritmetička pogreška pri prelijevanju odvija se povremeno tijekom prikupljanja brze snimke faze sys. dm_exec_query_stats.

Poruka: kod pogreške za SSIS DTS_E_OLEDBERROR. Došlo je do pogreške u OLE DB-u. Kod pogreške: 0x80040E57.An OLE DB zapis je dostupan. Izvor: "Microsoft SQL Server Native Client 10,0" HRESULT: 0X80040i57 Description: "matematička pogreška pri pretvaranju izraza u vrstu podataka int.".

Ako razinu zapisivanja kolektora podataka povećate na 2 (primjerice, pokrenete naredbu "exec sp_syscollector_update_collection_set @collection_set_id =<Collectionsetd>, @logging_level = 2"), vraćaju se sljedeće poruke o pogreškama:

<> datuma, SEQ-hvatanje i analiziranje statistika upita i tarifa za upite i tekst, pogreška, 6569,,,, SSIS kod pogreške DTS_E_OLEDBERROR. Došlo je do pogreške u OLE DB-u. Kod pogreške: 0X80040i57. <nl/>OLE DB zapis je dostupan. Izvor: "Microsoft SQL Server Native Client 10,0" HRESULT: 0X80040i57 Opis: "aritmetička pogreška pretvaranja izraza u vrstu podataka int.".,, <Datum vrijeme>,, <vrijeme datuma>,,,, ierror,-1071636471 <vrijeme datuma>, QueryActivityUpload, pogreška, 6569,,,, SSIS kod pogreške DTS_E_OLEDBERROR. Došlo je do pogreške u OLE DB-u. Kod pogreške: 0X80040i57. <nl/>OLE DB zapis je dostupan. Izvor: "Microsoft SQL Server Native Client 10,0" HRESULT: 0X80040i57 Opis: "aritmetička pogreška pretvaranja izraza u vrstu podataka int.".,, <Datum vrijeme>,, <vrijeme datuma>,,,, Ierror,-1071636471<vrijeme datuma>, DFT-stvaranje zanimljivih upita upload batch, pogreška, 6569,,,, komponenta "ODS-Nabavite aktualni snimak dm_exec_query_stats" (16412) nije uspjela faza prije izvršavanja i vratila se kod pogreške 0xC0202009.,, <Datum vremena>,, <vrijeme datuma>,,,, ierror,-1073450982<vrijeme datuma>, SEQ-hvatanje i analiziranje statistika upita i tarifa za upit i tekst, pogreška, 6569,,,, komponenta "ODS-Dohvati postojeću brzu snimku dm_exec_query_stats" (16412) nije uspjela faza prije izvršavanja i vratila se kod pogreške 0xC0202009.,, <vrijeme datuma>,, <vrijeme datuma>,,,, neerror,-1073450982<vrijeme datuma> , QueryActivityUpload, Error, 6569,,,, komponenta "ODS-Nabavite aktualni snimak dm_exec_query_stats" (16412) nije uspio fazu prije izvršavanja te je vratio kod pogreške 0xC0202009.,, <Datum vremena>,, <vrijeme datuma>,,,, ierror,-1073450982

U ovom scenariju sljedeća naredba koju pokreće SQL Server uzrokuje aritmetičku pogrešku.

SET NOCOUNT ONDECLARE @p1 datetimeSET @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_timeFROM(    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 sqlGROUP BY [sql_handle], plan_handle, statement_start_offset, statement_end_offset ORDER BY [sql_handle], plan_handle, statement_start_offset, statement_end_offset

Dakle, ako ručno pokrenete ovu izjavu, možda ćete primiti i sljedeću poruku o pogrešci:

MSG 8115, razina 16, stanje 2, aritmetička pogreška u pretvorbi izraza u vrstu podatka int

Rješenje

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 5 za SQL Server 2008 Service Pack 1. Dodatne informacije o tom zbirnim paketom za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

975977 Kumulativno ažuriranje paketa 5 za SQL Server 2008 Service Pack 1Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2008 Fix. Microsoft preporučuje da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

970365 Verzije sustava SQL Server 2008 koje su objavljene nakon objavljivanja sustava SQL Server 2008 Service Pack 1Za određene servisne pakete sustava SQL Server stvaraju se hitni popravci sustava Microsoft SQL Server 2008. Za instalaciju sustava SQL Server 2008 Service Pack 1 morate primijeniti hitni popravak sustava SQL Server 2008 Service Pack 1. Svaki hitni popravak koji je naveden u servisnom paketu sustava SQL Server po zadanom je uključen u sljedeći servisni paket sustava SQL Server.

Status

Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".

Reference

Dodatne informacije o modelu programa inkrementalni servis za SQL Server potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

935897 U timu SQL Server dostupan je inkrementalni servisni model za isporuku hitnih popravaka za prijavljene problemeDodatne informacije o shemi imenovanja za ažuriranja sustava SQL Server potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

822499Nova shema imenovanja za pakete softverskih ažuriranja za Microsoft SQL ServerDodatne informacije o terminologiji za softversko ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

824684 Opis standardne terminologije koja se koristi za opisivanje ažuriranja Microsoftova softvera

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li ove informacije bile korisne?

Koliko ste zadovoljni kvalitetom prijevoda?
Što je utjecalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×