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;

     (未完待续)

  • 相关阅读:
    4.28综合练习
    团队项目第一阶段冲刺第六天
    4.27防盗链和代理
    梦断代码阅读笔记3
    团队项目第一阶段冲刺第五天
    4.26抓取猪⼋戒数据
    团队项目第一阶段冲刺第四天
    4.25xpath解析
    4.24aiohttp模块学习
    如何将类数组转化为数组?
  • 原文地址:https://www.cnblogs.com/wjmbk/p/8474040.html
Copyright © 2011-2022 走看看