Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Диагностика MS SQL Server и PostgreSQL для 1С:Предприятие

Бесплатный инструмент для проверки настроек серверов баз данных, работающих с 1С:Предприятие.

1С тормозит? Запустите диагностику — соберите данные о настройках сервера за 2 минуты.


Быстрый старт (Windows, PostgreSQL или MS SQL Server)

Способ 1: Одна команда

Откройте PowerShell от имени администратора:

irm https://raw.githubusercontent.com/air900/check-parameters-sql-server-for-1c/main/install.ps1 | iex

Скрипт сам определит установленную СУБД (PostgreSQL или MS SQL Server) и запустит соответствующую диагностику. Если команда заблокирована политикой безопасности — используйте Способ 2.

Способ 2: Скачать и запустить

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

  1. Скачайте последний релиз (ZIP-архив)
  2. Распакуйте в любую папку
  3. Откройте PowerShell от имени администратора
  4. Запустите:
.\scripts\powershell\Invoke-1CDiagnostic.ps1

Что произойдёт после запуска

Скрипт автоматически:

  1. Определит СУБД на сервере: PostgreSQL ИЛИ MS SQL Server (или предложит выбрать, если установлены обе)
  2. Покажет список баз данных 1С и предложит выбрать нужную
  3. Запросит реквизиты подключения (пароль PG или Windows-аутентификация для MSSQL)
  4. Соберёт параметры конфигурации (только чтение, ничего не изменяет)
  5. Покажет собранные данные в терминале
  6. Сохранит HTML-отчёт на Рабочий стол
  7. Предложит отправить данные на углублённый анализ

Дополнительные параметры

# Принудительно выбрать СУБД
.\Invoke-1CDiagnostic.ps1 -DBMS postgresql
.\Invoke-1CDiagnostic.ps1 -DBMS mssql

# PostgreSQL: подключение к удалённому серверу
.\Invoke-1CDiagnostic.ps1 -DBMS postgresql -PgHost 192.168.1.10 -Port 5433 -Database my1c_db

# MS SQL Server: именованный экземпляр + SQL-аутентификация
.\Invoke-1CDiagnostic.ps1 -DBMS mssql -SqlInstance "SERVER01\1CSQL" -SqlUser sa -SqlPassword "***"

# Без HTML-отчёта и без интерактивных вопросов
.\Invoke-1CDiagnostic.ps1 -NoHtml -NoPrompt

Что проверяется

PostgreSQL (готово)

Область Проверок Что выявляет
Память и кэш 5 Достаточно ли памяти выделено под кэш базы данных, хватает ли памяти для сортировок и обработки запросов, корректно ли сервер оценивает доступный объём кэша
Журнал транзакций (WAL) 8 Надёжность записи данных на диск, оптимальность настроек контрольных точек, не перегружен ли диск частой записью журнала
Автоочистка таблиц 4 Включена ли автоматическая очистка (автовакуум), достаточно ли ресурсов выделено для очистки, не замедляет ли очистка работу пользователей
Планировщик запросов 5 Правильно ли сервер строит планы выполнения запросов, не использует ли медленные алгоритмы поиска там, где можно быстрее
Подключения 3 Не установлен ли слишком высокий или низкий лимит подключений, нет ли «зависших» сессий, блокирующих работу
Настройки для 1С 4 Совместимость кодировок и форматов данных с платформой 1С:Предприятие
Реальные метрики 3 Как часто данные берутся из кэша (а не с диска), сколько создаётся временных файлов, статистика контрольных точек
Операционная система 5 Настройки подкачки (swap), энергосбережение процессора, работа с большими страницами памяти, ресурсы виртуальной машины

MS SQL Server (готово, 56 правил по 15 категориям)

