rowid:一条记录的物理位置(一定唯一的,可用于删除重复记录)
dbms_rowid:
object_id->file_id->block_id->row_id
block_id:最小I/O单位
Index记录了每条记录的rowid
create index testc1 on test (c1);
在test表的c1字段上建立一个testc1的索引。
Index->二叉排序树:叶子节点放的是key和rowid的对应关系
索引:
1.数据库对象-->user_indexs
2.Orcale用rowid来提高提取行记录的速度
3.通过快速路径访问方法来减少磁盘的I/O,从而实现快速数据定位
4.在物理上索引和表是独立的,逻辑上是相连的,drop table索引就不存在了,drop索引table还在,truncate table后索引结构没有了,但是索引本身存在。
5.索引的维护是系统自动做的。
索引维护的代价太高:尤其是DML中的update(先删除,在插入)代价最大
索引为select而生,牺牲了空间和维护为代价。
索引的创建:
自动创建:pk和uk建立。(唯一性索引)
手动建立:
建立索引的原则:
1.where子句中经常用到的,join 条件中(大表建立索引)
2.表大,查询的结构少
3.字段的值的重复率低
4.索引不维护空值,bitmap index维护空值
5.
空值的问题:子查询,nvl,排序,表达式,is not null
set timing on 设置语句执行时间
set autotrace on
sqlplus uname/pwd @jiaoben.sql
a.$ORACL_HOME/rdbms/admin/*plan*--->普通用户执行
b.$ORACL_HOME/sqlplus/admin/plustrace ---> sysdba执行
c.grant plustrace to username
d.
在where里不要写表达式,尽量不要用函数,否则索引用不了。部分隐式数据类型转换(与使用函数是一样的),所以尽量避免隐式数据类型转换发生。is null会做全表扫描。
like可以做全表范围内的扫描,开始的用字符,别用"%"。
基于函数的索引。函数转换要用在DML,也就是说在向表中录入数据时要录入干净的数据。
查询效率低的时候,先看是否做全表扫描。
能做DESC的table,view
dict USER_VIEWS
View 相对于基表来说没有提高速度,但是操作简单了。View可以限制数据的访问,拼表(union,intersect,minus)。
union all 不会触发排序动作,union 要排重,所以要触发排序动作。如果union all和union结果相同,则要使用union all可以减少排序所带来的开销。
给view可以加约束。
复杂view可以用insted of 触发器来部分实现DML
with check option 设置插入条件(where 子句中的条件),不符合的就插入不进去。
with read only 只能做select
删除表后,相关的视图,函数,触发器,存储过程都会无效的。
full outer join: t1=t2(+) union t1(+)=t2
先做外连接,然后过滤。
过滤条件在内连接前先执行
sqlplus root/1234@tarena20(主机字符串)
$ORACLE_HOME/network/admin
tnsnames.ora
文件中的:
tarena20={}中的就是主机字符串。
Sqlplus uname/passwd (不需要网络监听,是在本机进程间通信)
Sqlplus uname/passwd@主机字符串(需要通过监听程序来连接)
分享到:
相关推荐
"李兴华Oracle笔记整理" 李兴华Oracle笔记整理是Oracle核心基础知识的总结,涵盖了Oracle的安装、SQLPlus基本命令、scott用户的表结构、增删改查、分页处理、事务处理、DDL、三范式、用户权限管理、数据的备份与...
以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...
"老方块 ORACLE 教学笔记 整理"是一份专门针对Oracle数据库学习的资料集合,旨在帮助自学者在家轻松掌握Oracle的核心知识和技能。 Oracle数据库系统的基础是SQL(结构化查询语言),它是用于管理和操作数据库的标准...
老方块 ORACLE 教学笔记 整理 第1堂体验课-SQL技巧篇(一) 第2堂体验课-SQL技巧篇(二) 第3堂体验课-ORACLE并发事务和锁机制 第4堂体验课-索引机制 第5堂体验课笔记 ORACLE体系结构(一) 第6堂体验课笔记 ORACLE...
oracle笔记(韩顺平oracle视频教学整理)
标题“2011Oracle笔记(李兴华视屏教程笔记)”揭示了文档的用途,它是作为2011年李兴华Oracle教学视频课程的学习笔记。这种笔记通常包括了课程中的重点概念、Oracle数据库基础知识、实际操作案例以及配合视频教程的...
在Oracle学习笔记中,我们关注的关键概念主要包括以下几个方面: 1. **数据缓冲区**:这是Oracle内存架构的重要组成部分,用于存储从磁盘数据文件中读取的数据。所有用户共享这个缓冲区,当数据被服务器进程读入后...
这篇笔记将带你深入了解Oracle的基础知识,包括SQL语句、函数、权限管理、递归查询以及存储过程和触发器等核心概念。 一、函数和SQL语句 1. SQL命令:SQL(Structured Query Language)是用于管理和处理关系数据库...
该资源是对应韩顺平老师关于JAVAEE培训课程中关于oracle数据库讲解部分的视频笔记,类容详细全面,针对深度学习oracle数据库的相关知识
根据给定的文件信息,以下是对Oracle数据库的关键知识点的详细整理与解释: ### Oracle数据库连接与用户管理 在Oracle数据库中,连接至数据库是通过指定的端口(如:1521)进行的,这通常涉及到监听器的配置。`...
本笔记主要涉及的是Oracle SQL语言的基础知识,包括数据查询、数据操作、数据定义、数据控制以及一些通用命令。 1. **数据查询语言(DQL)**: - `SELECT`语句是DQL的核心,用于从数据库中检索数据。例如,`SELECT...
自己整理的关于oracle数据库的相关笔记,包含oralce入门、基本sql语句、连接查询和子查询、常用数据库对象、数据库的设计原则。
在学习Oracle数据库的过程中,JackChaing作者对个人的总结经验进行了精简和整理,形成了这份笔记。以下是对这份Oracle数据库笔记中的知识点的详细解读。 首先,笔记中提到了Oracle数据库的基本概念,包括DQL(数据...
从给定的Oracle自学笔记和视频实例整理的内容中,我们可以提炼出一系列关于SQL查询和数据操作的重要知识点。以下是对这些知识点的详细解析: ### 1. 基本的SELECT语句 - **获取所有列**:`SELECT * FROM emp;` 这是...
以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习过oracle的同学是...
Oracle 命中率计算和优化详解 Oracle 数据库中的命中率是指数据库在执行查询时,从缓存中命中数据的频率。命中率高说明数据库的缓存命中率高,能够减少磁盘 I/O,提高数据库的性能。下面将对 Oracle 中各个命中率的...