【学习笔记】分区表和分区索引——管理索引分区(四)
1、增加索引分区(add index partitions) add index partitions 只适用于 hash 的 global 索引。 语法: alter index indexname add partition ptname tablespace tablespacename; 2、删除索引分区(droping index partitions) 语法:alter index indexname drop partition ptname; 注意:只针对gloabal索引的range分区;drop partition 删除的只是分区,数据还在表中,导致删除分区后,数据存储到比它 更高的区间值的索引分区里了。另外global索引必须建maxvalue分区,并且该分区不能删除。 3、重新编译索引分区(rebuilding ind
【学习笔记】分区表和分区索引——分区表的其他管理(三)
2、收缩表分区(coalesce partitions)收缩表分区仅适用于 hash 分区或复合分区的 hash 子分区,执行之后会自动收缩当前的表分区;但是对于分区表如果只有一个分区,则执行收缩操作会报错。语法:alter table tbname coalesce partition;注意:收缩的只是分区,并不影响数据;但是视被收缩分区中数据的多少,收缩表分区也会涉及到IO操作;如果执行时没有指定 update indexes 子句,收缩过程中有数据改动的分区其 local 和 global 索引都会失效。3、删除表分区(drop partition)除 hash 分区和 hash 子分区外,其他的分区格式都支持删除表分
学习笔记】分区表和分区索引——添加表分区(二)
一、增加表分区(add partition)增加表分区适用于所有的分区形式,语法是:alter table tbname add partition ...但是,对于像 list、range 这种存在范围值的分区,所要增加的分区值必须大于当前分区中的最大值(如果当前存在maxvalue 或 default 分区,add partition 会报错,这种情况之能适用 split)。示例如下:(1)增加 range 分区表的分区SQL> create table t_partition_range (id number,name varchar2(50))2 partition by range (id)(3 partition t_range_p1 values less than (10) tablespace test1,4 partition t_range_p2 val
【学习笔记】分区表和分区索引——概念部分(一)
上周看了《[三思笔记]全面学习分区表及分区索引.pdf》,按学习顺序记录将学习笔记粘出来如下:当表中的数据量不断增加,查询数据的速度就会变慢,程序性能也会降低,这时候或许可以考虑将表分区。表进行分区后,逻辑上表仍然是一个逻辑表,但是由于进行了分区,就可以将每个分区分别存放到不同的物理文件里(每个分区对应一个段,一个或多个段可以存放到一个表空间,而一个或多个物理文件又可以存放到一个表空间里,结果就是可能每个分区存放到不同的物理文件里)一、使用分区的优点:1、增强可用性:如果表的某个分区出现故障,表在其他分
恢复oracle中drop掉的表
今天在现场核查了一个昨天刚部署的过程,核查结束后,把测试过程时用的两个临时表给drop掉,完事了啊。不一会现场就有人打电话过来,说表没了。连到现场查看回收站,汗,自己把正式表给误删除了。赶紧把表从回收站给恢复过来,记录下来警示自己:1、删除表操作:drop table test_range_table;2、查询需要找的表是不是在回收站里Select object_name,original_name,partition_name,type,ts_name,createtime,droptimefrom recyclebin WHERE ORIGINAL_NAME = 'TEST_RANGE_TABLE';3、如果在回收站里按下面办法进行恢复FLASHBACK TABLE TEST_RAN
pl/sql动态执行sql语句时报错:ORA-00911: 无效字符 ORA-06512: 在 line 14
今天测试的时候遇到两个错误提醒,写下来给自己提个醒:--建测试表create table test_table(tablename varchar2(50),selectsql clob);insert into test_table values('dual','select sysdate from dual;');commit;--pl/sqlSQL> declare 2 cursor c is select selectsql from test_table; 3 cur c%rowtype; 4 v_selectsql varchar2(30000); 5 v_date date; 6 begin 7 open c; 8 fetch c into cur; 9 if c%notfound then 10 return; 11 end if; 12 v_selectsql := cur.selectsql; 13 execute immediat
博客地址http://space.itpub.net/24496749
http://space.itpub.net/24496749
借鉴)数据库开发秘诀
开发数据库程序时,有条简单的秘诀:1、 如果可能的话,应该用单条SQL语句完成。2、 如果不能用单条SQL语句完成,那么就用PL/SQL完成工作。3、 如果不能用PL/SQL完成,尝试java存储过程(Java Stored Procedure)4、 如果不能在java中完成,在c外部过程中完成。5、 如果不能在c外部过程中完成,可能要认真考虑下是否有必要完成它。仅作参考。[@more@]
char(n)和varchar2(n)区别
1、 1、varchar2(n):该数据类型用于定义可变长度的字符串,其中n用于指定字符串的长度,其最大值为32767个字节。当使用该数据类型定义变量时,必须指定长度。需要注意的是:当在pl/SQL中使用该数据类型操纵varchar2表列时,其最大长度不超过4000字节。Dbms_output.put_line输出字符串时,允许输出的最大长度为2000个字节。2、 2、 char(n):用于定义固定长度的字符串。其中n用于指定字符串的长度,其最大值为32767字节。当使用该数据类型定义变量时,如果没有指定n则其默认为1,;当在pl/SQL块中使用该数据类型操作char表列时,其数值的长
10g及以前版本execute immediate不支持clob类型,11g已经支持
execute immediate V_INSERTSQL||V_SQL;后面是我拼成的一个insert...select类型为clob类型的语句。昨天在公司测试的时候,公司数据库是11g的,没有问题。今天在家测试,家里电脑是10g,出现错误:PLS-00382: expression is of wrong type上网查了下资料说是:11g已经支持动态sql后clob类型,但是之前各个版本不支持。另外测试length支持的最大字符数是4000 [@more@]
用命令查看当前登录数据库版本(3种方法)
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 22 18:25:32 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options第一种:SQL> select version from v$instance;VERSION-----------------10.2.0.1.0第二种:SQL> select version from product_component_version;VERSION--------------------------------------------------------------------------------10.2.0.1.010.2.
Oracle control 配置
Microsoft Windows XP [版本5.1.2600](C)版权所有1985-2001 Microsoft Corp.C:Documents and Settings赵双双>emca -config dbcontrol db -repos recreateEMCA开始于2010-7-14 14:52:27EM Configuration Assistant, 11.1.0.5.0正式版版权所有(c) 2003, 2005, Oracle。保留所有权利。输入以下信息:数据库SID: orcl已为数据库orcl配置了Database Control您已选择配置Database Control,以便管理数据库orcl此操作将移去现有配置和默认设置,并重新执行配置是否继续? [是(Y)/否(N)]: y监听程序端口号: 1522SYS用户的口令:DBSNMP用户的口令:SYS
怎么对表中已经重复的字段建立唯一性索引?(该字段已经有普通索引)
首先可以肯定的是,在一般情况下是不能完成对有重复数据的字段添加唯一性索引的。但是在建唯一性索引的时候可以不检查原来已经存在的数据,语法如下:alter table test_tab add constraint pk_p1 unique(p1) using index novalidate;[@more@]
Autotrace的设置与使用
一、如何设置Autotrace?SQLPLUS的AutoTrace是分析SQL的执行计划、执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。通过以下方法可以把Autotrace的权限授予任何用户,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。C:Document and SettingsAdminstrator> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on星期一6月21 16:33:18 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0
挪窝窝
我itpub的空间地址是:http://space.itpub.net/?24126637由于用户名字为“DBA在路上”含有汉字,不允许注册博客,所以重新申请用户名“shuangoracle”,并注册itpub博客。希望自己在这里认认真真地向各位前辈学习,秉着每天进步一点点的精神脚踏实地的学好数据库,向自己的梦想和目标前进。[@more@]