Симптоми
Приемете, че имате таблица, която има индекс на columnstore с клъстери в Microsoft SQL Server 2014. Изпълнявате DDL заявка спрямо таблицата, за да промените типа на данните на съществуваща колона. Например можете да актуализирате типа на данните за Column_1 на Table_1 от VARCHAR (499) към NVARCHAR (500), като изпълните следната команда:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
В този случай възникват множество неуспешни грешки и получавате следното съобщение за грешка:
Местоположение: <път до файла> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (в XMColumnEncoder<неподписани знаци *>:: EncodeValueForSecondary) SPID : <SPIDна ИД на процеса :>"ИД на процес" на <описание: "0x0Location": "\xmerror.CPP" в на Microsoft.:
Освен това са генерирани няколко дъмп файла за памет в папката за регистриране на грешки на SQL Server и множество съобщения за грешка, които приличат на следните, се записват в регистрационния файл за грешки на SQL Server:
<дата час> SPID<ID> * * * стека дъмп е изпратено до <диск име>: се намира файлове \ Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<Date Time> SPID<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <дата и час> SPID<id> * <Дата и час> spid<ид на "започни стек сметище:> дата час <SPID> ид<*> дата час <spid> ИД<дата час><SPID> ИД<<дата час> SPID<ID> * <дата час> spid<ид> * местоположение: <път до файла> \xmcolenc.inl: 408<дата час> SPID<ID> * EXPRESSION: spid = = PF_CURRENT_STATUS PFS_OK за час<SPID> ИД<* (в XMColumnEncoder> неподписани знаци *<:: EncodeValueForSecondary)> дата час <> ИД<* SPID: 60> Дата и час<SPID> ИД<* за процеса : 3680<Дата и час> SPID<ID> * описание: HR: 0x0 <дата час> SPID<ИД> * <дата час> SPID<ИД> * входен буфер 136 байтове-<дата час> SPID<ИД> * алтер таблица Table_1 Alter COLUMN Кол1 NVARCHAR (500) не е Null;
Решение
След като приложите тази спешна корекция, е възможно да получите следното ново съобщение за грешка, когато заявката DDL е неуспешна:
Командата за промяна на таблица е неуспешна, защото второстепенен речник достигна ограничението за максимален размер. Обмислете пускане на columnstore индекс, промяна на колоната и създаване на нов индекс за columnstore
Тази корекция предотвратява генерирането на файловете за дъмп памет в SQL Server. Проблемът е зададен за първи път в следните кумулативни актуализации на SQL Server:
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Препоръчваме ви да изтеглите и инсталирате последните сборни актуализации за SQL Server:
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".