Внедрение 1C Блог О нас
 
1С:Франчайзинг На главную Написать нам

Shared memory 1с как включить


Использование протокола Shared Memory в MS SQL Server 2012 /2008 на примере работы с сервером «1С:Предприятия» 8

В этой статье я расскажу о протоколе «Общая память» (Shared Memory) обмена данными в MS SQL Server 2012 (справедливо и для MS SQL Server 2008 (R2)). Данный протокол может использоваться при подключении к SQL-серверу клиента, установленного на том же компьютере, где и запущена служба SQL Server, и при использовании дает ощутимый прирост производительности за счет использования оперативной памяти для передачи данных, и как следствии, ликвидации накладных расходов при обмене данными между приложениями. В системе «1С:Предприятие» 8 начиная с версии 8.2.17 появилась поддержка протокола Shared Memory. По оценкам специалистов фирмы 1С, прирост производительности при использовании протокола «Общая память» (Shared Memory) должен составить от 10 до 15%. На примере совместной работы MS SQL Server 2012 с сервером 1С:Предприятие 8 и рассмотрим настройку данного протокола.

0. Оглавление

1. Включение протокола «Общая память» (Shared Memory) в MS SQL Server

Хоть протокол «Общая память» (Shared Memory) и включен по умолчанию, все же стоит убедиться что данный протокол работает и имеет наивысший приоритет над другими протоколами подключений к MS SQL Server. Для этого запустим оснастку «Диспетчер конфигурации SQL Server» (SQL Server Configuration Manager). В Microsoft Windows Server 2012 (R2) ее можно найти в списке всех программ.

В Microsoft Windows Server 2008 (R2) в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Средства настройки» (Configuration Tools) — «Диспетчер конфигурации SQL Server» (SQL Server Configuration Manager)

В запустившейся оснастке раскроем вкладку «Сетевая конфигурация SQL Server» (SQL Server Network Configuration), затем выделим вкладку «Протоколы для » (Protocols for …) (экземпляр по умолчанию называется MSSQLSERVER). В таблице справа увидим используемые для данного экземпляра протоколы. Убедимся, что протокол «Общая память» (Shared Memory) имеет состояние «Включено» (Enabled). В противном случае необходимо кликнуть по данной строке правой кнопкой мыши и в контекстном меню выбрать «Включить» (Enable), после чего перезапустить экземпляр SQL Server.

Далее убедимся что на закладках «Клиентские протоколы» (Client Protocols) настроек клиента «Native Client SQL версии 11.0 (32-разрядная версия)» (SQL Native Client 11.0 Configuration (32bit)) и «Native Client SQL версии 11.0» (SQL Native Client 11.0 Configuration) также включен протокол «Общая память» (Shared Memory), и он имеет порядок — «1», т. е. наивысший приоритет над другими протоколами. Если это не так, необходимо изменить настройки до данного состояния.

2. Настройки строки подключения баз данных в системе «1С:Предприятия»

Как уже говорилось ранее, сервер «1С:Предприятия» должен быть запущен на том же самом компьютере, где и запущенна служба MS SQL Server. Кроме того, формат строки подключения информационных баз к SQL серверу должен быть задан в виде \ или  для экземпляра по умолчанию. Для того, чтобы проверить или изменить это значение необходимо запустить оснастку «Администрирование серверов 1С:Предприятия» (предварительно должна быть установлена). Далее в запустившейся оснастке раскрываем вкладки — «Кластеры» — «Локальный кластер» — «Информационные базы» и вызываем свойства информационной базы выбрав соответствующий пункт контекстного меню.

В окне свойств информационной базы убедимся, что строка подключения к серверу баз данных задана в правильном формате или отредактируем ее, если это не так.

Затем запустим клиент «1С:Предприятие» для данной информационной базы, для инициализации соединения с указанным экземпляром SQL сервера.

3. Просмотр текущих подключений в MS SQL Server

Теперь просмотрим все активные подключения к MS SQL Server, а также протоколы используемые в каждом из подключений. Для этого запустим программу SQL Server Profiler. В Microsoft Windows Server 2012 (R2) ее можно найти в списке всех программ.

В Microsoft Windows Server 2008 (R2) в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Средства обеспечения производительности» () — «SQL Server Profiler».

В запустившейся программе выберем в меню «Файл» (File) — «Создать трассировку…» (New Trace…).

В окне соединения с сервером введем имя текущего экземпляра SQL Server, данные для авторизации и нажмем «Соединить» (Connect).

Запуститься окно настройки свойств новой трассировки. Не меняя параметров, перейдем на вкладку «Выбор событий» (Events Selection), снимем отметку со всех событий кроме «ExistingConnection» и нажмем «Запустить» (Run).

