SQL-сервер, есть ли центральная таблица для получения метаданных всех таблиц? - PullRequest
1 голос
/ 29 сентября 2010

Мне нужно запросить на SQL-сервере, какая таблица содержит максимальные данные, а какая - минимальные.

Пожалуйста, скажите мне, как я могу это сделать ..

я запускаю SQL Server 2005.

Ответы [ 3 ]

2 голосов
/ 29 сентября 2010

Если вы ищете метаданные о структурах данных, используйте:

select * from sys.objects
select * from sys.columns

В противном случае, пожалуйста, уточните.

2 голосов
/ 29 сентября 2010

Вот запрос, который возвращает количество страниц во всех структурах данных для каждой таблицы в текущей базе данных:

select object_name([object_id]) as obj_name, sum(page_count) as page_num
from sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL)
group by [object_id]
order by sum(page_count) desc

Динамические административные представления предоставляют много данных о базе данных.

2 голосов
/ 29 сентября 2010

Взгляните на sp_spaceused , вы можете запустить его в цикле по всем вашим таблицам

Если вы хотите использовать пространство для всех таблиц, которые вы можете запустить (недокументированное сочетание клавиш):

CREATE TABLE #t 
( 
    [name] NVARCHAR(128),
    [rows] CHAR(11),
    reserved VARCHAR(18), 
    data VARCHAR(18), 
    index_size VARCHAR(18),
    unused VARCHAR(18)
) 

INSERT #t
EXEC sp_MSforeachtable 'EXEC sp_spaceused ''?'',''TRUE'' '

Затем найдите в #t результаты поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...