新聞中心
隨著業(yè)務(wù)的增長(zhǎng)和數(shù)據(jù)量的增加,數(shù)據(jù)庫(kù)的性能問(wèn)題逐漸成為了企業(yè)最關(guān)心的問(wèn)題之一。數(shù)據(jù)庫(kù)空間管理是數(shù)據(jù)庫(kù)性能優(yōu)化的一個(gè)非常重要的方面。在數(shù)據(jù)庫(kù)運(yùn)維中,臨時(shí)表空間是常見(jiàn)的占用很多磁盤(pán)空間和影響數(shù)據(jù)庫(kù)性能的問(wèn)題。

10多年的井陘網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整井陘建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“井陘網(wǎng)站設(shè)計(jì)”,“井陘網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
在Oracle數(shù)據(jù)庫(kù)中,臨時(shí)表空間用于存儲(chǔ)SQL語(yǔ)句執(zhí)行時(shí)的中間結(jié)果。當(dāng)SQL語(yǔ)句需要使用排序、分組、連接等操作時(shí),數(shù)據(jù)庫(kù)會(huì)將結(jié)果暫時(shí)存放到臨時(shí)表空間中,以供后續(xù)使用。由于臨時(shí)表空間的使用過(guò)程涉及到大量的磁盤(pán)IO,因此臨時(shí)表空間的管理對(duì)于數(shù)據(jù)庫(kù)性能的影響非常大。正確地管理臨時(shí)表空間可以更大限度地減少磁盤(pán)IO,提高數(shù)據(jù)庫(kù)的性能。
然而,在實(shí)際的數(shù)據(jù)庫(kù)運(yùn)維中,經(jīng)常會(huì)有臨時(shí)表空間占用磁盤(pán)空間過(guò)多的情況,這將導(dǎo)致磁盤(pán)空間的緊張甚至磁盤(pán)滿(mǎn)了,進(jìn)而影響數(shù)據(jù)庫(kù)的正常運(yùn)行。為了解決這一問(wèn)題,我們需要采取一些有效的措施進(jìn)行臨時(shí)表空間的管理和優(yōu)化。
一、檢查臨時(shí)表空間容量
在日常數(shù)據(jù)庫(kù)運(yùn)維中,我們應(yīng)該經(jīng)常檢查臨時(shí)表空間的容量情況。當(dāng)發(fā)現(xiàn)臨時(shí)表空間的容量占用過(guò)多時(shí),我們需要盡快采取措施進(jìn)行優(yōu)化??梢酝ㄟ^(guò)以下SQL語(yǔ)句查詢(xún)當(dāng)前使用了多少臨時(shí)表空間:
“`sql
select TABLESPACE_NAME, sum(BYTES)/1024/1024 MB_USED,
(sum(MAXBYTES)-sum(BYTES))/1024/1024 MB_FREE,
sum(MAXBYTES)/1024/1024 MB_TOTAL
from v$tempfile
group by TABLESPACE_NAME;
“`
該語(yǔ)句將輸出每個(gè)表空間當(dāng)前使用的空間、空閑空間和總?cè)萘?。通過(guò)這些信息,我們可以清楚地了解到臨時(shí)表空間的容量情況,并判斷是否需要進(jìn)行優(yōu)化。
二、刪除不再使用的臨時(shí)表空間
在數(shù)據(jù)庫(kù)運(yùn)維中,由于一些SQL語(yǔ)句未能正常執(zhí)行或運(yùn)行時(shí)發(fā)生了異常,可能會(huì)導(dǎo)致臨時(shí)表空間沒(méi)有被正確地釋放,從而占用了大量的磁盤(pán)空間。此外,在數(shù)據(jù)庫(kù)備份和轉(zhuǎn)儲(chǔ)過(guò)程中,也可能產(chǎn)生大量的臨時(shí)表空間。這些不再使用的臨時(shí)表空間會(huì)對(duì)數(shù)據(jù)庫(kù)的性能帶來(lái)負(fù)面影響。因此,我們應(yīng)該在適當(dāng)?shù)臅r(shí)候刪除這些不再使用的臨時(shí)表空間。
可以采用以下SQL語(yǔ)句檢查數(shù)據(jù)庫(kù)中不再使用的臨時(shí)表空間:
“`sql
select * from dba_temp_files where tablespace_name not in
(select distinct tablespace_name from v$tempfile);
“`
以上語(yǔ)句將從數(shù)據(jù)庫(kù)中查詢(xún)出不再使用的臨時(shí)表空間,這些臨時(shí)表空間可以被刪除以釋放磁盤(pán)空間。
三、刪除臨時(shí)表空間中已經(jīng)過(guò)期的臨時(shí)數(shù)據(jù)
由于臨時(shí)表空間的數(shù)據(jù)是暫時(shí)性的,所以在臨時(shí)表空間中存在很多已經(jīng)過(guò)期的臨時(shí)數(shù)據(jù)。如果不及時(shí)清除這些過(guò)期的臨時(shí)數(shù)據(jù),將對(duì)數(shù)據(jù)庫(kù)的性能產(chǎn)生一定的影響。因此,及時(shí)清除過(guò)期的臨時(shí)數(shù)據(jù)也是優(yōu)化臨時(shí)表空間的一個(gè)非常重要的措施。
可以采用以下SQL語(yǔ)句查找臨時(shí)表空間中的過(guò)期數(shù)據(jù):
“`sql
select * from v$sort_usage where timestamp
“`
該語(yǔ)句將查詢(xún)出臨時(shí)表空間中24小時(shí)內(nèi)未使用的臨時(shí)數(shù)據(jù),可以通過(guò)該語(yǔ)句清除掉已經(jīng)過(guò)期的臨時(shí)數(shù)據(jù)。
四、通過(guò)腳本自動(dòng)化管理臨時(shí)表空間
除了手動(dòng)管理臨時(shí)表空間,我們還可以采用腳本自動(dòng)化管理臨時(shí)表空間。通過(guò)腳本自動(dòng)化管理,不僅可以提高管理效率,還可以大大減少人為失誤的風(fēng)險(xiǎn)。以下是一個(gè)簡(jiǎn)單的腳本示例:
“`sql
BEGIN
FOR TEMP_TBL IN (SELECT A.tablespace_name tablespace_name, A.file_name file_name,
TO_CHAR(C.sysdate, ‘yyyymmdd’) system_date
FROM dba_temp_files A,V$TEMPORARY_LOBS B, V$SESSION C
WHERE A.file_id=B.file_id AND B.tablespace_name=A.tablespace_name
AND B.saddr=C.saddr AND C.username = ‘MYUSERNAME’)
LOOP
EXECUTE IMMEDIATE ‘ALTER TABLESPACE ‘||TEMP_TBL.tablespace_name||’ ADD TEMPFILE ”’||
REPLACE (TEMP_TBL.file_name,’.dbf’,”)||’_’||TEMP_TBL.system_date||
‘.dbf” SIZE 50M AUTOEXTEND ON NEXT 10M MAXSIZE 2023M’;
EXECUTE IMMEDIATE ‘ALTER TABLESPACE ‘||TEMP_TBL.tablespace_name||’ TEMPFILE ”’||
TEMP_TBL.file_name||”’ DROP INCLUDING DATAFILES’;
END LOOP;
END;
“`
以上腳本將刪除臨時(shí)表空間中過(guò)期的臨時(shí)數(shù)據(jù),并創(chuàng)建一個(gè)新的臨時(shí)表空間,以保證數(shù)據(jù)庫(kù)的正常運(yùn)行。此外,我們還可以通過(guò)修改腳本中的參數(shù)來(lái)自定義臨時(shí)表空間的大小和自動(dòng)擴(kuò)展等行為,以滿(mǎn)足不同業(yè)務(wù)的需要。
優(yōu)化臨時(shí)表空間可以大大提高數(shù)據(jù)庫(kù)的性能,降低磁盤(pán)IO,同時(shí)也能夠釋放寶貴的磁盤(pán)空間。在實(shí)際的數(shù)據(jù)庫(kù)運(yùn)維中,我們需要經(jīng)常檢查臨時(shí)表空間的容量情況,及時(shí)刪除不再使用的臨時(shí)表空間和過(guò)期的臨時(shí)數(shù)據(jù),并且可以通過(guò)腳本自動(dòng)化管理臨時(shí)表空間,以保證數(shù)據(jù)庫(kù)的正常運(yùn)行。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和數(shù)據(jù)量的不斷增長(zhǎng),數(shù)據(jù)庫(kù)性能優(yōu)化的問(wèn)題將越來(lái)越受到企業(yè)的關(guān)注,我們需要不斷地學(xué)習(xí)和掌握數(shù)據(jù)庫(kù)運(yùn)維和優(yōu)化的技能,以提高業(yè)務(wù)運(yùn)行的效率和質(zhì)量。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
OracleTemp臨時(shí)表空間處理
Temporary tablespace是oracle里臨時(shí)表空間 臨時(shí)表空間主要用途是在數(shù)據(jù)庫(kù)進(jìn)行排序運(yùn)算 管理索引 訪問(wèn)視圖等操作時(shí)提供臨時(shí)的運(yùn)算空間 當(dāng)運(yùn)算完成之后系統(tǒng)會(huì)磨高自動(dòng)清理 當(dāng)oracle里需要用到sort的時(shí)候 PGA中sort_area_size大小不夠時(shí) 將會(huì)把數(shù)據(jù)放入臨時(shí)表空間里進(jìn)行排序 同時(shí)如果有異常情況的話 也會(huì)被放入臨時(shí)表空間 正常來(lái)說(shuō) 在完成Select語(yǔ)句 create index等一些使用TEMP表空間的排序操作后 Oracle是會(huì)自動(dòng)釋放掉臨時(shí)段的 但有些有侯我們則會(huì)遇到臨時(shí)段沒(méi)有被釋放 TEMP表空間幾乎滿(mǎn)的狀況 甚至是我們重漏游埋啟了數(shù)據(jù)庫(kù)仍沒(méi)有解決問(wèn)題
排序是很耗資源的 Temp表空間滿(mǎn)了 關(guān)鍵是優(yōu)化你的語(yǔ)句 盡量使排序減少才是上策
Temp表空間滿(mǎn)時(shí)的處理方法
一 修改參數(shù)(僅適用于 i及 i以下版本)
修改一下TEMP表空間的storage參數(shù) 讓Smon進(jìn)程觀注一下臨時(shí)段 從而達(dá)到清理和TEMP表空間的目的
SQL>alter tablespace temp increase ;
SQL>alter tablespace temp increase ;
二 kill session
使用如下語(yǔ)句a查看一下認(rèn)誰(shuí)在用臨時(shí)段
SELECT se username se SID se serial# se sql_address se machine se program su TABLESPACE
su segtype su CONTENTS FROM v$session se v$sort_usage su
WHERE se saddr = su session_addr
kill正在使用臨時(shí)段的進(jìn)程
SQL>Alter system kill session sid serial# ;
把TEMP表空間回縮一下
SQL>Alter tablespace TEMP coalesce;
注
這處方法只能針對(duì)字典管理表空間(Dictionary Managed Tablespace) 于本地管理表空間(LMT:Local Managed Tablespace) 不需要整理的 i以后只能創(chuàng)建本地管理的表空間
CREATE TABLESPACE TEST DATAFILE D:\TEST dbf SIZE M EXTENT MANAGEMENT DICTIONARY
CREATE TABLESPACE TEST DATAFILE D:\TEST dbf SIZE M EXTENT MANAGEMENT LOCAL;
三 重啟數(shù)據(jù)庫(kù)庫(kù)
庫(kù)重啟時(shí) Smon進(jìn)程會(huì)完成臨時(shí)段釋放 TEMP表空間的清理操作 不過(guò)很多的時(shí)侯我們的庫(kù)是不允許down的 所以這種方法缺少了一點(diǎn)的應(yīng)用機(jī)會(huì) 不過(guò)這種方法還是很好用的
四 使用診斷事件的一種方法 也是最有效的一種方法
確定TEMP表空間的ts#
SQL>select ts# name from sys ts$ ;
TS# NAME
SYSTEM
UNDOTBS
SYSAUX
TEMP
USERS
UNDOTBS
執(zhí)行清理操作
SQL>alter session set events immediate trace name DROP_SEGMENTS level ;
說(shuō)明
temp表空間的TS# 為 So TS#+ =
重建TEMP 表空間
Temporary tablespace是不能直接drop默認(rèn)的臨時(shí)表空間的 不過(guò)我們可以通過(guò)以下方法來(lái)做
準(zhǔn)備 查看目前的Temporary Tablespace
SQL> select name from v$tempfile;
NAME
————————————————返螞———————
D:\ORACLE\ORADATA\TEST\TEMP DBF
SQL> select username temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
MGMT_VIEW TEMP
SYS TEMP
SYSTEMTEMP
DBSNMPTEMP
SYANTEMP
創(chuàng)建中轉(zhuǎn)臨時(shí)表空間
create temporary tablespace TEMP TEMPFILE E:\ORACLE\ORADATA\ORCL\temp DBF SIZE M REUSE AUTOEXTEND ON NEXT M MAXSIZE UNLIMITED;
改變?nèi)笔∨R時(shí)表空間 為剛剛創(chuàng)建的新臨時(shí)表空間temp
alter database default temporary tablespace temp ;
刪除原來(lái)臨時(shí)表空間
drop tablespace temp including contents and datafiles;
重新創(chuàng)建臨時(shí)表空間
create temporary tablespace TEMP TEMPFILE E:\ORACLE\ORADATA\ORCL\temp DBF SIZE M REUSE AUTOEXTEND ON NEXT M MAXSIZE UNLIMITED;
重置缺省臨時(shí)表空間為新建的temp表空間
alter database default temporary tablespace temp;
刪除中轉(zhuǎn)用臨時(shí)表空間
drop tablespace temp including contents and datafiles;
如果有必要 那么重新指定用戶(hù)表空間為重建的臨時(shí)表空間
alter user arbor temporary tablespace temp;
查看表空間語(yǔ)句 不過(guò)查不出Temp表空間
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 * )
) 使用比
F TOTAL_BYTES 空閑空間(M)
F MAX_BYTES 更大塊(M)
FROM (SELECT TABLESPACE_NAME
ROUND(SUM(BYTES) / ( * ) ) TOTAL_BYTES
ROUND(MAX(BYTES) / ( * ) ) MAX_BYTES
FROM SYS DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
(SELECT DD TABLESPACE_NAME
ROUND(SUM(DD BYTES) / ( * ) ) TOT_GROOTTE_MB
FROM SYS DBA_DATA_FILES DD
GROUP BY DD TABLESPACE_NAME) D
WHERE D TABLESPACE_NAME = F TABLESPACE_NAME
lishixinzhi/Article/program/Oracle/202311/17017
關(guān)于sql 數(shù)據(jù)庫(kù)刪除臨時(shí)表空間的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱(chēng)為香港虛擬空間/香港網(wǎng)站空間,或者簡(jiǎn)稱(chēng)香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開(kāi)通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問(wèn)快、穩(wěn)定!
網(wǎng)站標(biāo)題:SQL數(shù)據(jù)庫(kù)優(yōu)化:簡(jiǎn)單快捷刪除臨時(shí)表空間(sql數(shù)據(jù)庫(kù)刪除臨時(shí)表空間)
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/coppidh.html


咨詢(xún)
建站咨詢(xún)
