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

Откуда:
Сообщений: 1427
сабж msdb разраслась

---------------------------------------------
Не забудь поставить фильтр между мозгами и языком!
Best regards/Bol
30 июн 14, 12:10    [16237776]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Bol
сабж msdb разраслась

--	Размер таблиц
SELECT 
--	t.SourceID,
	g.groupname,
	schema_name(o.schema_id),
	o.name,
	SUM (p.reserved_page_count) * 8 as reservedpages,
	SUM (p.used_page_count) * 8 as usedpages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
			ELSE p.lob_used_page_count + p.row_overflow_used_page_count
		END
		) as pages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN p.row_count
			ELSE 0
		END
		) as [rowCount]
FROM sys.dm_db_partition_stats p
	join sys.objects as o
		on o.object_id = p.object_id
		and o.type = 'U'
	join sys.partitions pa
		on pa.partition_id = p.partition_id
	join sys.sysindexes i
		on i.id = p.object_id
		and i.indid = pa.index_id
	join sys.sysfilegroups as g
		on g.groupid = i.groupid
group by o.name, g.groupname, schema_name(o.schema_id)
order by reservedpages desc
30 июн 14, 12:17    [16237807]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
dfwefewf
Guest
Bol
сабж msdb разраслась

---------------------------------------------
Не забудь поставить фильтр между мозгами и языком!
Best regards/Bol


например

select
	object_id, count(1) * 8.0 / 1024.0 as size_mb
from
	sys.dm_db_database_page_allocations(db_id(N'msdb'), null, null, null, 'DETAILED') t
where
	t.page_type_desc = 'DATA_PAGE'
group by
	object_id
order by size_mb desc;
30 июн 14, 12:17    [16237813]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
dfwefewf
Bol
сабж msdb разраслась

---------------------------------------------
Не забудь поставить фильтр между мозгами и языком!
Best regards/Bol


например

select
	object_id, count(1) * 8.0 / 1024.0 as size_mb
from
	sys.dm_db_database_page_allocations(db_id(N'msdb'), null, null, null, 'DETAILED') t
where
	t.page_type_desc = 'DATA_PAGE'
group by
	object_id
order by size_mb desc;


ошибка
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sys.dm_db_database_page_allocations'.
30 июн 14, 12:26    [16237861]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
alexeyvg
Bol
сабж msdb разраслась

--	Размер таблиц
SELECT 
--	t.SourceID,
	g.groupname,
	schema_name(o.schema_id),
	o.name,
	SUM (p.reserved_page_count) * 8 as reservedpages,
	SUM (p.used_page_count) * 8 as usedpages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
			ELSE p.lob_used_page_count + p.row_overflow_used_page_count
		END
		) as pages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN p.row_count
			ELSE 0
		END
		) as [rowCount]
FROM sys.dm_db_partition_stats p
	join sys.objects as o
		on o.object_id = p.object_id
		and o.type = 'U'
	join sys.partitions pa
		on pa.partition_id = p.partition_id
	join sys.sysindexes i
		on i.id = p.object_id
		and i.indid = pa.index_id
	join sys.sysfilegroups as g
		on g.groupid = i.groupid
group by o.name, g.groupname, schema_name(o.schema_id)
order by reservedpages desc


ок ! нашлась сразу
spt_values
30 июн 14, 12:29    [16237873]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
айцуайцуа
Guest
Bol
dfwefewf
пропущено...


например

select
	object_id, count(1) * 8.0 / 1024.0 as size_mb
from
	sys.dm_db_database_page_allocations(db_id(N'msdb'), null, null, null, 'DETAILED') t
where
	t.page_type_desc = 'DATA_PAGE'
group by
	object_id
order by size_mb desc;


ошибка
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sys.dm_db_database_page_allocations'.


видать версия сервера меньше 2012
30 июн 14, 12:34    [16237909]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
Bol, существует отчет по таблицам: база данных - отчеты - и т.д.
30 июн 14, 12:34    [16237910]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
Владислав Колосов
Bol, существует отчет по таблицам: база данных - отчеты - и т.д.


ок ок
я уже лет 7 не админю
другие задачи
30 июн 14, 12:39    [16237943]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
Я подсказываю, как это быстро сделать :)
30 июн 14, 12:40    [16237945]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
айцуайцуа
Bol
пропущено...


ошибка
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sys.dm_db_database_page_allocations'.


видать версия сервера меньше 2012


2008R2
30 июн 14, 12:40    [16237947]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
ок - перенес базу msdb на диск D где места навалом
так что тему можно закрыть
просто срочно надо было понять что делать
спасибо
30 июн 14, 12:42    [16237958]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Bol
ок ! нашлась сразу
spt_values
Хм, странно.
30 июн 14, 14:55    [16238941]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Bol
Member

Откуда:
Сообщений: 1427
alexeyvg
Bol
ок ! нашлась сразу
spt_values
Хм, странно.


не моя поляна ныне - мог и соврать в спешке что либо
не было ни одного из трех админов
пришлось малость вспомнить что к чему
а вобще то я еще на SQL2000 бросил это дело.
по старой памяти перенес на др диск и все зашуршало и ладно
30 июн 14, 17:00    [16239941]     Ответить | Цитировать Сообщить модератору
 Re: как найти самую большую таблицу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bol
по старой памяти перенес на др диск и все зашуршало и ладно

Наверное никто не озаботился очисткой логов джобов, мейлов и тп
30 июн 14, 17:04    [16239971]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить