Oracle object学习笔记 1
1 聚集(cluster)
1.1 概念:
用于将不同表中的数据存储到相同的物理数据块中,用于多表数据需要频繁进行联合查询的情况下。多表数据存储在相同数据块后,在对对表进行联合查询时,所需读取的物理块数减少,从而提高查询性能。
需要注意的是对聚集中单表的查询和对聚集中表数据进行修改或插入等事务操作时,性能将受到影响。
每一个聚集存储其中各聚集表的数据并维护该聚集索引,以便对数据进行排序。聚集索引中的索引列,称为聚集键(cluster key),其决定了数据在物理上的存储位置,这些列不应时常更新。聚集键通常是其聚集表中同某个表的主键相关联的某表的外键。
聚集分为普通聚集和哈希聚集两种,其操作方法不太相同。
1.2 建立:
1.2.1 建立普通聚集
--建立聚集personnel:
CREATE CLUSTER personnel
( department_number NUMBER(2) )
SIZE 512
STORAGE (INITIAL 100K NEXT 50K);
--建立聚集表emp:
CREATE TABLE emp
(empno NUMBER PRIMARY KEY,
ename VARCHAR2(10) NOT NULL
CHECK (ename = UPPER(ename)),
job VARCHAR2(9),
mgr NUMBER REFERENCES scott.emp(empno),
hiredate DATE
CHECK (hiredate < TO_DATE ('08-14-1998', 'MM-DD-YYYY')),
sal NUMBER(10,2) CHECK&nb
相关文档:
默认情况下,在Oracle的主机上(linux系统)的Oracle操作系统用户下,以sys用户登陆数据库时可以不用输入密码直接登录。实际上,只要是属于dba组(linux)或osdba组(windows)下,都可以不用密码进行登录。这是认证方式称为OS认证。
这种登录方式的控制,是通过$ORACLE_HOME/network/admin/sqlnet.ora中的:
SQLNET.AUTH ......
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那 ......
--包
create or replace package pkg_query as
type cur_query is ref cursor;
end pkg_query;
--过程
CREATE OR REPLACE PROCEDURE "PRC_QUERY" (p_tableName
in varchar2, --表名
& ......
聚集(cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用。这些公共列构成聚集码。
经常被同时访问的表在物理位置上可以存储在一起。为了将它们存储在一起,就要创建一个簇( c l u s t e r )来管理这些表。表中的数据一起存储在簇中,从而最小化必须执行的I ......