Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

Даний спосіб працює тільки в тому випадку, якщо сервер додатків і сервер СУБД розташовані на одному комп'ютері. При цьому необхідно використовувати версію платформи не нижче ніж 8.2.17. Підтримка даного протоколу почалася саме з цієї версії. Налаштування виконується вкрай легко і займе не більше 5 хвилин вашого часу.

Швидкість потрібна, а поспішність шкідлива

Що це за Shared Memory, для чого він потрібен і навіщо його включати?

За замовчуванням сервер 1С взаємодіє з MS SQL Server тільки через протокол TCP / IP, не залежно від того знаходиться сервер додатків і СУБД на одному комп'ютері або на різних. Це логічно і правильно якщо сервера 1С та СУБД рознесені по різних комп'ютерів, тому що іншого виходу немає.

Але якщо вони знаходяться на одній машині, то логічніше, а головне швидше, використовувати для обміну даними оперативну пам'ять, тобто протокол Shared Memory (спільна пам'ять). Даний протокол дозволяє збільшити швидкість обміну даними між сервером 1С та СУБД за рахунок відсутності передачі даних по мережі. Особливо сильно прискорення буде помітно на тривалих операціях, де йдуть часті виклики сервера. В таких умовах приріст продуктивності може досягати 10-15%.

Включення Shared Memory

  • Відкриваємо додаток «Диспетчер конфігурації SQL Server»
  • Налаштування SQL Native Client - Клієнтські протоколи - Спільна пам'ять - Включено = Так - Ok

Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

  • Перезапускаємо службу MS SQL Server

Протокол TCP / IP відключати не обов'язково, якщо ви все налаштували правильно, то за замовчуванням повинен працювати саме Shared Memory.

Як перевірити що 1С використовує Shared Memory?

1. Найшвидший і простий спосіб за допомогою запиту в Management Studio

Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

Як не важко здогадатися, якщо в другій колонці значення Shared Memory, значить протокол працює.

2. Спосіб складніше, для любителів попрацювати з SQL Profiler

  • Заходимо в одну з баз 1С, це необхідно що б напевно було встановлено з'єднання з СУБД
  • Запускаємо SQL Profiler і підключаємося до нашого сервера СУБД
  • Включаємо збір події ExistingConnection, для цього:
    • На закладці «Вибір подій» включаємо прапори «Показати всі події» і «Показати всі стовпці»
    • Вибираємо клас подій «Sessions» і включаємо подія «ExistingConnection»
    • «Фільтри стовпців» і встановлюємо фільтр на ім'я додаток

Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

    • У трасування повинна спостерігатися приблизно наступна картина

Протокол shared memory або як прискорити 1с на 10% за 5 хвилин, стань експертом в 1с

У нижньому вікні повинен бути напис «network protocol: LPC», перекладається як Local Procedure Call, це означає що використовується протокол Shared Memory.

Ось власне і все, настройка завершена.

Навіть якщо все налаштовано вірно, то Shared Memory може не працювати з кількох причин:

1. У деяких джерелах говориться що Shared Memory не працював до тих пір, поки для інформаційної бази в якості сервера СУБД не прописано localhost.

2. Якщо у вас на сервері СУБД налаштований failover cluster

Кращі матеріали по темі