Microsoft sql server для 1с предприятие 8.3. Обновление статистики базы данных

24.04.2024

Рассмотрим вопросы установки и настройки MS SQL Server для 1С.

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

В зависимости от этого можно обозначить следующие варианты:

  • Вариант 1. Предприятие, с количеством операций в день до 500;
  • Вариант 2. Предприятие, с количеством операций в день более 500, но в основном не интерактивных (загрузка платежей из Интернета и банк-клиента, загрузка заказов из Интернет-магазина, автоматическое формирование складских и транспортных операций и т.д.);
  • Вариант 3. Предприятие, с количеством операций в день более 500, большинство из которых являются интерактивными, т.е. инициируются и оформляются пользователями.

Для первых двух вариантов MS SQL Server можно устанавливать на том же сервере, где установлен 1С, что особенно актуально, скорее, для второго варианта при условии соблюдения требований по «железу». А вот в третьем случае MS SQL Server нужно устанавливать только на отдельный сервер.

Рассмотрим характеристики «железа» для всех трех случаев

В случае установки на отдельный сервер:

Процессор

  • Вариант 1. Не ниже 1.8 ГГц (желательно 2-х ядерный)
  • Вариант 2. Не ниже 2х2ГГц с числом ядер не менее 2-х
  • Вариант 3. Не ниже 4х3ГГц с числом ядер не менее 4-х
  • Вариант 1. Не менее 8 ГБ
  • Вариант 2. Не менее 32 ГБ
  • Вариант 3. Не менее 128 ГБ

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

  • Вариант 1. SAS не менее 120 ГБ
  • Вариант 2. SAS не менее 500 ГБ (желательно SSD)
  • Вариант 3. SAS не менее 1 ТБ (рекомендуется SSD)

Сетевое подключение

  • Вариант 1. Не менее 1 Гб/сек
  • Вариант 2. Не менее 1 Гб/сек (желательно оптика)
  • Вариант 3. Не менее 1 Гб/сек (рекомендуется оптика)

В случае совместной установки с сервером 1С Предприятия:

Процессор

  • Вариант 1. Не ниже 2х2ГГц с числом ядер не менее 2-х
  • Вариант 2. Не ниже 4х3ГГц с числом ядер не менее 4-х
  • Вариант 1. Не менее 32 ГБ
  • Вариант 2. Не менее 128 ГБ
  • Вариант 3. Категорически запрещено так делать

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

  • Вариант 1. SAS не менее 500 ГБ (желательно SSD)
  • Вариант 2. SSD не менее 1 ТБ
  • Вариант 3. Категорически запрещено так делать

Сетевое подключение

  • Вариант 1. Желательно 1 Гб/сек
  • Вариант 2. Желательно 1 Гб/сек
  • Вариант 3. Категорически запрещено так делать

Следует учесть, что это минимальные требования для комфортной работы. Более точные параметры подбираются исходя из конкретной ситуации, руководствуясь основными потребностями MS SQL Server для 1С в дисковой подсистеме и объемом оперативной памяти.

Теперь перейдем непосредственно к процессу установки MS SQL Server для 1С в варианте MS SQL Server 2014 на операционную систему MS Windows Server 2012

Прежде всего, необходимо переписать дистрибутив установки MS SQL Server для 1С на локальный жесткий диск сервера.

Запустить установку MS SQL Server для 1С под администратором.


В открывшемся окне на правой панели выбираем «Установка».


Начнется установка MS SQL Server для 1С. В ходе установки вас попросят ввести ключ продукта и ознакомиться с условиями лицензирования. После этого необходимо выбрать роль сервера, выбрав «Установка компонентов MS SQL Server».


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



Ничего не меняйте, т.е. жмите «Далее», пока не возникнет окно «Настройка компонента Database Engine». В этом окне на первой закладке укажите пользователя «sa» и задайте его пароль (можно назначить и пользователя Windows, но более безопасным считается пользователь «sa»).


На двух других закладках можно настроить новые каталоги для хранения пользовательских БД (но лучше не менять).

