Optima сповільнилася після оновлення SQL Server 2025? Причина і рішення

Після оновлення SQL Server з версії 2022 до 2025 нове з’єднання з базою тривало 120 мс замість 2 мс, а Optima з’єднується з базою сотні разів. Наші виміри, причина і рішення, яке спрацювало в нашого клієнта.

Графік: нове з’єднання з SQL-логіном у SQL Server 2025 тривало 118,8 мс, а після виправлення 0,8 мс (відкриває зображення в повному розмірі)

В одного з наших клієнтів після оновлення SQL Server з версії 2022 до 2025 сповільнилося проведення документів у Comarch ERP Optima. Сама Optima вже була в найновішій версії (2026.5), тож змінився лише сервер бази даних. На сервері з Windows Server 2019 працює кілька сотень баз фірм, а працівники користуються Optima переважно через віддалений робочий стіл.

Симптоми

Проведення кожного документа тривало 4 секунди незалежно від типу: рахунок на закупівлю, на продаж чи документ із KSeF. Проведення пакета документів тривало близько 49 секунд. Працівники повідомляли, що операції, які раніше тривали секунди, тепер тривають хвилини.

Вікно Optima «Проведення документа»: для кожного документа час виконання 00:00:04 (відкриває зображення в повному розмірі)
Вікно проведення в Optima: 4 секунди на кожен документ. Номери документів і суми ми замазали.

Що ми перевірили і відкинули

Перш ніж знайти причину, ми виміряли сервер у робочий час. Ці елементи працювали нормально:

  • Диск: читання даних бл. 0,2 мс, запис журналу транзакцій 3–4 мс.
  • Процесор: SQL Server використовував у середньому менше одного ядра з восьми.
  • Блокування: у вимірах щосекунди їх не було.
  • Мережа з боку сервера: очікування бл. 1 мс.
  • Антивірус: винятки Microsoft Defender для SQL Server нічого не змінили.

Причина: повільніша перевірка паролів у SQL Server 2025

SQL Server 2025 зберігає і перевіряє паролі SQL-логінів алгоритмом PBKDF2 (100 000 повторень SHA-512). Microsoft називає цю зміну серед відомих проблем SQL Server 2025, бо вона сповільнює вхід. Старі паролі сервер сам переписує в новий формат під час першого вдалого входу після оновлення.

За нашими вимірами нове з’єднання з SQL-логіном тривало в середньому 118,8 мс, а з обліковим записом Windows – 2,4 мс.

Для одного з’єднання 120 мс не мали б значення. Optima з’єднується з базою SQL-логіном CDNOperator і відкриває дуже багато нових з’єднань: під час одного пакета проведення ми нарахували бл. 166 нових з’єднань за 49 секунд, а за 15 хвилин звичайної роботи бюро – 2 481 вхід. Під час кожного з них сервер тепер перевіряє пароль новим, повільнішим способом.

За нашою оцінкою, у пакеті тривалістю 49 секунд самі входи займали 12–20 секунд. Решта – це запити до бази й робота самої програми. Тож входи дають велику частину затримки, але не всю.

Як перевірити, чи це Ваш випадок

У SQL Server Management Studio достатньо одного запиту:

SELECT name, CONVERT(varchar(6), password_hash, 1) AS hash_type
FROM sys.sql_logins;

Результат 0x0300 означає новий формат PBKDF2, а 0x0200 – старий, швидкий формат із SQL Server 2022.

Що допомогло: прапорець трасування 4671

