gifts2017

Анализ размеров таблиц, метаданных, различная статистика для клиент-серверного (SQL) и файлового вариантов базы

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

Данная разработка далеко не первая и наверняка не последняя в деле собирания статистики и размеров информационных баз. Она делалась на основе другой разработки Статистика базы 8.1, но от нее отличается очень и очень существенно. Отличия:

  1. Возможность получения информации не только о текущей информационной базе, но и подключения к другим инфрмационным базам.
  2. Вывод информации не только в килобайтах, но и в мегабайтах и гигабайтах. Вывод количества не только в единицах, но и в тысячях и миллионах. Для меня это было критично, так как когда база очень большая, то просматривать имформацию в килобайтах крайне неудобно.
  3. Юзабилити. В комменатриях к той разработке народ спрашивал что и как, здесь я надеюсь сделал все интуитивно понятным. Но тут не мне оценивать.
  4. Отчет выводится на СКД, то есть по входящей таблице Вы сами можете сделать какой угодно вариант вывода отчета, удобный лично Вам и причем очень и очень быстро.
  5. СКД плюс 2 - можно делать какие угодно отборы, сортировки и выводить не все показатели, а только нужные.
  6. У той разработки только один вариант вывода. у меня же добавлены: а) Наибольшие таблицы - позволяет оценивать какие таблицы SQL занимают больше всего места. б) Наибольшие метаданные - какие именно метаданные самые большие. Остальные существенно не отличаются, но из-за СКД их можно нормально анализировать.

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

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

Наименование Файл Версия Размер
АнализРазмеровТаблицМетаданныхРазличнаяСтатистикаОБазе.erf 2235
.erf 81,28Kb
14.11.10
2235
.erf 81,28Kb Скачать

См. также

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

Комментарии

1. Сергей Сытько (8SiriuS8) 14.11.10 00:12
Молодец. Сам хотел довно такую нарисовать да все руки не доходили :)
2. Александр Хомяк (logarifm) 16.11.10 13:31
Вот это зачет. Молодец все супер сам точняк делать хотел и уже методы подыскал, а вот руки ну никак не доходили. Получай заработанную плюсяру :)
3. Роман (srv7) 16.11.10 18:47
спасибо ) есть предложение:
добавь в обработку возможность сохранения любых счетчиков (например, строк ТЧ для реализации или количество строк регистра или все сразу) в файл... экселевский например, со своей структурой, в разрезе дат... и возможность построения графика по данным этого файла. в результате появится возможность анализировать тенденцию роста базы и увидеть места оптимизации (что в первую очередь оптимизировать, что во вторую)... получится очень полезный инструмент !!
и еще, это уже на будущее - возможность расчета общих для базы показателей, например, ежемесячный рост таких-то данных составляет такой-то %. это позволит прогнозировать довольно точно какой будет база через год, два и стоит ли уже сейчас переходить к оптимизации... вообще поможет ответить на многие вопросы (по оборудованию, по программным решениям и т.д.) )
удачи !
4. Валерий Дубовой (Valerich) 17.11.10 09:13
у меня почему-то выдает ошибку:
{ВнешнийОтчет.АнализРазмеровТаблицМетаданныхРазличнаяСтатистикаОБазе.МодульОбъекта(930,20)}: Конструктор не найден
Действие = Новый <<?>>Действие("ДействияПанелиИзменениеЗначенияДинамическогоОтбора");
{ВнешнийОтчет.АнализРазмеровТаблицМетаданныхРазличнаяСтатистикаОБазе.МодульОбъекта(3387,29)}: Тип не определен (НастройкаПериода)
НастройкаПериода = Новый <<?>>НастройкаПериода;

База: некая самописка
Режим: толстый клиент, управляемые формы, клиент-сервер
5. Валерий Дубовой (Valerich) 17.11.10 09:25
все методы модуля поставил в операторные скобки #Если Клиент Тогда.... #КонецЕсли

Теперь запускается, но при попытке сформировать отчет, долго думает, а потом выдает ошибку:
Не найден внешний набор данных "ТаблицаДанных".

подробно:

Ошибка выполнения отчета
по причине:
Ошибка исполнения отчета
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "ТаблицаДанных"
по причине:
Не найден внешний набор данных "ТаблицаДанных"
6. Валерий Дубовой (Valerich) 17.11.10 09:28
И отображаемая форма совсем не похожа на ту, что изображена на скриншотах и ту, которую вижу в конфигураторе.

Следует ли понимать так, что в режиме управляемых форм обработка не работает?
7. Станислав Турчинский (Istur) 17.11.10 11:52
(4) (5) (6) Для управляемого приложения форма не создавалась, а поэтому и форма видится другая, как видно генерируется автоматически. поэтому и не работает. Когда буду реализовывать (3), тогда и сделаю работоспособной для управляемого приложения.
8. Трактор Трактор (Трактор) 17.11.10 12:35
9. Станислав Турчинский (Istur) 17.11.10 12:41
(8) Это да, Postgre у меня нет, так что и сделать под него не могу.
10. Владимир Лагутин (Lukich66) 17.11.10 20:02
Неплохо,но...
1.Закладки и стрелки вперед-назад - лишнее- гл.метаданные
2.Кн.сформировать на гл. ком.панель- а то не видно что формировать
3.Кн.настройка лучше чем в 1с не придумать( в середке фу)
4. Рашифровка объекта по клику в полученной таблице это +++
5.Доступ к др.базе- достаточно пути- остальное она запросит сама
11. Станислав Турчинский (Istur) 18.11.10 15:15
(10) 1) Сражение классических веб-форм с аккордеонными. Ничего лишним не является. Интерфейс, где находится всё на одной форме, является по моему мнению самым неправильным.

2) Кнопка на 3 странице находится не просто так, код бы сначала посмотрели.
3-4) - Перфразируйте и уточните. непонятно.
5) Оказывается по пути к базе можно получить логин и пароль 1с, логин и пароль администратора SQL. Вау.

Общее пожелание - формулируйте свои мысли пожалуйста литературными предложениями.
12. Сергей Фирсаев (buy_sale) 22.12.10 20:39
ПРедлагаю добавить группировку по периодам (году) для регистров. Тогда будет возможность наглядно оценивать результат свертки любых баз. И оперативно закрывать регистры перед сверткой, чтобы ликвидировать старые хвосты.

Еще бы неплохо иметь размер объектов в КБ для файлового варианта.
13. Амфилохий Игумен (Web_30) 29.12.10 13:47
а как посмотреть размер на файловой базе?
14. motherf 18.05.11 11:06
жаль, что обработка на 1с82.
на 1с81 не запускается, понятное дело.
15. Станислав Турчинский (Istur) 31.05.11 15:09
(13) Никак. При файловом варианте все хранится в одном файле и размер отдельной таблицы узнать невозможно. Точнее теоретически я думаю это возможно, но вот практических реализаций ни разу не видел и сам не знаю как.
(14) На отстающих не принято равняться) Перевидите на 8.2, там без управляемых форм ровно все тоже самое. плюс новые возможности.
16. Михаил Ражиков (tango) 31.05.11 15:27
за (15) - потому что без уф надо выкладывать как для 81
17. Станислав Турчинский (Istur) 31.05.11 21:13
(16) делалось это для толстого клиента без управляемых форм 8.2. Конвертация в 8.1 невозможна с 8.2. А управляемые формы делать отдельно - ну тут извините. Мне за это никто не платит. Если будет время то сделаю. но только если будет время.
18. Семен Слепаков (sa1m0nn) 02.09.11 11:08
"НеиспользованНо". Лишняя буква.
19. Александр Крынецкий (echo77) 04.09.11 18:06
Вкладку "Описание" можно в справку засунуть. ИМХО, слишком дохрена параметров отчета(я имею ввиду объект) :-)

