Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Simptomi

Pretpostavimo da ste dodali kolonu u tabelu u sistemu Microsoft SQL Server 2012 ili SQL Server 2014. Kada je veličina reda blizu maksimalne dozvoljene veličine koja je 8.060 bajtova, operacija dodavanja može potrajati dugo.

Uzrok

Do problema dolazi zato što, kada je ukupna veličina reda blizu maksimalne dozvoljene veličine reda, SQL Server izvrši potpuno skeniranje tabele da bi se uverio da dodavanje nove kolone ne narušava integritet podataka. Verzije pre sql Server 2012 ne proveravaju ovu proveru i to čini da jezik definicije podataka (DDL) radi brže. Međutim, ovo ponašanje rezultira neuspehom narednih operacija kao što je ažuriranje ili smanjivanje redova ako veličina reda premašuje dozvoljenu veličinu.

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Više informacija

  • Zastavicu za praćenje 647 možete da uključite pomoću parametra za pokretanje. Više informacija potražite u članku Opcije pokretanja usluge mašine baze podataka.

  • Možete da pokrenete sledeći upit (zamenite <ime> tabele pravim imenom tabele) da biste testirali određenu tabelu pre operacije na proizvodnom sistemu i isplanirali efekat ovog problema. Ako je rezultat veći od 8.060, vaša tabela podleže ovom problemu. Pored toga, ako ste ispustili kolone, morate da promenite tabelu sa opcijom ponovnog izbora. Ponovno pravljenje tabele može da učini da upit vrati ispravne rezultate.

    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 
  • Možete razmotriti dodavanje kolona promenljive dužine ili proređenih kolona kada aplikacija često dodaje nove kolone u tabelu. To je operacija samo za metapodatke čak i ako ukupna veličina svih kolona premašuje 8.060 bajtova.

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.