gifts2017

Размеры таблиц базы данных и объектов БД MS SQL (управляемая форма)

Опубликовал Андрей Иваненко (AnderWonder) в раздел Администрирование - Статистика базы данных

Обработка выводит данные о размерах БД MS SQL по типам метаданных. Данные детализируются до полей таблиц (реквизитов объектов). Может использоваться для анализа размеров БД, выявления причин роста БД, элементов, занимающих наибольшее место. Обработка реализована в управляемой форме.

Информация о размере данных берется на основании сведений о таблицах SQL и их полях , которые получаются функцией ПолучитьСтруктуруХраненияБазыДанных(). Далее используется прямой запрос к SQL серверу COM объектами ADODB и вызывается хранимая процедура sp_spaceused, с помощью которой и получаются данные о размерах таблиц.

С размерами полей ситуация сложнее, поэтому получить их реальные размеры не удалось. Однако, производится анализ об относительных размерах каждого поля в общем размере таблицы. Этот анализ происходит путем вычисления размера данных хранимых в поле с помощью функции T-SQL datalength. Т.к. при большом количестве записей в таблице, выполнение этой функции может занимать много времени, то предусмотрен параметр "Количество записей для анализа полей". Этот параметр ограничивает число записей, по которым происходит вычисление datalength количество первых записей указанных в нём. При условии однородности данных заполняющих колонку таблицы это дает достаточно приближенный результат. Если указать значение этого параметра 0, то анализ по полям производится не будет.

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

Работает только в режиме "Толстого клиента", т.к. в тонком клиенте большие сложности с обработкой дерева значений и, в принципе, отсутствует необходимость запускать её таким образом - программист или администратор обычно всегда имеет доступ к толстому клиенту.

При создании обработки использовались материалы статьи http://infostart.ru/public/128362/

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

Наименование Файл Версия Размер
Обработка "Размеры БД" 212
.epf 10,43Kb
18.03.15
212
.epf 10,43Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Serg Kondrasgov (SergDi) 16.01.13 19:35
довольно интересно, еще и под тонкие формы, нужно заюзать
2. Serg Kondrasgov (SergDi) 16.01.13 19:36
интресно насколько точные цифры выдает
3. Serg Kondrasgov (SergDi) 16.01.13 19:58
{Форма.Форма.Форма(24,27)}: Тип не определен (ДеревоЗначений)
ДеревоМетаданных = Новый <<?>>ДеревоЗначений;

ДеревоЗначений (ValueTree)

Доступность:
Сервер, толстый клиент, внешнее соединение.
4. Станислав Турчинский (Istur) 17.01.13 00:59
Как ни посмотрю - постоянно кто-то делает анализ размеров баз) В чем преимущества твоей разработки перед существующими, например моей? http://infostart.ru/public/78049/
5. Андрей Иваненко (AnderWonder) 17.01.13 10:55
(3) Это будет в тонком клиенте, в описании указано, что работает только под толстым.
(1) Можно сделать что бы работало под тонким. Есть два пути:
- простой - если вы готовы пожертвовать отображением прогресса обработки, то достаточно перенести процедуры обработки в &НаСервере. Т.к. прогресс отображается функцией Состояние(), которая работает только на клиенте, то прогресс отображаться не будет.
- сложный, без потери отображения прогресса - необходимо сделать механизм передачи дерева значений с сервера на клиент и с клиента на сервер. Это делают с помощью структур - процесс несколько муторный. По-моему игра не стоит свеч.
(2) Данные о размере БД достаточно точные, проверено на рабочей базе, где практически сошлось с фактическим размером файла на диске, за вычетом объема самой конфигурации, которая тоже хранится в БД. Также механизм определения размера основан на принципе из прошлой обработки, на которую указана ссылка в публикации, достоверность работы которой, по-видимому, подтверждена практикой.
Определения данных по полям зависит от количества анализируемых записей, заданных параметром, но в принципе тоже должно отображаться корректно. Опять таки, проверено на своей базе. Например, в регистре наибольший размер показало для одного текстового поля, что после проверки подтвердилось, хотя были и другие поля такого же типа, но они, как оказалось, не заполнялись.
6. Андрей Иваненко (AnderWonder) 17.01.13 11:00
(4) Обработка делалась под себя, для удобства анализа. По сравнению с существующими отличия такие:
- обработка работает в управляемом приложении - существующих для управлемых форм не нашёл;
- обработка выводит данные, пусть и косвенные, в детализации вплоть до полей и реквизитов - такого тоже не видел;
- данные удобно (как по мне) сгруппированы в виде дерева и не содержат ничего лишнего, что облегчает анализ.
adhocprog; +1 Ответить
7. Антон Чарушкин (hulio) 18.01.13 12:30
(4) Istur, в вашей обработке есть ошибки. Прочитайте хотя бы мои комментарии (45 и 46), которым скоро уже год (!)
8. Станислав Турчинский (Istur) 18.01.13 12:47
(7) Я года полтора не сидел на инфостарте вообще, не до него было. Щас читаю да, смотрю, что народ понаписал. Твои 2 комментария почитал.. посмотрю и или оспорю или исправлю. Проблема в том, что сейчас я не имею доступа к SQL-серверу, смогу сделать только в темную если только( Хотя ты в принципе и так нашел и где баг и как его поправить)
9. Александр МАН (1977) 17.02.13 16:34
В УТ11 не пошла, база файловая
{Форма.Форма.Форма(24,27)}: Тип не определен (ДеревоЗначений)
ДеревоМетаданных = Новый <<?>>ДеревоЗначений;
платформа 8,2,17
10. Андрей Иваненко (AnderWonder) 17.02.13 22:49
(9) Об этой ошибке уже отвечал в (5).
И вообще-то в описании написано:
...о размерах объектов по типам метаданных в БД MS SQL

эта обработка не для файловой базы.
11. Бочаров Кирилл Игоревич (bocharovki) 28.11.13 07:12
Полезная штука. Единственное я бы добавил возможность по галке включать проверку подлинности Windows (добаление к строке соединения Integrated Security=SSPI)
adhocprog; +1 Ответить
12. Евгений Соболев (solbol) 11.03.16 00:19
Очень долго работает. У меня анализировал базу несколько часов.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа