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

13.07.15

База данных - Статистика базы данных

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

Скачать исходный код

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

Небольшая обработка, которая показывает информацию о физически используемом дисковом пространстве для СУБД 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!


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

размер база sql базомер sql postgres

См. также

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

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

13.03.2024    3563    spyke    28    

47

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    8215    167    ZAOSTG    71    

101

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    6504    doom2good    48    

64

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    9327    ivanov660    6    

76

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    5324    a.doroshkevich    20    

72

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16555    skovpin_sa    14    

101

Как эффективно настроить autovacuum в Postgres для 1С

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

Кто не любит убирать мусор? Думаю, практически все, а вот в Postgres это обязательный ритуал для эффективной работы. Как эффективно настроить уборку за 1С в Postgres, можно прочитать в этой статье и еще раз задуматься о бесплатности Postgres.

05.08.2023    5187    1CUnlimited    5    

51
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ARL 313 19.10.11 15:54 Сейчас в теме
Очень понравилась обработка. Давно собирался посмотреть величины таблиц, да так и несобрался. А тут всё супер удобно. Даже пожеланий никаких не нашлось :) Благодарю!
5. orsprog 20.10.11 08:58 Сейчас в теме
(1) ARL, мне тоже нравится
2. Seregalink 78 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 340 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) Вибачайте вже побачив аналогічне повідомлення.
52. valerij1257 19.12.19 10:54 Сейчас в теме
а какие данные нужно в логи пароль забивать? от sql сервера или 1с кластера

на sql server 2014 должно работать?

А то вот такая ошибка:

MS SQL Ошибка установки соединения:
{ВнешняяОбработка.SQLБазомер.МодульОбъекта(12)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Ошибка входа пользователя "sql_user_003".
53. andboss 201 19.12.19 15:11 Сейчас в теме
(52) Логин sql сервера. Должно работать.
13. andboss 201 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 61 20.10.11 11:13 Сейчас в теме
плюс! нужная обработина! сейчас буду пробовать
8. andboss 201 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 201 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 1399 20.10.11 12:53 Сейчас в теме
1. Не работает в управляемом приложении
2. Хотелось бы табличные части видеть в составе своих объектов (например, в виде дерева, как в конфигураторе). И чтоб дополнительно размер родительской таблицы отображался с учетом дочерних объектов. И естественно, чтоб можно было выбрать как отображать дочерние таблицы, в составе родительских или отдельно.
3. Таблица не поддается анализу. Даже что бы выгрузить в Excel в удобоваримом виде, надо сделать несколько лишних движений. Напрягает.
14. echo77 1880 20.10.11 21:31 Сейчас в теме
если бы под 8.1 такое было.
вот еще хорошая штука http://infostart.ru/public/19463/
15. Zoomby 20.10.11 22:19 Сейчас в теме
спасибо автору :) надо попробовать потестить
17. andboss 201 21.10.11 08:15 Сейчас в теме
echo77 пишет:
если бы под 8.1 такое было.


Да вроде нет препятствий перенести этот код в обработку созданную в 8.1.
Если не ошибаюсь, функция ПолучитьСтруктуруХраненияБазыДанных() в 8.1 существует, так что всй должно взлететь)
21. Misanets 340 21.10.11 11:28 Сейчас в теме
Взвесил обработкой получилось 45,1 Гб, а mdf файл весит 69,7 Гб.
Можете объяснить?
22. andboss 201 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 340 21.10.11 12:05 Сейчас в теме
Благодарю, сделаем, проверим.
24. ghost_51 1 21.10.11 12:52 Сейчас в теме
А нет подобного для postgres?
25. andboss 201 21.10.11 16:15 Сейчас в теме
ghost_51 пишет:

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


Уже есть, качайте)
26. sound 535 21.10.11 16:31 Сейчас в теме
Может на СКД переписать?
27. Twirus 21.10.11 16:45 Сейчас в теме
Спасибо,как раз искал.
28. infostar81 21.10.11 19:40 Сейчас в теме
29. Istur 1472 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 31 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 201 25.10.11 08:21 Сейчас в теме
На какой версии PostgreSQL пробуете? На 9.x работает, возможно на более ранних нет функции pg_table_size
32. igor_aviant 25.10.11 11:22 Сейчас в теме
У нас PostgreSQL версии 8.4.3
33. sipoju 25.10.11 15:37 Сейчас в теме
Вещь хорошая, на MS SQL работает нормально, но PostgreSQL у нас ниже 9, стабильная для 1С 8.4.3-3.1C, так что подождем пока
34. Aleskey_K 33 01.11.11 17:48 Сейчас в теме
Спасибо за обработку.
35. Dethmond 25.06.12 10:26 Сейчас в теме
Спасибо, как раз то, что нужно
36. clab 8 17.07.13 11:21 Сейчас в теме
Для отображения метаданных (кого не работает) в нашем случае помогло привести записи в таблице в нижний регистр

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

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

На Postgre не отображались имена метаданных. Ваш способ помог исправить проблему.
37. aximo 2029 17.07.13 11:33 Сейчас в теме
Интересная сервисная штука, даже для того, чтобы сопоставить таблицы бд - объектам конфигурации
38. НатальяАлекс 34 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 43 10.11.14 11:56 Сейчас в теме
Не хватает функции сравнения двух и более баз на предмет чего поменялось.
У нас вот база за последний месяц в два раза в размерах выросла.
Запустил в рабочей базе, запустил в копии месячной давности.
Вижу, регистр ВерсииОбъектов вышел на лидирующие позиции. Вспомнил, что месяц назад добавлял объекты для контроля версий. Собственно, на него и так думал, но после просмотра результатов обработки, подозрения подтвердились.
Однако, это по одному объекту стало понятно, а чтобы выявить какие еще объекты, к примеру, добавились в базе, придется в Excel выгружать и искать отличия ?
Очень помогла бы функция сравнения с подсветкой строк с добавленными и удаленными объектами. И возможность сортировки не только по размеру, но и по другим столбцам при клике на заголовок колонки.

Но это все хотелки, а за уже имеющееся огромное спасибо!
Очень помогло.
45. dr2c 44 18.12.14 16:56 Сейчас в теме
Обработку подключил, статистика собралась, но "Имя метаданных" пусто (PostgreSQL)! Что не так?
Прикрепленные файлы:
47. chukawata 10 31.01.18 06:36 Сейчас в теме
(45) В режиме совместимости 8.2.13 ряд метаданных (например, константы, регламентные задания) хранятся в одной общей таблице, поэтому их собственные имена в данном поле не отражаются. Возможно, у Вас такая ситуация.
46. Юля789 42 19.03.15 04:42 Сейчас в теме
49. NurikRistart 12.08.18 17:54 Сейчас в теме
На windows server 2016, база на PSQL, упорно не хочет видеть psql odbc, кто нибудь проверял на сервер 2016?
Прикрепленные файлы:
50. sapervodichka 6793 16.07.19 14:04 Сейчас в теме
51. Дмитрий74Чел 234 13.11.19 17:37 Сейчас в теме
MS SQL 13 (2016), win server 2016 - работает. Единственное, не выводилисьт имена метаданных - потому что "ИмяТаблицыSQL" теперь содержит "[dbo].[_Name]" вместо "_Name"; как следствие не срабатывет поиск
СтрокаДанные1С = Таблица.Найти(Запись.ИмяТаблицыSQL, "ИмяТаблицыХранения");
Решается парой строк кода.
54. ganios 04.01.20 17:49 Сейчас в теме
(51)
"ИмяТаблицыSQL" теперь содержит "[dbo].[_Name]" вместо "_Name";

А почему так происходит? это из за версий SQL?
(51)
Решается парой строк кода.

не могли бы подсказать как?
55. bard 15 11.05.22 21:44 Сейчас в теме
Ошибка "Возникла непредвиденная ситуация"


Платформа: 1С:Предприятие 8.3 (8.3.18.1741)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.111.16)
Приложение: Толстый клиент

Сервер PosgreSQL на Linux. Так не работает?
Прикрепленные файлы:
56. SOUZ_IT 33 04.11.23 15:41 Сейчас в теме
(55) Присоединяюсь. На Linux не работает((
Оставьте свое сообщение