Хорошая штука но не могу проверить на 8.1
20. Станислав Турчинский (Istur) 05.09.11 15:14
(18) Где я допустил данную оплошность? Исправлю.
(19) Описание - сделал так специально, чтобы читали. В справку никто никогда не лазит, а здесь же может быть кто-нибудь и посмотрит. Много параметров - обработка универсальная же, поэтому у всех свои запросы, и лучше больше, чем меньше. 8.1 - ну так я ее делал на 8.2, а конвертация на 8.1 невозможна. Да и странно, что Вы 5 сентября 2011 года все еще сидите на 8.1, переводите на толстый клиент)
21. Андрей К. (andrei.k) 21.09.11 13:59
Спасибо, работает, помогло отладить базу. Но ошибка на период вылезает.
22. Владимир Лышенко (vovche) 22.09.11 01:45
23. Витос 1С (VitaliyPovod) 22.09.11 16:11
Очень полезная обработка!
24. Витос 1С (VitaliyPovod) 22.09.11 16:15
Скажите, а существует ли обработка по поиску и удалению лишней информации в базе?
25. Витос 1С (VitaliyPovod) 22.09.11 16:15
А то есть база с размером около 5 ГБ
26. Витос 1С (VitaliyPovod) 22.09.11 16:16
Ума не приложу чем можно так забить за несколько недель!
27. Витос 1С (VitaliyPovod) 22.09.11 16:17
Говорят, что УПП так много и должно весить!
Но я чето сомневаюсь!
28. Витос 1С (VitaliyPovod) 22.09.11 16:18
А если они годик там поработают?
Че прийдется 1ТБ винт под базу брать?
Если и ево хватит! :)
29. Андрей К. (andrei.k) 28.09.11 08:51
(27) VitaliyPovod, у меня полуторагодовалая база УПП+автотранспорт весит около 13 ГБ. Из них, как замеченно, 3 ГБ это Хранилище дополнительной информации (в основном сканы).
30. Антон Чарушкин (hulio) 28.09.11 09:35
Нашел косячок'с! :)
Для документов показатель "Строк в табличной части на 1 элемент" всегда выводится в единицах, даже если в параметрах отчета указано "Выводить количество в тысячах/миллионах". Я даже сначала удивился, как много миллионов строк у нас в документах :D
31. Fomix (fomix) 12.10.11 11:25
2 в 1? Для файлового варианта подойдет любая другая обработка по статистике объектов БД, коих на данном сайте -вагон и маленькая тележка! А вот SQL вариант стоит использовать!
32. Юрий Хрипачёв (hrip) 12.10.11 17:35
Обработка - как раз то что нужно!!!
Только если кластер работает не на стандартном порту 1541 - тогда не подключается к базе или совсем вылетает при попытке подключения.
33. Pavel Osipov (cannabis_86) 14.10.11 15:48
Очень хорошая обработка, просто супер! Спасибо!
34. Иван Шевченко (imshev) 18.10.11 14:06
жалко что на PSQL не работает
35. Eddd easda (dyh) 02.11.11 17:06
Из всех что видел - это больше всего пришелся по душе.
36. Наталья (natachka) 08.11.11 14:22
Спасибо за полезную штуку!
37. Алексей Малютин (Maluta03) 15.11.11 08:13
Отличная вещь, спасибо большое!
38. Александр Сленючев (Draconus) 16.11.11 17:40
Спасибо за прекрасную работу!! Очень полезная весчь)
39. maksar maksar (maksar) 21.11.11 04:40
Очень хорошая обработка, просто супер! Спасиб
40. Александр Крынецкий (echo77) 13.12.11 10:32
было бы неплохо добавить возможность подключаться к серверу SQL использую Windows аутентификацию, т.е. без необходимости указывать администратора и пароль администратора
41. Владислав Лисовенко (VladC#) 26.12.11 06:33
только запустил, как вылетела следующая ошибка:
"Ошибка исполнения отчета
по причине:
Ошибка инициализации
по причине:
Ошибка создания набора данных "ТаблицаДанных"
по причине:
Не найден внешний набор данных "ТаблицаДанных"
дальше смотреть не стал
42. Валентин Гуров (gurovvv) 28.12.11 08:28
Огромное спасибо автору!
Отличная обработка, жутко помогла при настройке SQL базы.
Делал партиционное разбитие и нужно было добавить индекс по своей схеме секций и функции секционирования для таблиц с количеством записей больше 250 000. Удобно и быстро нашел все нужное благодаря этой разработке!
43. Дмитрий Фамилия (freek) 28.12.11 14:06
44. Светялчок (Масянечка) 07.01.12 05:22
Спасибо! А для 7.7 есть подобное?
45. Антон Чарушкин (hulio) 27.01.12 15:14
А я косяк нашел :P
Есть справочник с табличной частью. Отчет показывает по этому справочнику такие данные:
Искаженную информацию по этому справочнику - к размеру основной таблицы (2 516 432 КБ) добавляется размер табличной части (189 060 768 КБ). Поэтому несмотря на то, что размер справочника составляет всего 191 577 200 КБ (2 516 432 КБ + 189 060 768 КБ), в отчете отображается совершенно безумная цифра - 380 637 968 КБ.
Ошибку, кстати, заметил случайно - сформировал отчет в базе, которая весит всего 200 Гб, и увидел, что в этой базе одна таблица весит больше, чем вся база )))
46. Антон Чарушкин (hulio) 27.01.12 15:58
(0) Нашел причину такой ошибки, описанной в (45):
размер таблицы вы достаете с помощью функции РазмерТаблицыSQL(ИмяТаблицы)
А в этой функции используется следующий запрос:
RS.Open("SELECT name FROM sysobjects WHERE name = '_" + ИмяТаблицы + "' OR name LIKE '[_]" + ИмяТаблицы + "[_]%'", Connection);

