Просмотр и анализ структуры базы данных (отчет на СКД)

Публикация № 1098336

Разработка - Инструментарий разработчика

SQLServer SQL Server PostgreSQL структура базы данных индексы таблицы метаданные

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

Назначение и возможности

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

Основные возможности отчета:

  • Отображение таблиц базы данных, их полей и индексов с учетом связей между объектами базы данных и метаданными конфигурации.
  • Вычисление размера таблиц и индексов для объектов конфигурации, а также количества записей в них.
  • Отображение НЕплатформенных индексов в базе (те, что были добавлены вручную администратором или разработчиком).
  • Вывод дополнительных атрибутов СУБД для полей таблицы, индексов и их структуры (например, это возможность установки значения NULL, размер каждого отдельного индекса, проверка наличия платформенного индекса в базе данных, порядок полей в индексе и таблицах и др.).
  • Получение информации обо всех таблицах информационной базы, а не только тех, что доступны через "ПолучитьСтруктуруХраненияБазыДанных()". Например, отчет позволит посмотреть информацию о системных таблицах "V8USERS" и "PARAMS", а также отобразит таблицы другие служебные / системные таблицы.
  • Дополнительная классификация объектов и их частей. Например, добавлены поля "Вид объекта", "Тип объекта", доп. описание полей составных типов данных и др.
  • Расширенное отображение типа данных 1С для полей.
  • 10 предопределенных вариантов отчетов с различной детализацией.
  • Гибкая настройка отображения и компоновки данных с помощью штатных возможностей системы компоновки данных.
  • Поддержка подсистем БСП (варианты отчетов и дополнительные отчеты и обработки).

Отчет поддерживает работу в файловом варианте информационной базы, но в ограниченном режиме - доступен только просмотр структуры базы данных, полученный с помощью штатного метода "ПолучитьСтруктуруХраненияБазыДанных()". Весь расширенный функционал доступен только для клиент-серверного варианта работы платформы 1С в связке с такими СУБД как SQL Server и PostgreSQL.

Необходимая версия платформы для работы отчета - 8.3.5 и выше. Внутри отчета используется кэширование данных, получение только необходимых данных в зависимости от настроек отчета и еще некоторые фичи.

 
 Но как же файловые базы...

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

 
 Настройки подключения

Классическим вариантом отчета, который повторяет функциональность большинства обработок схожего назначения на Инфостарт (примеры таких разработок смотрите в разделе "Другие ссылки" ниже. И спасибо их авторам за проделанную работу! Вы все потрясающие!является "Таблицы хранения (основная)". Ознакомьтесь со скриншотом под спойлером, ничего не напоминает?

 
 Скриншот под спойлером :)

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

Варианты отчетов

Изначально отчет содержит в себе 10 предопределенных вариантов. Почему 10? Я не знаю.

 
 Таблицы хранения (только структура)
 
 Таблицы хранения (основная)
 
 Таблицы хранения (с полями)
 
 Таблицы хранения (с полями, расширенный)
 
 Таблицы хранения (с индексами)
 
 Таблицы хранения (с индексами, расширенный)
 
 Использовано места по видам объектов
 
 Количество записей по видам объектов
 
 ТОП 10 объектов по размеру
 
 ТОП 10 объектов по количеству записей
 
 Неиспользуемые таблицы

Но не останавливайтесь на том, что есть! Импровизируйте, настраивайте, экспериментируйте! Создайте свой вариант с блэкджеком и кастомизацией!

Послесловие

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

  • Получить еще более подробную классификацию таблиц и полей базы данных
  • Проанализировать файловые группы и секции (да, в мире 1С это возможно!)
  • Проанализировать состояние индексов и статистик
  • Получить рекомендации по отсутствующим индексам в базе данных (как для SQL Server, так и для всеми теперь обожаемого PostgreSQL!)
  • Ответить на вопрос "Какие индексы я создал два года назад, но они при этом ни разу не использовались?"

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

Да прибудет с Вами сила, творческая мощь, тяга к знаниям и просто хорошее настроение!

 
 История изменений отчета
 
 v1.0.0 - 24.07.19 
 
 v1.0.0.1 - 27.07.19
 
 v1.0.0.3 - 07.01.20
 
 v1.0.0.4 - 28.01.20

Работа над отчетом продолжается :)

Другие ссылки

Скачать файлы

Наименование Файл Версия Размер
Просмотр и анализ структуры базы данных (отчет на СКД)

.erf 64,02Kb
28.01.20
164
.erf 1.0.0.3 64,02Kb 164 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 24.07.19 19:46 Сейчас в теме
по презентации, вроде, монтументально.

конечно, главная практическая ценность скрыта в варианте послесловия.

расширенная будет, вероятно, за звонкую монету и представленный вариант
наверняка маркетинговое исследование для определения цены.
2. YPermitin 8989 24.07.19 20:08 Сейчас в теме
(1) мне очень жаль, что я вызвал у вас такие мысли.

То есть отчет бесполезен и не стоило тратить время на его реализацию?
3. sapervodichka 3588 24.07.19 21:33 Сейчас в теме
крутая вещь, однозначно + у меня есть, но более народный взгляд ))) https://infostart.ru/public/1093355/ с возможностью базы сравнить между собой
YPermitin; +1 Ответить
4. Xershi 1001 24.07.19 22:05 Сейчас в теме
(3) ну уже хоть что-то свое появилось) Или скрестили. Осталось написать под 8.3.15, там разработчики обещали платформенный механизм.
5. YPermitin 8989 25.07.19 07:05 Сейчас в теме
(3) хороший инструмент. Я на него ссылку добавил в конце статьи :)
sapervodichka; +1 Ответить
6. Aletar 25.07.19 09:34 Сейчас в теме
В будущем, если появится интерес от сообщества, будет опубликована расширенная версия отчета


Интерес, определенно, есть.
PLAstic; YPermitin; +2 Ответить
7. YPermitin 8989 25.07.19 11:49 Сейчас в теме
(6) это хорошо :)

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

Из того что планирую добавить:
- файловые группы и секции
- Улучшить классификацию служебных таблиц и полей
- Подробная информация об объектах статистики и индексах
- Поиск избыточных индексов
- Анализ недостающих индексов
- Проблемы таблицы остатков
- Поиск излишних таблиц, появившихся при неудачной реструктуризации
- Подсчет количества строк и приблизительную оценку размера данных для файловых баз

Часть из этого уже готова, только нужно привести в порядок. Вообщем, функционал будет, но не в ближайшее время.
8. Разумов 26.07.19 06:05 Сейчас в теме
Классный инструмент! Жаль, мани нет, с удовольствием бы поигрался со своей базой.
9. ligsht 11 26.07.19 14:10 Сейчас в теме
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаОтчета.Форма(148)}: Ошибка при вызове метода контекста (Execute)
РезультатБД = КомандаБД.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимое имя столбца "is_memory_optimized".


MS SQL 2008.
Поправьте пожалуйста.
YPermitin; +1 Ответить
10. YPermitin 8989 26.07.19 14:14 Сейчас в теме
(9) принято.

Исправлю совместимость со старыми версиями SQL Server и обновлю публикацию.

Чтобы повторно не скачивать - отправлю новую версию в сообщениях.

Всем, кому актуальна работа со старыми версиями СУБД и кто уже скачал отчет - просто напишите в личных сообщениях.
11. parshin 72 26.07.19 14:26 Сейчас в теме
А если postgresql под linux, то не работает. Вот обидно.
YPermitin; +1 Ответить
12. YPermitin 8989 26.07.19 14:33 Сейчас в теме
(11) у Вас только PostgreSQL под .nix или сервер 1С тоже?

Вообще, обращение к БД идет с использованием ADO. Предполагал, что ADO может подключиться к pg под Linux, главное чтоб серер 1С / клиент 1С (в зависимости откуда запрос в настройках) были под Windows.
13. parshin 72 26.07.19 14:36 Сейчас в теме
14. parshin 72 26.07.19 14:39 Сейчас в теме
(12) При запуске с клиента windows ошибка: "PostgreSQL: Ошибка установки соединения:
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаНастроекПодключения.Форма(190)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"
Похоже надо ODBC настроить. Попробую разобраться.
YPermitin; +1 Ответить
15. YPermitin 8989 26.07.19 14:45 Сейчас в теме
(14) хорошо, отпишитесь получится или нет.

Тоже поэкспереметирую, опишу этот момент в инструкции к отчету.

