zoukankan      html  css  js  c++  java
  • Tuning 13 Using oracle blocks Efficiently

    image

    推进使用自动管理 automatic segment

    image

    1 个 Blocks = 2的幂次方倍

    tablespace 像一块地

    segment 像一个房子

    extents 向一个装砖头的框

    blocks 像砖头

    image

    segment 一次性最少要分配一个 extents

    image

    推荐使用 UNIFORM 在创建 extent 时.

    image

    image

    grant connect, resource to mark;

    create table t(id int, name char(10));

    image

    注意, 执行第一个命令时无法得到empty blocks 的数值, 需要执行 analyze table t compute statistics 才能得到 empty block (在 dba_tables)

    alter table t allocate extent;  -- 增加 extent

    alter table t allocate extent (size 10m);  -- 直接扩充10M, 因为这个环境一个extent是1m, 这样就扩充了10个extent.

    image

    image

    image

    oracle 的全表扫描会扫描到高水位的地方

    image

    可以看到高水位是在一个extent里的block 的情况.

    image

    image

    image

    image

    image

    image

    image

    小块对 OLTP 比较好

    image

    OLAP 使用大块, 决策支持, 数据仓库 等

    image

    image

    只要记住PCTFREE 就行了, 下边的 PCTUSED 不用考虑

    image

    Migration: 迁移, 在block中的数据体积变大了, 那么它首先会在本块中寻找空间, 但是如果本块中没找到, 就会将这个信息移动到另一个块里, 并且在原来块里留下指针, 注意这样要读2次I/O, 因为前一个块只读到了一个指针. 所以要尽量避免这个事情发生.

    Chaining: 这条记录太大了, 大到整个block 都放不下了, 那没办法了, 只能将这个信息分部分存储在两个或多个块里, 这样也要读2次I/O. 发生这个的原因或者是block小或者是表设计不当

    image

    image

    image

    move 的意思是将这个表copy到另一个表, 然后再将这个表删除

    image

    监控索引, 在恰当的时候对索引进行rebuild 等内容.

    image

    image

    image

    image
    下边两个过时了, 在10g,11g都不这么用了

    image

    image

  • 相关阅读:
    C#yield return用法示例
    C#多线程示例
    AspNetCore.Authentication
    C#委托与事件
    按值和按引用传递参数
    基于iView的无限级菜单
    Sortable By Attribute
    未能加载文件或程序集“BLL”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
    有关导出Excel特殊字符的问题
    openFileDialog的使用
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3640026.html
Copyright © 2011-2022 走看看