И все дело в условии "LIKE ...". Таблицы справочников и документов в SQL выглядят как, например, _Reference2 и _Document74 соответственно. А таблицы, в которых хранятся табличные части этих объектов, имеют имена вида _Reference2_VT18 и _Document74_VT1038. Поэтому в вашем запросе размер табличной части объекта достается дважды: 1-й раз при получении размера таблицы объекта (из-за условия LIKE в результат попадет 2 строки - размер основной таблицы и размер таблицы ТЧ) и 2-й раз при получении размера самой таблицы ТЧ.
То есть, если условие LIKE убрать, для справочников и документов все будет отображаться правильно. Но, насколько я понимаю, данная конструкция используется для получения размеров таблиц регистров (у каждого регистра есть основная таблица и, например, таблица остатков или оборотов). Может быть, еще в каких-то случаях это необходимо. В общем, было классно, если бы этот баг пофиксили :)
47. Марат Мулин (kernst) 19.02.12 14:36
Супер вещь! Все руки не доходили подобное написать!
Для анализа данных - очень удобно и быстро, чтобы принимать соответствующие решения по изменению структуры хранения данных на серваке.
48. Алексей Олешко (retif) 13.04.12 17:42
Хорошая штука, помогла разобраться с увеличением базы
49. 1c8@8c1.ru (8c1.ru) 17.04.12 12:01
Требует пароль на SQL даже если он не установлен
50. K П (z4z4z) 27.06.12 18:04
спасибо автору!
Отличная обработка, при настройке SQL базы - то самое.
51. zavedeev (zavedeev) 31.07.12 16:28
Спасибо автору!!! Лучшее что я видел для обследования БД
52. Юрий Патласов (NoRazum) 23.08.12 11:14
Автору Спасибо!!! Взял на вооружение.
Вопрос. Можно ли добавить в запрос поле отбора по номеру для документов или по коду для справочника?

Префикс базы.

Что хочу увидеть: Сколько объектов создано в этой базе, а сколько пришло при обмене?
Есть другие варианты это увидеть?
53. Марина Чирина (chmv) 04.10.12 17:00
СООБЩЕНИЕ при заполнении 1 страницы - не могу определить сеовер
54. Марина Чирина (chmv) 04.10.12 17:06
Не знаю пародя SQL бЕЗ ЭТОГО никака???
55. kolya_tlt kolya_tlt (kolya_tlt) 22.10.12 16:48
спасибо, не хватает тэга разрешенных
56. Sergei Zhuk (BeetleBug) 07.11.12 20:05
Большое спасибо за работу, очень нужный инструмент. Не удалось, правда, заставить заполнять параметры из кластера серверов, выдало следующее:
{Форма.Форма.Форма(919)}: Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V82.COMConnector.1): server_addr=tcp://127.0.0.0:1540 descr=Ошибка сетевого доступа к серверу
(Windows Sockets - 10049(0x00002741). The requested address is not valid in its context. ) line=590 file=Src\DataExchangeTcpClientImpl.cpp

Проблема, судя по всему, в том, что у меня кластер на другом порту (который я честно прописал в форме)
57. anton (antosha) 20.02.13 10:28
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

непонятка - как это можно подпилить ?
58. Михаил (mec) 18.03.13 11:52
Спасибо, очень полезная обработка. Давно хотел такую написать, да как и у всех руки не доходили. :)
59. Александр (Sanek_159) 26.04.13 11:18
Спасибо, то что надо. Раньше только средствами SQL сервера проводил анализ, а теперь и со стороны 1С можно проанализировать.
60. Алекс Ю (AlexO) 30.08.13 16:57
(59) Sanek_159,
Раньше только средствами SQL сервера проводил анализ, а теперь и со стороны 1С

А скажите, какая разницы в этих двух анализах - с учетом того, что оба делаются идентичными средствами (и с идентичным результатом) самого SQL?
61. Александр (Sanek_159) 31.08.13 22:32
(60) AlexO, В этой обработке для меня более наглядно видно какая таблица (справочник, документ и т.д.) какого размера и т.д.. В SQL таблицы хранятся в виде, например: dbo._AccumRg19779 - это регистр накопления "Затраты на выпуск продукции НУ", приходится открывать другие обработки, чтобы понять, что это за таблица. А тут сразу видно и можно оперативно оценить масштабы бедствия, если они есть.
62. Александр Романько (romankoav) 02.09.13 18:09
Когда выбрал вариант отчет "Наибольшие таблицы SQL" сформировал, а потом просто попытался поменять сортировку - отчет никак не отреагировал, он продолжал считывать параметры заданные по-умолчанию. Может правильно все таки чтобы отчет отзывался на редактирование параметров? Показатели отрабатывают хорошо, но почему нет данные по зарезервированному месту и число записей? (я выбирал параметр чего считать)
63. Александр Милютин (sanfoto) 16.10.13 09:36
Если SQL исключительно в режиме Shared Memory - то данная обработка не работает.
64. Александр Милютин (sanfoto) 16.10.13 11:26
у меня вот так в Shared Memory заработало:

SQLСервер=".";
"Driver={SQL Server Native Client 10.0};Server=" + SQLСервер + ";......

