• 创建高效且易于管理的表以及表的管理和维护


    一、创建表的原则;

      将不同的表放在不用的表空间中

      使用本地管理的表空间避免系统表空间碎片

      在表中使用若干标准extent尺寸以减少表空间的碎片

    创建本地管理的表空间上的表时可以在后面添加 tablespace tablespace_name子句。在数据字典管理的表空间上创建表时可以同时制定存储参数。

      storage(initial 100k next 100k pctincrease 0 minextents 1 maxextents 100) tablespace tablespace_name;另外还可以使用pctfree,pctused,initrans,maxtrans等参数

    二、创建临时表:当需要对某一个或者几个表中的一批数据进行反复操作时,通过为这批数据创建一个临时表可能会简化操作并且有可能会提高效率。

      create global temporary table

        schom_name.table_name

        on commit preserve/delete rows

        as

        select * form table_name1 where ........

    临时表中存储的是会话的私有数据,这些数据只有在事务进行或者会话期间存在。通过on commit preserve/delete rows来控制数据的存在周期

      delete说明数据只有在事务中可见也是默认值

      preserve说明数据行在整个会话中可见

    每一个会话只能看到和修改自己的数据,因此在临时表的数据上没有也不需要dml锁,这就是临时表操作效率较高 的原因之一。

    临时表并不使用默认的表空间而是使用临时段存储数据即临时表空间上存储数据。

    三、表的管理和维护

    表的管理和维护主要是针对表的存储参数的设置。可以从storage子句中修改或者直接动态修改表的存储参数

    其中常用修改的参数包括pctfree pctused

    ex:alter table table_name

      pctfree value1

      pctused value2

    在大规模装入数据之前为了避免表的动态扩展,可以手工的扩展extent,另外为了平衡i/0可以把extent分配到不同的数据文件中

    alter table table_name

      allocate extent[([size 正整数 [k|M]]

      [datafile '数据文件名'])]

    如果省略了size子句那么oracle将从dba_tables中获得next_extent值来分配extent,如果省略了datafile子句那么oracle将从包含该表的表空间中的数据文件上分配extent。另外datafile子句指定的文件必须是包含该表的表空间中的数据文件。

    获取segment的sql

    select segment_name,tablespace_name,extents from dba_segments

      where owner='OWNER'

      and segment_name like '%table_name%'; 

    获得指定表的区段中extent的个数,验证是否成功手动添加extent到表中。

    注:查看一个用户的默认表空间和临时表空间上的sql:

    select username, default_tablespace, temporary_tablespace
    from dba_users;

    对一个用户设置默认表空间和临时表空间后,在用户进行数据库对象的创建和数据的操作时,如果不显示的指定表空间和临时表空间那么就使用默认表空间和默认临时表空间来存储数据库对象。

    使用dba_indexes数据字典查看对应的index是建立在哪张表上的,是基于哪个tablespace的

    select index_name,index_type,table_name,tablespace_name from dba_indexes where owner='OWNER_NAME';

        

  • 相关阅读:
    canvas-绘制矩形-读书笔记
    获取页面路径中的参数
    微信小程序引用组件的方式
    this指向知识梳理
    for循环整理
    微信小程序使用wxs(小程序的一套脚本语言)
    textarea层级过高的解决办法
    防止用户连续点击按钮导致页面数据重复
    微信小程序tab切换
    HTML/CSS 知识点01 (转)
  • 原文地址:https://www.cnblogs.com/moonfans/p/3871875.html
Copyright © 2020-2023  润新知