select tsegment_name, tsegment_type, sum(tbytes / 1024 / 1024) "占用空间(M)"
from dba_segments t
where tsegment_type='TABLE'
and tsegment_name='表名大写'
group by OWNER, tsegment_name, tsegment_type;
通过增加数据文件。
alter tablespace 表空间名称 add datafile '数据文件名称' SIZE 200m AUTOEXTEND ON MAXSIZE 1500M;
SELECT UPPER(FTABLESPACE_NAME) "表空间名",
DTOT_GROOTTE_MB "表空间大小(M)",
DTOT_GROOTTE_MB - FTOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((DTOT_GROOTTE_MB - FTOTAL_BYTES) / DTOT_GROOTTE_MB 100,2),'99099') || '%' "使用比",
FTOTAL_BYTES "空闲空间(M)",
FMAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 1024), 2) MAX_BYTES
FROM SYSDBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DDTABLESPACE_NAME,
ROUND(SUM(DDBYTES) / (1024 1024), 2) TOT_GROOTTE_MB
FROM SYSDBA_DATA_FILES DD
GROUP BY DDTABLESPACE_NAME) D
WHERE DTABLESPACE_NAME = FTABLESPACE_NAME
ORDER BY 1
如果是要查看一个数据库的空间的话,就C:\Program Files\Microsoft SQL Server\MSSQL1\MSSQL\Data
目录下找到你要查看的数据库文件(2个,一个是mdf文件,一个是ldf文件),
找到后查看属性就可以知道了,
如果想看所有的数据库总的占用空间的话,就直接查看C:\Program Files\Microsoft SQL Server\MSSQL1\MSSQL\Data 目录的占用空间就可以了,
呵呵,希望能有帮助,^_^
创建存储过程:
CREATE
PROCEDURE
[dbo][sys_viewTableSpace]
AS
BEGIN
SET
NOCOUNT
ON;
CREATE
TABLE
[dbo]#tableinfo(
表名
[varchar](50)
COLLATE
Chinese_PRC_CI_AS
NULL,
记录数
[int]
NULL,
预留空间
[varchar](50)
COLLATE
Chinese_PRC_CI_AS
NULL,
使用空间
[varchar](50)
COLLATE
Chinese_PRC_CI_AS
NULL,
索引占用空间
[varchar](50)
COLLATE
Chinese_PRC_CI_AS
NULL,
未用空间
[varchar](50)
COLLATE
Chinese_PRC_CI_AS
NULL
)
insert
into
#tableinfo(表名,
记录数,
预留空间,
使用空间,
索引占用空间,
未用空间)
exec
sp_MSforeachtable
"exec
sp_spaceused
''"
select
from
#tableinfo
order
by
记录数
desc
drop
table
#tableinfo
END
使用的时候直接
:exec
sys_viewtablespace
以上就是关于oracle 查看某张表占用空间大小的SQL语句怎么写全部的内容,包括:oracle 查看某张表占用空间大小的SQL语句怎么写、如何查看SQL server中各表占用空间的大小,并排列输出、如何用SQL语句查oracle数据库的表空间使用情况等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)