Получение размера базы данных MS SQL T-sql запросом к MS SQL Server

13.01.12

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

Получение размера базы sql

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

Наименование Файл Версия Размер
Получение размера базы 7.7
.ert 58,00Kb
18
.ert 58,00Kb 18 Скачать
Получение размера базы 8.2
.epf 6,68Kb
28
.epf 6,68Kb 28 Скачать

Не считаю себя гуру t-sql, но уже не первый раз приходится отвечать на вопрос "как узнать размер базы на сервере ms-sql?".

Для этого предлагается воспользоваться простым скриптом t-sql:

SELECT
  LTRIM(STR((CONVERT (dec (15,2),dbsize) + CONVERT(dec (15,2),logsize)) * 8192 / 1048576, 15, 2) + ' MB') РазмерБазы
FROM
(
 SELECT SUM(CONVERT(BIGINT,CASE WHEN status & 64 = 0 THEN size ELSE 0 END)) dbsize
 , SUM(CONVERT(BIGINT,CASE WHEN status & 64 <> 0 THEN size ELSE 0 END)) logsize
 FROM dbo.sysfiles
) big

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

Пример использования для 1С 7.7 можно скачать из аттача. Используется 1С++

Пример использование для 1С 8.2 предполагает наличие строки соединения с 1С, используется ADO

См. также

Анализ состава базы данных 1С 7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Представлены 2 обработки для платформы 1С:Предприятие 7.7 релиз. 027: - Обработка "Анализ базы данных": - может пригодиться, например, для оценки переноса данных: количество элементов справочников, количество документов и субконто. Что проще внести руками, а что лучше перенести конвертацией или обработкой. - Обработка "Анализ реквизитов с типом "строка неограниченной длины"" - чтобы понять: "а нужна ли строка неограниченной длины именно здесь?". В SQL - с этим проблем нет, в вот в дбф - такие реквизиты пишутся в один файл, и если база перегружена этими реквизитами, то это может быть проблемой взаимоблокировок.

1 стартмани

03.11.2020    5468    10    andrey1508    0    

1

Статистика времени выполнения кода

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Компонента для сбора времени выполнения кода (например проведения накладной) и отправка сначала в MS SQL далее в Zabbix.

1 стартмани

28.01.2019    8541    3    LLIKIPER    10    

9

Статистика по пользователям в 1с7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Статистика по пользователям за период - какие документы и справочники они создавали и в каком количестве за выбранный период, данные о времени в часах, которое каждый пользователь работал в базе за выбранный период.

1 стартмани

15.09.2018    5998    6    almazx4    2    

2

Используемые в базе 1С:7.7 документы и справочники

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Обработка позволяет вывести список используемых в базе документов и справочников с указанием их количества. Количество используемых документов подсчитывается за выбранный период. Обработка может быть полезна при начале работы с базой данных новому бухгалтеру при передаче дел и администратору при конвертации в базу на платформе 1с:8.2 и 1С:8.3. В документах проставляется "+" для указания используемого ключа: торговля, бухгалтерия, расчет.

1 стартмани

28.10.2016    16629    20    citicat    4    

2

Отслеживание использования объектов (отчетов, обработок, документов, справочников)

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Благодаря данной системе вы сможете отследить, кто, сколько раз, какие объекты использует в Вашей конфигурации. Для уменьшения доработок используется стандартный журнал событий. Вы сможете понять что и как часто используется в программе, имеет ли право использование данный пользователь этот объект.

10 стартмани

12.09.2016    14336    3    Dartvader    1    

1

Статистика по документам или как отыскать время для регламентных работ?

Журнал регистрации Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Появилась задача выбрать время для регламентных работ с базой в круглосуточной организации. Да и вообще часто возникает желание быстро посчитать количество документов, создаваемых в базе за время или каким-то пользователем. Написал для этого совсем простую обработку. Работать будет почти в любом типовом приложении 1С 7.7

1 стартмани

02.08.2013    19462    24    EdGreen    7    

6

Анализ наполненности базы 7.7

Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Отчет показывающий количество объектов (справочников и документов) в базе, а также их структуру методанных. Был создан для удобности анализа сопоставления объектов при перекачке данных из баз 7.7 в 8.*

1 стартмани

13.03.2013    14259    29    vova196    2    

6

v7: Количество входов и выходов пользователей за день

Журнал регистрации Статистика базы данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Выясняем из-за кого появляется сообщение о необходимости переиндексации базы.

1 стартмани

16.10.2012    25058    29    jk3    5    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1063 13.01.12 11:23 Сейчас в теме
По-уму, добваь еще в скрипт use databasename
И это, это не только для клюшек сойдет - а для любых баз.

ЗЫ: Модеры, уберите нахрен гамнокнопку - "подписаться на новые каменты", иначе никаких каментов к поделкам вы не увидите никогда, идиотизм это!
2. d0dger 82 13.01.12 11:57 Сейчас в теме
(1) Можно конечно извратиться - получить список всех баз, вывести их в список, а потом показывать свободной место выбранной, вот только кому это нужно будет :)
А по-поводу для любой платформы - да, надо поменять и выложить обработку для 8, спс...
3. Гость 20.01.12 13:45
после первого же запуска 1с-ка вылетела наглухо
4. d0dger 82 20.01.12 13:47 Сейчас в теме
(3) Гость, интересно на какой именно инструкции вылетело, какая версия 1с++?
5. pt_olga 61 06.12.12 11:26 Сейчас в теме
блин, мне нужно было получить размер каждой из таблиц базы SQL, а не Игого :( деньги на ветер
6. d0dger 82 06.12.12 11:47 Сейчас в теме
create table #t(name varchar(255), row varchar(255), reserved varchar(255), data varchar(255), inxex_size varchar(255), unused varchar(255))

insert into #t
exec sp_msforeachtable N'exec sp_spaceused ''?'''

select * from #t
drop table #t
7. newgluk 87 13.11.14 13:07 Сейчас в теме
а что это за странная арифметика?) " 8192 / 1048576 "
иначе говоря, в каких единицах в dbo.sysfiles хранится размер файлов?
8. d0dger 82 13.11.14 14:19 Сейчас в теме
(7) newgluk, MS SQL Server хранит данные в страницах по 8 Кб, соответственно. Умножаем на 8192 - размер в байтах, делим на 1048576 (1024 * 1024) - получаем размер в мегабайтах.
9. ArtemiFD 42 25.03.19 15:19 Сейчас в теме
Встряхну статейку, может кому пригодится.
Раньше тоже так получал данные, но сейчас это не в тренде...

С MSDN T-SQL (см. ссылку):
Эта системная таблица SQL Server 2000 включена в СУБД как представление для обеспечения обратной совместимости... В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.


Для получения данных по БД нужно использовать sys.database_files см. ссылку

В простом виде запрос на получение размера в Гб выглядит следующим образом:
SELECT  
	CONVERT (dec (15,2), SUM( Size * Growth * 1.0 / 1024) / 1024 / 1024) AS size
FROM sys.database_files; 




Инфу нашел на ХАБРе
Прикрепленные файлы:
10. ArtemiFD 42 25.03.19 16:47 Сейчас в теме
(9) внесу правку
В простом виде запрос на получение размера в Гб выглядит следующим образом:


SEL ECT 
	CONVERT(dec(15,2), SUM(size)/(128.0 * 1024)) size 
FR OM sys.database_files;



Смотрите пример из документации ссылка
Оставьте свое сообщение