2019独角兽企业重金招聘Python工程师标准>>>

1、Oracle物理存储结构
    控制文件:ctl 数据库名字,物理结构信息,字符集,SCN,检查点,状态信息,归档日志历史等,一般会有镜像
              show parameter control;
    数据文件:dbf 数据和临时文件百万行以下小表上亿大表
              select * from dba_data_files;
              select * from dba_temp_files;
    联机日志文件:redo log 记录数据库的改变过程
              select * from v$logfile;
              select * from v$log;
    参数文件:pfile,spfile 启动时调用,之后一直存在内存,即使损坏了也不影响数据库运行,重启会有影响
              show parameter spfile;
    备份文件:参数文件可以不用每次都备份,DBF,LOG,ARCLOG每次都要备份,数据文件,归档日志的备份不要
              放在存储上,因为存储的寿命是4年左右。
    归档日志文件:archived log 离线文件,不要放到存储上
              select * from V$ARCHIVED_LOG;
    口令文件:可临时生成,在$ORACLE_HOME/dbs目录下创建
              orapwd file=orapwipemsdb password=oracle entries=3 force=y 
    告警日志文件:alert 在ORACLE_BASE/admin/SID/bdump目录下,记录数据库的错误及操作过程信息;
    跟踪日志文件:trace 在udump目录下,包含会话对应的spid号的.trc文件
        11g增加了xml格式的日志文件
        select value from v$diag_info where name='Diag Alert';
        select value from v$diag_info where name='Diag Trace';

2、逻辑存储结构
    数据库、表空间、段(索引段,分区段,临时段,撤销段,表段)、区、块
    select * from v$database; --数据库实例信息
    select * from dba_users;  --用户默认信息
    select * from dba_tablespaces;  --表空间信息
    select * from dba_segments;     --段信息,可连接表空间,用户,区等
    select * from dba_extents;      --区信息,可连接段等
    show parameter block;           --块相关信息

3、Oracle表空间 dba_tablespaces
    oracle多表空间数据库,一个表空间,多个数据文件可实现并行读写
    普通表空间:users,example
    回滚表空间:undo  undotbs1存储修改前数据
    临时表空间:temporary temp临时存放数据,排序,hash连接
    system:数据字典信息,oracle系统信息
    sysaux:system辅助表空间,与system必须同时在线
    状态:permanent表空间中的数据一般不会改变
          undo
          temporary

4、Oracle段 dba_segments
    oracle给对象分配空间的单位
    表段、表分区段、索引段、索引分区段、temp 临时段、undo撤销段、二进制大对象段
    当分配给多个区后,会给区里增加块数
    
5、Oracle区: dba_extents oracle给段分配空间的单位,物理上连续的多个oracle块,区给段分配空间时开始一个区
默认8个块,随着分配区增加,区中的块也会增多如128个块。
    高水位线:"high water mark"或HWM,段使用区的最后一个块的位置,全表扫描的最后一个位置,数据删了提交
后再分析,高水位线并未下来
    段空间释放问题,truncate table table_name,后分析表
查询表的HWM user_tables.blocks
    SELECT blocks, empty_blocks, num_rows  FROM user_tables  WHERE table_name = <tablename>;
        BLOCKS 列代表该表中曾经使用过得数据库块的数目,即水线;
        EMPTY_BLOCKS 代表分配给该表,但是在水线以上的数据库块。
查询分配给具体段的块信息 dba_segments
    SELECT segment_name, segment_type, blocks  FROM dba_segments  WHERE segment_name='BIG_EMP1';
分析表
    ANALYZE TABLE big_emp1 ESTIMATE STATISTICS;
查询当前对象含有数据的块数,等同于分析后user_tables.blocks
    SELECT COUNT (DISTINCT DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)|| DBMS_ROWID.ROWID_RELATIVE_FNO(rowid))
    "Used" FROM big_emp1;
修正水位线
    在线转移表空间,move后记住重建索引。转移后需要分析才能更新
        ALTER TABLE table_name MOVE;
        alter table BIG_OBJECTS move tablespace EXAMPLE;
    使用Oracle 10g新增功能修正    
        alter table table_name enable row movement;  --设置允许行移动
        alter table table_name shrink space;
    复制要保留的数据到临时表t,drop原表,然后rename临时表t为原表;
    truncate 会降水位线,同时也会减少分配给段的块数
        TRUNCATE TABLE big_emp1 [REUSE STORAGE] --保留段分配的块数
            
