Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Simptomai

Tarkime, kad įtraukiate stulpelį į lentelę "Microsoft SQL Server" 2012 arba "SQL Server" 2014. Kai eilutės dydis yra arti maksimalaus leistino dydžio, kuris yra 8 060 baitų, įtraukimo operacija gali užtrukti ilgą laiką.

Priežastis

Ši problema iškyla dėl to, kad kai eilutės dydis yra arti maksimalaus leistino eilutės dydžio, "SQL Server" atlieka visą lentelės nuskaitymą, kad įsitikintumėte, jog įtraukus naują stulpelį, jis nepažeidžia duomenų vientisumo. Versijų, esančių prieš SQL serverio 2012, Neatlikite šio tikrinimo ir todėl duomenų aprašų kalba (DDL) veikia greičiau. Tačiau šią problemą sukelia vėlesnių operacijų, pvz., eilučių atnaujinimo arba mažėjimo, jei eilutės dydis viršija leidžiamą dydį, gedimas.

Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:

Daugiau informacijos

  • Galite įjungti sekimo vėliavėlę 647 naudodami paleisties parametrą. Informacijos ieškokite duomenų bazės modulio tarnybos paleisties parinktys.

  • Galite paleisti šią užklausą (pakeiskite <lentelės pavadinimą> su savo tikruoju lentelės pavadinimu), kad išbandytumėte konkrečią lentelę prieš operaciją gamybos sistemoje ir planuokite šios problemos efektą. Jei rezultatas didesnis už 8 060, jūsų lentelei taikoma ši problema. Be to, jei turite išmetamus stulpelius, turite pakeisti lentelę su parinktimi atkurti. Lentelės atkūrimas gali pateikti užklausos grąžinimo teisingus rezultatus.

    select  1+1+2 + 2 +  (case  when sum (case when leaf_offset < 0 then 1 else 0 end) > 0 then 2 else 0 end)  +  ( (count (*) + 7)/8 ) + count (case when leaf_offset < 0 then 1 else null end) * 2 +  sum( case when max_length=-1 then 24 else max_length end)  from sys.system_internals_partition_columns   col join sys.partitions par on col.partition_id = par.partition_id  where object_id = object_id ('<table name>')  and  index_id in (0,1) and partition_number =1 
  • Galite apsvarstyti galimybę įtraukti Kintamo ilgio stulpelius arba išsklaidantis stulpelius, kai programa dažnai įtraukia naujus stulpelius į lentelę. Tai tik metaduomenų operacija, net jei bendras visų stulpelių dydis viršija 8 060 baitų.

Statusą

"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×