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

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

Программирование - Инструментарий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Послесловие

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

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

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

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

 
 История изменений отчета

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

79

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

Наименование Файл Версия Размер
Просмотр и анализ структуры базы данных (отчет на СКД)
.erf 59,61Kb
26.07.19
47
.erf 1.0.0.1 59,61Kb 47 Скачать

См. также

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

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

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

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

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


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

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

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

Часть из этого уже готова, только нужно привести в порядок. Вообщем, функционал будет, но не в ближайшее время.
8. Разумов 26.07.19 06:05 Сейчас в теме
Классный инструмент! Жаль, мани нет, с удовольствием бы поигрался со своей базой.
9. ligsht 9 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 3864 26.07.19 14:14 Сейчас в теме
(9) принято.

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

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

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

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

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

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

Всем, кто скачал отчет ранее и необходима совместимость с версиями SQL Server 2008 / 2012 - напишите мне в личные сообщения, предоставлю ссылку для скачивания.
Оставьте свое сообщение