封转数据库字段

varray 表

CREATE OR REPLACE TYPE EMPLOYER_NAME AS OBJECT
(
  E_NAME VARCHAR(40)
)
;

CREATE OR REPLACE TYPE PRIOR_EMPLOYER_NAME_ARR AS VARRAY(10) OF EMPLOYER_NAME;

CREATE OR REPLACE TYPE FULL_MAILLING_ADRESS_TYPE AS OBJECT(STREET VARCHAR2(80), CITY VARCHAR2(80), STATE CHAR(2), ZIP VARCHAR2(10));

CREATE OR REPLACE TYPE EMPLOYEE AS OBJECT(LAST_NAME VARCHAR(40), FULL_ADDRESS FULL_MAILLING_ADRESS_TYPE, PRIOR_EMPLOYERS PRIOR_EMPLOYER_NAME_ARR);

CREATE TABLE EMP OF EMPLOYEE;

INSERT INTO EMP VALUES('Jim', FULL_MAILLING_ADRESS_TYPE('Airplan Ave', 'Rocky', 'NC', '2343'), PRIOR_EMPLOYER_NAME_ARR(EMPLOYER_NAME('IBM'), EMPLOYER_NAME('APPLE'), EMPLOYER_NAME('CNN')));


回滚

DROP TYPE PRIOR_EMPLOYER_NAME_ARR FORCE;
DROP TYPE FULL_MAILLING_ADRESS_TYPE FORCE;
DROP TYPE EMPLOYEE FORCE;
DROP TYPE EMPLOYER_NAME FORCE;
DROP TABLE EMP;

COMMIT;

封装字段的查询

 SELECT P.LAST_NAME, PRIOR_EMPLOYERS.*
      FROM EMP P, TABLE(P.PRIOR_EMPLOYERS) PRIOR_EMPLOYERS
     WHERE P.LAST_NAME = 'Jim';

SQL 执行过程
1,检查安全性,确保sql数据执行者有权限执行
2,检查sql语法
3,可能发生的查询重新书写
4,执行

  1.创建执行计划
  2.生产器接受经过解析的sql
  3.捆绑执行计划 
  4.执行执行计划 
  5.读取结果记录
  6.排序结果集
  

SQL 执行级别
图片描述
数据访问方式:
1,全表扫描 db_file_multiblock_read_count
顺序读取,知道结尾
1.当表中不存在索引
2.查询中不包含where字句
3.内置函数中的索引无效
4.like操作 %开头
5.使用基于成本优化器 数据量少时
6.当初始化文件中存在optimizer_mode = all_rows

2, 赛列获取

Oracle对单表簇和多表簇进行散列存储,用来在连接操作中减低输入 输出

3,ROWID 访问
通过Rowid访问单条数据最快的方式,在实际的引用中,首先从索引中收集ROWID,然后通过ROWID进行数据读取

索引访问方式
索引都可以看做一组符合主键和ROWID的组合,索引访问的目的是收集对目标快速读取时所需要的ROWID
B树索引,位图索引 基于函数的索引.

索引范围扫描:读取一个或者多个ROWID 索引数值升序排列

eg:select * from table where a = 'a';

快速全索引扫描

eg: select distinct color,count(*) from table group by color;

单个索引扫描:读取一个单独的ROWID
降序索引范围扫描:读取一个或者多个ROWID 索引数值降序排列
AND - EQUALS:

select * from table where a = 'a' and b > 34; 

从where字句中收集多个ROWID

连接操作
嵌套循环连接
图片描述
散列连接
图片描述
排序合并连接
图片描述

排序大小 sort_area_size_init.ora 参数
磁盘排序的执行速度要比内存排序的的执行速度慢14000倍

表连接的综合效率比较

图片描述

sql优化器
目的是为sql语句生成最快 并且好资源最少的执行计划
1,基于规则的优化器

 步骤 
   对于在where子句中的每一个表
   - 生成一个可行的执行计划列表,这个列表中列出所有可以用来访问表的路径
   - 为每一个执行计划指定级别数值
   - 选择级别数值最低的计划
   - 对结果集的选择级别最低 连接方法进行评估
   

2,基于成本的优化器

图片描述


MichaelDuan
1.8k 声望39 粉丝