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

2014-11-24 09:03:53 · 作者: · 浏览: 1
词,而同义词在 Oracle之中称为SYNONYM,同义词的创建语法如下:
CREATE [PUBLIC] SYSNONYM 同义词的名称 FOR 用户名.表名称;
范例:下面创建一个同义词为myemp,此同义词指向scott.emp
CREATE SYNONYM myemp FOR scott.emp;
此时创建成功之后,以后在sys用户中就可以使用myemp这个同义词的名称了,但是这个同义词只适合sys用户一个人使用,其他用户无法使用,因为创建的时候没有使用PUBLIC,如果没有使用,则表示创建的不是公共同义词。
范例:创建公共同义词 www.2cto.com
CONN sys/change_on_install AS SYSDBA;
DROP SYNONYM myemp;
CREATE PUBLIC SYNONYM myemp FOR scott.emp;
CONN system/manager;
SELECT * FROM myemp;
但是同义词也只是Oracle自己的概念,知道就行了。
三、索引
索引的主要功能就是用于提升数据库的操作性能。
下面通过代码分析一个最简单的索引操作的问题;
例如,在之前曾经写过如下的操作语句:
SELECT * FROM emp WHERE sal>1500;
此时由于在sal上没有设置索引,所以它的查询过程是采用逐行判断的方式完成的,这种操作随着数据量的上升,则性能会出现越来越多的问题,但是如果说将数据排列一下呢?
例如,现在将工作在内存之中形成这样的一种数据结构;
如果现在假设所有的数据都排列成以上的树形结构的话,同样的查询,现在还会查询全部记录吗?只会查询部分。
在Oracle之中创建索引有以下两种方式:
主键约束:如果一张表中的列上存在了主键约束的话,自动创建索引;
手工创建:在某一个操作列上指定一个索引;
www.2cto.com
范例:在emp.sal字段上创建索引
CREATE INDEX emp_sal_ind ON emp(sal);
虽然索引创建完成了,但是要想观察出特点基本上是不可能的。
但是这种索引有一个最大的问题,即:如果要想实现性能的提高,则必须始终维持以上的一棵树,那么如果说现在这棵树上的数据需要频繁修改的话,则代码的性能肯定会有所降低。
所以一般索引只使用在不会频繁修改的表中,而如果一张表上频繁修改数据且又使用了索引的话,性能肯定会严重降低,所以性能的揽永远都是相对的。
以上的索引只是Oracle十几种索引中的一种,也是最简单的一种,称为B树索引,还有位图索引,反向索引,函数索引等等。