从08年的压力测试最先,零星整顿了很多Oracle的号令,东一坨西一坨的也不知道放到了何处,懒散之人必有可爱的地方啊。
-- 查询表空间的利用率
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB
"表空间巨细(M)",
D.TOT_GROOTTE_MB
- F.TOTAL_BYTES "已利用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB -
F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
"990.99")
"利用比",
F.TOTAL_BYTES
"闲暇空间(M)",
F.MAX_BYTES
"最大年夜块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES)
/ (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES)
/ (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT
DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2)
TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME =
F.TABLESPACE_NAME
ORDER BY F.TABLESPACE_NAME;
-- 检察其他表空间的数据文件
select a.TABLESPACE_NAME "表空间名",
a.FILE_NAME
"物理文件",
a.BYTES / 1024 /
1024 "表空间巨细(M)",
a.AUTOEXTENSIBLE
"自动扩大"
from DBA_DATA_FILES a
order by a.TABLESPACE_NAME;
-- 创坐表空间
create tablespace CRM_APP logging datafile
"d:oradatacrm_app_1.dbf" size 1024m autoextend on next 50m
maxsize 5120m extent management
local;
-- 给表空间增添数据文件
alter tablespace CRM_APP add datafile
"d:oradatacrm_app_2.dbf" size 1024m reuse autoextend on next 50m
maxsize 5120m;
-- 调剂表空间数据文件巨细
-- ps:调剂的值不克不及小于实际利用值,否则会报【ORA-03297: 文件包括在请供的RESIZE
值以中利用的数据……】的错误
alter database datafile "d:oradatacrm_app_2.dbf" resize
2048M;
-- 检察一时表空间的数据文件
select tablespace_name "表空间名",
file_name
"物理文件",
bytes / 1024 /
1024 "表空间巨细(M)",
autoextensible
"自动扩大"
from dba_temp_files
order by tablespace_name;
-- 创坐一时表空间
create temporary tablespace CRM_TEMP tempfile
"D:oradatacrm_temp_0.dbf" size 1024m autoextend on next 50m
maxsize 2048m extent management local;
-- 给一时表空间增添数据文件
alter tablespace CRM_TEMP add tempfile
"D:oradatacrm_temp_1.dbf" size 1024m reuse autoextend on next 50m
maxsize 5120m;
-- 调剂一时表空间数据文件巨细
alter database tempfile "D:oradatacrm_temp_1.dbf" resize
2048M;
【缩小一时表空间的要收】
-- 1.给一时表空间删加一个数据文件,巨细本人界说【号令见上面!】
-- 2.将之前的一时表空间数据文件脱机
alter database tempfile "D:oradatacrm_temp_0.dbf"
offline;
-- 3.删除脱机的数据文件,达到缩小一时表空间的结果
alter database tempfile "D:oradatacrm_temp_0.dbf" drop
including datafiles;
【UNDO表空间爆谦的处理要收】
-- 1.创坐新的UNDO表空间
create undo tablespace undotbs2 datafile
"C:appAdministratororadataorclundo2.dbf" size 1024m reuse
autoextend on next 50m maxsize
5120m;
-- 2.给UNDO表空间增添数据文件
alter tablespace undotbs2 add datafile
"C:appAdministratororadataorclundo2_2.dbf" size 1024m reuse
autoextend on next 50m maxsize 5120m;
-- 3.设置Oracle的默许UNDO表空间为新建的UNDO表空间
alter system set undo_tablespace=undotbs2
scope=both;
-- 4.做一个备份文件【可略过】
create pfile from spfile;
-- 5.删除原本的UNDO表空间及数据文件
drop tablespace undotbs1 including contents; -- 只删除表空间
drop tablespace undotbs1 including contents and datafiles; --
删除表空间及数据文件
-- 6.删除物理文件【若是数据文件没有删除的话,手动做一下】
-- 检察表占用的物理空间
select segment_name "表名", bytes / 1024 / 1024 "巨细(M)"
from dba_segments
where segment_type = "TABLE"
and owner =
"CRMT"
order by segment_name;
-- 检察索引占用的物理空间【索引无意分占用的物理空间比数据表借大年夜,第一次做数据库规划的时分差点被害死】
select segment_name "索引名", bytes / 1024 / 1024 "巨细(M)"
from dba_segments a
where segment_type = "INDEX"
and owner =
"CRMT"
order by segment_name;
-- 检察数据文件的利用率
select a.name "物理途径",
a.bytes / 1024 /
1024 "文件巨细(M)",
ceil(HWM *
a.block_size) / 1024 / 1024 "已利用(M)",
(a.bytes - HWM *
a.block_size) / 1024 / 1024 "可释放(M)"
from v$datafile a,
(select file_id,
max(block_id + blocks - 1) HWM
from dba_extents
group by file_id) b
where a.file# = b.file_id(+)
and
(a.bytes - HWM * block_size) > 0
order by a.name;
一个用户最好利用独坐的用户表空间战用户一时表空间,索引需供布置在独坐的表空间上,数据表也可以或许根据用处辨别布置在不同的表空间。
windows环境下的数据库不发起创坐太大年夜的表空间数据文件(10G),回正多建几个数据文件也不是甚么费事事。
PS:没寄看看,用批量注释的文字皆被吃失踪了,晕死