Скрипт SQL для оптимизации базы 1c

20.07.13

База данных - HighLoad оптимизация

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

Для использования данного скрипта необходимо открыть SQL Qwery SQL Server Managment Studio у интересующей вас базы. И выполнить данный скрипт, который покажет каких индексов не хватает, это статистика собранная SQL Server. Следующий шаг необходимо в режиме конфигуратора 1С создать нужные индексы. 

- Не забудьте поправить сценарий создания индексов,
-- убрав лишние запятые или пустую инструкцию INCLUDE
SELECT OBJECT_NAME(d.object_id), [Рекомендуемый индекс]=
'-- CREATE INDEX [IX_' + OBJECT_NAME(d.object_id) + '_' +
CAST(d.index_handle AS nvarchar) + '] ON ' +
d.statement + ' (' + ISNULL(d.equality_columns,'') +
', ' + ISNULL(d.inequality_columns,'') +
') INCLUDE (' + ISNULL(d.included_columns,'') + ');',
[Число компиляций] = s.unique_compiles,
[Количество операций поиска] = s.user_seeks,
[Количество операций просмотра] = s.user_scans,
[Средняя стоимость ] = CAST(s.avg_total_user_cost AS int),
[Средний процент выигрыша] = CAST(s.avg_user_impact AS int)
FROM sys.dm_db_missing_index_groups g
JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle
JOIN sys.dm_db_missing_index_details d ON g.index_handle = d.index_handle
AND d.database_id = DB_ID()
order by /*1,*/ 7 desc, 6 desc

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Программист 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Использование оператора «В» для полей или данных составного типа (например, Регистратор) может приводить к неочевидным проблемам.

10.11.2025    7856    ivanov660    48    

53

HighLoad оптимизация Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

Приведем примеры использования различных в динамических списках и посмотрим, почему это плохо.

18.02.2025    9883    ivanov660    39    

61

HighLoad оптимизация Технологический журнал Системный администратор Программист Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    12436    ivanov660    13    

64

HighLoad оптимизация Программист 1С:Предприятие 8 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    18909    Evg-Lylyk    73    

46

HighLoad оптимизация Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    9231    spyke    29    

54

HighLoad оптимизация Программист 1С:Предприятие 8 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    12787    vasilev2015    22    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dyak84 23.07.13 17:24 Сейчас в теме
Очень Интересно на выходних нада будет обязательно попробовать поколдовать над базой даних. Если чеого из етого выйдет обязательно отпишусь
2. Артано 802 24.07.13 05:52 Сейчас в теме
(1) Судя по коду скрипт считает количество обращений к тем или иным колонкам таблиц и сортирует необходимости индексирования. Было бы интересно сделать обработку выполняющую этот скрипт и выводящую не имена SQL-таблиц, а имена объектов метаданных
4. DenisCh 24.07.13 09:20 Сейчас в теме
(2) Артано, сделай (с) :-)
Все данные для этого есть. Кроме того, тут встречал года полтора-два назад подобное.
3. KroVladS 35 24.07.13 09:09 Сейчас в теме
Спасибо.
Попробую на досуге.
5. vpaull 14 25.07.13 20:11 Сейчас в теме
Вот-с так с именами объектов метаданных.
В модуле формы в функции Подключение() надо поправить строку
cnn.connectionString = "SERVER=СЕРВЕРСКЛ; Database=ИМЯБАЗЫ; DRIVER=SQL Server; UID=ПОЛЬЗОВАТЕЛЬСКЛ; PWD=ПАРОЛЬСКЛ;";

Подставить соответствующие значения.

В обработке есть неучтенки по метаданным, но их легко можно добавить имея руки
На чистоту и бережность кода не претендую - сделано из интереса на коленке.
Прикрепленные файлы:
6. smielka 266 27.07.13 22:28 Сейчас в теме
7. Артано 802 31.07.13 08:13 Сейчас в теме
(5) Поправил сортировку, добавил статистики
Прикрепленные файлы:
СтруктураИндексы.erf
Bor_ka; lap_soft; dimisa; CratosX; +4 Ответить
8. isn 17 06.09.13 11:35 Сейчас в теме
Для наглядности сформируйте отчет из разных баз данных на разных конфигурациях, чтобы показать целесообразность данной обработки.
Для отправки сообщения требуется регистрация/авторизация