Це експериментальне рішення. Прапорця трасування 4671 немає в документації Microsoft, Microsoft його не підтримує, а частина фахівців SQL його не радить. У нашого клієнта він спрацював. Ми діяли в такому порядку:

  1. Повна резервна копія всіх баз, також системної master, у якій зберігаються логіни й паролі. Багато простих скриптів резервного копіювання пропускають системні бази.
  2. Збереження поточного password_hash логіна CDNOperator, щоб можна було повернути попередній пароль.
  3. Тест прапорця на тимчасовому тестовому логіні, після робочого часу.
  4. Увімкнення прапорця командою DBCC TRACEON(4671, -1) і параметром запуску -T4671 у SQL Server Configuration Manager, щоб він діяв і після перезапуску.
  5. Новий пароль CDNOperator, встановлений в Optima при ввімкненому прапорці (Інструменти, Сервер бази даних, Зміна пароля користувача «CDNOperator»), з опцією «Зберегти пароль для всіх користувачів Windows». Optima потрібно запустити від імені адміністратора, інакше спільний файл із паролем не оновиться.
  6. Новий пароль на кожному комп’ютері з власною інсталяцією Optima, у Службі автоматичних операцій і в кожній програмі, що використовує цей логін.

Результати на тестовому логіні (10 спроб на кожен крок):

  • Без прапорця: 118,8 мс на нове з’єднання.
  • Прапорець увімкнено, пароль досі у форматі PBKDF2: 116,8 мс. Сам вхід формат не змінює.
  • Прапорець увімкнено і той самий пароль встановлено знову: 0,8 мс.
  • Прапорець вимкнено: 121,1 мс. Перший вхід переписав формат назад на PBKDF2.
Результат запиту в SQL Server Management Studio: логін CDNOperator у форматі 0x0200 і прапорець 4671 увімкнено глобально (відкриває зображення в повному розмірі)
Після зміни пароля при ввімкненому прапорці: формат 0x0200 і прапорець 4671 активний глобально.
Вікно Optima «Вхід на сервер баз даних» з повідомленням про зміну пароля логіна CDNOperator (відкриває зображення в повному розмірі)
Таке вікно побачить працівник на комп’ютері з власною Optima після зміни пароля. Назву сервера ми замазали.

Результат

Нове з’єднання з SQL-логіном скоротилося з 118,8 мс до 0,8 мс. Проведення одного документа тепер триває бл. 3 секунд замість 4. Це результат одного тесту. Працівники, які під’єднуються до сервера через віддалений робочий стіл, кажуть, що Optima працює значно краще. Той самий пакет документів до і після зміни на одному комп’ютері ми ще не порівнювали.

На що зважати

  • Сам прапорець нічого не дає. Пароль треба встановити знову при ввімкненому прапорці.
  • Прапорець ми не вимикаємо. Без нього SQL Server під час першого входу повертається до PBKDF2: програма працює далі, але знову повільно.
  • Після кожного оновлення SQL Server ми перевіряємо прапорець і формат пароля. Наступне оновлення може змінити дію прапорця. У нас після оновлення безпеки KB5126967 прапорець і далі працював.
  • Повернення до SQL Server 2022 – не простий вихід: бази й резервні копії з SQL Server 2025 не можна відновити на версії 2022.
  • Програми, які досі входять зі старим паролем, видно в журналі SQL Server (ERRORLOG, помилка 18456). У нас це була зокрема стара, невикористовувана вебпрограма на сервері.
  • Служба автоматичних операцій в Optima 2026.5 не працює під обліковим записом LocalSystem. Їй потрібен окремий обліковий запис Windows, а файл із паролем має лежати в профілі цього запису.
  • Пароль CDNOperator ми не передаємо стороннім особам. Цей логін зазвичай має доступ до баз усіх фірм в Optima.
  • Для комп’ютерів, що з’єднуються з базою через VPN або Wi-Fi, затримка мережі додається до кожного з багатьох з’єднань Optima. Тому радимо працювати через віддалений робочий стіл на сервері.

Перевірка прапорця після оновлення:

DBCC TRACESTATUS(4671);

Джерела

Зробимо це за Вас

Якщо Optima сповільнилася після оновлення SQL Server, ми знайдемо причину і внесемо зміну з резервною копією і планом повернення. Більше про те, як ми дбаємо про ІТ бухгалтерських бюро. Напишіть на kontakt@proop.pl або зателефонуйте: +48 690 504 074.

Контакти

Почнімо з розмови

Під час першої розмови Ви розповідаєте нам про ситуацію в компанії, а ми оцінюємо, чи можемо допомогти.