- 浏览: 7935726 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
expert indexing in oracle database 11g是个好书
1) create table cust(
cust_id number
,last_name varchar2(30)
,first_name varchar2(30));
create index cust_idx1
on cust(last_name);
insert into cust (cust_id, last_name, first_name) values(7, 'ACER','SCOTT');
insert into cust (cust_id, last_name, first_name) values(5, 'STARK','JIM');
insert into cust (cust_id, last_name, first_name) values(3, 'GREY','BOB');
insert into cust (cust_id, last_name, first_name) values(11,'KHAN','BRAD');
.....
insert into cust (cust_id, last_name, first_name) values(274, 'ACER','SID');
1 select last_name from cust where last_name='ACER'
则这个时候直接读索引就可以了,所有数据位于索引块,就是说,两个'acer'的last_name的都位于索引块;
这个时候db block gets是为0的;
2 如果索引中不包含所有的信息
select last_name,first_name from cust where last_name='ACER';
由于first_name不包含在索引中,因此必须通过row_id再到数据块文件中找出数据,因此就不是只在索引块中读数据了;
在执行计划中会看到通过table access by index rowid来访问
2) 删除索引的时候
a 让索引不可见
alter index addr_fk1 invisible;
对查询优化器不可见,当修改表中记录的时候,依然由oracle维护,
alter index addr_fk1 visible;
b 或者使其不可用
alter index addr_fk1 unusable;
这个时候优化器不用,而且oracle 在建立表的时候也不会去维护;
如果需要启用,则用rebuild
alter index addr_fk1 rebuild;
最后真正不用才drop index addr_fk1;
3) 管理索引和约束
A 创建表和主键约束和索引分开
create table cust(
cust_id number
,first_name varchar2(200)
,last_name varchar2(200));
alter table cust
add constraint cust_pk
primary key (cust_id)
using index tablespace users;
2) 把建表,索引,约束三者分开
create table cust(
cust_id number
,first_name varchar2(30)
,last_name varchar2(30));
create unique index cust_pk
on cust(cust_id);
alter table cust
add constraint cust_pk
primary key (cust_id);
3) 创建主键约束的时候伴随自动生成的索引不能直接删除,必须先删除或禁用主键约束
alter table cust disable controstran_cust_pk;
.................. drop custratint_cust_pk;
...........drop primary key;
也可以选择保留索引
alter table cust drop constraint cust_pk keep index;
4) 在唯一键上建立b树索引
create unique index cust_uk1 on cust(first_name,last_name) tablespace users;
alter table cust add constraint cust_pk1 unique(first_name,last_name);
5) 在外键列上建立索引,如果没有索引,则往子表中插入数据或从子表中删除数据的时候,会锁定父表中的所有行;(就是子表删除
的操作还不提交的时候,父表的删除操作是不能继续完成的)
1) create table cust(
cust_id number
,last_name varchar2(30)
,first_name varchar2(30));
create index cust_idx1
on cust(last_name);
insert into cust (cust_id, last_name, first_name) values(7, 'ACER','SCOTT');
insert into cust (cust_id, last_name, first_name) values(5, 'STARK','JIM');
insert into cust (cust_id, last_name, first_name) values(3, 'GREY','BOB');
insert into cust (cust_id, last_name, first_name) values(11,'KHAN','BRAD');
.....
insert into cust (cust_id, last_name, first_name) values(274, 'ACER','SID');
1 select last_name from cust where last_name='ACER'
则这个时候直接读索引就可以了,所有数据位于索引块,就是说,两个'acer'的last_name的都位于索引块;
这个时候db block gets是为0的;
2 如果索引中不包含所有的信息
select last_name,first_name from cust where last_name='ACER';
由于first_name不包含在索引中,因此必须通过row_id再到数据块文件中找出数据,因此就不是只在索引块中读数据了;
在执行计划中会看到通过table access by index rowid来访问
2) 删除索引的时候
a 让索引不可见
alter index addr_fk1 invisible;
对查询优化器不可见,当修改表中记录的时候,依然由oracle维护,
alter index addr_fk1 visible;
b 或者使其不可用
alter index addr_fk1 unusable;
这个时候优化器不用,而且oracle 在建立表的时候也不会去维护;
如果需要启用,则用rebuild
alter index addr_fk1 rebuild;
最后真正不用才drop index addr_fk1;
3) 管理索引和约束
A 创建表和主键约束和索引分开
create table cust(
cust_id number
,first_name varchar2(200)
,last_name varchar2(200));
alter table cust
add constraint cust_pk
primary key (cust_id)
using index tablespace users;
2) 把建表,索引,约束三者分开
create table cust(
cust_id number
,first_name varchar2(30)
,last_name varchar2(30));
create unique index cust_pk
on cust(cust_id);
alter table cust
add constraint cust_pk
primary key (cust_id);
3) 创建主键约束的时候伴随自动生成的索引不能直接删除,必须先删除或禁用主键约束
alter table cust disable controstran_cust_pk;
.................. drop custratint_cust_pk;
...........drop primary key;
也可以选择保留索引
alter table cust drop constraint cust_pk keep index;
4) 在唯一键上建立b树索引
create unique index cust_uk1 on cust(first_name,last_name) tablespace users;
alter table cust add constraint cust_pk1 unique(first_name,last_name);
5) 在外键列上建立索引,如果没有索引,则往子表中插入数据或从子表中删除数据的时候,会锁定父表中的所有行;(就是子表删除
的操作还不提交的时候,父表的删除操作是不能继续完成的)
发表评论
-
mybatis generator中的字段大小写生成问题
2017-10-22 19:35 11386mybatis generator插件中,如果 mysql数据 ... -
MySQL统计一个列中不同值的数量
2017-07-11 14:04 16287https://yiqiwuliao.com/post/mys ... -
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
2017-03-02 09:44 1793权限问题,授权 给 root 所有sql 权限 mysql ... -
几个不错的MYSQL 优化TIPS
2016-11-19 12:30 812图片来自http://imysql.com/的PDF分享 [ ... -
powerdesign 逆向ORACLE的坑
2016-09-27 17:08 570要注意的是,在WIN 64中,如果要用powerdesin 来 ... -
( 转)mysql中删除两条重复记录中的一条
2015-10-19 20:19 1332| id | createTime | labId | pub ... -
mysql中sql语句=,>的时候的索引设置
2015-05-02 12:27 1309在 https://www.percona.com/blog/ ... -
mysql中profile的使用
2015-04-30 11:11 2231mysql 的 sql 性能分析器主要用途是显示 sql 执行 ... -
mysql中的sql mode
2015-04-13 11:29 1152mysql sql mode小结 1 sql mode可以 ... -
PROCEDURE ANALYSE()为mysql提高性能提供建议
2015-04-02 16:37 1470procedure analyse();语法如下 select ... -
mongodb中意外退出的问题
2015-02-11 14:32 1340mongodb启动的时候,意外退出: Unclean shut ... -
mysql 5.5中保留字查询
2014-06-05 23:16 1487mysql 5.5中保留字查询 http://www.5is ... -
(转)oracle 临时表空间的增删改查
2014-03-18 12:44 1144oracle 临时表空间的增删改查 1、查看临时表空间 (d ... -
pl-sql developer安装
2014-02-07 09:16 1134一直都是机器本机上有oracle,所以装pl sql deve ... -
oracle中的nvl,nvl2等参数
2013-12-26 11:18 22831.nul函数将一个null值转换为一个实际的值。 数据类型可 ... -
Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
2013-12-26 11:08 2362http://gong-10140.iteye.com/blo ... -
ORACLE XE版本的限制
2013-12-07 08:11 367110g中用户数据最大为4G, 11G中最大为11G,如果超出大 ... -
oracle中监控索引是否可用
2013-11-04 07:22 1078在oracle中,可以使用如下的方法监控索引是否可用: a ... -
mysql 5.6中的时间类型的新精度介绍
2013-10-28 09:33 8414留意到mysql 5.6中,可以使用select now(6) ... -
关系数据库和nosql设计schema时的差别的例子
2013-08-18 10:18 3615在关系数据库中和nosql的设计时,对于schema的设计是不 ...
相关推荐
本笔记主要探讨了两个关键概念:约束和索引,这些都是Oracle数据库中的基础但至关重要的元素。 **1. 约束(Constraints)** 约束是Oracle数据库中用于确保数据完整性的规则。它们分为以下几种类型: - **非空约束...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其核心技术涉及数据存储、查询优化、并发控制、事务处理等多个方面。...通过阅读和理解这些读书笔记,可以提升对Oracle数据库的理解和操作能力。
Oracle学习笔记(索引),有具体的代码案例,创建索引,删除索引,重建索引等等
首先,笔记可能包含了Oracle数据库的基础知识,如SQL语言的使用,包括SELECT、INSERT、UPDATE、DELETE等基本操作,以及更复杂的子查询、联接查询、视图和索引等。此外,可能还涉及了数据库管理的基本概念,如数据...
Oracle数据库中的索引是提升查询性能的关键因素,但设计和管理索引也需要...总之,Oracle索引设计是一个平衡查询速度和DML操作成本的过程。理解并应用上述原则可以帮助我们创建和优化数据库性能,提供更高效的服务。
Oracle 12c-优化 Oracle 索引技术.pdf Oracle 12c 执行计划.pdf Oracle 12c锁.pdf Oracle 12c查询优化器.pdf Oracle 12c 使用绑定变量 VS 不使用绑定变量.pdf Oracle 12c 自动工作负载信息库AWR.pdf Oracle 12c 常用...
Oracle SQL是数据库管理员和开发人员在Oracle数据库系统中进行数据查询和管理的重要工具。这篇笔记主要涵盖了Oracle SQL的...这两份“Oracle SQL笔记”文档应包含了上述各个方面的详细解释和实例,值得仔细阅读和学习。
1. **Oracle 19C新特性** - **Autonomous Database**: Oracle 19C引入了自治数据库,这是一个完全自动化、云原生的数据库服务,可以自我管理、自我保护和自我优化。 - **In-Memory Column Store优化**: 提升了分析...
《成功之路Oracle11g学习笔记》是一本专为初学者设计的Oracle数据库学习资源,旨在帮助读者系统地掌握Oracle11g的基础知识。Oracle11g是Oracle公司推出的一个重要版本,它提供了许多增强的功能和优化,使得数据库...
笔记可能涉及索引的创建和管理、SQL调优(如使用EXPLAIN PLAN分析查询执行计划)、数据库统计信息的收集、存储优化以及使用Oracle的性能监控工具(如AWR和ASH报告)。 此外,Oracle的安全管理包括用户权限管理、...
│ CSDN技术中心 Oracle学习笔记(一).mht │ Oracle 10G 数据库系统学习笔记.pdf │ Oracle DBA学习心得 --第0章 - ColorfulStar3399的专栏 - CSDN博客.mht │ Oracle DBA学习心得 --第1章 - ColorfulStar3399的...
"三思笔记"则强调了学习Oracle时需要思考、实践和反思的重要性,引导读者不仅掌握技术,还理解其背后的原理和最佳实践。 1. **Oracle基础** - 数据库概念:了解数据库的基本概念,包括数据模型、关系型数据库、SQL...
韩顺平Oracle数据库教程笔记涵盖了Oracle数据库的基础知识和高级技术,涵盖了数据类型、查询语句、条件语句、排序语句、分组语句、联结语句、子查询、数据操作、视图、索引、存储过程、触发器、数据库设计、数据库...
《韩顺平Oracle课堂笔记》是一份详尽的Oracle数据库学习资料,涵盖了多个关键知识点,旨在帮助学习者深入理解并掌握Oracle数据库系统的核心技术。在这些笔记中,主要讲解了以下几个方面: 一、存储过程 存储过程是...
这篇学习笔记将带你深入理解Oracle11g的核心概念和技术,帮助你踏上数据库管理的成功之路。 首先,Oracle11g的基础部分涵盖了数据库安装、配置与管理。在安装过程中,你需要了解如何选择合适的安装选项,如企业版或...
- 其他天数的笔记可能包括存储过程、触发器、索引优化、备份恢复策略等内容。 通过这样的培训,参与者将能够全面掌握Oracle数据库的使用,从基本操作到复杂的数据库设计和性能优化。不断学习和实践是提升Oracle技能...
《涂抹Oracle--三思笔记》是一份专注于Oracle数据库技术的学习资料,主要涵盖了Oracle数据库系统的基础知识、高级特性和常见问题的解决策略。这份文档可能是由一位经验丰富的IT专家撰写,旨在帮助读者深入理解和掌握...
根据提供的信息,我们可以总结出以下关于Oracle的相关知识点: ### Oracle基础知识与分类 #### DDL (Data Definition Language) 数据定义语言 - **DDL** 主要用于创建、修改或删除数据库对象,如表、索引等。 ###...
本笔记主要涵盖了Oracle数据库在表空间管理、用户与权限控制以及归档和非归档模式操作等方面的基本知识。 一、表空间 1. 创建表空间:表空间是Oracle数据库存储数据的逻辑单位,用于组织和管理数据库对象,如表、...