1c 8 sql тормозит отчет у пользователя

Обновлено: 06.07.2024

Методика расследования причин медленной работы операции на примере открытия управляемой формы

Для начала необходимо убедиться, что проблема стабильно воспроизводится (в одинаковых условиях) и что все пункты с описанием применения методики выполнены. Для этого можно сделать следующее:

Сбор и анализ стандартных данных

Разберем пример для операции открытия формы документа "Табель учёта рабочего времени".

Мы организовали тестовый стенд, на котором наша проблема воспроизводится под пользователем с полными правами. К этому стенду мы можем подключаться как напрямую с удаленной рабочей станции в режиме тонкого клиента, так и в режиме веб-клиента через публикацию на веб-сервере.

Настройка технологического журнала на клиенте может быть такой:

Фильтр по имени процесса для нашей задачи избыточен и нужен для того, чтобы в случае ошибочной настройки такого лога на сервере не получить сбор всех событий для серверных процессов, что может занять значительный объем. С другой стороны, при осознанном включении такой настройки на сервере (если клиентские приложения запускаются там же, где может быть развернут и сервер приложений 1С:Предприятие) мы в отдельном каталоге Client_Full увидим данные только клиентских приложений (хотя при этом подкаталоги других процессов тоже будут созданы, но они буду пустыми). Свойство Interface не собираем, так как оно дублируется более "человек читаемым" свойством IName (хотя даже последнее нам в данном примере не обязательно нужно).

После настройки технологических журналов и проверки корректности замера времени ОценкиПроизводительности БСП выполняем повторение операции с включенной отладкой.

Замеры времени средствами БСП будут выглядеть следующим образом:


Везде далее будем рассматривать верхний в этом списке замер от последнего повторения, его длительность 13,022 секунды.

Замер отладчиком конфигуратора изображен на следующем рисунке:


Как видно, сумма длительности всех строк, связанных с открытием формы составила всего 1,523 секунды.

'00010101' + ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000

а для миллисекунд взять остаток от деления на 1000 (то есть просто последние три цифры, обратите внимание на "779" на следующей картинке).


Точное время начала замера (минут:секунд.миллисекунд): 25:10.779


Точное время окончания замера (минут:секунд.миллисекунд): 25:23.801

Найдем теперь записи технологического журнала, соответствующие данному замеру, они будут примерно следующими:


Здесь видно, что соответствующий нашему замеру серверный вызов SCALL завершился примерно за 10,1 секунды, это соответствует интервалу между запросом VRSREQUEST и ответом VRSRESPONSE.
Причем время начала замера почти совпадает с началом вызова, то есть событием VRSREQUEST, что собственно ожидаемо, так как замер БСП начинается на клиенте и должен быть непосредственно перед командой открытия формы. А вот окончание вызова сервера случилось раньше, чем окончание замера, что значит, что эта разница во времени пришлась на часть работы клиентского приложения.

Итак, промежуточный итог по длительностям замеров разными способами показывает соответствие нашей ситуации ограничениям и выполнение неравенства: 1,5 < 10,1 < 13.

Стандартными инструментами не удается увидеть причину проблем низкой производительности работы (открытия) управляемой формы, поэтому воспользуемся следующими помощниками:

  • Отладчик операционной системы: Windows Performance Recorder для сбора метрик и Windows Performance Analyzer для их визуализации и анализа;
  • Анализатор сетевых протоколов Wireshark или прокси-сервер Fiddler Web Debugger.

Установим и запустим Windows Performance Recorder ("C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\WPRUI.exe"), укажем настройки:


После того, как их подготовили, перейдем в тонкий клиент 1С, откроем форму списка документов и непосредственно перед воспроизведением проблемной операции запустим сбор данных WPR (кнопка Start).

После открытия формы в тонком клиенте запись можно остановить и открыть ее для анализа. В открывшемся окне найдем по PID 5508 (его можно определить в диспетчере задач ОС или по логам ТЖ) наш тонкий клиент 1С и должны получить примерно следующую картинку:


По данным Windows Performance Analyzer видим, что у нас нет серьезной нагрузки по дискам, а поток тонкого клиента потребляет 100% ЦП на протяжении длительного времени вплоть до завершения замера.

