SQL服务器,是否有任何中央表来获取所有表的元数据?

时间:2010-09-29 06:40:33

标签: sql-server sql-server-2005

我必须在SQL服务器中查询哪个表具有最大数据,哪个表具有最小数据。

请告诉我我该怎么做..

我是runninf SQL server 2005。

3 个答案:

答案 0 :(得分:2)

看一下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中搜索结果

答案 1 :(得分:2)

如果您要查找元数据关于数据结构,请使用:

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

否则,请澄清。

答案 2 :(得分:2)

这是一个查询,它返回当前数据库中每个表的所有数据结构中的页数:

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

Dynamic management views提供了大量有关数据库的数据。