索引、视图和同义词、序列

---恢复内容开始---

一、索引

使用索引的好处:1、大大加快数据的检索速度;2、显著减少查询中分组和排序的时间;3、通过索引,在查询过程中,使用优化隐藏器,提高系统的性能。

缺点:1、创建和维护需要耗费时间,并且随着数据量的增大,时间花费会越来越大;2、索引需要占据一定的物理空间;3、在对表中的数据进行动态修改时,索引也要维护,这就降低了维护的效率。

创建索引的准则:

1、要在经常使用的列上创建索引;2、在数据量大的时候创建索引;3、在经常用到连接的列上创建索引;4、在经常需要进行分组、排序的列上创建索引;5、在经常出现在where子句中的列上创建索引。

索引的分类:B-树索引:最常用的索引,适用于不同行相对于所有行很高的情况下;

位图索引:主要使用在不同行相对于所有行值很低的情况下。

B-树索引的创建语句:

create index emp_index_01 on t_employee

pctfree 25

tablespace users;

创建位图索引的语句:

create bitmap index emp_index_02 on t_employee

pctfree 25

tablesapce users;

对原有的分区表进行改变后,表的索引会被改变,可能无法进行正常的插入操作,解决办法:重建索引:

实现语句:

alter index 索引名 rebuild tablespace 空间名;

删除索引:

drop index 索引名。

二、视图

视图的好处:1、可以将用户和原有的表隔离开,让用户只能看到规定的几列;

2、给用户添加权限,让用户只读该视图,不能进行写操作,增加数据的安全性;

3、把经常使用的查询定义为视图,可以再多表之间建立视图,简化操作。

创建视图代码:

create or replace view 视图名称 AS

select A.*,B.*

from A ,B

where A.id=B.id

with 权限(read only)

三、同义词

使用同义词的优点:

1、简化对表的访问,隐藏表的拥有者;

2、扩展了数据库的适用范围,能够在不同的数据库用户之间实现无缝连接

创建同义词代码如下:

create or replace [public] synonym 同义词名 for 表名

在使用同义词时,直接用同义词替换表名即可。

四、序列

序列的优点:

1、自动提供唯一的ID

2、可以被共享

3、将序列值装入内存,可以提高访问的速度

创建序列:

create sequence 序列名

increment by 3 大于0为递增序列,步间距为3,小于0,为递减序列

start with 1---起始值

maxvalue 10000----最大值

nocycle ----无循环

nocache ---- 不放入内存

在使用序列的时候,直接在insert 语句中调用序列名.nextval即可

注:

在使用序列的时候,序列会随着生成的次数,越来越大,如皋需要重新开始的话,可以重置序列

具体操作;

select 序列名.nextval from dual;

alter sequence 序列名 increment by -(查处的值-1)

select 序列名.nextval from dual;

alter sequence 序列名 increment by 1;

继续使用即可。

---恢复内容结束---

时间: 2024-11-09 03:22:34

索引、视图和同义词、序列的相关文章

【Oracle】第三章索引视图序列

第三章索引视图序列 序列是用来生成唯一,连续的整数的数据库对象.序列是用来自动生成主键或唯一键的值. CREATE SEQUENCE  sequence_name START WITH  integer INCREMENT BY  integer MAXVALUE   integer|nomaxvalue MINVALUE    integer|nominvalue CYCLE|NOCYCLE CACHE  integer|nocache; START WITH     指要生成的第一个序列号,

Oracle笔记(十三) 视图、同义词、索引

Oracle笔记(十三) 视图.同义词.索引 一.视图 在之前所学习过的所有的SQL语法之中,查询操作是最麻烦的,如果程序开发人员将大量的精力都浪费在查询的编写上,则肯定影响代码的工作进度,所以一个好的数据库设计人员,除了根据业务的操作设计出数据表之外,还需要为用户提供若干个视图,而每一个视图包装了一条条复杂的SQL语句,视图的创建语法如下: CREATE [OR REPLACE] VIEW 视图名称 AS 子查询; 范例:创建一张视图 CREATE VIEW myview AS SELECT

Oracle中视图和同义词的区别

视图和同义词分别都是数据库中的对象名称,它们都不对应实际的数据存储,都依赖其他对象的存在而存在.视图:视图可以被看成是虚拟表或存储查询.除非是索引视图,否则视图的数据不会作为非重复对象存储在数据库中.一般是基于一个或多个数据表经数据查询语句构建而成:视图可以再被用于数据查询语句中. 同义词:是架构范围内的对象的另一名称.通过使用同义词,客户端应用程序可以使用由一部分组成的名称来引用基对象,而不必使用由两部分.三部分或四部分组成的名称.可以理解为是对数据库中一个对象的快捷方式或者在特定范围内的别名

触发器 索引视图 游标 事务

  触发器 create trigger tr_banj_insert on t_banj after insert as begin declare @log varchar(50) select @log='插入的记录:banj_mc=' +banj_mc+'banzr='+banzr from inserted --新数据 insert into t_log (biaomc,caoznr) values('t_banj',@log) end create trigger tr_banj_d

hadoop Hive 的建表 和导入导出及索引视图

   1.hive 的导入导出 1.1 hive的常见数据导入方法 1.1.1 从本地系统中导入数据到hive表 1.创建student表 [ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符.[STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [STORED AS TEXTFILE],然后从本地直接拷贝到HDFS上,hive直接可以识别数据. 2本地创建文件

SQLServer中使用索引视图(物化视图)

物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会有质的提升,但是其有缺点,会占用,可以设置它定时自动更新一次,也可以手动更新,当然也是可以设置及时更新的,但是会拉慢基表的增删改查操作,在这里我只讲思路,具体的话大家可以自己去研究. + ? --创建物化视图,每天晚上22:00:00自动更新 create materialized view VM_

视图性能优化——索引视图

视图性能优化——索引视图http://blog.csdn.net/eriato/article/details/41039985 索引视图 索引视图有助于提高 T-SQL 的性能 Itzik Ben-Gan T-SQL 是一种允许您以逻辑方式设计请求的语言.这里所说的“逻辑”的意思是,当编写查询时,您指定的是希望获得什么 结果,而不是希望以何种方式 获得结果.对如何处理查询进行设计是查询优化器的工作.您所遇到的需要 T-SQL 解决方案的每个问题通常都有许多不同的解决方案,它们最终会返回同样的结

SQLServer中使用索引视图

在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你查询它之前,视图并不做任何事情. 索引视图 在SQL Server 2000和2005中,你能够给视图增加索引.但是,如果视图只是一个保存在数据库中的查询定义,在运行前没有自己的数据,你如何给那个定义建立一个索引呢?嗯,这比较麻烦. 索引视图是一个已被物化或保存在数据库中的视图.当基本表更新时,给视

SQL Server索引视图以(物化视图)及索引视图与查询重写

经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感觉, SQL Server也有类似于Oracle物化视图的功能,只不过叫做索引视图. 说实话,还是物化视图听起来比较合适,与普通视图比,物化视图就是直接将数据存储起来了 SQL Server中的索引视图也具有查询重写的功能, 所谓的查询重写,就是如果符合条件的数据在索引视图上,并且查询列都包含在在索引视图上,此时可以直接通过查询索引视图来替代基于原始表的查询 依旧惯例,先上代码做一个测试环境 -

物化视图,索引视图,函数索引,创建索引时使用DESC

老板交给的一个任务,搜了一下资料,觉得还是总结一下比较好.假如以后用到了呢?围绕两个主题:一是视图上能够建索引,二是在创建索引时是否可以使用DESC关键字. 一.能否在视图上创建索引 因为普通的视图并没有存储实际的信息,它所操作的数据来自于基本表,所以在普通视图上不可以创建索引. 在oracle中执行如下的语句,会报"视图不适用于此处"的错误 create view test_car as select license from cars; create index index_vew