Ознаки
Помилка твердження може виникнути, коли Microsoft SQL ServerSQL Server кілька разів виконує збережену процедуру, яка виконує такі дії:
- Бере великий об'єкт, наприклад varchar(max) або varbinary(max), як аргумент, і
- Створює тимчасову таблицю, область якої залежить від виконання процедури.
- Використовує аргумент "великий об'єкт" у тимчасовій таблиці.
У журналі помилок SQL Server може з'явитися помилка ствердження, подібна до такої:
Дата й час SPID Помилка: 17065, важливість – 16, стан: 1.
Дата/час SPID SQL ServerSQL Server Assertion: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Спроба отримати доступ до простроченої дескриптора BLOB-об'єкта (1). Ця помилка може бути пов'язана з часом. Якщо помилка не зникає після повторного виконання оператора, скористайтеся DBCC CHECKDB, щоб перевірити базу даних на структурну цілісність, або перезапустіть сервер, щоб переконатися, що структури даних у пам'яті не пошкоджено.
Дата й час SPID Помилка: 3624, Важливість: 20, Стан: 1.
Дата й час SPID Помилка перевірки тверджень системи. Докладні відомості див. в журналі SQL Server помилок. Зазвичай помилка затвердження виникає через програмну помилку або пошкодження даних. Щоб перевірити базу даних на наявність пошкоджень, радимо скористатися функцією DBCC CHECKDB. Якщо ви погодилися надсилати дампи до корпорації Майкрософт під час налаштування, до корпорації Майкрософт буде надіслано міні-дамп. Оновлення може бути доступне від корпорації Майкрософт в останньому пакеті оновлень або в поточному виправленні від служби технічної підтримки.
Причина
SQL Server має внутрішню логіку для вимкнення кешування запитів, які посилаються на великі об'єкти, щоб подальші виконання не посилалися на ці бізнес-програми (які були створені під час попередніх запусків і тому неприпустимі для наступних запусків). Ця логіка не впоралася з резолюцією відкладених імен (DNR) у тимчасових таблицях, які спричинили кешування цих планів. Створення тимчасових таблиць з областю є дорогим, і SQL ServerSQL Server кешує їх для повторного використання в подальших виконаннях. Це запобігає повторній компіляції таких запитів через зміни схеми.
Дізнайтеся більше про відкладену резолюцію імен.
Спосіб усунення проблеми
Цю проблему вирішено в наведених нижче сукупних оновленнях для SQL ServerSQL Server:
Сукупний пакет оновлень 8 для SQL ServerSQL Server 2016 SP1
Сукупний пакет оновлень 4 для SQL ServerSQL Server 2017
Сукупний пакет оновлень 10 для SQL Server 2014 із пакетом оновлень 2
Відомості про сукупні оновлення для SQL ServerSQL Server
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які були в попередній збірці. Ознайомтеся з останнім сукупним оновленням для SQL ServerSQL Server:
Останнє сукупне оновлення для SQL ServerSQL Server 2016
Останнє сукупне оновлення для SQL ServerSQL Server 2017
Останні сукупні оновлення за SQL Server 2014 р.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Посилання
Дізнайтеся, яку термінологію використовує корпорація Майкрософт для опису оновлень програмного забезпечення.