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

См. также

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

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

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

1 стартмани

15.02.2024    7624    158    ZAOSTG    67    

96

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

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

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

09.01.2024    5959    doom2good    48    

63

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

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

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

20.11.2023    8848    ivanov660    6    

76

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

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

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

15.11.2023    5095    a.doroshkevich    20    

72

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

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

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

11.10.2023    16165    skovpin_sa    14    

98

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

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

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

05.08.2023    5050    1CUnlimited    5    

51

MS SQL Server: изучаем планы запросов

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

Многие знают, что для ускорения работы запроса нужно «изучить план». При этом сам план обычно обескураживает: куча разноцветных иконок и стрелочек; ничего не понятно, но очень интересно! Аналитик производительности Александр Денисов на конференции Infostart Event 2021 Moscow Premiere рассказал, как выполняется план запроса и что нужно сделать, чтобы с его помощью находить проблемы производительности.

20.06.2023    15982    Филин    37    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 200 19.12.19 15:11 Сейчас в теме
(52) Логин sql сервера. Должно работать.
13. andboss 200 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 200 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 200 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 1868 20.10.11 21:31 Сейчас в теме
если бы под 8.1 такое было.
вот еще хорошая штука http://infostart.ru/public/19463/
15. Zoomby 20.10.11 22:19 Сейчас в теме
спасибо автору :) надо попробовать потестить
17. andboss 200 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 200 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 200 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 200 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 32 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 2027 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 6697 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 не работает((
Оставьте свое сообщение