и c пользователем "sa"
65. Li Ho (Dpala) 29.10.13 14:03
А во сколько раз может увеличиться производительность, если перевести базу в режим Shared Memory?
У меня база сейчас работает на платформе 8.1 Я правильно понимаю, что для этого нужно перейти на 8.2?
66. pose 29.10.13 17:06
В файловом режиме размер таблицы не посмотреть ?
67. kabz (Kabz) 31.10.13 14:09
Все хорошо только надо в отчете показывать имя таблицы sql
68. Алексей Гришков (asg1975) 10.11.13 22:07
(66) pose, тоже интересут файловый режим. Можно посмотреть сколько какая таблица занимает дискового пространства. Столкнулся с ошибкой "превышен максимально допустимый размер внутреннего файла". Надо разобраться...
69. Александр Романько (romankoav) 06.12.13 16:45
Если у вас кластер 1с серверов, то обработка подключаться не будет. Пришлось код переписывать ((
70. Александр Романько (romankoav) 06.12.13 16:46
Автор вообще забил на разработку???
71. Lioneе (Lionee) 05.03.14 21:36
72. Дмитрий Мануйлов (Натц) 17.07.14 15:40
(57) antosha,
Попробуй поставить вот этот драйвер -> http://www.microsoft.com/download/en/details.aspx?id=23734
Мне помогло
73. Максим Евсенкин (tehas) 17.09.14 12:52
74. Наталия Мастербатова (zzz_natali) 17.09.14 23:02
Изящнее размеры потрохов базёнки вытянуть запросом T-SQL

Прикрепленные файлы:
AnaliseMByte.sql
75. Станислав Турчинский (Istur) 22.09.14 11:26
(74) zzz_natali, о, еще один гуру-члевовещатель, с почти нулевым рейтингом, малой склонностью к прочтению описания и анализу, но большой склонностью к необоснованному высокопарному поучению. В обработке данные и получаются запросом в sql, но тут возможны всяческие отборы, сортировки и много других полезных и приятных фишек. В общем включайте мозг для обдумывания почему что и как, это полезно.
spetzpozh; gavlexx; +2 2 Ответить 1
76. Станислав Турчинский (Istur) 22.09.14 11:32
(69) romankoav, почему не будет? должно все хорошо подключаться. хотя увидел в (56) подробный комментарий, посмотрю код.
(70) да. я делаю какой-то инструмент и выкладываю, деньги я получаю на основном месте работы и никакой поддержкой не занимаюсь, какой смысл. вменяемый программист при желании сам все сможет исправить под себя, вот Вы же смогли это сделать.
(62) опишите подробнее.
77. Станислав Турчинский (Istur) 22.09.14 11:36
(60) AlexO, все верно. данные тащатся запросом SQL. Но здесь возможно отборы, сортировки.. Ну и банальный пример, мой пример в то время - доступа к sql-серверу нет, я был просто программист в крупной компании. Зато есть возможность попросить подойти начальника IT-отдела и ввести пароль к sql в обработке.
78. Станислав Турчинский (Istur) 22.09.14 11:37
(54) chmv, конечно нет. данные тащатся из sql и если у вас нет доступа к базе - то ничего получить не получится. увы.
79. Станислав Турчинский (Istur) 22.09.14 11:45
(67) Kabz, что значит "надо"? я не ваш подчиненный, а вы не мой работодатель. Вам надо - код открыт - сделайте как лично вам надо.
80. Наталия Мастербатова (zzz_natali) 22.09.14 21:04
(75) Istur, Вы - не джентльмен. Так с женщинами не общаются(даже, если у них не светлый цвет волос).
Збянтэжаны Саўка; +1 2 Ответить
81. Вадим Никонов (V.Nikonov) 24.11.14 16:13
А кто будет адаптировать под 8.3?
82. Алексей Роза (DoctorRoza) 16.03.15 12:47
Спасибо! Как раз то, что нужно! :)
83. Алексей Р. (miniogn) 21.06.15 13:25
Автор обрати внимание на:
Сортировка в настройке "Наибольшие таблицы SQL" не работает.
Отсутствует возможность настраивать СКД в режиме предприятия.
Нет имён таблиц SQL.
Не все типы метаданных.
romankoav; +1 Ответить
85. Слава (SlavaVNL) 22.04.16 03:41
не могу подключиться . пишет "Ошибка при подключении к SQL". Скуль 2008 r2. подключаюсь с локальной машины
86. Кирилл Бондаренко (karapuzzzz) 19.05.16 17:50
Что-то не понятно с размером. У меня общий размер базы 82Гб. При этом размер только документов больше 97Гб
87. Сергей (Sergeevich) 19.07.16 22:34
Спасибо, очень помогла обработка, применял для базы БП 3.0 в которой Регистр сведений ВерсииОбъектов занимал 97 % размера базы (63 Гб),
правда пришлось регистр резать через TRUNCATE TABLE name
И еще, как ни странно, версинифицирование было включено, видимо наследие перехода с БП 2.0.
88. В. Нина (Sle) 12.10.16 02:54
Станислав, здравствуйте!
Большое спасибо вам за такую качественную программную разработку!
Подскажите пожалуйста, "Размер: 192709.63 MB, Неиспользованно: 39868.26 MB"
Что имеется ввиду под формулировкой "Неиспользованно"?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа