oracle的分区表、分区索引和全局索引部分总结
分区表、分区索引和全局索引:
在一个表的数据超过过2000万条或占用2G空间时,建议建立分区表。
create table ta(c1 int,c2 varchar2(16),c3 varchar2(64),c4 int constraint pk_ta primary key (c1)) partition by range(c1)(partition p1 values less than (10000000),partition p2 values less than (20000000),partition p3 values less than (30000000),partition p4 values less than (maxvalue));
增加分区,删除分区
alter table ta add partition p_xx values less than (90000000000);
alter table ta drop partition p_xx [update global indexes] ;
create table AAA
(
ID NUMBER not null,
AREAID VARCHAR2(128),
VCHAR6 VARCHAR2(300)
) partition by list (vchar6)
(
partition p_0 values (default), --在建list分区表时候要指定落不到其他分区的数据
partition p_1 values ('1','2','3'),
partition p_2 values ('4,5,6,7,8,9,10')
);
分区索引和全局索引:
分区索引就是在所有每个区上单独创建索引,它能自动维护,在drop或truncate某个分区时不影响该索引的其他分区索引的使用,也就是索引不会失效,维护起来比较方便,但是在查询性能稍微有点影响。
create index idx_ta_c2 on ta(c2) local (partition p1,partition p2,partition p3,partition p4);
或者 create index idx_ta_c2 on ta(c2) local ;
另外在create unique index idx_ta_c2 on ta(c2) local ;系统会报ORA-14039错误,这是因为ta表的分区列是c1,不支持在分区表上创建PK主键或时主键列不包含分区列,创建唯一约束也不可以这样。 oracle
全局索引就是在全表上创建索引,它可以创建自己的分区,可以和分区表的分区不一样,也就是它是独立的索引。
在drop或truncate某个分区时需要创建索引alter index idx_xx rebuild,也可以通过alter table table_name drop partition partition_name update global indexes;实现,但是如果数据量很大则要花很长时间在重建索引上。
可以通过查询user_indexes、user_part_indexes和user_ind_partitions视图来查看索引是否有效。
create index idx_ta_c3 on ta(c3);
或者把全局索引分成多个区(注意和分区表的分区不一样):
create index idx_ta_c4 on ta(c4) global partition by range(c4)(parti
相关文档:
oracle
误删除日志文件后的处理方法!
解决方法背景
1
整理c
盘的垃圾文件,吧oralce
的。log
日志文件删除。
2
然后oralce
一直不能使用,提示tns
有问题,
然后再往上找资料,一直没有解决掉,后来看到一边文章如下,问题解决掉了,特和大家分享!
======================================== ......
oracle 10g
安装完成后,
登陆EM
输入系统用户名和密码和数据库用户名和密码后,
点启动报错,
可能是因为数据库的状态为装载或不装载,
始终无法登陆进EM
的解决办法......
状况:
打开http://ty-:5500/em
,系统显示如下信息:
数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。单击 ......
ORACLE PL/SQL与SQL SERVER T-SQL一些比较
字符串连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ 。
Oracle查询如下所示:Select ‘Name’ || ‘Last Name’ from tableName
SQL Server查询如下:Select ‘Name’ + ‘Last Name’
GUID
Oracle用SYS_GUID ......
ORACLE常用SQL优化hint语句
http://oracle.chinaitlab.com/induction/802186.html
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROW ......
在启动oracle服务时,首先会在服务端找
1.spfile<sid>.ora
用于启动例程,如果找不到spfile<sid>.ora,则使用服务端缺省的
2.spfile
来启动,如果缺省的spfile也找不到,则使用
3.init<sid>.ora
来启动例程,最后则是使用缺省的
4.pfile
.当然你也可以指定pfile来覆盖缺省spfile启动例程,或通过spfile= ......