zoukankan      html  css  js  c++  java
  • 对临时表空间的一些常用查询

    1.观察不同用户在不同临时表空间的分配情况
    select temporary_tablespace,count(*) from dba_users group by temporary_tablespace;
    2.切换指定用户和所有用户到指定临时表空间
    alter user system temporary tablespace 表空间名字;
    alter database temporary tablespace 表空间名字;

    建立多个临时表空间分给不同的用户,其实是为了避免竞争,从而减缓IO竞争。
    3.可以建立临时表空间组
    create temporary tablespace temp1_1 tempfile '' size 100 tablespace group tmp_grp1;

    在dba_tablespace_groups这个数据字典可以查看。

    同时可以把临时表空间移动到临时表空间组里
    alter tablespace temp_lib tablespace group tem_grp1;
    4.收缩临时表空间
    alter tablespace temp shrink space keep 8G;
    alter tablespace temp shrink tempfile '';

    监控临时表空间

    查看临时表空间使用情况:

    SELECT TU.TABLESPACE_NAME AS "TABLESPACE_NAME",
    TT.TOTAL - TU.USED AS "FREE(G)",
    TT.TOTAL AS "TOTAL(G)",
    ROUND(NVL(TU.USED, 0) / TT.TOTAL * 100, 3) AS "USED(%)",
    ROUND(NVL(TT.TOTAL - TU.USED, 0) * 100 / TT.TOTAL, 3) AS "FREE(%)"
    FROM (SELECT TABLESPACE_NAME,
    SUM(BYTES_USED) / 1024 / 1024 / 1024 USED
    FROM GV_$TEMP_SPACE_HEADER
    GROUP BY TABLESPACE_NAME) TU ,
    (SELECT TABLESPACE_NAME,
    SUM(BYTES) / 1024 / 1024 / 1024 AS TOTAL
    FROM DBA_TEMP_FILES
    GROUP BY TABLESPACE_NAME) TT
    WHERE TU.TABLESPACE_NAME = TT.TABLESPACE_NAME;

    COL TEMP_FILE FOR A60;
    SELECT ROUND((F.BYTES_FREE + F.BYTES_USED)/1024/1024/1024, 2) AS "TOTAL(GB)",
    ROUND(((F.BYTES_FREE + F.BYTES_USED) - NVL(P.BYTES_USED, 0))/1024/1024/1024,2) AS "FREE(GB)",
    D.FILE_NAME AS "TEMP_FILE",
    ROUND(NVL(P.BYTES_USED, 0)/1024/1024/1024, 2) AS "USED(GB)" ,
    ROUND((F.BYTES_USED + F.BYTES_FREE)/1024/1024/1024, 2) AS "TOTAL(GB)",
    ROUND(((F.BYTES_USED + F.BYTES_FREE) - NVL(P.BYTES_USED, 0))/1024/1024/1024, 2) AS "FREE(GB)" ,
    ROUND(NVL(P.BYTES_USED, 0)/1024/1024/1024, 2) AS "USED(GB)"
    FROM SYS.V_$TEMP_SPACE_HEADER F ,DBA_TEMP_FILES D ,SYS.V_$TEMP_EXTENT_POOL P
    WHERE F.TABLESPACE_NAME(+) = D.TABLESPACE_NAME
    AND F.FILE_ID(+) = D.FILE_ID
    AND P.FILE_ID(+) = D.FILE_ID;
    查看临时表空间对应的临时文件的使用情况

    SELECT TABLESPACE_NAME AS TABLESPACE_NAME ,
    BYTES_USED/1024/1024/1024 AS TABLESAPCE_USED ,
    BYTES_FREE/1024/1024/1024 AS TABLESAPCE_FREE
    FROM V$TEMP_SPACE_HEADER
    ORDER BY 1 DESC;
    查找消耗临时表空间资源比较多的SQL语句

    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;

     (未完待续)

  • 相关阅读:
    pku夏令营面试
    机器学习实验一SVM分类实验
    面试相关-转载-well,yzl——持续更新
    2715:谁拿了最多奖学金-poj
    1005:I Think I Need a Houseboat-poj
    2810:完美立方-poj
    2943:小白鼠排队-poj
    rem+媒体查询---移动端 设计稿以375
    微信小程序 + mock.js 实现后台模拟及调试
    一个div 实现纸张阴影效果
  • 原文地址:https://www.cnblogs.com/wjmbk/p/8474040.html
Copyright © 2011-2022 走看看