Теперь вы установили MS SQL Server для 1С

«Откроем» наш MS SQL Server для 1С. Для этого переходим в приложения и находим там SQL Server 2014 Management Studio.



После того, как подключились, слева в дереве выбираем «Безопасность», а в нем – «Имена входа». Нажав правую кнопку мыши, выбираем в подменю «Создать имя входа». В открывшейся форме указываем имя пользователя и его пароль (запомните этот пароль и этого пользователя, т.к. именно его вы будете указывать при подключении баз из сервера 1С).



Переходим к «Защищаемые объекты» и устанавливаем право на соединение с SQL, как на рисунке.


Жмем на «Ок». Установка MS SQL Server для 1С и его настройка завершена.

Переходим к подключению базы 1С на сервере 1С

Запускаем консоль администрирования серверов «1С:Предприятие».


Открывшийся диалог заполнить, как это показано на рисунке. <Имя базы на латинице> - укажите имя своей базы. <Имя компа MS SQL Server> - укажите имя компьютера, на который вы ранее установили MS SQL Server для 1С.


Жмем на «Ок». База подключена.

Можно подключить базу прямо из диалога подключения базы 1С.

Для этого запускаем диалог открытия баз 1С и жмем кнопку «Добавить».


В появившемся окне, выбираем «Создание новой информационной базы».


В следующем окне выбираем нужный шаблон в дереве или указываем «Создание новой базы без конфигурации…».

В следующем окне задаем имя базы и указываем, что она будет на сервере «1С:Предприятие».


На следующей вкладке заполняем поля, аналогично тому, как это было описано в разделе подключения базы с сервера 1С.