Затем в активном окне трассировки увидим все подключения к данному экземпляру SQL Server. Среди них и соединение с именем 1CV83 Server, что соответствует подключению сервера «1С:Предприятия». В столбце TextData увидим используемый для подключения протокол. В данном случае надпись LPC (Local Prpcedure Call) означает использование протокола Shared Memory, что нам и в общем то и требуется.

Посмотреть активные соединения можно также выполнив запрос:

select program_name, net_transport from sys.dm_exec_sessions as t1 left join sys.dm_exec_connections AS t2 ON t1.session_id=t2.session_id where not t1.program_name is null

Для этого подключимся к текущему экземпляру SQL Server с помощью программы «SQL Server Management Studio». Далее, в окне программы кликнем правой кнопкой мыши в обозревателе объектов по строке с именем сервера и в контекстном меню выберем «Создать запрос» (New Query).

Вставляем текст запроса в появившейся справа окно и нажимаем кнопку «Выполнить» (Execute) на панели задач. После чего в окне «Результаты» (Results), расположенном ниже, увидим результат выполнения запроса, а именно все текущие соединения с данным экземпляром SQL Server. Среди них и соединение с именем 1CV83 Server и используемым протоколом Shared memory.

4. Соединение с помощью протокола «Именованные каналы» (Name pipe)

Для чистоты эксперимента попробуем подключиться к SQL Server с помощью какого-нибудь другого протокола, например с помощью протокола «Именованные каналы» (Name pipe). Для этого, соответственно, включим поддержку протокола именованных каналов для данного экземпляра SQL Server. Создадим псевдоним экземпляра, например, с именем TEST1. В настройках соединения информационной базы «1С:Предприятия» с сервером баз данных укажем имя только что созданного псевдонима и запустим клиент «1С:Предприятия» для данной информационной базы.

Запускаем заново трассировку и видим, что теперь приложение с именем 1CV83 Server использует протокол Name Pipes.

То же самое увидим выполнив запрос из предыдущего пункта.

Смотрите также:

  • Удаление компонент MS SQL Server 2012

    Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…

  • Лицензирование MS SQL Server 2012

    В данной статье будут рассмотрены способы лицензирования Microsoft SQL Server 2012. Будет приведен краткий обзор каждого из способов лицензирования, а также указаны возможные варианты лицензирования для различных выпусков MS SQL Server…

tavalik.ru

Совмещение ролей сервера 1С + MS SQL Server

Мощности процессоров постоянно развиваются, и если раньше для работы 150 пользователей надо было покупать дорогой сервер, то теперь часто с такой задачей может справить правильно подобранный обычный компьютер (мы кстати можем Вам в этом легко помочь!).

Однако очень многие не недооценивают важность настройки сервера, когда роли сервера 1С и сервера СУБД совмещены на одном физическом компьютере.

С свойствах информационной базы должен быть указан  или \, не указывать ip-адрес, FQDN имен адресации типа sample.gtw-02.office4.example.com

Можно указать протокол в явном виде lpc:

Протокол Shared Memory должен быть с наивысшим приоритетом, ненужные протоколы отключены или не использоваться. Например если будет tcp: или использоваться alias, то вы не сможете использовать обмен через память. Есть смысл в отдельных случаях отключить Named Pipes.

Убедиться, что к примеру используется протокол Shared Memory можно следующим образом:

select program_name,net_transport from sys.dm_exec_sessions as t1 left join sys.dm_exec_connections AS t2 ON t1.session_id=t2.session_id

where not t1.program_name is null

www.gilev.ru

Протокол Shared Memory или как ускорить 1С на 10% за 5 минут

Данный способ работает только в том случае, если сервер приложений и сервер СУБД расположены на одном компьютере. При этом необходимо использовать версию платформы не ниже чем 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

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

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

Как проверить что 1С использует Shared Memory?

Есть 2 способа:

1. Самый быстрый и простой способ с помощью запроса в Management Studio

Выполняем запрос:

SELECT PROGRAM_NAME, net_transport FROM sys.dm_exec_sessions AS T1 LEFT JOIN sys.dm_exec_connections AS T2 ON T1.session_id=T2.session_id WHERE T1.program_name LIKE '1CV8%'

Как не трудно догадаться, если во второй колонке значение Shared Memory, значит протокол работает.

2. Способ посложнее, для любителей поработать с SQL Profiler

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

    • В трассировка должна наблюдаться примерно следующая картина

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

Вот собственно и все, настройка завершена.

Даже если все настроено верно, то Shared Memory может не работать по нескольким причинам:

1. В некоторых источниках говорится что Shared Memory не работал до тех пор, пока для информационной базы в качестве сервера СУБД не прописали localhost.