Запомним этот результат и проанализируем траффик.

Запустим Wireshark и повторим проблемную операцию в тонком клиенте 1С:Предприятие с прямым подключением к серверу приложений 1С.

При сборе данных с помощью Wireshark (и отбору по пакетам с сервером-источником равным серверу приложений 1С:Предприятие) запуск открытия формы документа будет выглядеть примерно так:


Здесь каждая такая строка – это пакет (или если точнее, то "кадр", frame), который в свою очередь является частью общего большого пакета поверх протокола TCP (PDU – Protocol Data Unit). Если их сложить, получим пакет около 70 Кб. Стоит обратить внимание, что это будет размер с учётом сжатия, а если без него – то должны получить что-то около 2500 – 3500 Кб данных.

Устанавливаем и запускаем Fiddler, на панели инструментов ищем "Browse", выбираем любимый браузер и запускаем в нем необходимое нам приложение (информационную базу 1С:Предприятие). После запуска переходим в форму списка документов (готовимся воспроизвести сценарий), возвращаемся в Fiddler и включаем сбор траффика (кнопка F12), переходим в браузер и открываем форму документа. После её открытия сбор траффика можно отключить и заняться его анализом. Мы должны получить примерно следующее:


В данном дампе достаточно быстро находится относительно большой пакет искомого размера, выбираем его в списке слева, а в правой части окна переключаемся на страницу Inspectors, выбираем там просмотр заголовков (Headers), и так как у нас пакет является сериализованным json (Content-Type: application/json), то попросим Fiddler десериализовать его для нас.

После этого в окне предпросмотра отобразится древовидная структура ответа (response), которая передается с сервера на клиент и содержит так много данных. Далее нам необходимо проанализировать её и найти наиболее проблемные места. Может помочь кнопка Expand All, которая развернёт все элементы дерева, но это может занять некоторое время. Чтобы его сократить, сначала поймем, что именно нужно искать.

Подведем промежуточный итог:

  • Проблем с медленной работой прикладного кода 1С или запросов нет.
  • Большая часть времени открытия формы состоит из сетевого взаимодействия.
  • Размер пакета с формой подозрительно велик.
  • После получения пакетов имеем высокую утилизацию ЦП тонким клиентом 1С (или веб-клиентом).
  • Потерянное время находится где-то между окончанием/началом работы прикладного кода 1С и сетевой передачей.

