如何查看sqlserver 表空间是不是满

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看sqlserver 表空间是不是满相关的知识,希望对你有一定的参考价值。

参考技术A 查看数据库中各表的占用空间情况:

create table tablesize (name varchar(50),rows int,reserved varchar(50),
data varchar(50),index_size varchar(50),unused varchar(50))
insert into tablesize (name,rows,reserved,
data,index_size,unused) exec sp_msforeachTable @Command1="sp_spaceused '?'"

update tablesize set data=replace(data,'KB','')

select *,convert(int,data) as a from tablesize order by A desc

drop table tablesize本回答被提问者和网友采纳

oracle system01.dbf表空间满了,导致用户没法登入怎么办

这是由于你创建用户时没有指定缺省表空间,系统自动把系统表空间作为用户的默认表空间,用户所创建的所有对象、数据统统写入到系统表空间中了,因而引起系统表空间太满用户无法登入。
解决方法:
1、创建新用户 -- Create User ... ... default tablespace Users Temporary tablespace temp;
2、利用EXP按用户方式导出写满系统表空间的用户,再用IMP导入到新建的用户中;
3、彻底删除原来的用户 -- Drop User 用户名 cascade;追问

可是sys超级管理员都没法登进去了

追答

重新启动数据库,再登入sys用户试试。登入后先加大系统文件system01.dbf。

追问

是本地磁盘满了

参考技术A (1)首先,system表空间的数据文件缺省是autoextend,不会满,请检查是否autoextend。
(2)其次,一旦满了,请加数据文件,一般都没有问题,oracle一般一个表空间能有1022个数据文件,如果是8k大小的数据块,每个数据文件的大小都在32g,够用了。
(3)如果,用户无法登陆,这个不太可能是system数据文件满了的原因,sqlplus -prelim 强制登陆,用hanganalyze检查一下本回答被提问者采纳
参考技术B 看起来很糟糕。如果能用 sqlplus "/as sysdba" 登陆的话,可以将文件resize即可
alter database datafile 1 resize 2G;
如果无法登陆,可以尝试
sqlplus -prelim / as sysdba
当然需要你的DB是10G。如果悲催的是9I或者更低的版本,可以在本地安装一个10G的客户端
然后通过
sqlplus -prelim sys/password@目标数据库名称 as sysdba
的办法登陆。
参考技术C 一般都是自动增长,如果真出现你的情况,以sys as dba进入,alter tablespace add file增加文件来扩展空间

以上是关于如何查看sqlserver 表空间是不是满的主要内容,如果未能解决你的问题,请参考以下文章

如何检查oracle的归档空间是不是满了

如何解决Oracle数据库归档日志占满磁盘空间

oracle如何查看temp表空间建立在哪个文件上在

Oracle数据库的归档日志写满磁盘空间解决办法

windows server 2008 pg数据库创建表空间报错提示权限不够,怎么解决?

db2 如何计算表空间和表缓存空间?