Оптимизация настроек MSSQL под 1С — Марстел

ПерезвонимВам

Попробовать бесплатно
Нажимая ОТПРАВИТЬ я соглашаюсь с обработкой персональных данных
Заявка в МАРС Телеком - заполните форму данными
Вы также можете связаться с нашими специалистами по телефону 8 800 333-65-40 (звонок бесплатный по всей территории России).
Скачать МАРС Коннектор
МАРС Коннектор

Программа МАРС Коннектор служит для подключения к услуге «Аренда виртуального сервера» и «Аренда 1С».

СКАЧАТЬ
Оптимизация настроек MSSQL под 1С

Оптимизация настроек MSSQL под 1С


В данной статье я попробую разобрать основные настройки MSSQL для лучшей производительности и надежности работы 1С. Данная статья не претендует на универсальность. Все рекомендуемые настройки хорошо себя показали в типовых режимах работы. В каждом конкретном случае, оптимальные настройки могут быть другими

Получить консультацию
Листайте ниже

В данной статье я попробую разобрать основные настройки MSSQL для лучшей производительности и надежности работы 1С. Данная статья не претендует на универсальность. Все рекомендуемые настройки хорошо себя показали в типовых режимах работы. В каждом конкретном случае, оптимальные настройки могут быть другими

В данной статье я попробую разобрать основные настройки MSSQL для лучшей производительности и надежности работы 1С. Данная статья не претендует на универсальность. Все рекомендуемые настройки хорошо себя показали в типовых режимах работы. В каждом конкретном случае, оптимальные настройки могут быть другими

1С Клиент серверный вариант на базе MSSQL

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

Давайте теперь перейдем к клиент серверному варианту работы.

Клиент-серверный режим работы 1С позволяет использовать внешние СУБД, которые поддерживаются системой: такие как Microsoft SQL Server, PostgreSQL

Эти СУБД обладают более высокой производительностью надежностью и уровнем защиты по сравнению с встроенной файловой СУБД в 1С.

Есть так же и другие СУБД IBM DB2 и Oracle Database, но мы заострим внимание именно на Microsoft SQL Server

Переход на клиент-серверный вариант работы 1С рекомендуется, когда файловый режим начинает ограничивать скорость работы и создавать неудобства. К примеру если наша база данных вырастает в размерах. Если файловая база уже занимает более 5ГБ, то 1С рекомендуют уже переходить в клиент серверный вариант. На сегодняшний день наиболее часто для работы с 1С выбирают Microsoft SQL Server.

Для начала конечно же необходимо разобраться с Выбором железа, Настройкой BIOS, и настройкой самой операционной системы, Все это мы так же рассматривали в отдельной статье

В нашем случае настройка BIOS и настройка самой операционной системы будут аналогичными поэтому мы сразу же перейдем к настройке самой СУБД и тонкостям работы с ней.

Включаем возможность Database instant file initialization для пользователя, от которого запущена служба Microsoft SQL Server.

Прежде всего, эта настройка касается файла данных. Когда файл базы данных увеличивается автоматически, новые участки файла заполняются нулями, что может вызывать временные замедления в работе 1С. Функция Instant File Initialization (IFI) позволяет отключить процесс зануления, что помогает избежать этих задержек и повысить производительность.

Пользователь

  1. Слева выбираем Local Computer Policy, Computer Configuration, Windows Settings, Security Settings, Local Policies, User Rights Assigment.
  2. Выбираем в Perform volume maintenance tasks

Сюда добавляем юзера, от имени которого запускается SQL Server.

Lock pages in memory

Рекомендуется включить разрешение Lock pages in memory (блокировка страниц в памяти) для учетной записи, под которой работает служба Microsoft SQL Server. Эта политика Windows позволяет указанным учетным записям сохранять данные непосредственно в физической памяти, предотвращая выгрузку страниц данных в виртуальную память на диске. Это помогает повысить производительность SQL Server, особенно при работе с большими объемами данных, уменьшая задержки

Пользователь и память

  • Слева выбираем Local Computer Policy, Computer Configuration, Windows Settings, Security Settings, Local Policies, User Rights Assignment.
  • Выбираем в Lock pages in memory.
  • Добавляем сюда пользователя, от имени которого работает SQL Server, я просто добавляю сюда группу Administrators. Эту настройку применяем. Нужно учитывать, что потребление оперативки возрастёт.

Флаги трассировки

 SQL Server существуют два типа флагов трассировки: для сеанса и глобальные. Флаги трассировки сеанса действуют во время данного соединения и доступны только для этого соединения. Глобальные флаги трассировки устанавливаются на уровне сервера и доступны для каждого соединения с этим сервером. Некоторые флаги могут быть включены только как глобальные, а некоторые и как глобальные, и как для сеанса

4199 - При использовании Microsoft SQL Server 2014 необходимо включить исправление ошибок оптимизатора (KB974006), путём включения флага трассировки 4199.

1118 – Флаг включает запрет использовать смешанные экстенты (когда страницы разных объектов располагаются в одном экстенте). Технические подробности можно найти по ссылке.

Для Microsoft SQL Server 2016 и выше данная настройка включена по умолчанию.

Флаги трассировки

Дисковая подсистема

Дисковая подсистема

Рекомендуется отформатировать файловую систему дисков, с размером кластера 64 КБ. на котором в будущем будут находится база данных, логи и системная база данных, Это особенно полезно для HDD, так как увеличивает скорость параллельного чтения файлов. Однако, для SSD и небольших баз данных это не оказывает значительного эффекта. Но все же рекомендуется использовать данную настройку.

Обязательно проверяем отсутствие сжатия файлов данных и файлов журналов

Дисковая подсистема

Включение Shared Memory, если сервер 1С расположен на том же компьютере, что и сервер СУБД.

Shared Memory используется только для подключений внутри одного компьютера. Если клиент и сервер находятся на разных машинах, этот протокол недоступен.

Shared Memory — это один из протоколов, используемых в Microsoft SQL Server для взаимодействия между клиентскими приложениями и сервером SQL Server. Этот протокол позволяет клиентам, работающим на том же компьютере, что и SQL Server, подключаться к серверу с использованием общей памяти (shared memory). Это самый быстрый способ подключения, так как данные передаются через оперативную память, минуя сетевые интерфейсы.

Для включения Shared Memory необходимо:

  1. Запустить диспетчер конфигурации SQL Server
  2. Зайти в пункт SQL Native Client – Клиентские протоколы – Общая память – Включено
  3. Поставить значение Да и нажать Ок.

Протокол "Named pipes" необходимо отключить.

shared memory

Формат строки подключения информационных баз к SQL серверу должен быть задан в виде <ИмяКомпьютера>\<ИмяЭкземпляра> или <ИмяКомпьютера> для экземпляра по умолчанию. Если значение задать в виде IP адреса сервера, то протокол не будет доступен и все данные будут отправляться через сеть.

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

shared memory

Настройки сервера SQL (Server Properties)

Необходимо ограничить максимальный объем памяти, потребляемый MS SQL Server, особенно это критично, если роли сервера 1С и сервера СУБД совмещены. Максимальный объем памяти, рекомендуемый для MS SQL Server, можно рассчитать по следующей формуле:

    Память для MS SQL Server = Память всего – Память для ОС – Память для сервера 1С

Например, на сервере установлено 32 ГБ оперативной памяти, необходимо понять, сколько памяти выделить серверу СУБД, чтобы хватило серверу 1С. Для нормальной работы ОС в большинстве случаев более чем достаточно 6 ГБ, обычно – 3-4 ГБ

Чтобы определить, сколько памяти требуется серверу 1С, необходимо посмотреть, сколько памяти занимают процессы кластера серверов в разгар рабочего дня. Этими процессами являются ragent, rmngr и rphost, подробно данные процессы рассматриваются в разделе, который посвящен кластеру серверов. Снимать данные нужно именно в период пиковой рабочей активности, когда в базе работает максимальное количество пользователей. Получив эти данные, необходимо прибавить к ним 1 ГБ – на случай запуска в 1С «тяжелых» операций.

Чтобы установить максимальный объем памяти, используемый MS SQL Server, необходимо:

  1. Открыть свойства сервера и выбрать закладку Память
  2. Указать значение параметра Максимальный размер памяти сервера

Server Properties

Процессоры

Максимальное количество потоков (Maximum worker threads) ставим 2048, по умолчанию стоит 0 и с таким значением сервер не создает больше 255 потоков, а этого ему не хватает (установлено опытным путем, что при большом количестве одновременных транзакций сервер реально начинает быстрее работать). Рекомендуется использовать 1024 в качестве максимального числа рабочих потоков для экземпляра SQL Server, работающего на 32-разрядном компьютере.

Процессоры

Если в вашей версии MS SQL есть параметр, Включить флаг «Поддерживать» приоритет SQL Server (Boost SQL Server priority). То обязательно это делаем Данный флаг позволяет повысить приоритет процесса MS SQL Server над другими процессами. Имеет смысл включать флаг только в том случае, если на компьютере с сервером СУБД не установлен сервер 1С.

