首页 oracle序列的改变剖析

oracle序列的改变剖析

举报
开通vip

oracle序列的改变剖析 ? 范围分区 ? 以表中的一个列或一组列的值的范围分区 ? 范围分区的语法: PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... [PARTITION partN VALUE LESS THAN(MAXVALUE)] ); ? 散列分区 ? 允许用户对不具有逻辑范围的数据进行分区 ? 通过在分区键上执行HASH函数决定存储的...

oracle序列的改变剖析
? 范围分区 ? 以 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中的一个列或一组列的值的范围分区 ? 范围分区的语法: PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... [PARTITION partN VALUE LESS THAN(MAXVALUE)] ); ? 散列分区 ? 允许用户对不具有逻辑范围的数据进行分区 ? 通过在分区键上执行HASH函数决定存储的分区 ? 将数据平均地分布到不同的分区 ? 散列分区语法 PARTITION BY HASH (column_name) PARTITIONS number_of_partitions; 或 PARTITION BY HASH (column_name) ( PARTITION part1 [TABLESPACE tbs1], PARTITION part2 [TABLESPACE tbs2], ... PARTITION partN [TABLESPACE tbsN]); ? 列表分区 ? 允许用户将不相关的数据组织在一起 ? 列表分区的语法: PARTITION BY LIST (column_name) ( PARTITION part1 VALUES (values_list1), PARTITION part2 VALUES (values_list2), ... PARTITION partN VALUES (DEFAULT) ); ? 复合分区 ? 范围分区与散列分区或列表分区的组合 ? 复合分区的语法: PARTITION BY RANGE (column_name1) SUBPARTITION BY HASH (column_name2) SUBPARTITIONS number_of_partitions ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... PARTITION partN VALUE LESS THAN(MAXVALUE) ); 引用分区:基于由外键引用的父表的分区的方 法,它依赖已有的父表子表的关系,子表通过外键 关联到父表,进而继承了父表的分区方式而不需自 己创建,子表还继承了父表的维护操作。 1,主表是范围分区,子表是引用分区 2,主表是列表分区,子表是引用分区 3,主表是散列分区,子表是引用分区 间隔分区:可以完全自动地根据间隔阈值创建范 围分区,它是范围分区的扩展 。 在数据仓库中有广泛的应用。 基于虚拟列的分区:把分区建立在某个虚拟列 上,即建立在函数或表达式的计算结果上,来完成 某种任务。 系统分区:不指定分区列,由ORACLE来完成分 区的控制和管理,它没有了范围分区或列表分区的 界限 ? 在已分区的表中插入数据与操作普通表完全相同,Oracle会自动将数据保存到对应的分区 ? 查询、修改和删除分区表时可以显式指定要操作的分区 INSERT INTO SALES3 VALUES (‘P001’, ’02-3月-2001', 2000); INSERT INTO SALES3 VALUES (‘P002’, ’10-5月-2001', 2508); INSERT INTO SALES3 VALUES (‘P003’, ’05-7月-2001', 780); INSERT INTO SALES3 VALUES (‘P004’, ’12-9月-2001', 1080); SELECT * FROM SALES3 PARTITION (P3); DELETE FROM SALES3 PARTITION (P2); ? 分区维护操作修改已分区表的分区。 ? 分区维护的类型: ? 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 事件 - 定期删除最旧的分区 ? 非计划事件 - 解决应用程序或系统问题 ? 分区维护操作有: ? 添加分区 ? 删除分区 ? 截断分区 ? 合并分区 ? 拆分分区 ? 添加分区 – 在最后一个分区之后添加新分区 SQL> ALTER TABLE SALES ADD PARTITION P4 VALUES LESS THAN (4000); ? 删除分区 – 删除一个指定的分区,分区的数据也随之删除 SQL> ALTER TABLE SALES DROP PARTITION P4; ? 截断分区 – 删除指定分区中的所有记录 SQL> ALTER TABLE SALES TRUNCATE PARTITION P3; ? 合并分区 - 将范围分区或复合分区的两个相邻分区连接起来 SQL> ALTER TABLE SALES MERGE PARTITIONS S1, S2 INTO PARTITION S2; ? 拆分分区 - 将一个大分区中的记录拆分到两个分区中 SQL> ALTER TABLE SALES SPLIT PARTITION P2 AT (1500) INTO (PARTITION P21, PARTITION P22); ? 同义词是现有对象的一个别名。 ? 简化SQL语句 ? 隐藏对象的名称和所有者 ? 提供对对象的公共访问 ? 同义词共有两种类型: 私有同义词只能在其模式内访问,且不能与当前模式的对象同名。 ? 序列是用于生成唯一、连续序号的对象 ? 序列可以是升序的,也可以是降序的 ? 使用CREATE SEQUENCE语句创建序列 指定内存中预先分配的序号数 SQL> CREATE SEQUENCE  stu_seq START WITH 1 INCREMENT BY 1 MAXVALUE 2000 MINVALUE 1 NOCYCLE CACHE 10; 通过序列的伪列来访问序列的值 NEXTVAL 返回序列的下一个值 CURRVAL 返回序列的当前值 第一次使用序列中的值的时候,要使用NEXTVAL 使用ALTER SEQUENCE语句修改序列, 不能更改序列的START WITH参数 SQL> ALTER SEQUENCE stu_seq MAXVALUE 5000 CYCLE; 使用DROP SEQUENCE语句删除序列 SQL> DROP SEQUENCE stu_seq; ? 视图以经过定制的方式显示来自一个或多个表的数据 ? 视图可以视为“虚拟表”或“存储的查询” ? 创建视图所依据的表称为“基表” ? 视图的优点有: ? 提供了另外一种级别的表安全性 ? 隐藏的数据的复杂性 ? 简化的用户的SQL命令 ? 隔离基表结构的改变 ? 通过重命名列,从另一个角度提供数据 创建视图的语法: CREATE [OR REPLACE] [FORCE] VIEW view_name [(alias[, alias]...)] AS select_statement [WITH CHECK OPTION] [WITH READ ONLY]; 使用 WITH CHECK OPTION 选项创建视图 create or replace view view2 as select * from student where sno=3 with check option; 使用 ORDER BY 子句创建视图 create or replace view view3 as select * from student order by sno desc; 创建带有错误的视图 CREATE FORCE VIEW ven AS SELECT * FROM  address; 联接视图 相等连接(第一种写法): select table1.column,table2.column from  table1, table2 where  table1.column1=table2.column2 可以使用表的别名,为了书写的简化。 相等连接(第二种写法): select table1.column,table2.column from  table1 inner join table2 on  table1.column1=table2.column2 可以使用表的别名,为了书写的简化。 左外连接(第一种写法): select table1.column,table2.column from  table1 left  outer  join table2 on  table1.column1=table2.column2 可以使用表的别名,为了书写的简化。 左外连接(第二种写法): select table1.column,table2.column from  table1, table2 where  table1.column1=table2.column2(+) 可以使用表的别名,为了书写的简化。 ? 在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE ? 视图上的DML语句有如下限制: ? 只能修改一个底层的基表 ? 如果修改违反了基表的约束条件,则无法更新视图 ? 如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图 ? 如果视图包含伪列或表达式,则将无法更新视图 键保留表 department student CREATE VIEW view_stu_dept AS select  s.sno, s.sname, s.deptno, d.deptname from  student s, department d  where s.deptno = d.deptno; update view_stu_dept set deptno='d' where sno=1;        -- 可以更新 键保留表的 列 update view_stu_dept set department='历史系' where sno=1; --  不可以更新 非键保留表的 列 ? 视图中可以使用单行函数、分组函数和表达式 ? 必须为使用函数或者表达式的字段指定名字 CREATE VIEW item_view AS SELECT itemcode, LOWER(itemdesc) item_desc FROM itemfile; ? 使用DROP VIEW语句删除视图 SQL> DROP VIEW toys_view; ? 索引是与表相关的一个可选结构 ? 用以提高 SQL 语句执行的性能 ? 减少磁盘I/O ? 使用 CREATE INDEX 语句创建索引 ? 在逻辑上和物理上都独立于表的数据 ? Oracle 自动维护索引 ? 索引分为:B树索引(平衡树索引)、位图索引。 ? B树索引分为:唯一索引、组合索引、反向键索引、基于函数的索引 创建 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 索引 SQL> CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs; 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 索引 ? analyze index validate structure; 查看index_stats表中的pct_used列的值,如果pct_used的 值过低,说明在索引中存在碎片,可以重建索引,来提高 pct_used的值,减少索引中的碎片。 ? 唯一索引确保在定义索引的列中没有重复值 ? Oracle 自动在表的主键列上创建唯一索引 ? 使用CREATE UNIQUE INDEX语句创建唯一索引 SQL> CREATE UNIQUE INDEX item_index ON itemfile (itemcode); ? 组合索引是在表的多个列上创建的索引 ? 索引中列的顺序是任意的 ? 如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度 SQL> CREATE INDEX comp_index ON itemfile(p_category, itemrate); ? 反向键索引反转索引列键值的每个字节 ? 通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上 ? 创建索引时使用REVERSE关键字 SQL> CREATE INDEX rev_index ON itemfile (itemcode) REVERSE; SQL> ALTER INDEX rev_index REBUID NOREVERSE; ? 位图索引适合创建在低基数列上 ? 位图索引不直接存储ROWID,而是存储字节位到ROWID的映射 ? 节省空间占用 ? 如果索引列被经常更新的话,不适合建立位图索引 ? 总体来说,位图索引适合于数据仓库中,不适合OLTP中 SQL> CREATE BITMAP INDEX bit_index ON order_master (orderno); ? 基于一个或多个列上的函数或表达式创建的索引 ? 表达式中不能出现聚合函数 ? 不能在LOB类型的列上创建 ? 创建时必须具有 QUERY REWRITE 权限 SQL> CREATE INDEX lowercase_idx ON toys (LOWER(toyname)); SQL> SELECT toyid FROM toys WHERE LOWER(toyname)='doll'; 重建索引 ? ALTER INDEX index_name REBUILD [ONLINE] [NOLOGGING] [COMPUTE STATISTICS]; 其中:ONLINE使得在重建索引过程中,用户可用对原来 的索引进行修改; NOLOGGING表示在重建过程中产生最少的重做条目redo Entry; COMPUTE STATISTICS表示在重建过程中就生成了oracle 优化器所需的统计信息,避免了索引重建之后再进行analyze 或dbms_stats来收集统计信息。 删除索引 SQL> DROP INDEX item_index; ? 可以将索引存储在不同的分区中 ? 与分区有关的索引有三种类型: ? 局部分区索引 - 在分区表上创建的索引,在每个表分区上创建独立的索引,索引的分区范围与表一致 ? 全局分区索引 - 在分区表或非分区表上创建的索引,索引单独指定分区的范围,与表的分区范围或是否分区无关 ? 全局非分区索引 - 在分区表上创建的全局普通索引,索引没有被分区 ? 与索引有关的数据字典视图有: ? USER_INDEXES - 用户创建的索引的信息 ? USER_IND_PARTITIONS - 用户创建的分区索引的信息 ? USER_IND_COLUMNS - 与索引相关的表列的信息 SQL> SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_COLUMNS ORDER BY INDEX_NAME, COLUMN_POSITION Stud_details Sub_dets
本文档为【oracle序列的改变剖析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:0
分类:
上传时间:2020-03-05
浏览量:7