中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

臨時表空間和臨時段的研究

發布時間:2020-08-07 07:09:04 來源:ITPUB博客 閱讀:232 作者:ericwen2015 欄目:建站服務器
對于臨時表空間,主要用來做一些排序類的操作,oracle對于臨時表空間采用的使用策略和其他的永久表空間的不同,當第一個使用臨時表空間的排序操作開始,臨時段被創建
相應視圖:
SQL> select table_name from dict where table_name like 'V$TEMP%';
TABLE_NAME
------------------------------
V$TEMPFILE
V$TEMPORARY_LOBS
V$TEMPSEG_USAGE
V$TEMPSTAT
V$TEMP_CACHE_TRANSFER
V$TEMP_EXTENT_MAP
V$TEMP_EXTENT_POOL
V$TEMP_HISTOGRAM
V$TEMP_PING
V$TEMP_SPACE_HEADER
SQL> SELECT TABLE_NAME FROM DICT WHERE TABLE_NAME LIKE 'V$SORT%';
TABLE_NAME
------------------------------
V$SORT_SEGMENT
V$SORT_USAGE
1、v$sysstat(查看數據庫排序信息)
SQL> select name,value from v$sysstat where name like 'sort%';
NAME                                                                  VALUE
---------------------------------------------------------------- ----------
sorts (memory)                                                         3272
sorts (disk)                                                              0
sorts (rows)                                                          16442
2、v$sort_usage=v$tempseg_usage(查看臨時表空間使用情況)
SQL> select username,session_num from v$tempseg_usage;
USERNAME                       SESSION_NUM
------------------------------ -----------
SYS                                      8
SYS                                      8
SYS                                      8
3、v$sort_segment(臨時段中的extent管理)
SQL> select TOTAL_EXTENTS,USED_EXTENTS,FREE_EXTENTS,ADDED_EXTENTS from v$sort_segment where tablespace_name='TEMP';
TOTAL_EXTENTS USED_EXTENTS FREE_EXTENTS ADDED_EXTENTS
------------- ------------ ------------ -------------
          902            0          902           898
v$temp_space_header(該視圖用來查詢臨時表空間使用情況)
SQL> select tablespace_name,BYTES_USED,BYTES_FREE from v$temp_space_header;
TABLESPACE_NAME                BYTES_USED BYTES_FREE
------------------------------ ---------- ----------
TEMP                            946864128          0

extent會被分配到這個臨時段中,但當排序操作完成后,這個臨時段并不會被刪除掉,只會被oracle標記為Free從而使其他排序操作可以繼續使用這個臨時段,從這里我們也可以明白,對于一個臨時表空間只能存在一個臨時段。對于段中的extent管理通過v$sort_segment:
SQL> select TOTAL_EXTENTS,USED_EXTENTS,FREE_EXTENTS,ADDED_EXTENTS from v$sort_segment where tablespace_name='TEMP';
TOTAL_EXTENTS USED_EXTENTS FREE_EXTENTS ADDED_EXTENTS
------------- ------------ ------------ -------------
          117          117            0          6571
當我們數據庫中temp表空間不在被會話所使用,相應的臨時段就會釋放。extent被標記為Free
TOTAL_EXTENTS USED_EXTENTS FREE_EXTENTS ADDED_EXTENTS
------------- ------------ ------------ -------------
          364            0          364          6818
從上面可知,一但開始使用臨時段,oracle就會分配對應的extent,不斷往段中添加extent,而一但排序操作完成,oracle會立即釋放使用的段,從而使段中的extent標記為Free.
oracle的這一特性也使得oracle的臨時表空間的數據文件將會越來越大,所以對于臨時表空間我們也必須定期的觀察并做維護。
模擬臨時表空間被大量消耗:(模擬一個排序操作)
select * from dba_tab_columns a,dba_tab_columns b order by a.owner,b.table_name;
運行一段時間后掐掉,此時發現對應oracle目錄變大,臨時表空間也變大。
SQL> !df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              8254240   2244484   5590464  29% /
none                    403460         0    403460   0% /dev/shm
/dev/sda2             10317860   6550784   3242956  67% /oracle
SQL> select username,session_num from v$sort_usage where tablespace='TEMP';
USERNAME                       SESSION_NUM
------------------------------ -----------
SYS                                      8
此時我們查找對應臨時數據文件使用情況:
SQL> select max(SEGBLK#) from v$sort_usage;
MAX(SEGBLK#)
------------
           9
SQL> select 8*8192/1024/1024/1024 from dual;
8*8192/1024/1024/1024
---------------------
           .000061035
我們可以看到,雖然臨時表空間很大,但是臨時表空間的使用卻不大,我們采用resize的方法縮小數據文件:
SQL> alter database tempfile '/oracle/app/oradata/orcl/temp01.dbf' resize 100m;
Database altered.
SQL>  !ls -l /oracle/app/oradata/orcl/temp01.dbf
-rw-r-----  1 oracle dba 104865792
數據文件已經縮小到100m
減小臨時表空間,釋放磁盤空間的另一個方法是臨時表空間的替換:
創建temp:
SQL> create temporary tablespace temp2
  2  tempfile 'E:\XXXXXX\XXXXX\XXXX.dbf' size 100m autoextend on;
確認原temp是否空閑:
SQL> SELECT USERNAME,USER FROM V$SORT_USAGE WHERE TABLESPACE='TEMP'
SQL> alter database default temporary tablespace TEMP2
SQL> drop tablespace TEMP including contents and datafiles
查看是否正確刪除temp表空間。
查看空間是否釋放。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

行唐县| 南康市| 桐城市| 青铜峡市| 沂源县| 白银市| 班戈县| 同江市| 镇江市| 额尔古纳市| 定州市| 杭锦后旗| 邯郸市| 渭南市| 开封市| 涞水县| 台中县| 夏邑县| 枣强县| 嵩明县| 望奎县| 鹤庆县| 灵石县| 钟祥市| 日喀则市| 菏泽市| 皮山县| 河曲县| 云梦县| 个旧市| 喀什市| 灵寿县| 侯马市| 丰镇市| 赣榆县| 如东县| 集安市| 汽车| 呼图壁县| 固原市| 武汉市|