直接在查询分析器运行即可:
declare @id int
declare @type character(2)
declare @pages
int
declare @dbname sysname
declare @dbsize dec(15,0)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
create table #spt_space
(
objid int null,
rows int null,
reserved dec(15) null,
data dec(15) null,
indexp dec(15) null,
unused dec(15) null
)
set nocount on
-- Create a cursor to loop through the user tables
declare c_tables cursor for
select id
from sysobjects
where xtype = 'U'
open c_tables
fetch next from c_tables
into @id
while @@fetch_status = 0
begin
/ Code from sp_spaceused /
insert into #spt_space (objid, reserved)
select objid = @id, sum(reserved)
from sysindexes
where indid in (0, 1, 255)
and id = @id
select @pages = sum(dpages)
from sysindexes
where indid < 2
and id = @id
select @pages = @pages + isnull(sum(used), 0)
from sysindexes
where indid = 255
and id = @id
update #spt_space
set data = @pages
where objid = @id
/ index: sum(used) where indid in (0, 1, 255) - data /
update #spt_space
set indexp = (select sum(used)
from sysindexes
where indid in (0, 1, 255)
and id = @id)
- data
where objid = @id
/ unused: sum(reserved) - sum(used) where indid in (0, 1, 255) /
update #spt_space
set unused = reserved
- (select sum(used)
from sysindexes
where indid in (0, 1, 255)
and id = @id)
where objid = @id
update #spt_space
set rows = irows
from sysindexes i
where iindid < 2
and iid = @id
and objid = @id
fetch next from c_tables
into @id
end
select TableName = (select left(name,60) from sysobjects where id = objid),
Rows = convert(char(11), rows),
ReservedKB = ltrim(str(reserved dlow / 1024,15,0) + ' ' + 'KB'),
DataKB = ltrim(str(data dlow / 1024,15,0) + ' ' + 'KB'),
IndexSizeKB = ltrim(str(indexp dlow / 1024,15,0) + ' ' + 'KB'),
UnusedKB = ltrim(str(unused dlow / 1024,15,0) + ' ' + 'KB')
from #spt_space, masterdbospt_values d
where dnumber = 1
and dtype = 'E'
order by reserved desc
drop table #spt_space
close c_tables
deallocate c_tables
应该只有Access有这方面的限制,因为他是文件型的关系式数据库
Access 的 mdb 格式数据库,单表的记录上限没有规定,但是单个MDB 数据库的文件体积不得超过 2G,但是由于可以使用链接表以及 UNION ALL 查询,理论上记录没有上限。ACCESS 的最大理论并发用户是 255
其他的数据库 只受存储资源限制。至少在百万级记录上都没问题,只是性能会差点,
楼上的大哥人家没说一定是SQL Server数据库吧聚集索引是SQL Server的概念 1楼有一点说对了创建索引是可以优先考虑的选择,但是,并不是索引就一定会加快查询速度的另外,索引是很消耗磁盘空间的,这点也需要考虑清楚 主流的数据库,在建表的时候就规定了主键和外键的话,那么对应的主键和外键会自动加索引的 另外SQL语句的好坏可能会造成数倍的查询速度的差别写SQL的时候有二个基本的原则, 一越接近数据库核心的SQL语句查询速度越快即:用通用的标准SQL函数或语法,一定会比数据库产品扩展的SQL要快大约80%所有 二优先使用子查询而不是关联查询,比如表关联(即FROM后面有多个表) SQL语句也是可以优化的
以上就是关于如何查看SQL2000数据库中所有表的数据量大小全部的内容,包括:如何查看SQL2000数据库中所有表的数据量大小、数据库的记录容量分别是多少、如何查询数据库中大批量数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)