Область Проверок Что выявляет
Память сервера 3 Сколько памяти выделено серверу БД, не забирает ли ОС память у базы, защищён ли кэш данных от выгрузки в файл подкачки
Параллелизм 3 Не распараллеливает ли сервер каждый запрос (антипаттерн для 1С), порог стоимости параллелизма
TempDB 7 Количество и равенство размеров файлов, авторасширение, размещение, оптимизация метаданных в памяти
Модель восстановления 4 FULL recovery в продакшне, регулярность бэкапа журнала транзакций, отсутствие auto_shrink
Статистика и индексы 4 Авто-обновление статистики, контроль целостности страниц, особенности платформы 8.3.22 (ALLOW_PAGE_LOCKS)
Аутентификация и права 4 Mixed Mode для 1С, безопасность учётной записи sa, мгновенная инициализация файлов БД
Trace Flags 7 Параллельное обновление статистики, подавление шума об успешных бэкапах в журнале ошибок
Конфигурация экземпляра 4 Кодировка Cyrillic_General_CI_AS, актуальность compatibility level, оптимизация ad-hoc запросов
I/O и дисковая подсистема 5 Размещение data/log/tempdb на разных дисках, размер блока NTFS (рек. 64 КБ), отсутствие NTFS-сжатия
Регламентные операции 6 Заданы ли регулярные UPDATE STATISTICS / дефрагментация индексов / DBCC CHECKDB, бэкап журнала транзакций
ОС и оборудование 4 План электропитания, исключения антивируса для процесса и файлов БД
Совмещение 1С + SQL — Корректно ли настроена защита памяти при совмещении на одной машине
Реальные метрики 9 Длительные транзакции (рост tempdb), цепочки блокировок, низкий PLE, высокая latency дисков, переполнение wait-types

Особый случай — платформа 1С 8.3.22+: скрипт детектирует и в отчёте отмечает необходимость адаптированного регламента дефрагментации индексов (стандартный REORGANIZE не работает после изменений в 8.3.22).


Требования

  • ОС: Windows Server с одной из СУБД:
    • PostgreSQL 10–17+ (любые сборки, включая Postgres Pro); либо
    • MS SQL Server 2016+ (Standard / Enterprise / Express).
  • PowerShell: 5.1 и выше (встроен в Windows; для PS 7+ тоже работает).
  • Права для PostgreSQL: учётные данные администратора СУБД (обычно postgres).
  • Права для MS SQL Server: Windows-аутентификация (учётка с правами VIEW SERVER STATE и доступом к msdb/master) либо SQL-логин с теми же правами.
  • Безопасность: скрипт выполняет только чтение — ничего не изменяет в настройках и данных.

Источники рекомендаций

Проверки основаны на:

Каждое правило в анализе содержит ссылку на конкретный раздел источника. Полное описание архитектуры — в readme_public.md.

Как это работает

Скрипт собирает текущие значения параметров конфигурации — как есть, без интерпретации. Для углублённого анализа данные можно отправить на наш сервис, который проверит каждый параметр по рекомендациям 1С / Microsoft / экспертов сообщества и вернёт отчёт с оценкой.

Отчёт показывает проблемы и их влияние на бизнес, но не содержит конкретных параметров и значений для исправления — закрытие выявленных «дыр» выполняется как отдельная услуга по настройке СУБД.

Anamnesis Kit — длительное наблюдение

Когда расчёт зависает, и нужно понять, что происходит во время инцидента — а не до и не после. Anamnesis Kit собирает снимки состояния SQL Server каждые 30 секунд в течение 4–8 часов, упаковывает их в архив и отправляет на наш сервер для анализа. На выходе — постоянная ссылка на отчёт с вердиктом.

Установка

irm https://raw.githubusercontent.com/air900/check-parameters-sql-server-for-1c/main/install-anamnesis.ps1 | iex

Использование

# 0. Один раз — настройка SQL Server
#    (папки data\snapshots, data\xe, data\archives создаются install-anamnesis.ps1)
sqlcmd -S MSSQL-TEST -i C:\Anamnesis\setup\01-enable-query-store.sql -v db=eshn_test1
sqlcmd -S MSSQL-TEST -i C:\Anamnesis\setup\02-set-blocked-process-threshold.sql
sqlcmd -S MSSQL-TEST -i C:\Anamnesis\setup\03-create-xe-session.sql -v db=eshn_test1

# 1. Перед расчётом запустить watcher
& C:\Anamnesis\watcher\Start-Watcher.ps1 -Hours 8 -Database eshn_test1

# 2. Запустить расчёт.

# 3. После расчёта — остановить watcher и отправить архив
& C:\Anamnesis\watcher\Stop-Watcher.ps1
& C:\Anamnesis\upload\Upload-Archive.ps1 -Database eshn_test1

В выводе последней команды будет постоянная ссылка на отчёт — можно отправить клиенту. Подробности — в C:\Anamnesis\README.md после установки.


Контакты

Для углублённого анализа и профессиональной настройки серверов:

Лицензия

MIT

About

Проверка параметров SQL Server по рекомендациям 1С для крупных технологических решений

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages