Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Информация по весу таблицы  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
Добрый день, коллеги! подскажите, как можно узнать весь таблицы с помощью T-SQL. Хочу иметь статистику по приросту базы и определенных таблицы в МБ.
3 дек 13, 16:50    [15233592]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
MedBrat
как можно узнать весь таблицы

В килограммах ?
3 дек 13, 16:51    [15233603]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
MedBrat
Добрый день, коллеги! подскажите, как можно узнать весь таблицы с помощью T-SQL. Хочу иметь статистику по приросту базы и определенных таблицы в МБ.
sp_spaceused, или запросом, который можно сделать на основе запроса в sp_spaceused
3 дек 13, 17:29    [15233968]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
Glory
MedBrat
как можно узнать весь таблицы

В килограммах ?


Хм, я указал чуть дальше, что в МБ.
3 дек 13, 17:33    [15234013]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1161
MedBrat,

SELECT
so.name,
MAX(row_count) "rows",
SUM(used_page_count)								* 8196.0/1024/1024/1024 used_GB,
SUM(reserved_page_count)							* 8196.0/1024/1024/1024 reserved_GB,
(SUM(reserved_page_count) - SUM(used_page_count)) * 8196.0/1024/1024/1024 unused_GB,
case st.lob_data_space_id when 0 then 'N' else 'Y' end has_lobs, --LOB Spalten vorhanden?
isnull(max(old_lob.lob_cols),0) old_lob_cols,				--Anzahl der alten LOB Spalten: text,ntext,image
isnull(max(neu_lob.lob_cols),0) new_lob_cols,				--Anzahl der restlichen LOB Spalten: LOBs ausser text,ntext,image
st.text_in_row_limit,								--Einstellung für alte LOB Spalten: text,ntext,image
st.large_value_types_out_of_row,						--Einstellung für neue LOB Spalten: varchar(max), barbinary/max)
SUM(in_row_data_page_count)				* 8196.0/1024/1024/1024 in_row_data_GB,
SUM(in_row_used_page_count)				* 8196.0/1024/1024/1024 in_row_used_GB,
SUM(in_row_reserved_page_count)			* 8196.0/1024/1024/1024 in_row_reserved_GB,
SUM(lob_used_page_count)				* 8196.0/1024/1024/1024 lob_used_GB,
SUM(lob_reserved_page_count)			* 8196.0/1024/1024/1024 lob_reserved_GB,
SUM(row_overflow_used_page_count)		* 8196.0/1024/1024/1024 row_overflow_used_GB,
SUM(row_overflow_reserved_page_count)	* 8196.0/1024/1024/1024 row_overflow_reserved_GB
from   
     sys.dm_db_partition_stats	ps
join sys.objects				so on ps.object_id=so.object_id
join sys.tables					st on st.object_id=so.object_id
left join (select object_id, sum(1) lob_cols from sys.columns sc where sc.system_type_id in(35,99,34)                            group by object_id) old_lob on st.object_id=old_lob.object_id
left join (select object_id, sum(1) lob_cols from sys.columns sc where (sc.system_type_id in(167,231,165,241) and max_length=-1) group by object_id) neu_lob on st.object_id=neu_lob.object_id
where 1=1
and so.type = 'U'
group by 
so.name,
case st.lob_data_space_id when 0 then 'N' else 'Y' end, 
st.text_in_row_limit,
st.large_value_types_out_of_row
3 дек 13, 17:47    [15234138]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
Alexander Us,

то, что доктор прописал! Спасибо!!!
3 дек 13, 17:52    [15234177]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Alexander Us,

Можно поинтересоваться, откуда взялось 8196? Я всегда думал, что так как страница 8КБ, следовательно 8*1024 = 8192
4 дек 13, 00:53    [15236185]     Ответить | Цитировать Сообщить модератору
 Re: Информация по весу таблицы  [new]
Alexander Us
Member

Откуда:
Сообщений: 1161
Mind
Alexander Us,

Можно поинтересоваться, откуда взялось 8196? Я всегда думал, что так как страница 8КБ, следовательно 8*1024 = 8192

Спасибо. Конечно же Вы правы.

ЗЫ:
Всех кто использует скрипт, прошу считать 8196 равным 8192.
Или исправить :))
4 дек 13, 01:49    [15236409]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить