• oracle知识点


    创建索引

    1.创建索引语法

     
    CREATE [UNIQUE] | [BITMAP] INDEX index_name  --unique表示唯一索引
    ON table_name([column1 [ASC|DESC],column2    --bitmap,创建位图索引
    [ASC|DESC],…] | [express])
    [TABLESPACE tablespace_name]
    [PCTFREE n1]                                 --指定索引在数据块中空闲空间
    [STORAGE (INITIAL n2)]
    [NOLOGGING]                                  --表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用
    [NOLINE]
    [NOSORT];                                    --表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

    1创建位图索引

    create bitmap index index_sno on student(sno);

    2创建普通索引

    create index index_id on 表名(字段);

      1. 当经常要访问一些函数或者表达式时,可以将其存储在索引中,这样下次访问时,该值已经计算出来了,可以加快查询速度

      2. 函数索引既可以使用B数索引,也可以使用位图索引;当函数结果不确定时采用B树索引,结果是固定的某几个值时使用位图索引

      3. 函数索引中可以水泥用len、trim、substr、upper(每行返回独立结果),不能使用如sum、max、min、avg等

    3创建函数索引

    create index fbi  on student (upper(name));

    索引建立原则总结

      1. 如果有两个或者以上的索引,其中有一个唯一性索引,而其他是非唯一,这种情况下oracle将使用唯一性索引而完全忽略非唯一性索引

      2. 至少要包含组合索引的第一列(即如果索引建立在多个列上,只有它的第一个列被where子句引用时,优化器才会使用该索引)

      3. 小表不要简历索引

      4. 对于基数大的列适合建立B树索引,对于基数小的列适合简历位图索引

      5. 列中有很多空值,但经常查询该列上非空记录时应该建立索引

      6. 经常进行连接查询的列应该创建索引

      7. 使用create index时要将最常查询的列放在最前面

      8. LONG(可变长字符串数据,最长2G)和LONG RAW(可变长二进制数据,最长2G)列不能创建索引

      9.限制表中索引的数量(创建索引耗费时间,并且随数据量的增大而增大;索引会占用物理空间;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度)

     



    创建视图

    语法: create [ or replace ] [ force ] view [schema.]view_name
                          [ (column1,column2,...) ]
                          as 
                          select ...
                          [ with check option ]                      [ constraint constraint_name ]
                          [ with read only ];

    1.虚拟视图

    CREATE OR REPLACE FORCE VIEW "SY_GWCS"."RCV_TB_VIEW" ("DID", "SRID", "ISREAD", "ISQIANSHOU", "TS", "ISDEL", "UNITID", "TITLE", "FAWENDANWEI", "FAWENRIQI", "WENHAO") AS
      select a.did,a.srid ,a.isread,a.isqianshou,a.ts,a.isdel,a.unitid,b.title,b.fawendanwei,b.fawenriqi,b.wenhao from RCV_TB a

    2.物理视图

    CREATE  MATERIALIZED  VIEW

    (比如每天晚上10:00定时刷新一次):create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh24:mi:ss')

  • 相关阅读:
    HTML5和CSS3的学习视频
    webpack中bundler源码编写2
    webpack中bundler源码编写
    webpack中如何编写一个plugin
    webpack多页面打包配置
    webpack中配置eslint
    webpack解决单页面路由问题
    webpack中使用WebpackDevServer实现请求转发
    webpack中typeScript的打包配置
    rsync 同步
  • 原文地址:https://www.cnblogs.com/jentary/p/10955799.html
Copyright © 2020-2023  润新知