Príznaky
Predpokladajme, že máte tabuľku, ktorá obsahuje skupinový columnstore index v Microsoft SQL Server 2014. Ak chcete zmeniť typ údajov existujúceho stĺpca, spustite dotaz DDL v tabuľke. Môžete napríklad aktualizovať typ údajov pre Column_1 Table_1 z VARCHAR (499) na NVARCHAR (500) spustením nasledujúceho príkazu:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
V tejto situácii sa vyskytuje viacero chýb tvrdení a zobrazí sa toto chybové hlásenie:
Umiestnenie: <cestu k súboru> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (v XMColumnEncoder <nepodpísaný znak *>:: EncodeValueForSecondary) číslo SPID: <číslo spid>proces ID: <ID procesu >Popis: hr: 0x0Location: <cestu k súboru> \xmerror.cpp: 43Expression: 0 (v PFSETLASTERROR) číslo SPID: <číslo SPID>proces ID: <Process ID>Popis : HR
Okrem toho sa v priečinku Denník chýb servera SQL Server vygeneruje viacero súborov s výpisom pamäte a v denníku chýb servera SQL Server sa zapíšu viaceré chybové hlásenia, ktoré sa podobajú takto:
<dátumové obdobie> číslo SPID<ID> * * * zásobník sa odošle na <názov disku>: \Program Files\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<dátumové obdobie> číslo SPID<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <dátumový dátum> číslo SPID<id> * <dátumový dátum> číslo SPID<ID> * BEGIN stack DUMP: <Dátum času> číslo SPID<ID> * <Dátum času> číslo spid<ID><dátumové obdobie> číslo spid <id> * súkromný server zostava. <dátum> číslo spid<ID> * <dátumové obdobie> číslo SPID<ID> * umiestnenie: <cestu k súboru> \xmcolenc.inl: 413<dátumový dátum> číslo SPID<ID> * výraz: PF_CURRENT_STATUS = = PFS_OK<dátumové obdobie> číslo SPID<ID> * (v XMColumnEncoder<nepodpísaný znak *>:: EncodeValueForSecondary) <dátumové obdobie> číslo SPID<ID> * SPID: 60<dátumové obdobie> číslo SPID <ID> * proces ID : 3680<dátum> číslo SPID<ID> * Popis: HR: 0x0<Dátum času> SPID<ID> * <Dátum času> číslo SPID<ID> * vstupná medzipamäť 136 bajtov-<Dátum času> číslo SPID<ID> * alter table Table_1 zmeniť stĺpec COL1 nvarchar (500) NOT NULL;
Riešenie
Po použití tejto rýchlej opravy sa môže pri zlyhaní dotazu DDL zobraziť nasledujúce nové chybové hlásenie:
Príkaz ALTER TABLE zlyhal, pretože sekundárny slovník dosiahol maximálny limit veľkosti. Zvážte pád indexu Columnstore, zmenu stĺpca a vytvorenie nového columnstore indexu
Táto oprava tiež zabraňuje vytváraniu súborov s výpisom pamäte v denníku chýb SQL servera. problém bol najskôr vyriešený v nasledujúcich kumulatívnych aktualizáciách servera SQL Server:
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Odporúčame, aby ste si stiahli a nainštalovali najnovšie kumulatívne aktualizácie pre SQL Server:
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.