Оптимизация SQL под 1С завершена. Можно запускать и работать.

  • Количества данных, хранящихся в БД;
  • Отношения количества запросов на чтение к запросам на запись;
  • Наличия других процессов, использующих ресурсы.
  • На производительность сервера существенно могут настройки, управляющие , дисков, и т.п.

    Например, в целях окономии электропитания процессоры могут «занижать» частоту процессора, что приемлемо для личных компьютеров и совершенно неприемлемо для серверов с 1С.

    В BIOS сервера отключаем все настройки по экономии электропитания процессора.

    Если есть «C1E» — обязательно ОТКЛЮЧАЕМ!!

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

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

    Обратите внимание , что такие настройки популярны, но бывают исключения, когда вендоры реализуют обозначенные выше настройки и механизмы работы иначе, и тогда может потребоваться не выключать, а включать какие-то пункты, связанные с EIST, SpeedStep и Turbo Boost.

    Не забываем и также и про настройки схемы в операционной системе.

    В конечном итоге надо не ориентироваться на названия этих пунктов, а на итоговые максимальные частоты процессоров. Можно контролировать их утилитой CPU-Z. Приведём пример:

    вот снимок системы на базе процессора i7-4770, тактовой частотой 3.4 ГГц (о чём в явном виде написано в поле Specification: @3.40Ghz). В группе Clocks (Core #0) в пункте Multiplier (множитель) указан весь допустимый для данного процессора диапазон множителей: от 8 до 39. 8 – это состояние покоя, а 39 – это максимально возможный множитель при загрузке одного ядра. Если умножить значение множителя на написанную ниже частоту шины (Bus Speed), в данном случае 99.76 МГц, то получится текущая тактовая частота (Core Speed). В данном случае, 99.76*27 примерно равно 2693.57 МГц. Как видим, это ниже даже паспортной тактовой частоты.
    Допустим, мы проделали некоторый набор изменений, и хотим увидеть разницу. Заходим сюда же, и видим искомый максимальный множитель:

    Но не спешим радоваться, на снимке всего лишь моментально зафиксированная частота одного из ядер. А как обстоит ситуация на остальных ядрах? В новых версиях CPU-Z появилась возможность наблюдать множитель и частоту по всем имеющимся ядрам (меню Tools – Clocks)

    Заходим туда, и видим, что не на всех ядрах множитель максимальный, некоторые ядра «сачкуют»!

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

    Вот теперь уже можно со спокойной совестью запускать тест TPC и смотреть там улучшение результата.

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

    Для управления под линуксом отправляем к документации редхат .

    Убедитесь что после настройки схемы энергоснабжения процессор работает на нужной максимальной частоте, заявленной производителем. Для этого посмотрите с помощью утилиты cpu-z на core speed .

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

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

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

    Для настройки протокола воспользуйтесь статьей

    Наши «рекомендуемые практики», полученные на основе опыта выполненных проектов

    Очень многие проекты выполнены нами с помощью MS SQL Server 2008 R2.


    Материал статьи можно обсудить на форуме

    ЕСЛИ ВЫ ВЫПОЛНИЛИ ВСЕ НАСТРОЙКИ И НЕ СМОГЛИ ДОСТИЧЬ НУЖНОЙ ПРОИЗВОДИТЕЛЬНОСТИ, ТО

    Преимущества использования 1С:Предприятие на основе Microsoft SQL Server

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

    Вы можете использовать в разговоре с техническими специалистами следующие аргументы в пользу SQL Server:

    • Более высокая производительность за счет использования индексирования и секционирования таблиц в СУБД
    • Автоматическое задействование аппаратных ресурсов по мере роста нагрузки, параллельное выполнение запросов
    • Рациональное использование дискового пространства за счет возможности сжатия данных в базе SQL Server до 50% от исходного объема - реже требуется приобретение новых носителей по мере роста объемов хранимых данных
    • Более высокая степень надежности за счет технологий обеспечения отказоустойчивости и резервного копирования данных в SQL Server.

    Дополнительная информация:

    SQL Server продолжает развиваться: благодаря новой информационной платформе, оптимизированной для работы в облачных средах, выбор возможностей для работы с данными становится всё шире. Теперь есть все необходимые инструменты для проведения глубокого анализа данных и использования облачных решений в индивидуальных нуждах различных компаний.

    SQL Server 2014 упрощает и делает более экономичной разработку высокоэффективных приложений для критически важных задач, корпоративных активов с большими данными и решений для бизнес-аналитики, благодаря чему сотрудники могут быстрее принимать обоснованные решения. Эти продукты можно развертывать как локально, так и в облаке, а также в гибридной среде. Управление ими осуществляется при помощи знакомого набора средств.

    Критически важная производительность

    SQL Server 2014 ускоряет работу критически важных приложений за счет новой технологии обработки в памяти OLTP, обеспечивающей повышение производительности в 10 раз в среднем и в 30 раз при обработке транзакций. Что касается хранения данных, новое обновляемое хранилище столбцов данных в памяти обрабатывает запросы в 100 раз быстрее, чем традиционные решения. Уже 5 лет подряд SQL Server подтверждает свой статус самой безопасной базы данных. (Всесторонняя база данных уязвимостей, составленная Национальным институтом стандартов и технологий 17 апреля 2013 г., доля рынка из исследования IDC за 2013 г.)

    Быстрое получение результатов анализа любых данных

    Получайте результаты анализа быстрее благодаря платформе бизнес-аналитики, которая ускоряет доступ, анализ, очистку и формирование внутренних и внешних данных. SQL Server 2014 и Power BI для Office 365 упрощают доступ пользователей к необходимым данным, что позволяет им быстрее принимать обоснованные решения.

    Платформа для гибридного облака

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

    Документация по продукту SQL Server 2014:
    http://msdn.microsoft.com/ru-ru/library/dd631854(v=sql.10).aspx

    Требования к оборудованию и программному обеспечению для установки SQL Server 2014.

    Для понимания нижеописанного необходимо разъяснить два понятия:

    • Клиент – персональный компьютер или программное обеспечение, единица сети, генерирующая запросы к серверу с целью получения или обработки каких-либо данных;
    • Сервер – мощный компьютер со значительными производственными возможностями или программное обеспечение, формирующий ответы на запросы клиента.

    Клиент-серверная архитектура предполагает взаимодействие клиентского приложения с сервером информационных баз данных посредством специального приложения – сервера 1С:Предприятия.

    Установка MSSQL на серверную машину описывается во многих руководствах с возможной вариативностью в зависимости от SQL-версии и версии серверной операционной системы.


    1. В имеющемся дистрибутиве необходимо запустить файл установки setup.exe (для продолжения потребуются Microsoft.NET Framework и операционный установщик Windows Installer, тоесть желательно чтобы он был установлен предварительно).

    2. Предлагается несколько вариантов дальнейшего развития событий: первичная установка, модификация уже установленных компонентов, обновление или их поиск. На этом этапе программа проверяет соответствие минимальным требованиям MSSQL к операционной системе:

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

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




    Переход к последующему шагу осуществляется при нажатии кнопки Next («Далее»).


    5. Получаем доступные обновления.

    6. Проходим проверку конфигурации (Warning MSCS пропускаем):


    7. Выбираем вариант целевого назначения установки:




    8. Выбираем компоненты, которые нам необходимы; можно выбрать все (Select All), но вообще для поставленной задачи достаточно основных, а именно для взаимодействия с сервером 1С необходимы только 3 (DatabaseEngineServices [рус.-Службы компонента DatabaseEngine], ClientToolsConnectivity [рус.- Средства связи клиентских средств], ManagementTool [рус.- Средства управления - полный набор]):




    9. Еще одна проверка установочной конфигурации:



    10. Детальный отчет. Если предварительно не установлен «Microsoft .NET Framework 3.5», то на данном этапе выдаст ошибку. Нажимаем кнопку «Next»:







    12. Проверка доступного пространства на выбранном диске:




    13. Настройки на последующих шагах рекомендуется оставить по умолчанию (хотя можно завести отдельного пользователя для MSSQL), переход осуществляется по кнопке Next (обратите внимание, чтобы загрузка SQL Service Agent (Агент Службы SQL) была установлена как автоматически):


    14. Еще один важный этап – выбор порядка сортировки (Collation). После инсталляции изменить крайне проблематично:




    15. В следующем шаге необходимо выбрать возможность смешанного варианта запуска, добавить пароль для пользователя "sa" и добавить текущего пользователя, который будет обладать правами администратора системы (кнопка «Add Current User»):



    2 февраля 2015 в 16:04

    Максимально эффективная по скорости работы - серверная схема, для клиент-серверной 1С 8.х

    Предисловие

    Постоянно сталкивался с высказываниями ИТ специалистов «сеть нагружена на 20%… процессоры на 50%… очередей к дискам мало… Значит сеть и сервера справляются… смотрите код в 1С проблемы исключительно там».

    На самом деле происходило следующее (сервер 1С и SQL разнесены на разные компьютеры): сеть практически использовалась по максимуму(эти "20% загрузки сетевого интерфейса " = «20% полезные данные» + «80% потеря на служебной обработке» ). И соответственно из-за малой ширины канала обмена «полезными» данными - SQL сервер с «Сервером 1С» постоянно ожидали друг друга, что вело к малой утилизации ресурсов CPU и дисковой системы.

    Ведение: Сначала хочу заострить внимание на том что же такое 1С платформа?.

    Итак начнем с главного 1С - построенная на ORM (объектно-реляционном отображении)-система и программист в ней работает не напрямую с реляционным представлением, а с объектами.
    ru.wikipedia.org/wiki/ORM

    Программист в среде 1С - пишет объектную логику, а за сборку/разборку и запись объектов в «плоский вид» по таблицам базы данных отвечает сама платформа.

    Основные "+" и "-" с точки зрения ORM:

    "+" Программист в среде ORM получает преимущество в скорости разработки приложения из-за уменьшения количества кода и его простоты по сравнению с исключительно реляционным программным кодом (пример SQL запросы). А также освобождается от написания кода работающего непосредтсвенно с записями в таблицах Реляционной СУБД.* 1

    "-" Сложности для создателей «платформ» ORM и проблемы производительности:

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

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

    Глава 1: Расмотрим модель клиент-серверной 1С 8.х

    Отмечу основные «узкие» места влияющие на производительность:

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

    Рассмотрим на примере сетевого стандарта Ethernet Gigabit (график зависимости скорости передачи данных… ниже )
    на примере работы Сервера 1С с MS SQL (по умолчанию размер коммуникационных пакетов 4 кб) :

    На графике видно, что при использовании пакетов ДАННЫХ =4 кб пропускная способность рассмотренной сети всего 250 Мегабит/с. (как правильно заметили в комментария к публикаци: это не пакеты протоколов например уровня TCP , а пакеты ДАННЫХ которые генерируют приложения участвующие в обмене)

    Из практики: такое разнесение на Два отдельных сервера
    MS SQL (сервер №1)< - Ethernet Gigabit ---> «Сервер 1С»(сервер №1)
    проигрывало по скорости работы платформы
    на 50%
    варианту MS SQL (сервер №1) < - Shared Memory (без сети через участок памяти) ---> «Сервер 1С»(сервер №1)… и это уже «на одном высоконагруженном пользовательском сеансе»

    2) Узкое место - это количество отдельных компьютеров «кластеров 1С» , чем их больше тем больше затраты на синхронизацию и как следствие уменьшение производительности системы.

    3) Узкое место - количество отдельных процессов сервера 1с , чем их больше тем больше затрат на их синхронизацию… Но тут скорей всего необходимо найти «золотую середину» - для обеспечения стабильности. 2*
    2* «Уточнение» - для MS Windows существует такое правило:
    Процессы дороже чем потоки, что означает применительно к данному случаю на практике следующее: скорость обмена между двумя потоками внутри одного процесса значительно превышает, скорость обмена между потоками находящихся в разных процессах.

    Поэтому например «Файловая 1С 8.х» всегда превышает по скорости однопользовательской работы платформы в клиент-серверном варианте. Все просто т.к. в случае «Файловой 1С 8.х» поток «Реляционной СУБД» общается с потоком «Объектной СУБД» внутри одного единого процесса.

    4)Узкое место – одно-поточность пользовательского сеанса , т.к. каждый отдельно взятый - пользовательский сеанс не распараллеливается платформой на несколько, то его работа ограничивается использованием ресурсов одного ядра CPU => следовательно желательна максимальная скорость каждого ядра, в этом случае быстродействие платформы 1C например на 10-ядерном CPU по 1 ггц - будет значительно уступать быстродействию платформы на 4-ех ядерном CPU по 3 Ггц – естественно до определенного количества потоков.

    Глава 2(Итог): Рассмотрим не масштабируемый и масштабируемый варианты - наиболее эффективных схем для платформы 1с 8.х. для OS Windows (пологаю для Linux ситуация аналогична)

    1-Вариант(не масштабируемый). В расчете на 100 «высоконагруженных пользовательских сеанса»

    1) эффективен обычный 2-ух сокетный сервер с 4-ех ядерными CPU по 3 Ггц.

    3) MS SQL < - Shared memory --> «Сервер 1С»

    2-Вариант(масштабируемый). начиная со 100 «высоконагруженных пользовательских сеанса» и далее ….
    Тут логичней всего пойти по пути немецкой 1с-ки «Sap HANA»))
    Собирать модульный «Супер-компьютер» от фирмы SGI – состоящий из «лезвий» на 2-х сокетных материнских платах, каждое лезвие соединяется друг с другом сложной топологией сверх-быстрого интерконнекта на основе NUMA-чипов, и все находится под управлением единой OS. Т.е. программы внутри такого сервера по определению имеют доступ к ресурсам любого «лезвия».

    1) добавляем «лезвия» по необходимой нагрузке… из расчета примерно одно «лезвие» на 100 пользователей.

    2) быстрая дисковая система на SSD

    3) MS SQL < - Shared memory --> «Сервер 1С»