2. Если у вас на сервере СУБД настроен failover cluster

Если у вас возникли сложности с настройкой протокол Shared Memory пишите в комментариях или на наш форум.

Друзья, давайте не будем теряться на просторах интернета!  Я предлагаю вам получать на e-mail извещения о публикации новых статей и материалов, таким образом вы всегда будете в курсе самых интересных новостей!

Вам ничего не стоит, а им будет интересно Подпишитесь на обновления

1sprogress.ru

Улучшения по производительности при отключении режима совместимости 8.2.13

Улучшения в версии 8.2.14

  • Оптимизировано выполнение запроса вида «ТипЗначения(Поле1) = ТипЗначения(Поле2)», если «Поле1» и «Поле2» содержат значения ссылочного типа.
  • Оптимизированы выборки, выполняемые порциями (используемые в методах «Выбрать()», а также при реструктуризации), для всех СУБД.
  • Оптимизирован ряд механизмов сервера 1С:Предприятия для повышения масштабируемости и производительности при большом количестве работающих пользователей.
  • Оптимизирована работа с файлами на диске (включая временные файлы) для следующих механизмов: полнотекстовый поиск, справка, объект «ИнтернетПочта».
  • Оптимизирована работа кластера серверов с данными сеанса.
  • Ускорена работа функций «ПолучитьСоединенияИнформационнойБазы()» и «ПолучитьСеансыИнформационнойБазы()» при большом количестве зарегистрированных пользователей.
  • Повышена производительность и масштабируемость модуля расширения веб-сервера.
  • В веб-клиенте оптимизировано обновление табличного документа после выполнения интерактивного редактирования, а также после программного изменения отдельных ячеек табличного документа.
  • Уменьшено количество серверных вызовов в части функциональности в веб-клиенте.
  • Ускорена работа механизма управляемых блокировок.
  • При отключенном режиме совместимости изменен режим хранения констант и настроек регистров накопления. Для каждого объекта используется своя таблица базы данных. Это означает улучшенную параллельность работы пользователей. При включении режима совместимости (в значение «Версия 8.2.13» или «Версия 8.1») выполняется обратная конвертация для обеспечения возможности запуска прикладного решения с помощью версии 8.2.13. Требуется реструктуризация!

Улучшения в версии 8.2.15

  • Для полей управляемой формы, отображающих реквизит составного типа, ускорено открытие списка быстрого выбора в тех случаях, когда в составной тип входят ссылочные типы с разными настройками быстрого выбора.
  • Уменьшено влияние режима отладки на скорость работы в режиме «1С:Предприятие» для тонкого клиента, толстого клиента, сервера и внешнего соединения.
  • Увеличена производительность работы системы в случае использования двух и более разделителей или одного разделителя с типом «Строка».
  • Оптимизирован запуск клиентского приложения.
  • Оптимизировано открытие формы веб-клиента при использовании большого количества элементов в условном оформлении формы.
  • Оптимизировано открытие формы отчета в веб-клиенте, который содержит большое количество элементов условного оформления.
  • Для блокировочных СУБД (Microsoft SQL Server, IBM DB2) изменение пользователя информационной базы в транзакции более не конфликтует с процессом аутентификации, кроме случая, когда аутентификацию пытается выполнить пользователь, данные которого изменены, и транзакция, в рамках которой были выполнены изменения, не завершена.
  • Для нового независимого и непериодического регистра сведений, индекс по измерениям является кластерным. При создании первого регламентного задания, индекс по идентификатору задания также является кластерным. Требуется реструктуризация! Для создания необходимых индексов в существующей информационной базе можно выполнить одно из следующих действий:
    • Выполнить реструктуризацию базы данных.
    • Выполнить загрузку информационной базы из файла «.dt».

Улучшения в версии 8.2.17

  • Реализована поддержка СУБД Microsoft SQL Server 2012.
  • Для работы с Microsoft SQL Server 2008 R2 возможно использование Native Client. При использовании Native Client возможно использование протокола SHARED MEMORY, если оба сервера находятся на одном компьютере. Использование протокола SHARED MEMORY (при использовании Native Client) возможно, начиная с версии Microsoft SQL Server 2005. Можно получить значительное ускорении при использовании SHARED MEMORY.

