久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle Temp表空間切換方法是什么

170次閱讀
沒有評論

共計 2640 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章主要介紹“Oracle Temp 表空間切換方法是什么”,在日常操作中,相信很多人在 Oracle Temp 表空間切換方法是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Oracle Temp 表空間切換方法是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

一.TEMP 表空間作用

  臨時表空間主要用途是在數據庫進行排序運算、管理索引、訪問視圖等操作時提供臨時的運算空間,當運算完成之后系統會自動清理。當 oracle 里需要用到 sort 的時候,PGA 中 sort_area_size 大小不夠時,將會把數據放入臨時表空間里進行排序,同時如果有異常情況的話,也會被放入臨時表空間 , 正常來說,在完成 Select 語句、create index 等一些使用 TEMP 表空間的排序操作后,Oracle 是會自動釋放掉臨時段的。注意這里的釋放,僅僅是將這些空間標記為空閑,并可重用,真正占用的磁盤空間并沒有釋放。所以 Temp 表空間可能會越來越大。

排序是很耗資源的,Temp 表空間滿了 , 關鍵是優化你的語句,盡量使排序減少才是上策 .

總結為:

臨時表空間的主要作用:
  索引 create 或 rebuild;
  Order by 或 group by;
  Distinct 操作;
  Union 或 intersect 或 minus;
  Sort-merge joins;
  analyze.

二、oracle temp 表空間切換

2.1 查詢 TEMP 表空間使用情況:

SELECT temp_used.tablespace_name,
  total – used AS Free ,
  total AS Total ,
  ROUND (NVL (total – used, 0) * 100 / total, 3) Free percent
  FROM (  SELECT tablespace_name, SUM (bytes_used) / 1024 / 1024 used
  FROM GV$TEMP_SPACE_HEADER
  GROUP BY tablespace_name) temp_used,
  (  SELECT tablespace_name, SUM (bytes) / 1024 / 1024 total
  FROM dba_temp_files
  GROUP BY tablespace_name) temp_total
 WHERE temp_used.tablespace_name = temp_total.tablespace_name;
數據庫默認表空間:

SQL SELECT PROPERTY_NAME, PROPERTY_VALUE
  2  FROM DATABASE_PROPERTIES
  3  WHERE PROPERTY_NAME = DEFAULT_TEMP_TABLESPACE

2.2 新建 Temp2 表空間

create temporary tablespace temp1 tempfile  D:\APP\ADMINISTRATOR\ORADATA\SDXJ\TEMP2.dbf size 20M autoextend on next 1M maxsize unlimited
tablespace group
extent management local uniform size 1M;

2.3 修改數據庫默認表空間為 Temp1

SQL alter database default temporary tablespace temp1;
  數據庫已更改。

2.4 刪除原來表空間

退出 session,刪除原表空間

DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

刪除完成。

三、Temp 表空間一些常用查詢

3.1、更改系統的默認臨時表空間:
  – 查詢默認臨時表空間
  select * from database_properties where property_name= DEFAULT_TEMP_TABLESPACE
  – 修改默認臨時表空間
  alter database default temporary tablespace temp1;
  – 所有用戶的默認臨時表空間都將切換為新的臨時表空間:
  select username,temporary_tablespace,default_ from dba_users;
  – 更改某一用戶的臨時表空間:
  alter user scott temporary tablespace temp;

3.2 查找消耗資源比較的 sql 語句
/* Formatted on 2015/7/14 21:58:17 (QP5 v5.163.1008.3004) */
  SELECT se.username,
  se.sid,
  su.extents,
  su.blocks * TO_NUMBER (RTRIM (p.VALUE)) AS Space,
  tablespace,
  segtype,
  sql_text
  FROM v$sort_usage su,
  v$parameter p,
  v$session se,
  v$sql s
  WHERE  p.name = db_block_size
  AND su.session_addr = se.saddr
  AND s.hash_value = su.sqlhash
  AND s.address = su.sqladdr
ORDER BY se.username, se.sid

3.3、查看當前臨時表空間使用大小與正在占用臨時表空間的 sql 語句
select sess.SID, segtype, blocks * 8 / 1000 MB , sql_text
  from v$sort_usage sort, v$session sess, v$sql sql
 where sort.SESSION_ADDR = sess.SADDR
  and sql.ADDRESS = sess.SQL_ADDRESS
 order by blocks desc;

4.4 對臨時表空間進行 shrink(11g 新增的功能)
– 將 temp 表空間收縮為 20M
alter tablespace temp1 shrink space keep 20M;

– 自動將表空間的臨時文件縮小到最小可能的大小
ALTER TABLESPACE temp1 SHRINK TEMPFILE’…/temp01.dbf’

到此,關于“Oracle Temp 表空間切換方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計2640字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 陵川县| 荣成市| 泸定县| 集安市| 榕江县| 冀州市| 洛南县| 安龙县| 景宁| 肇州县| 穆棱市| 池州市| 上思县| 阜南县| 嵩明县| 平果县| 象州县| 田阳县| 勃利县| 民丰县| 格尔木市| 旬邑县| 平安县| 龙口市| 张家口市| 潜山县| 右玉县| 丹阳市| 武穴市| 织金县| 荔浦县| 祁阳县| 定安县| 开阳县| 百色市| 陕西省| 温宿县| 建德市| 电白县| 张家口市| 新丰县|