Варианты по работе с приложениями 1С под линукс возьму на "подумать".
16. parshin 72 26.07.19 14:49 Сейчас в теме
(15)
Работает!
1. Надо установить ODBC драйвер отсюда (я установил самый свежий): https://www.postgresql.org/ftp/odbc/versions/msi/
2. В 1с в настройках подключения установить галку "Запросы с клиента"
YPermitin; +1 Ответить
17. YPermitin 8989 26.07.19 14:51 Сейчас в теме
18. YPermitin 8989 26.07.19 22:24 Сейчас в теме
Публикация обновлена:
1. Обновлен файл отчета. Исправлена совместимость со SQL Server 2008 / 2012 редакциями.
2. Дополнена информация о настройках подключения, если сервер 1С установлен на *.nix системе.
3. Добавлена история изменений в конце публикации.

Всем, кто скачал отчет ранее и необходима совместимость с версиями SQL Server 2008 / 2012 - напишите мне в личные сообщения, предоставлю ссылку для скачивания.
19. user771565 02.10.19 10:13 Сейчас в теме
А кто нибудь знает как напрямую в postgre дернуть картинки из 1с ?
20. YPermitin 8989 02.10.19 21:50 Сейчас в теме
(19) конечно к отчету это не относится, но не могли бы Вы уточнить суть задачи?
21. user771565 03.10.19 03:01 Сейчас в теме
извиняюсь вопрос снят
YPermitin; +1 Ответить
22. mairon 21.10.19 10:31 Сейчас в теме
На конфигурациях УПП и БП2 будет работать?
YPermitin; +1 Ответить
23. YPermitin 8989 21.10.19 10:35 Сейчас в теме
(22) по идее привязки к конфигурациям нет, поэтому должно работать.

Если что-то не так - пишите, разберемся.
24. user1135262 21.10.19 11:24 Сейчас в теме
SQLServer: Ошибка установки соединения:
{ВнешнийОтчет.ПросмотрИАнализСтруктурыБазыДанных.Форма.ФормаНастроекПодключения.Форма(190)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): При входе в систему пользователя "xxx" произошла ошибка.

Как-то можно обойти эту ошибку? MSSQL 2016
YPermitin; +1 Ответить
25. YPermitin 8989 21.10.19 11:28 Сейчас в теме
(24)
При входе в систему пользователя "xxx" произошла ошибка


Подозреваю, что у Вас на сервере СУБД отключена аутентификация средствами SQL Server, только доменная аутентификация доступна.
26. YPermitin 8989 07.01.20 19:48 Сейчас в теме
(0) Публикация обновлена!

Расширение функционала отчета и исправление ошибок:
- Улучшена сортировка полей таблиц и индексов при выводе в отчете. Ранее сортировка выполнялась по имени, теперь в том порядке. в котором поля расположены в базе данных.
- Определение имен полей с служебных таблицах работает более точно. Ранее в определенных ситуациях имя поля могло быть неизвестно.
- Исправлено получение размера конкретных индексов. Ранее размер конкретного индекса определялся только для основного кластерного индекса. Также теперь размер индекса всегда отображается в одной колонке (вместе с итоговым размером индексов для таблицы).
- Улучшение показателей размера индексов для PostgreSQL.
- Добавлен вариант "Неиспользуемые таблицы", показывающий те таблицы, которые фактически не используются. Это могут быть таблицы без записей, или таблицы после неудачной реструктуризации.
- Исправлены ошибки открытия форм, если отчет встроен в конфигурацию.
27. sertak 238 07.05.20 11:39 Сейчас в теме
Буквально сегодня пришла в голову мысль запилить обработку, которая будет через DMV/DMF вытягивать рекомендации по отсутствующим индексам и выводить соответствующие объекты 1С, ну а там хвостом уже и что-нибудь сопутствующее типа всех индексов и другой красоты, и вот оказывается все уже написано ). Шикарный функционал, отсутствующих индексов, правда, пока нет, но они в планах. Муст хаве короче и снимаю шляпу.
Оставьте свое сообщение

См. также

Как найти неиспользуемый код

Практика программирования v8 1cv8.cf Бесплатно (free)

Описание нескольких способов поиска и определения неиспользуемого кода

03.08.2020    1723    YPermitin    20    

Регистры бухгалтерии. Виртуальная таблица оборотов

Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Бесплатно (free)

Виртуальная таблица оборотов регистра бухгалтерии. Принцип работы, особенности и кое-что еще.

28.07.2020    2526    YPermitin    10    

