
oracle
wo61356491
这个作者很懒,什么都没留下…
展开
-
oracle的约束条件异常处理
不论是修改还是添加约束添加 exceptions这个对象对应的字段有如果给一个表添加约束条件create table constTable_1as select t.id,t.code from thd_stkstockin t;create table const_exceptions( row_id rowid, onwer varchar2原创 2013-11-01 10:40:37 · 567 阅读 · 0 评论 -
列表分区
根据一个分区键值,将根据键值进行分类,分别放在不同区间里create table list_example(list_key number,data varchar2(20))partition by list(list_key)(partition list_part1 values(0,1) tablespace example,partition list原创 2013-12-19 23:06:21 · 725 阅读 · 0 评论 -
关于分区表修改问题
修改分区数据问题:1、如果修改分区列时:修改后导致修改的行所在分区发生改变修改后分区没有发生改变2、修改非分区列修改后不会导致修改行所在分区改变第一种:导致修改后行所在分区发生变化,需要将所在表设置为 行可以移动alter table partition_table enable row movement;原创 2013-12-20 11:54:51 · 806 阅读 · 0 评论 -
分区表概述
分区:将一个表和一个索引物理上分解为更小、更容易管理。逻辑上是一个表或者一个索引。物理上分割成多个分区,每个分区是一个独立的段(对象),可以独自处理,也可以作为一个大对象独立处理。分区作用:1、提高数据库可用性:分区中的某一个或者几个分区不可用,并不意味着其他分区不可用drop table t cascade constraint;create table t (id numb原创 2013-12-18 16:39:34 · 437 阅读 · 0 评论 -
间隔分区
间隔分区是Oracle 11g第一版本添加功能。间隔分区以一个分区为起点,根据定义的间隔,让数据自动增加分区。这样varchar类型的无法作为分区键值create table interval_example(starttime date,name varchar2(20))partition by range (starttime)interval(numtoym原创 2013-12-19 23:47:27 · 633 阅读 · 0 评论 -
区间分区
区间分区根据分区值的范围,划定分区create table range_example(range_dateTime date,data varchar2(20))partition by range(range_datetime)( partition range_part1 values less than(to_date('2013-12-19','YY原创 2013-12-19 22:04:14 · 601 阅读 · 0 评论 -
散列分区
散列分区就是使用哈希函数,对键值进行hash,来确定将记录放在那个分区。oracle建议分区数为2的n次方个,从而得到分区最佳。散列分区能将数据均匀分布在各个区间中create table hash_example(hash_key number,data varchar2(20))partition by hash(hash_key)( partition h原创 2013-12-19 22:53:58 · 1110 阅读 · 0 评论 -
引用分区
引用分区:处理父子表对等分区的问题,以这种方式处理分区,父表与子表的分区是一对一关系。在维护主子表。如果不是按照引用分区,即使父子表分区一致,也会因为引用的约束,导致主表数据无法维护:例如下面的表,如果子表中将父表的startDate时间复制过去,这样会导致在删除主表2013-12-30之前的数据时,oracle报违反外键约束条件,即使子表中这个月份对应的数据删除了,也会的。使用引用分区后,子原创 2013-12-20 11:04:25 · 674 阅读 · 0 评论 -
组合分区
组合分区是以区间分区、列表分区、散列分区组合而成。纵向表头是:顶层分区机制横向表头是:子分区机制,内容是支持版本区间分区列表分区散列分区 区间分区11g 1版本支持9i 2版本支持9i 1版本支持列表分区11g 1版本支持11g 1版本支持11g 1版本支持散列分区11g 2原创 2013-12-20 11:42:18 · 577 阅读 · 0 评论 -
聚簇表
聚簇:将一组表中相同列存放在相同数据块上,就是把相关数据存放在一起。create cluster cluster_emp_dept(no number ) size 1024;---创建簇 size就是确定一个cluster键占用多少空间。create index cluster_emp_dept_inx on cluster cluster_emp_dept ;--创建聚簇索引 这原创 2013-11-28 01:14:23 · 857 阅读 · 0 评论 -
索引分区
有两种:1、局部索引(Local index),每一个分区都有一个分区索引,而且只索引该分区的数据。该分区的所有数据都索引条目都存放在该分区索引中,该索引分区条目都存放在该该分区数据。2、按照区间或者散列对索引进行分区:成为全局分区索引(global partition index),一个索引可以指向任何区/全部区。全局分区索引与表分区数一般不一样,局部分区跟表分区一致。局原创 2013-12-20 14:44:45 · 659 阅读 · 0 评论 -
函数索引
函数索引提高了扩展性create or replace function getUpper(sName varchar2)return varchar2deterministic as ---告诉oracle此函数是确定性 beginreturn upper(sName);end;create index ind_emp_fu原创 2013-12-11 19:46:02 · 453 阅读 · 0 评论 -
BItMap位图索引
位图索引是为了数据仓库和查询系统,不适合OLTP系统或者多个并发频繁地更新。它是一种结构,使用一个索引键条目存储指向多行的指针。原创 2013-12-11 08:33:11 · 524 阅读 · 0 评论 -
oracle merge使用
merge语句能够替换oracle匿名模块,根据源数据与目标数据进行比较,从而得出结果必配matched就执行 不必配就执行 有点像decode/case when then 但是它比这些复杂得多但是有些写法需要注意在update语句时,update的字段不能包含匹配条件的字段例如:merge into merge_1 tusing thd_stkstockout t1原创 2013-11-01 09:41:26 · 545 阅读 · 0 评论 -
降低高水位方法
第一种方法:alter table table_name shrink space弊端:会导致行rowid改变优点:能够释放delete删除的空间select * from user_segments t where t.segment_name=upper('thd_stkstockindtl');alter table thd_stkstockindtl enable row原创 2013-11-27 18:16:33 · 1102 阅读 · 0 评论 -
ORACLE堆表和索引组织表IOT优缺点
堆表:缺点:主键索引和表数据分离,增加数据所占用空间。可能主键索引的所占用的空间大于该表所对应的空间添加或者修改索引字段时需要维护索引,索引还会产生日志。增加IO次数(通过索引的rowid来查找rowid对应块)。数据会按照插入行所需要的空间大小按照一定顺序查找所需要的位置,没有一定顺序。优点:容易维护,如果直接获取主键信息并且条件中含有字段除了主键字段外没有其原创 2013-11-27 22:24:49 · 3727 阅读 · 0 评论 -
索引物理组织
创建一个有组织的organized和一个无组织的disorganized表 估计每一个块有100行 (1024*8)/80多create table organized ( x int,y varchar2(80));alter table organized add constraint organized_pk primary key(x);-------插入数据begin原创 2013-12-09 10:22:40 · 541 阅读 · 0 评论 -
聚簇因子
聚簇因子:表明表中数据按照索引的顺序的有序程度。create table organized ( x int,y varchar2(80));alter table organized add constraint organized_pk primary key(x);begin for i in 1..100000 loop inse原创 2013-12-09 11:22:46 · 474 阅读 · 0 评论 -
嵌套表和对象表
创建对象类型create or replace type emp_type as object( name varchar2(200));创建对象类型的表类型create or replace type emp_tab_type is table of emp_type;创建嵌套关系的表create table include_dept( name varc原创 2013-12-02 17:01:05 · 780 阅读 · 0 评论 -
临时表
临时表是会话/事务中的中间集合,它保存的数据只对本次会话/事务可见。即使提交其他会话都无法查看。不存在多用户并发问题,不存在一个会话阻塞另一个会话问题,即使锁住也不会有影响其他会话使用。临时表增删改不会产生redo,但是它会产生undo,undo会产生redo日志,所以他不会直接产生日志,会间接产生redo。delete和update产生的undo比较多。临时表空间分配:临时表会在当前原创 2013-12-02 17:59:45 · 599 阅读 · 0 评论 -
压缩索引
创建压缩索引从串联索引中去掉冗余压缩索引特征:每个条目分为两项:前缀和后缀前缀:建立在串联索引的前几列,这些列有许多值重复后缀:索引键后几列,是前缀索引所在索引中唯一部分。create table ind_test as select * from all_objects;drop table id_stats;create table id_stats as原创 2013-12-03 15:37:26 · 644 阅读 · 0 评论 -
B树索引
B树索引 结构类似于二叉树的平衡树。目标是尽可能减少oracle查找数据的时间 树的底层是叶节点(leaf node)或者叶子块(leaf block),它包含了索引键值和键值所对应的行的rowid 叶节点之上所对应的是分支块(branch block) 索引特点: 1、根据索引键值和rowid进行排序 2、叶子节点之原创 2013-12-03 15:36:55 · 689 阅读 · 0 评论 -
反向键索引
反向键索引为了减少叶节点竞争,这些列主要是序列产生或者时间戳。没插入一条记录,索引都会按照索引列值的大小进行排序,如果使用序列,导致插入集合的索引聚集在少量叶节点上,当大量用户修改或者读取它是,访问比较集中的几个块,导致块竞争。使用反向键索引,将插入集合的索引均匀分布在叶节点上。select 123123,dump(123123),reverse('123123') from dual;原创 2013-12-04 16:06:56 · 858 阅读 · 0 评论 -
分区数据交换
数据交换表面看上去是两个段里面的数据进行交换,其实就是数据字典的交换,但是表结构必须一样下面一个例子交换分区和索引创建分区create table Part_index_example(x number ,y number,data varchar2(20))partition by range(x)(partition Part_index_part1原创 2013-12-20 21:09:46 · 490 阅读 · 0 评论