SQL Базомер (8.2, 8.3)

Администрирование - Статистика базы данных

92
SQL Базомер - небольшая обработка, которая показывает информацию о используемом дисковом пространстве СУБД MS SQL, PostgreSQL  в разрезе метаданных 1С (8.2, 8.3).

Небольшая обработка, которая показывает информацию о физически используемом дисковом пространстве для СУБД MS SQL Server и PostgreSQL в разрезе метаданных 1С.

Использует подключение к SQL Server через OLEDB, данные запрашиваются процедурой sp_spaceused.
http://msdn.microsoft.com/ru-ru/library/ms188776.aspx
 
Работоспособность проверена на SQL Server 2005, 2008, 2012 И 1С: Предприятии 8.2, 8.3

Работает как в толстом так и в тонком клиенте(обычный и управляемый режимы).
Перед использованием на закладке "Настройки" указать данные для подключения к БД.

Для СУБД PostgreSQL:

Требуется установленный ODBC драйвер (если в тонком клиенте, то устанавливать на сервер приложений)
http://www.postgresql.org/ftp/odbc/versions/msi/

Проверял на версии PostgreSQL 9.0 и ODBC клиенте

http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/msi/psqlodbc_09_00_0310.zip

Используются функции:

pg_total_relation_size

pg_table_size

pg_indexes_size

Количество записей берется из pg_class, имейте в виду данные обновляются там после VACUUM!


Комментарии и пожелания приветствуются.

92

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

Наименование Файл Версия Размер
SQLБазомер.epf
.epf 27,51Kb
13.07.15
321
.epf 27,51Kb 321 Скачать

См. также

Комментарии
Сортировка: Древо
1. ARL 275 19.10.11 15:54 Сейчас в теме
Очень понравилась обработка. Давно собирался посмотреть величины таблиц, да так и несобрался. А тут всё супер удобно. Даже пожеланий никаких не нашлось :) Благодарю!
5. orsprog 20.10.11 08:58 Сейчас в теме
2. Seregalink 72 19.10.11 23:44 Сейчас в теме
Да спасибо, хорошая вещь, и главное удобная!
3. gr0ck 20.10.11 08:37 Сейчас в теме
4. orsprog 20.10.11 08:57 Сейчас в теме
Обработка замечательная...а главное название подходящее
6. Djonny 20.10.11 10:57 Сейчас в теме
Да, хорошая вещь!
только почему-то не отображается значение имени метаданных:
8.2.14.519
sql 2005
12. Misanets 334 20.10.11 14:15 Сейчас в теме
При попытке подключения используя пользователя SQL с доменное авторизацией выдает ошибку, ну и не конектится:

Ошибка установки соединения: {ВнешняяОбработка.SQLБазомер.МодульОбъекта(6)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Login failed for user 'Domen\User'.
18. Trof@ 21.10.11 10:04 Сейчас в теме
В мене помилка "Ошибка установки соединения: {ВнешняяОбработка.SQLБазомер.МодульОбъекта(12)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Ошибка входа пользователя "admin"", але коли включаю Аутентифікацію то все працює. З чим це може бути повязане?
19. Trof@ 21.10.11 10:08 Сейчас в теме
(18) Вибачайте вже побачив аналогічне повідомлення.
13. andboss 152 20.10.11 16:15 Сейчас в теме
Misanets пишет:

При попытке подключения используя пользователя SQL с доменное авторизацией выдает ошибку, ну и не конектится:



Ошибка установки соединения: {ВнешняяОбработка.SQLБазомер.МодульОбъекта(6)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Login failed for user 'Domen\User'.


Добавил NTLM-аутентификацию
7. pt_olga 62 20.10.11 11:13 Сейчас в теме
плюс! нужная обработина! сейчас буду пробовать
8. andboss 152 20.10.11 11:21 Сейчас в теме
Djonny пишет:

Да, хорошая вещь!

только почему-то не отображается значение имени метаданных:

8.2.14.519

sql 2005


Не отображается в каждой строке метаданных? У себя в БД наткнулся на ситуацию, когда для существующей таблицы в SQL нет соответствия в метаданных 1С! Как это объяснить - видимо так работала платформа, сбой в каких то релизах, БД тянется еще начиная с версии 1С 8.0. В итоге с десяток таблиц типа "справочник" и несколько "документов" присутствуют только в виде физических таблиц MS SQL, функция ПолучитьСтруктуруХраненияБазыДанных(,Истина) не возвращает таблиц с такими именами!
9. Djonny 20.10.11 12:41 Сейчас в теме
(8)Да, не отображается в каждой строке метаданных!
11. andboss 152 20.10.11 13:13 Сейчас в теме
Djonny пишет:

(8)Да, не отображается в каждой строке метаданных!


И указанная БД MS Sql соответствует текущей используемой платформой, из которой запускаете обработку?
Объяснение нахожу только одно: конфигурация из которой запущена обработка и указанная БД в настройках - две различные базы данных!
16. Djonny 20.10.11 22:25 Сейчас в теме
(11) Вот тут может быть!
запускал на платформе, отличной от той, на которой база.
Завтра проверю!
20. Djonny 21.10.11 10:49 Сейчас в теме
(11) Точно, запустил на той платформе, на которой работает база,
и имя метаданных отображается
Спасибо!
10. Armando 1385 20.10.11 12:53 Сейчас в теме
1. Не работает в управляемом приложении
2. Хотелось бы табличные части видеть в составе своих объектов (например, в виде дерева, как в конфигураторе). И чтоб дополнительно размер родительской таблицы отображался с учетом дочерних объектов. И естественно, чтоб можно было выбрать как отображать дочерние таблицы, в составе родительских или отдельно.
3. Таблица не поддается анализу. Даже что бы выгрузить в Excel в удобоваримом виде, надо сделать несколько лишних движений. Напрягает.
14. echo77 857 20.10.11 21:31 Сейчас в теме
если бы под 8.1 такое было.
вот еще хорошая штука http://infostart.ru/public/19463/
15. Zoomby 20.10.11 22:19 Сейчас в теме
спасибо автору :) надо попробовать потестить
17. andboss 152 21.10.11 08:15 Сейчас в теме
echo77 пишет:
если бы под 8.1 такое было.


Да вроде нет препятствий перенести этот код в обработку созданную в 8.1.
Если не ошибаюсь, функция ПолучитьСтруктуруХраненияБазыДанных() в 8.1 существует, так что всй должно взлететь)
21. Misanets 334 21.10.11 11:28 Сейчас в теме
Взвесил обработкой получилось 45,1 Гб, а mdf файл весит 69,7 Гб.
Можете объяснить?
22. andboss 152 21.10.11 11:40 Сейчас в теме
Misanets пишет:

Взвесил обработкой получилось 45,1 Гб, а mdf файл весит 69,7 Гб.

Можете объяснить?


Обработка возвращает физически занятый размер под структуры MS SQL внутри mdf файла (-ов). Сам mdf файл как правило всегда больше, и не отражает физически занятое пространство под структуры, для уменьшения можете использовать SHRINKDATABASE
http://msdn.microsoft.com/ru-ru/library/ms190488.aspx

Т.е в вашем случае SHRINKDATABASE выбросит пустое место из mdf и файл станет чуть больше 45,1 гб
23. Misanets 334 21.10.11 12:05 Сейчас в теме
Благодарю, сделаем, проверим.
24. ghost_51 1 21.10.11 12:52 Сейчас в теме
А нет подобного для postgres?
25. andboss 152 21.10.11 16:15 Сейчас в теме
ghost_51 пишет:

А нет подобного для postgres?


Уже есть, качайте)
26. sound 526 21.10.11 16:31 Сейчас в теме
Может на СКД переписать?
27. Twirus 21.10.11 16:45 Сейчас в теме
28. infostar81 21.10.11 19:40 Сейчас в теме
29. Istur 1397 24.10.11 12:05 Сейчас в теме
(0) Посмотрел обработку и не понял смысла ее появления, и чем она лучше моей Анализ размеров таблиц, метаданных, различная статистика для клиент-серверного (SQL) и файлового вариантов базы, ну кроме еще поддержки PostgreSQL. Моя же показывает все в удобном виде, написана на СКД, дает возможность показывать информацию по выбранным метаданным, а не только по всем, выводить информацию не только в килобайтах, но и в мегабайтах и гигабайтах, накладывать различные отборы, и просто выводимый вид гораздо более понятен. У одного вида метаданных может быть несколько таблиц, в моей обработке это сгруппировано, в данной же обработке выводится простыня, не упорядоченная даже по наименованию и типу метаданных. В общем я не понимаю ни смысла данной обработки и ее плюсов, ни плюсов за эту саму обработку. И даже немного обидно, потому что подавляющая часть времени мною был потрачена именно на удобность и приятность использования, здесь же автор вообще этим не заворачивался, и оказывается это никому собственно и не надо, народ проглотит все что угодно. Мда...
void.tm; YPermitin; kseonbr; artbear; Збянтэжаны Саўка; +5 Ответить
42. mikhailovaew 127 13.08.14 16:14 Сейчас в теме
(29) Istur, не переживайте: у Вашей обработки и плюсов больше, и скачиваний )
44. bashirov.rs 16 03.12.14 13:46 Сейчас в теме
(29) Istur, не важно у кого информативнее, человек старался - делал. Пусть ваша более информативна - но может кому-то достаточно такой информации.
30. igor_aviant 24.10.11 17:16 Сейчас в теме
{ВнешняяОбработка.SQLБазомер.МодульОбъекта(79)}: Ошибка при вызове метода контекста (Execute)
Результат = objCmd.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): ERROR: function pg_table_size(text) does not exist;
Error while executing the query
41. air_mike 25 07.08.14 17:18 Сейчас в теме
(30) igor_aviant, В общем модуле закоментить строки 59,60 так:
//|pg_table_size(schemaname||'.'||tablename) / 1024 AS table_usage_kb,
//|pg_indexes_size(schemaname||'.'||tablename) / 1024 as index_usage_kb,
|0 AS table_usage_kb,
|0 as index_usage_kb,
Тогда такой ошибки не будет. А так в 8.4 нет такой функции pg_table_size
31. andboss 152 25.10.11 08:21 Сейчас в теме
На какой версии PostgreSQL пробуете? На 9.x работает, возможно на более ранних нет функции pg_table_size
32. igor_aviant 25.10.11 11:22 Сейчас в теме
33. sipoju 25.10.11 15:37 Сейчас в теме
Вещь хорошая, на MS SQL работает нормально, но PostgreSQL у нас ниже 9, стабильная для 1С 8.4.3-3.1C, так что подождем пока
34. Aleskey_K 11 01.11.11 17:48 Сейчас в теме
35. Dethmond 25.06.12 10:26 Сейчас в теме
Спасибо, как раз то, что нужно
36. clab 7 17.07.13 11:21 Сейчас в теме
Для отображения метаданных (кого не работает) в нашем случае помогло привести записи в таблице в нижний регистр

Таблица = ПолучитьСтруктуруХраненияБазыДанных(,Истина);
//
для Каждого СтрокаТаб из Таблица цикл
СтрокаТаб.ИмяТаблицыХранения=НРег(СтрокаТаб.ИмяТаблицыХранения);
КонецЦикла;
//

Да и спасибо автору за полезную вещь
48. XOCTEP 128 20.04.18 16:41 Сейчас в теме
(36)
Таблица = ПолучитьСтруктуруХраненияБазыДанных

На Postgre не отображались имена метаданных. Ваш способ помог исправить проблему.
37. aximo 670 17.07.13 11:33 Сейчас в теме
Интересная сервисная штука, даже для того, чтобы сопоставить таблицы бд - объектам конфигурации
38. НатальяАлекс 13 24.09.13 11:52 Сейчас в теме
Очень интересно. То есть она и сопоставляет таблицы? И вес показывает?
39. elena_77 01.10.13 17:48 Сейчас в теме
Спасибо за обработку. Именно сейчас ищем причину, по которой база перестала загружаться из dt архива. Во время загрузки вылетает с ошибкой. Размер таблицы превышает 4 гб. Вот нам срочно понадобилось определить, какая из таблиц так распухла.
40. Sniper9mm 13.03.14 15:10 Сейчас в теме
43. Tapochki-tmn 41 10.11.14 11:56 Сейчас в теме
Не хватает функции сравнения двух и более баз на предмет чего поменялось.
У нас вот база за последний месяц в два раза в размерах выросла.
Запустил в рабочей базе, запустил в копии месячной давности.
Вижу, регистр ВерсииОбъектов вышел на лидирующие позиции. Вспомнил, что месяц назад добавлял объекты для контроля версий. Собственно, на него и так думал, но после просмотра результатов обработки, подозрения подтвердились.
Однако, это по одному объекту стало понятно, а чтобы выявить какие еще объекты, к примеру, добавились в базе, придется в Excel выгружать и искать отличия ?
Очень помогла бы функция сравнения с подсветкой строк с добавленными и удаленными объектами. И возможность сортировки не только по размеру, но и по другим столбцам при клике на заголовок колонки.

Но это все хотелки, а за уже имеющееся огромное спасибо!
Очень помогло.
45. dr2c 39 18.12.14 16:56 Сейчас в теме
Обработку подключил, статистика собралась, но "Имя метаданных" пусто (PostgreSQL)! Что не так?
Прикрепленные файлы:
47. chukawata 10 31.01.18 06:36 Сейчас в теме
(45) В режиме совместимости 8.2.13 ряд метаданных (например, константы, регламентные задания) хранятся в одной общей таблице, поэтому их собственные имена в данном поле не отражаются. Возможно, у Вас такая ситуация.
46. Юля789 53 19.03.15 04:42 Сейчас в теме
49. NurikRistart 12.08.18 17:54 Сейчас в теме
На windows server 2016, база на PSQL, упорно не хочет видеть psql odbc, кто нибудь проверял на сервер 2016?
Прикрепленные файлы:
Оставьте свое сообщение