6、Oracle块
    块头:Oracle块物理存储结构:物理地址,属于哪个表,事物槽,行目录
    行目录:通过行目录找行,行从下往上使用,行与行之间串起来,行信息矢量,行头部(锁信息)列长,列值。
            记录块中每一行的起始位置,找到行后逐列找值。应尽可能的将一行放入一个块中,PCTFREE 10%oracle
            每个块预留的空间。随着行目录和数据行的使用空间会变小。
    行迁移:update后原块放不下新值,整行数据都被移动,原始的数据块上仅仅保留的是指向新块的一个地址信息。
            原先空间的剩余空间不再被数据库使用,这些剩余的空间我们将其称之为空洞,产生表碎片,发生了行迁
            移的行的rowid 还是不会变化.
    行连接:insert当一行数据太大而不能在一个单数据块容纳时,行链接由此产生,行记录的大小超出了数据库
            Oracle块的大小,DBA_TABLES视图的CHAINED_CNT列,该列有该表的链接行计数
            SELECT name, value FROM v$sysstat WHERE name = 'table fetch continued row';
    参考资料:
            http://www.2cto.com/database/201410/344139.html
    文件系统块:dumpe2fs /dev/sda1
    扇区:512字节

7、区管理方式
    数据字典
    本地(推荐)
        自动
        统一(都可以)
        
8、段管理方式
    手工管理方式
    自动管理方式(推荐)

9、分析表
    analyze table tablename compute statistics;
    analyze table tablename compute statistics for all indexes;
    analyze table tablename delete statistics;
参考资料:
http://www.cnblogs.com/sopost/archive/2011/02/20/2190045.html

10、相关查询
查询具体表逻辑存储信息
    SELECT table_name,NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN 
    FROM USER_TABLES where table_name='T2';
查询索引列的统计信息,索引的深度(B-Tree的级别),索引叶级的块数量,集群因子(clustering_factor), 唯一值的个数。
    SELECT BLEVEL, LEAF_BLOCKS, DISTINCT_KEYS, AVG_LEAF_BLOCKS_PER_KEY, AVG_DATA_BLOCKS_PER_KEY, 
    CLUSTERING_FACTOR  FROM USER_INDEXES;
查询列的统计信息唯一值个数,列最大小值,密度(选择率),数据分布(直方图信息),NUll值个数
    SELECT NUM_DISTINCT, LOW_VALUE, HIGH_VALUE, DENSITY, NUM_NULLS, NUM_BUCKETS, HISTOGRAM 
    FROM USER_TAB_COLUMNS;    
查询当前数据库中逻辑读最高的10个对象,找热端
    select *  from (select object_name, statistic_name, value from V$SEGMENT_STATISTICS where 
                    statistic_name = 'logical reads' order by 3 desc)
    where rownum < 11;
相关视图
    V$TABLESPACE
    V$ENCRYPTED_TABLESPACES
    DBA_TABLESPACES,DBA_ USER_TABLESPACES
    DBA_TABLESPACE_GROUPS
    DBA_SEGMENTS, USER_SEGMENTS
    DBA_EXTENTS, USER_EXTENTS
    DBA_FREE_SPACE, USER_FREE_SPACE
    DBA_TEMP_FREE_SPACE
    V$DATAFILE
    V$TEMPFILE
    DBA_DATA_FILES
    DBA_TEMP_FILES
    V$TEMP_EXTENT_MAP
    V$TEMP_EXTENT_POOL
    V$TEMP_SPACE_HEADER
    DBA_USERS
    DBA_TS_QUOTAS
    V$SORT_SEGMENT
    V$TEMPSEG_USAGE
    V$SEGSTAT_NAME、V$SEGSTAT、V$SEGMENT_STATISTICS
    DBA_TABLES
    DBA_OBJECT_TABLES
    DBA_TAB_STATISTICS
    DBA_TAB_COL_STATISTICS
    DBA_TAB_HISTOGRAMS
    DBA_INDEXES
    DBA_IND_STATISTICS
    DBA_CLUSTERS
    DBA_TAB_PARTITIONS
    DBA_TAB_SUBPARTITIONS
    DBA_IND_PARTITIONS
    DBA_IND_SUBPARTITIONS
    DBA_PART_COL_STATISTICS
    DBA_PART_HISTOGRAMS
    DBA_SUBPART_COL_STATISTICS
    DBA_SUBPART_HISTOGRAMS
    DBA_EXTENTS