Улучшения в версии 8.2.18

  • Реализована поддержка Native Client для СУБД Microsoft SQL Server 2005 и Microsoft SQL Server 2012.
  • Оптимизирован сервис нумерации кластера серверов «1С:Предприятия», в результате чего исключено снижение производительности сервера при длительной работе.
  • Оптимизирована работа тонкого и толстого клиентов, работающих с файловой информационной базой, расположенной на сетевом ресурсе, при многопользовательском доступе. Ускорены различные операции с информационной базой, включая открытие и редактирование форм объектов, просмотр форм списков, запись объектов, проведение документов и т.д.
  • Повышена масштабируемость сервера «1С:Предприятия» при работе с высокой нагрузкой и большим количеством одновременно работающих пользователей.
  • Ускорена работа функций СтрЧислоСтрок() и СтрПолучитьСтроку() при работе в тонком клиенте, толстом клиенте и на стороне сервера.
  • Оптимизировано получение писем с помощью объекта ИнтернетПочта.
  • Ускорена работа функции ЗначениеЗаполнено() в том случае, если параметром функции выступает выражение, состоящее из получения свойства какой-либо переменной (как «через точку» так и с помощью операторного способа ([])) любого уровня вложенности.
  • В таблицу журнала документов добавлен индекс по полю Ссылка. В результате повышается скорость работы динамического списка журнала документов, а также поиск по ссылке в журнале документов.
  • Оптимизирована генерация запросов для СУБД Microsoft SQL Server:
    • Сокращено количество повторяющихся планов запросов;
    • Сокращено количество компиляций запросов в Microsoft SQL Server;
    • Уменьшен размер кеша планов запросов Microsoft SQL Server;
    • Уменьшено время работы некоторых запросов;
    • Улучшились создаваемые планы запросов в некоторых случаях.
  • Оптимизирована работа динамического списка и динамической выборки из базы данных в случае наличия упорядочивания выборки по убыванию.Для Microsoft SQL Server эти операции оптимизированы дополнительно, а также оптимизирована операция реструктуризации.
  • При работе в клиент-серверном варианте в режиме управляемых блокировок, изменен механизм генерации новых ссылок для объектов информационной базы. Ссылки генерируются строго последовательно для всех соединений сервера «1С:Предприятие» с сервером СУБД. В результате сокращена фрагментация таблиц и индексов в базе данных, а также повышена скорость вставки и чтения записей таблиц базы данных.
  • Оптимизирован механизм балансировки нагрузки в кластере серверов.
  • Оптимизировано получение из базы данных прикладных объектов без табличных частей при вызове метода ПолучитьОбъект() и при обращении к свойствам «через точку» от ссылки.
  • Оптимизирована работа сервера «1С:Предприятия» при выполнении запросов к объектам, на которые наложены ограничения доступа к данным.
  • При работе с СУБД Microsoft SQL Server оптимизированы операции, использующие конструкцию IN (…) с одним значением в списке.
  • Оптимизирован запуск клиентских приложений, фоновых и регламентных заданий.
  • Ускорена работа системы при частом выполнении фоновых заданий и вызовов web-сервисов.
  • Ускорено открытие управляемых форм.Оптимизация наиболее заметна в случае многопользовательского доступа (с помощью тонкого клиента) в файловом варианте информационной базы, расположенной на сетевом ресурсе.
  • Ускорена работа некоторых видов запросов в файловом варианте информационной базы, например:
    • Запросы вида ВЫБРАТЬ ПЕРВЫЕ 1 …;
    • Сравнение двух списков с помощью оператора языка запросов В: … (Объект, СчетФактура) В (&СписокОбъектовИПартий) ….
  • Оптимизирована работа клиентских приложений с файловым вариантом информационной базы, расположенной на сетевом ресурсе.Рекомендуется выполнять операцию сжатия таблиц информационной базы после выполнения массовых операций изменения данных.
  • В веб-клиенте ускорены операции открытия и прокрутки табличного документа, содержащего большое количество колонок.

Улучшения в версии 8.2.19

  • Оптимизирован запуск системы при большом количестве запусков, выполняемых с небольшими интервалами между запусками.
  • Проведена оптимизация внутренних механизмов платформы, улучшающая производительность и масштабируемость кластера серверов «1С:Предприятия».
  • Для независимых регистров сведений без измерений реализовано создание отдельных индексов по разделителям. Требуется реструктуризация!
  • Для разделителей с режимом разделения Независимый и совместный реализован дополнительный индекс в объектных таблицах, включающий значение разделителя, а также первичный ключ таблицы. Индекс позволит избежать эскалаций блокировок в СУБД при некоторых сценариях работы с таблицей.
  • При работе в веб-клиенте оптимизированы следующие операции с табличным документом: открытие, построчная прокрутка, постраничная прокрутка.

ВАЖНО. ДЛЯ ПОЛУЧЕНИЯ ЭФФЕКТА ОТ ВЫКЛЮЧЕНИЯ СОВМЕСТИМОСТИ НАДО СДЕЛАТЬ «РЕСТРУКТУРИЗАЦИЮ» В «ТЕСТИРОВАНИИ И ИСПРАВЛЕНИИ»!

www.gilev.ru


Смотрите также