专栏/培训园地/ 文章详情 /

TEMP.DBF临时表空间相关使用

醉酒方知浓 2024/07/29 2185 1 0
摘要

一、达梦临时表概述

TEMP 表空间完全由 DM 数据库自动维护。当 SQL 语句需要磁盘空间来完成某个操作时,DM 数据库会从 TEMP 表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到 TEMP 表空间。

Temp 表空间可自动扩充,为了不影响磁盘空间的使用,通常会通过 ini 参数 TEMP_SIZE 配置大小,TEMP_SPACE_LIMIT 设置上限,通过存储过程 SP_TRUNC_TS_FILE 来收缩 Temp 表空间文件。

生产环境中要针对 Temp 表空间的大小做专项检查,经常过大可能说明内存过小或者存在大量排序或者中间结果集存放,需要视情况开展优化工作。

二、TEMP表空间不足的解决方法。

2.1 修改TEMP数据文件大小

修改临时表空间500M 或 10G,静态参数,需要重启生效,

不管TEMP自动扩展到多大,或是新增了TEMP文件,重启数据库后,TEMP会回到初始参数大小。

sp_set_para_value(2,'TEMP_SIZE',500);

sp_set_para_value(2,'TEMP_SIZE',10240);

2.2 TEMP数据文件自动扩展

设置临时表空间上限为100G,动态参数:

sp_set_para_value(1,'TEMP_SPACE_LIMIT',102400);

2.3 TEMP表空间增加数据文件

alter tablespace TEMP add datafile '/app/dmdbms/data/DMDB/TEMP01.DBF' size 100;

2.4 TEMP 数据文件收缩

select * from v$tablespace where NAME='TEMP';

select
file_name,file_id,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE from dba_data_files where tablespace_name='TEMP';

sp_trunc_ts_file(
Ts_id int ----指定截断文件的临时表空间 ID
File_id int ----指定截断文件的文件 ID
To_size int ----指定将文件截断至多大,以 M 单位
)

比如:SP_TRUNC_TS_FILE(3,0,64);

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服