Из всех этих пунктов для нас наиболее полезным и требующим дополнительного анализа является тезис "Размер пакета с формой подозрительно велик".
Какие могут быть причины для такой ситуации? В общем случае их несколько:

  • Сама по себе большая и сложная форма с большим количеством экранных элементов и реквизитов. Наверное, редкий и точно не очень правильный случай, лучше такого избегать на этапе проектирования систем.
  • Простая форма, но много данных в реквизитах формы (включая данные объекта), в особенности:
    • Хранилище значения, Строка(0);
    • Большие коллекции (Таблица, Дерево, Список);
    • Произвольный тип (концентрация проблем).

    Так как наша проблема (у вас может быть по-другому) воспроизводится даже при очень небольшом количестве данных в ТЧ, и реквизитов у документа (т.е. объекта формы) совсем не много, то их мы не рассматриваем. Остаются реквизиты формы, не равные основному реквизиту "Объект".

    Среди них находится несколько реквизитов, имеющих произвольный тип. Могут выглядеть так:


    Сопоставляем эти данные с уже собранным ранее замером с помощью конфигуратора, и видим заполнение этих структур достаточно большим количеством элементов (например, можно 5059 в реквизите "СвойстваИзмерений").
    Снова вернемся к дампу траффика в Fiddler и найдем там элемент, отвечающий за параметры формы (response/props). Увидим там примерно следующее:


    И если развернем далее эти элементы, убедимся, что их там несколько тысяч, каждый из которых представляет собой вложенную структуру вида:


    Найдем прикладной код, заполняющий эти параметры, и убедимся, что данных там действительно достаточно много (2-3 Мб), и они представляют собой большое количество сложных вложенных структур.

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

    Выводы и рекомендации

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

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

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


    Принимая во внимание полученные таким образом данные, можно предложить следующие возможные пути решения:


    Что же делать и как это победить, и так по порядку:

    Клиенты очень медленно работают с серверной версией 1С

    Кроме медленной работы 1С, так же наблюдается медленная работа с сетевыми файлами. Проблема встречается при обычной работе и при RDP

    netsh int tcp set global autotuning=disabled

    netsh int tcp set global autotuninglevel=disabled

    netsh int tcp set global rss=disabled chimney=disabled

    и сеть работает без проблем

    иногда оптимальным является:

    netsh interface tcp set global autotuning= HighlyRestricted

    вот как выглядит установка


    Далее посмотрите настройки брандмауэра Windows

    Настроить брандмауэр Антивируса или Windows

    Как настроить брандмауэр Антивируса или Windows для работы сервера 1С (связка из Сервера 1С: Предприятие и MS SQL 2008, например).

    Настройка производительности Сервера / Компьютера

    Для того чтобы компьютер работал с максимальной производительностью - нужно настроить его на это:

    1. Настройки BIOS

    • В BIOS сервера отключаем все настройки по экономии электропитания процессора.
    • Если есть «C1E» & обязательно ОТКЛЮЧАЕМ!!
    • Для некоторых не очень параллельных задач также рекомендуется выключить гипертрейдинг в биосе
    • В некоторых случаях (особенно для HP!) надо зайти в BIOS сервера, и ВЫКЛЮЧИТЬ там пункты, в названии которых есть EIST, Intel SpeedStep и C1E.
    • Взамен надо там же найти пункты, связанные с процессором, в названии которых есть Turbo Boost, и ВКЛЮЧИТЬ их.
    • Если в биосе есть общее указание режима энергосбережения & включить его в режим максимальной производительности (он ещё может называться «агрессивный»)


    2. Настройки схемы в операционной системе - Высокая производительность


    Сервера с архитектурой Intel Sandy Bridge умеют динамически менять частоты процессора.

    Скачайте утилиту PowerSchemeEd.7z , распакуйте с помощь 7zip и запустите PowerSchemeEd.exe

    Выберите раздел Управление питанием процессора и выставите параметры 01. Порог при питании от сети 30% и отключите 27. Переопределение ядра. как на картинке.


    3. На серверах 1С и MS SQL Server использование антивирусов (даже сам факт инсталяции без включения) будет приводить к снижению производительности в виде периодических массовых замедлений и подвисаний интерфейса.

    4. Совмещение ролей сервера 1С и сервера MS SQL Server дает большую производительность, особенно если использовать протокол обмена данных напрямую через память «Shared Memory».

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

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


    Обратите внимание, что в версиях платформы некоторые релизы «переключались» на протокол «именнованых каналов».

    Для работы 1С Предприятие в режиме Shared Memory с SQL Server 2012 должен быть установлен NativeClient от SQL Server 2008 (backward compatibility connectivity components из дистрибутива SQL Server 2012 или отдельный пакет)

    5. Отключение ненужных служб Виндовс

    Одним из самых действенных способов ускорения компьютера является отключение неиспользуемых (ненужных) служб операционной системы. У ОС Windows по умолчанию включено огромное количество служб, на работу которых требуется большое количество ресурсов системы. Многие из них можно отключить без потери функциональности и снижения безопасности системы.

    Какие службы можно отключить для оптимизации Windows:

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

    Кэширование записей на дисках в Windows

    Кэшированием записей на устройстве хранения называется использование высокоскоростной энергозависимой памяти для накопления команд записи, отправляемых на устройства хранения данных, и их кэширования до тех пор, пока их не обработает более медленный носитель (либо физические диски, либо недорогая флэш-память). Для большинства устройств, использующих кэширование записей, требуется непрерывная подача электропитания.

    Для управления кэшированием записей на диске откройте Панель управления - Диспетчер устройств.

    В разделе Дисковые устройства дважды щелкните нужный диск.

    При размещении 1С в облачной инфраструктуре и среде виртуализации наиболее важными и непростыми задачами являются повышение скорости работы платформы «1С» и настройка СУБД. Для достижения максимальной производительности инфраструктуры 1С рекомендуется правильно выбирать архитектуру инфраструктуры, режимы работы, проверить и выполнить ряд важных настроек.

    В зависимости от количества пользователей, размера баз данных и ограничений бюджета (с учетом стоимости дополнительных лицензий на сервер «1С:Предприятие 8» и лицензий на СУБД) платформа «1С» может работать в файловом и клиент-серверном вариантах (на основе трехуровневой архитектуры «клиент-сервер» (рис. 1): клиентское приложение, кластер серверов «1С:Предприятия 8», СУБД).

    Рис. 1

    Рис. 1

    Как правильно выбрать вариант/режим работы 1С: файловый или SQL?

    Обычно для 1-10 пользователей выбирается файловый режим

    От 10 и более пользователей выбирается режим работы с использованием SQL

    В файловом варианте все пользователи могут работать на одной виртуальной машине в облаке, например на терминальном сервере.

    Для клиент-серверного варианта лучше выбрать не менее двух виртуальных машин:

    Сервер с клиентским приложением, например терминальный сервер с клиентской частью «1С» (толстый клиент)

    Сервер «1С» и СУБД (MS SQL или PostgreSQL)

    Как рассчитать мощности сервера для 1С в файловом режиме работы?

    В обоих вариантах: файловом и SQL, для работы с пользовательским приложением 1С в классическом режиме, например, «удаленного рабочего стола» (так называемый «толстый клиент»), необходимы следующие минимальные ресурсы виртуального сервера:

    Количество виртуальных ядер CPU = 1 или 2 для ОС + 0,25 * количество пользователей

    Объем памяти RAM = 1 или 2 ГБ для ОС + 0,5 ГБ * количество пользователей

    Размер диска/хранилища HDD = 20-40 ГБ для ОС и приложений + (0,1-10) ГБ * количество пользователей. Для ОС и 1С рекомендуется использовать самые быстрые диски

    Как рассчитать мощности сервера для 1С в варианте работы с SQL?

    В клиент-серверном варианте работы 1С, в котором используется СУБД SQL, рекомендуется разместить 1С Сервер и сервер SQL на отдельном виртуальном сервере в общей с клиентским сервером локальной подсети. Необходимы следующие минимальные мощности для этого виртуального сервера:

    Размер диска/хранилища HDD = 20-40 ГБ для ОС и приложений + (10-1000) ГБ в зависимости от объема и количества баз данных. Для ОС и СУБД рекомендуется использовать самые быстрые диски
    ------------
    ОС - операционная система, например, Windows Server
    Здесь Сервер 1С - ПО "сервер "1С:Предприятия 8"

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

    Неправильный выбор мощностей

    Неквалифицированная настройка сервисов виртуальной инфраструктуры

    Недостаточное внимание к тестированию производительности платформы «1С»

    Для достижения максимальной производительности рекомендуется проверить и выполнить ряд настроек. Прежде всего необходимо исключить свопинг, для чего с помощью системы мониторинга следует обязательно удостовериться в том, что объем оперативной памяти достаточен для работы ВМ. Кроме того, файл подкачки ОС, профили пользователей, файлы баз данных, файлы логов транзакций (SQL) и tempDB (SQL) лучше разместить на дополнительных SSD-дисках, а для файла подкачки установить фиксированный размер.

    На SQL-сервере необходимо выключить все ненужные службы, например FullText Search и Integration Services, установить максимально возможный объем оперативной памяти, максимальное количество потоков (Maximum Worker Threads) и повышенный приоритет сервера (Boost Priority), задать ежедневную дефрагментацию индексов и обновление статистики, настроить автоматическое увеличение файла базы данных (не менее 200 Мбайт) и файла лога (не менее 50 Мбайт), а также полную реиндексацию не реже одного раза в неделю. При размещении серверов SQL и «1С:Предприятие» на одной ВМ следует включить протокол Shared Memory.

    Следуя перечисленным выше рекомендациям, можно добиться увеличения быстродействия платформы «1С» в облаке в 1,5–2 раза.

    Квалифицированное размещение ИТ-сервисов, в том числе «1С», на облачной платформе позволяет:

    Существенно сократить расходы

    Повысить уровни безопасности (доступ к данным, резервное копирование, антивирусная защита и др.) и технического обслуживания

    Обеспечить централизованное администрирование и мониторинг

    Организовать эффективную и безопасную удаленную работу

    Воспользоваться гибкими возможностями масштабирования, лицензирования и оперативного перехода на необходимые версии конфигураций «1С»

    ЧЕК-ЛИСТ ПО ОПТИМИЗАЦИИ ИНФРАСТРУКТУРЫ 1С С MS SQL

    1. Включить возможность мгновенной инициализации файлов (Database instant file initialization)

    Это позволяет ускорить работу таких операций как:

    Создание базы данных

    Добавление файлов, журналов или данных в существующую базу данных

    Увеличение размера существующего файла (включая операции автоувеличения)

    Восстановление базы данных или файловой группы

    Для включения настройки:

    На компьютере, где будет создан файл резервной копии, откройте приложение Local Security Policy (secpol.msc)

    Разверните на левой панели узел Локальные политики, а затем кликните пункт Назначение прав пользователей

    На правой панели дважды кликните Выполнение задач по обслуживанию томов

    2. Включить параметр «Блокировка страниц в памяти» (Lock pages in memory)

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

    Для включения настройки:

    В меню Пуск выберите команду Выполнить. В поле Открыть введите gpedit.msc

    В консоли Редактор локальных групповых политик разверните узел Конфигурация компьютера, затем узел Конфигурация Windows

    Разверните узлы Настройки безопасности и Локальные политики

    Выберите папку Назначение прав пользователя

    Политики будут показаны на панели подробностей

    На этой панели дважды кликните параметр Блокировка страниц в памяти

    В диалоговом окне Параметр локальной безопасности — блокировка страниц в памяти выберите «Добавить» пользователя или группу

    В диалоговом окне Выбор: пользователи, учетные записи служб или группы добавьте ту учетную запись, под которой у вас запускается служба MS SQL Server

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

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

    Если антивирус будет сканировать файлы базы, это может сильно замедлить работу СУБД.

    Для опытных администраторов: антивирус на сервер СУБД лучше не устанавливать.

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

    Если на сервере установлена система автоматического копирования файлов, то, когда она будет копировать файлы базы, это может привести к замедлению работы. Копии базы необходимо делать средствами самой СУБД.

    5. Отключить механизм DFSS для дисков.

    Механизм Dynamic Fair Share Scheduling отвечает за балансировку и распределение аппаратных ресурсов между пользователями. Иногда его работа может негативно сказываться на производительности 1С.

    Чтобы отключить его только для дисков, нужно:

    Найти в реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk

    Установить значение параметра EnableFairShare в 0

    6. Отключить сжатие данных для каталогов, в которых лежат файлы базы.

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

    Чтобы отключить сжатие файлов в каталоге, необходимо:

    Открыть свойства каталога

    На закладке Общие нажать кнопку Другие

    Снять флаг «Сжимать» содержимое для экономии места на диске

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

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

    Для настройки параметра необходимо:

    Запустить Management Studio и подключиться к нужному серверу

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

    Установить значение параметра равное единице

    8. Ограничить максимальный объем памяти сервера MS SQL Server.

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

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

    Например, на сервере установлено 64 ГБ оперативной памяти, необходимо понять, сколько памяти выделить серверу СУБД, чтобы хватило серверу 1С.

    Для нормальной работы ОС в большинстве случаев более чем достаточно 4 ГБ, обычно – 2-3 ГБ.

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

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

    Запустить Management Studio и подключиться к нужному серверу

    Открыть свойства сервера и выбрать закладку Память

    Указать значение параметра Максимальный размер памяти сервера

    9. Включить флаг «Поддерживать» приоритет SQL Server (Boost SQL Server priority).

    Данный флаг позволяет повысить приоритет процесса MS SQL Server над другими процессами.

    Имеет смысл включать флаг только в том случае, если на компьютере с сервером СУБД не установлен сервер 1С.

    Для установки флага необходимо:

    Запустить Management Studio и подключиться к нужному серверу

    Открыть свойства сервера и выбрать закладку Процессоры

    Включить флаг «Поддерживать приоритет SQL Server (Boost SQL Server priority)» и нажать Ок

    10. Установить размер авто увеличения файлов базы данных.

    Автоувеличение позволяет указать величину, на которую будет увеличен размер файла базы данных, когда он будет заполнен. Если поставить слишком маленький размер авторасширения, тогда файл будет слишком часто расширяться, на что будет уходить время. Рекомендуется установить значение от 512 МБ до 5 ГБ.

    Для установки размера авторасширения необходимо:

    Запустить Management Studio и подключиться к нужному серверу

    Открыть свойства нужной базы и выбрать закладку Файлы

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

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

    11. Разнести файлы данных mdf и файлы логов ldf на разные физические диски.

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

    Для переноса файлов необходимо:

    Запустить Management Studio и подключиться к нужному серверу

    Открыть свойства нужной базы и выбрать закладку Файлы

    Запомнить имена и расположение файлов

    Отсоединить базу, выбрав через контекстное меню Задачи – Отсоединить

    Поставить флаг Удалить соединения и нажать Ок

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

    В Management Studio открыть контекстное меню сервера и выбрать пункт Присоединить базу

    Нажать кнопку Добавить и указать файл mdf с нового диска

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

    12. Вынести файлы базы TempDB на отдельный диск.

    Служебная база данных TempDB используется всеми базами сервера для хранения, промежуточных расчетов, временных таблиц, версий строк при использовании RCSI и многих других вещей. Обычно обращений к этой базе очень много, и если она будет лежать на медленных дисках, это может замедлить работу системы.

    Рекомендуется хранить базу TempDB на отдельном диске для повышения производительности работы системы.

    Для переноса базы TempDB на отдельный диск необходимо:

    Запустить Management Studio и подключиться к нужному серверу

    Создать окно запроса и выполнить скрипт:

    ALTER DATABASE tempdb

    MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf')

    ALTER DATABASE tempdb

    MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf')

    Перезапустить MS SQL Server

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

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

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

    Запустить диспетчер конфигурации SQL Server

    Зайти в пункт SQL Native Client – Клиентские протоколы – Общая память – Включено

    Поставить значение Да и нажать Ок

    Протокол Именованные каналы нужно выключить аналогичным образом

    14. Перезапустить службу MS SQL Server

    Внимание! Когда все настройки выполнены, необходимо перезапустить службу MS SQL Server

    Запускаем SQL Server Management Studio и вводим данные для подключения к серверу баз данных.

    Кликаем правой кнопкой мыши по серверу и выбираем Свойства:

    Открываем свойства сервера MS SQL

    В открывшемся окне переходим на вкладку «Память» и ограничиваем потребление оперативной памяти в графе «Максимальный размер памяти сервера (МБ)»:

    Ограничиваем потребление оперативной памяти сервером MS SQL

    * максимальный размер рассчитывается так: вся оперативная память сервера минус 4096 Мб (на нужды системы) минус 1536 * количество процессов rphost. Например, если в сервере установлено 32 Гб оперативной памяти и присутствует 2 процесса rphost, расчет будет таким: 32768 - 4096 - (2 * 1536) = 25600.

    Теперь переходим на вкладку «Процессоры» и выставляем «Максимальное число рабочих потоков» в значение 2048 и ставим галочку Поддерживать приоритет SQL Server:

    Выставляем количество потоков в работе MS SQL

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

    В SQL Server Management Studio раскрываем «Базы данных», кликаем правой кнопкой мыши по рабочей базе и нажимаем Свойства :

    Открываем свойства базы данных 1С

    Теперь переходим на вкладку «Файлы» и в настройках Авторасширения настраиваем расширение файла базы до 250 Мб и лога до 100. Также не лишним будет ограничить размер лога до 4096 Мб:

    Настраиваем авторасширение файла БД

    Нажимаем OK и закрываем Management Studio

    Результат

    Для проверки результатов оптимизации, запустим отладку, замер производительности и сформируем оборотно-сальдовую ведомость.

    Читайте также: