Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Simptomi

Pieņemiet, ka varat pievienot kolonnu tabulai programmā Microsoft SQL Server 2012 vai SQL Server 2014. Ja rindas lielums ir tuvs maksimālais atļautais lielums, kas ir 8 060 baiti, pievienošanas operācija var aizņemt ilgu laiku.

Cēlonis

Problēma rodas tāpēc, ka, ja rindas kopējais lielums ir tuvs maksimālajiem atļautajiem rindas izmēriem, SQL Server veic pilnu tabulas skenēšanu, lai nodrošinātu, ka tiek pievienota jauna kolonna, kas nepārkāpj datu integritāti. Versijas pirms SQL Server 2012 neveic šo pārbaudi, un tādējādi datu definēšanas valoda (DDL) darbojas ātrāk. Tomēr šī darbība izraisa tādu turpmāko darbību neveiksmes kā rindas atjaunināšana vai samazināšana, ja rindas lielums pārsniedz atļauto lielumu.

Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:

Papildinformācija

  • Varat ieslēgt izsekošanas karodziņu 647, izmantojot startēšanas parametru. Informāciju skatiet rakstā datu bāzes programmas startēšanas opcijas.

  • Varat izpildīt šādu vaicājumu (Lūdzu, aizstājiet <tabulas nosaukumu> ar faktisko tabulas nosaukumu), lai pārbaudītu konkrētu tabulu pirms operācijas ražošanas sistēmā un plānotu šīs problēmas ietekmi. Ja rezultāts ir lielāks par 8 060, uz jūsu tabulu attiecas šī problēma. Turklāt, ja esat nometuši kolonnas, ir jāmaina tabula ar atjaunošanas opciju. Pārveidojot tabulu, vaicājumam ir jāatgriež pareizs rezultāts.

    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 
  • Jūs varat apsvērt iespēju pievienot mainīgu garuma kolonnas vai mazapdzīvotas kolonnas, ja lietojumprogrammā bieži tiek pievienotas tabulas ar jaunām kolonnām. Tā ir tikai metadatu operācija pat tad, ja visu kolonnu kopējais lielums pārsniedz 8 060 baitus.

Statusa

Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×