Вы запускаете приложения, но делаете это без уважения

Практика программирования v8 1cv8.cf Бесплатно (free)

О запуске сторонних приложений и скриптов из кода встроенного языка платформы 1С.

21.07.2020    4250    YPermitin    29    

Полнотекстовый поиск в 1С. №1 Грабли в динамических списках

Поиск данных v8 1cv8.cf Бесплатно (free)

Полнотекстовый поиск в 1С и все что с этим связано. Часть №1: особенности работы в динамических списках.

18.07.2020    3352    YPermitin    18    

Как сломать работу 1С, будучи пользователем

Пользователю системы v8 Бесплатно (free)

Шуточные и не только истории, как сломать работу 1С на пустом месте. И, возможно, остановить работу компании.

14.06.2020    6055    YPermitin    50    

Работа с журналом регистрации. Выходим за границы платформы

Журнал регистрации Бесплатно (free)

Работа с журналом регистрации нестандартными средствами. А также немного про использование платформы .NET в экосистеме 1С.

12.05.2020    4964    YPermitin    24    

Совместимость работы со строками. Жизнь до 8.3.6 и после

Практика программирования v8 Бесплатно (free)

Немного о совместимости со старыми версиям платформы 1С в работе со строками.

21.02.2020    5381    YPermitin    24    

Код разработчика в зависимости от опыта работы

Практика программирования v8 Бесплатно (free)

Пятничный пост! Как меняется код разработчика в зависимости от опыта работы.

14.02.2020    9901    YPermitin    227    

Активный 2019 год на Инфостарт

О сообществе О жизни Бесплатно (free)

О прошедшем 2019 годе в 100 и 500 словах.

26.12.2019    5726    YPermitin    24    

Итоги года. Статистика выпуска релизов фирмы "1С"

Пользователю системы Бесплатно (free)

Статистика выпуска релизов фирмы "1С" за прошедший год.

16.12.2019    6710    YPermitin    29    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    16214    YPermitin    72    

Самые распространенные заблуждения об индексах в мире 1С

Администрирование данных 1С Администрирование СУБД Бесплатно (free)

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019    19315    YPermitin    44    

Простейший пример создания бизнес-процессов

Практика программирования Управление бизнес-процессами (BPM) v8::Бизнес-процессы 1cv8.cf Бесплатно (free)

Простой пример создания бизнес-процессов в несколько шагов. Может пригодиться при первом знакомстве с ними или для решении задач экзамена 1С:Специалист по платформе.

20.11.2019    13894    YPermitin    18    

"При изменении" подсистемы. Привет от 8.2!

Практика программирования v8 1cv8.cf Бесплатно (free)

Отлавливаем событие "При изменении" подсистемы.

14.11.2019    6303    YPermitin    13    

Как быстро выгрузить / загрузить внешние отчеты и обработки

Практика программирования v8 1cv8.cf Бесплатно (free)

Немного о массовой выгрузке и загрузке внешних отчетов и обработок.

12.11.2019    6186    YPermitin    14    

Стабильность превыше всего

Рефакторинг и качество кода v8 Бесплатно (free)

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

07.11.2019    9257    YPermitin    40    

Набор скриптов для знакомства с PostgreSQL

Администрирование СУБД Бесплатно (free)

Немного скриптов для PostgreSQL, позволяющих познакомиться с состоянием сервера.

04.11.2019    13490    YPermitin    18    

Обслуживание баз данных. Не так просто, как кажется

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Бесплатно (free)

Считаете, что обслуживание индексов и статистик дело простое? Что ж, это не всегда так.

14.10.2019    17045    YPermitin    28    

Набор скриптов для знакомства с SQL Server

Производительность и оптимизация (HighLoad) Администрирование СУБД Бесплатно (free)

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

30.09.2019    21143    YPermitin    14    

Секционирование таблиц и индексов в мире 1С

Производительность и оптимизация (HighLoad) Бесплатно (free)

Говорим о секционировании таблиц и индексов для баз 1С. Способы применения, подводные камни и прочее.

10.02.2019    17556    YPermitin    54    

1C:Syntax Highlighter (раскраска синтаксиса языка 1С)

Разработка внешних компонент Бесплатно (free)

Расширение библиотеки SyntaxHighlighter для раскраски языка 1С в веб-приложениях.

25.01.2016    8738    YPermitin    14