Файлы баз данных

Крайне рекомендуется разносить и хранить файлы баз данных на разные диски. MDF на один, а LDF на другой. На скриншоте выше мы можем наблюдать что у нас есть два диска BASES (тут будут находиться MDF) и LOGS (тут будут находиться логи LDF). Резервные копии так же мы выносим на отдельный том. Поправить пути можно в свойствах самого сервера.

Файлы баз данных

Так же не забываем о галочке сжимать резервные копии, так мы будем экономить значительно много места ведь сжимает он действительно хорошо.

Дополнительно

Установите параметр «Максимальная степень параллелизма» (Max degree of parallelism) в значение 1

Данный параметр определяет, во сколько потоков может выполняться один запрос. По умолчанию параметр равен 0, это означает, что сервер сам подбирает число потоков. Для баз с характерной для 1С нагрузкой рекомендуется поставить данный параметр в значение 1, т.к. в большинстве случаев это положительно скажется на работе запросов.

Так же повышаем приоритет SQL Сервера

Дополнительно

Настройка баз данных

Tempdb

Системная база данных tempdb — это глобальный ресурс, содержащий временные пользовательские объекты, созданные явно. К ним относятся глобальные или локальные временные таблицы и индексы, временные хранимые процедуры, табличные переменные, возвращаемые функциями с табличными значениями таблицы и курсоры. Крайне рекомендовано чтобы она находилась на отдельном томе на котором у нас отсутствуют рабочие базы данных. По умолчанию tempdb создается при установке SQL Server, но её можно переместить на другой диск или добавить дополнительные файлы данных (.ndf) для улучшения производительности. В нашем случае нам необходимо изменить местоположение базы указать новый путь E:\tempdb

Для этого выполняем запрос SQL

        USE master
        GO
        ALTER DATABASE tempdb
        MODIFY FILE (NAME = tempdev, FILENAME = ' E:\tempdb\tempdb.mdf')
        GO
        ALTER DATABASE tempdb
        MODIFY FILE (NAME = templog, FILENAME = ' E:\tempdb\templog.ldf')
        GO
    

Теперь изменим местоположение дополнительных файлов данных .ndf если они уже у нас имеются. Выполняем запрос:

        ALTER DATABASE tempdb MODIFY FILE ( NAME = temp2, FILENAME = ' E:\tempdb \tempdb_mssql_2.ndf' )
        ALTER DATABASE tempdb MODIFY FILE ( NAME = temp3, FILENAME = ' E:\tempdb \tempdb_mssql_3.ndf' )
    

И так далее, в зависимости от количества файлов в вашем случае

Если же их нет, их можно создать кнопкой «Добавить» уже по новому пути E:\tempdb

После выполнения всех действий вам потребуется. Перезапустить Microsoft SQL Server. После перезапуска сервер самостоятельно создаст новую базу tempdb там, где вы указали. Старые файлы необходимо самостоятельно подчистить

Так как база у нас находится на отдельном диске, то размер файла данных (Initial size) установить равным (50% всего объема / Кол-во файлов). Но в нашем случае мы ограничились размеров в 5ГБ, Прирост файлов выставляем в– 512Мб. Свободное место позволяет. Если оставить значения по умолчанию – рост по 1МБ и по 10% очень сильно тормозят работу сервера, когда ему при каждой 3й транзакции надо файл увеличивать

tempdb

model

Каждая новая база данных создается из копии базы model. Все настройки, указанные в model, будут в новой базе данных. Поэтому мы перед созданием рабочих баз всегда правим и настраиваем ее.

Начальный размер файла данных ставим - от 1Гб до 10Гб.

Начальный размер журнала транзакций - от 1Гб до 2Гб.

Прирост файлов – 512Мб. Но лучше 1024 мб.

model

Установить модель восстановления, в зависимости от политики резервного копирования.

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

Так же необходимо, установить параметр «Auto update statistics asynchronously» = True

Рабочая База

Параметры рабочей базы аналогичны параметрам базы model, за исключением начального размера файлов (Initial Size).

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

Размер файла журнала транзакций следует указывать таким, чтобы исключить его расширение (auto grow). Т.е. указанного размера файла журнала должно хватать на весь период работы между операциями «BACKUP LOG».


https://marstel.ru/1c-report

Уже уходите?

Хотите, перезвоним Вам за 30 секунд?

Сейчас на линии несколько свободных специалистов готовых перезвонить Вам для консультации!

Жду звонка
Идёт отправка!

Звонок для Вас бесплатный