物化视图简介
一、物化视图的一般用法物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。1、物化视图的类型ON DEMAND、ON COMMIT。二者的区别在于刷新方法的...
索引组织表简介
索引组织表(IOT)不仅可以存储数据,还可以存储为表建立的索引。索引组织表的数据是根据主键排序后的顺序进行排列的,这样就提高了访问的速度。但是这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行重新排序)。 索引组织表的创建格式如下: &nb...
索引的Key Compression
oracle 索引压缩(key compression)是oracle 9i 中引入的一项新特性。该特性可以压缩索引或者索引组织表中的重复键值,从而节省存储空间。非分区的unique 索引和non-unique(至少两列)索引都能够被压缩。bitmap 索引不能够进行压缩。 在oracle 索引压缩中有几个比较纠结的术语,需...
误操作经历,truncate导致闪回查询失败
开发人员向我反映由于误操作删除了表里的一些数据,要求我恢复。咨询了误操作的时间点后,我用闪回查询试了一下,被误删的数据还在回滚段,可以挽救回来。我先备份了现在表里的数据。create table a as select * from 业务表。然后我做了一件愚蠢的事truncate table 业务表insert into 业务表 select * from 业务表&...
ORACLE闪回表介绍
FLASHBACK TABLE目的:1. 使用闪回表语句恢复表到出现人为或应用错误事件之前的状态。2. 可以闪回到过去多长时间取决于系统中undo数据量的大小。3. 并且oracle数据库无法恢复通过DDL语句修改了结构的表。 注:oracle强烈建议设置UNDO_MANAGEMENT为AUTO(自动管理回滚数据)。另外,设置UNDO...
ORACLE11G索引的可见性
索引维护是DBA的一项重要工作。当一个系统运行很长一段时间,经过需求变更、结构设计变化后,系统中就可能会存在一些不会被使用的索引,或者使用效率很低的索引。这些索 引的存在,不仅占用系统空间,而且会降低事务效率,增加系统的waits。因此,我们需要找出那些无用或低效索引的索引并删除它们(找出无用索引可以通...
索引的状态unusable|disable|enable
ORACLE使索引变成不可用的状态:alter index index_name unusable;执行成功后,如果后续需要再用到该索引的话,就必须重建。重建后会自动变成usable。根据ORACLE官方文档的说法(An unusable index must be rebulit , or dropped and re-created , before it can be used.)重建有两种方式1. rebuild alt...
关于oracle中的row piece
有部分初学者在看oracle docs中关于row format的描述时可能会有个疑问,既然row会移动或链接,那它在不同的block中的部分的地址是不是会变化? 要解答这个问题,还得从rowid的结构说起<这里需补充rowid的结构...
关于动态SQL
/* 1.什么是动态SQL? 动态SQL是指在运行PL/SQL块时动态输入SQL语句。在PL/SQL块中只能执行DDL(create、alter、drop)、DCL (grant、revoke)或比较灵活的SQL语句(如select子句不带where条件); 动态SQL的性能不如静态SQL,但是比较灵活; 在PL/SQL块中编写动态SQL语句时需要将SQL语句存...
一行最大column数和row piece-概念
Oracle concepts中,表中的一行最大1000 column,每255 column会分成一个row piece,下面使用实验来证明它创建一个1000 column的行SQL> begin 2 execute immediate 'create table t(col...
关于NLS_DATE_FORMAT的默认格式DD-MON-RR
NLS_DATE_FORMAT参数详解
一、问题的引出 NLS_DATE_FORMAT参数用于设置日期显示格式,设置的方式有多种,不同的方式也会带来不同的结果。 我们知道,参数的设置是有优先级的,日期格式的参数设置也不例外。优先级如下(低到高): ● 初始化参数 < 系统环境变量 < 会话级(session)< 函数 我们先来查看系统默认的日...
resource busy and acquire with nowait specified解决方法
当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。1、用dba权限的用户查看数据库都有哪些锁select t2...
oracle国家字符集与数据库字符集的区别
服务器端:(oracle服务器端字符集)数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。1. 字符集: (1)用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据 (2)用来标示诸如表名、列名以...
设置sqlplus查看数据库表中的中文数据
常用环境配置:1. 简体中文windows cmdset NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK --sqlplus中文set NLS_LANG=American_America.ZHS16GBK --英文2. securecrt,Appearance-character encoding GB2312export LANG=en_US.GB2312export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'3....