转载于:https://my.oschina.net/peakfang/blog/2245178

oracle 体系结构及内存管理 15_存储结构相关推荐

  1. oracle 体系结构及内存管理 13_事务

    2019独角兽企业重金招聘Python工程师标准>>> 1.事务的基本概念     一组DML语句    insert.delete.update需要同时执行成功或失败.     事 ...

  2. Oracle体系结构之内存结构(SGA、PGA)

    Oracle体系结构之内存结构(SGA.PGA) 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个 ...

  3. oracle系列(二)oracle体系结构和用户管理

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 在使用oracle之前,我们一定要对or ...

  4. 第五章:管理数据库存储结构

    存储结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 数据存 ...

  5. Oracle 自己主动内存管理 SGA、PGA 具体解释

    ASMM自己主动共享内存管理: 自己主动依据工作量变化调整 最大程度地提高内存利用率 有助于消除内存不足的错误 SYS@PROD>show parameter sga NAME          ...

  6. OCP之5 管理数据库存储结构

    存储结构 一个数据库可划分为多个称为表空间的逻辑存储单元.每个表空间可以包含很多Oracle 逻辑数据块.DB_BLOCK_SIZE 参数指定了逻辑块的大小.逻辑块的大小介于2 KB 到 32 KB ...

  7. ORACLE 11g 自动内存管理

    Overview 在oracle 11g中,使用一个参数memory_target就能够实现SGA和PGA组件依据工作负荷进行自动内存分配.oracle推荐使用自动内存管理简化内存分配. oracle ...

  8. 云和恩墨技术通讯:Oracle AMM自动内存管理引起数据库阻塞

    各位亲爱的用户/读者朋友们: 为了及时共享行业案例,通告共性问题,达成知识共享和提前预防,我们整理和编辑了<云和恩墨技术通讯>(4月刊),通过对过去一段时间的知识回顾和故障归纳,以期提供有 ...

  9. oracle启用amm,【内存管理】Oracle AMM自动内存管理详解

    一. Oracle 的三种内存管理方式 oracle 内存管理有三种方式,每一个 instance 只能够选择一种.这三种管理方式分别是 AMM 自动内存管理( Automatic Memory Ma ...

最新文章

  1. 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
  2. Sublime Text
  3. python标准词匹配_用 Python 自动化办公能做到哪些有趣或有用的事情?
  4. Java中的List
  5. Android之切换账号登录依然能登录成功问题解决办法
  6. 计算机职称业务工作业绩总结,档案职称工作业绩
  7. Android开发入门二之AndroidManfest.xml文件详细说明 .
  8. CMakeList.txt的简介
  9. CSS按钮动画(四)
  10. King's Quest - poj 1904(强连通分量+外挂输入输出)
  11. mybatis编写一个查询数据库表的程序
  12. 聊天机器人5步重塑酒店业
  13. devc调试设置断点后没有反应_基于VSCode的skynet调试器
  14. fp5139应用电路图_LM358各种应用电路
  15. 深度学习之CNN反向传播
  16. VC之获取计算机网卡mac地址
  17. C++ 设置字体颜色
  18. 黄金自己怎么用计算计算机数,黄金分割点计算器
  19. 猎头是怎么找到合适候选人的?
  20. 求一个3*3的整形矩阵对角线元素之和

热门文章

  1. android 重新打开活动,android – RxJava在活动恢复后重新订阅事件
  2. oracle数据库无法查询,关于oracle中无法查询中文条件的解决办法
  3. 实战丨基于接口的银行系统自动化测试实践
  4. oracle11 分配表权限,Oracle11g权限--角色
  5. 计算机专业的英语文献,计算机专业英语论文参考文献集 计算机专业英语英语参考文献哪里找...
  6. maven创建java,Maven创建Java项目
  7. Xception: Deep Learning with Depthwise Separable Convolutions
  8. DE13 Finding Particular Solutions to Inhomogeneous ODEs
  9. 不属于处理数据的计算机应用,计算机应用基础6
  10. jbod ugood 磁盘驱动状态_LSI Storcli 工具使用