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

13.01.12

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Получение размера базы 7.7
.ert 58,00Kb
18
18 Скачать (1 SM) Купить за 1 850 руб.
Получение размера базы 8.2
.epf 6,68Kb
28
28 Скачать (1 SM) Купить за 1 850 руб.

Не считаю себя гуру 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С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

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

1 стартмани

03.11.2020    5704    10    andrey1508    0    

1

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

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

1 стартмани

28.01.2019    8677    3    LLIKIPER    10    

9

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

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

1 стартмани

15.09.2018    6141    6    almazx4    2    

2

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

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

1 стартмани

28.10.2016    16844    21    citicat    4    

2

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

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

10 стартмани

12.09.2016    14545    3    Dartvader    1    

3

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

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

1 стартмани

02.08.2013    19611    24    EdGreen    7    

6

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

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

1 стартмани

13.03.2013    14357    30    vova196    2    

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

ЗЫ: Модеры, уберите нахрен гамнокнопку - "подписаться на новые каменты", иначе никаких каментов к поделкам вы не увидите никогда, идиотизм это!
2. d0dger 84 13.01.12 11:57 Сейчас в теме
(1) Можно конечно извратиться - получить список всех баз, вывести их в список, а потом показывать свободной место выбранной, вот только кому это нужно будет :)
А по-поводу для любой платформы - да, надо поменять и выложить обработку для 8, спс...
3. Гость 20.01.12 13:45
после первого же запуска 1с-ка вылетела наглухо
4. d0dger 84 20.01.12 13:47 Сейчас в теме
(3) Гость, интересно на какой именно инструкции вылетело, какая версия 1с++?
5. pt_olga 61 06.12.12 11:26 Сейчас в теме
блин, мне нужно было получить размер каждой из таблиц базы SQL, а не Игого :( деньги на ветер
6. d0dger 84 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 90 13.11.14 13:07 Сейчас в теме
а что это за странная арифметика?) " 8192 / 1048576 "
иначе говоря, в каких единицах в dbo.sysfiles хранится размер файлов?
8. d0dger 84 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;



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