
收获不止Oracle
badman250
专注分享IT知识技能
展开
-
37.读书笔记收获不止Oracle之常用诊断命令汇总
37.读书笔记收获不止Oracle之常用诊断命令汇总 1. Oracle获取基线Baseline ,叫做基线,用于比较的基本线。因为Baseline中包含指定时间点时的性能数据,因此就可以用来与其它时间点时的状态数据做对比,以分析性能问题。 创建Baseline时,Snapshots是做为其中的一个组成部分存在,因此一般来说当AWR自动维护快照时,如果定义过baseline,与原创 2017-11-06 18:18:24 · 479 阅读 · 0 评论 -
20.读书笔记收获不止Oracle之 索引回表和优化
20.读书笔记收获不止Oracle之 索引回表和优化1. 索引回表情况看下索引回表。drop table t purge;SQL> create table t as select * from dba_objects;SQL> create index inx1_object_id on t (object_id);SQL> set autotrace traceonl原创 2017-11-05 10:24:47 · 968 阅读 · 0 评论 -
21.读书笔记收获不止Oracle之 索引回表效率
21.读书笔记收获不止Oracle之 索引回表效率如果一直要执行回表,我们就需要关注回表的效率了。1. 示例SQL> create table t_colocated (id number,col2varchar2(100));begin for i in 1 .. 100000 loop insert into t_coloc原创 2017-11-05 10:25:16 · 981 阅读 · 0 评论 -
22.读书笔记收获不止Oracle之 索引特性活用
22.读书笔记收获不止Oracle之 索引特性活用以实际操作为例:看看索引的特性灵活使用:SQL> set autotrace traceonlySQL> set linesize 1000SQL> drop table t purge;SQL> create table t as select * fromdba_objects;SQL> set autotrace原创 2017-11-05 10:25:46 · 779 阅读 · 0 评论 -
23.读书笔记收获不止Oracle之 组合索引
23.读书笔记收获不止Oracle之 组合索引索引在适当的场合能避免回表。考虑多列删上的索引,就是联合索引。 回表的动作叫做:TABLEACCESS BY INDEX ROWID。非常直白。1. 组合列返回越少越高效如果a字段上查询返回的记录比较多,b字段上查询返回的字段也比较多,如果a和b同时查询,返回的记录比较少,那就适合建联合索引了。原创 2017-11-05 10:29:24 · 776 阅读 · 0 评论 -
24.读书笔记收获不止Oracle之 索引的危害
24.读书笔记收获不止Oracle之 索引的危害 索引能带来好的一面,也必定会带来坏的的东西。来看下:SQL> create table t_no_idx as select *from dba_objects;Table created.SQL> insert into t_no_idx select * fromt_no_idx;SQL> inser原创 2017-11-05 10:29:44 · 853 阅读 · 0 评论 -
25.读书笔记收获不止Oracle之 位图索引
25.读书笔记收获不止Oracle之 位图索引接下去来看下位图索引。比较普通索引和位图索引的性能差异。Drop table t purge;Create table t as select * fromdba_objects;SQL> Insert into t select * from t;90945 rows created.SQL> Insert into t原创 2017-11-05 10:30:13 · 739 阅读 · 0 评论 -
26.读书笔记收获不止Oracle之 位图索引即席查询
26.读书笔记收获不止Oracle之 位图索引即席查询Drop table t purge;create table t (name_id, gender not null, location not null, age_group not null, data) as selectrownum,decode(cei原创 2017-11-05 10:30:39 · 829 阅读 · 0 评论 -
27.读书笔记收获不止Oracle之 位图索引更新
27.读书笔记收获不止Oracle之 位图索引更新新建立一个会话,查看会话号:SQL> select sid from v$mystat whererownum=1; SID---------- 42关于表t,查看上一篇SQL> insert into t(name_id,gender,location,age_group,data) va原创 2017-11-06 18:13:18 · 500 阅读 · 0 评论 -
28.读书笔记收获不止Oracle之 函数索引
28.读书笔记收获不止Oracle之 函数索引先来看个例子:SQL> drop table t purge;Table dropped.SQL> create table t as select * from dba_objects;Table created.SQL> create index idx_object_id on t(object_id);Index c原创 2017-11-06 18:13:42 · 647 阅读 · 0 评论 -
29.读书笔记收获不止Oracle之表的循环嵌套连接
29.读书笔记收获不止Oracle之表的循环嵌套连接连接的几个类型,循环嵌套连接、哈希连接、合并排序连接。 哈希连接不算排序,由PGA中的HASH_AREA_SIZE参数来控制,而排序合并连接则是由PGA中的SORT_AREA_SIZE参数控制的。 表连接总体的比例情况如下:循环嵌套连接70%,哈希连接20%,合并排序原创 2017-11-06 18:14:08 · 524 阅读 · 0 评论 -
30.读书笔记收获不止Oracle之表的哈希连接
30.读书笔记收获不止Oracle之表的哈希连接来看下哈希连接的表访问次数实验表还是和上篇中的一样。执行如下:SQL> SELECT /*+leading(t1) use_hash(t2)*/ * from t1,t2 wheret1.id=t2.id;SQL>select * fromtable(dbms_xplan.display_cursor(null,null,'all原创 2017-11-06 18:14:47 · 484 阅读 · 0 评论 -
31.读书笔记收获不止Oracle之表的合并排序连接
31.读书笔记收获不止Oracle之表的合并排序连接测试如下SQL语句SQL>Alter session set statistics_level=all;SQL>select /*+ordered use_merge(t2)*/ *from t1,t2 where t1.id=t2.t1_id;SQL> select * fromtable(dbms_xplan.display_原创 2017-11-06 18:15:27 · 477 阅读 · 0 评论 -
32.读书笔记收获不止Oracle之表链接的驱动顺序
32.读书笔记收获不止Oracle之表链接的驱动顺序1. 嵌套循环驱动顺序T1和T2表草考前面笔记。SQL>Alter session set statistics_level=all;1.1 实验1SQL>select /*+leading(t1) use_nl(t2)*/ * from t1,t2 wheret1.id=t2.t1_id and t1.n=19;原创 2017-11-06 18:16:03 · 533 阅读 · 0 评论 -
33.读书笔记收获不止Oracle之表连接的排序分析
33.读书笔记收获不止Oracle之表连接的排序分析 三种连接方式,哪种会用到排序? 哈希连接并不排序,消耗内存是用于建立HASH表。 嵌套循环不需要排序。 排序合并需要排序。 关于哈希连接、排序合并连接,有一原创 2017-11-06 18:16:25 · 482 阅读 · 0 评论 -
34.读书笔记收获不止Oracle之表连接场景对比
34.读书笔记收获不止Oracle之表连接场景对比每个连接方式都有自己的使用场景和本身的限制。试验中可以使用HINT,use_nl,use_hash,use_merge 来实现表的不同连接方式。1. 哈希连接限制SQL>alter session set statistics_level=all;SQL>explain plan forselect /*+leading(原创 2017-11-06 18:16:49 · 510 阅读 · 0 评论 -
35.读书笔记收获不止Oracle之嵌套循环表连接与索引
35.读书笔记收获不止Oracle之嵌套循环表连接与索引 表连接的研究中,索引是非常重要的一部分,对提升表连接性能起到至关重要的作用。1. 嵌套循环与索引SQL>alter session set statistics_level=all;SQL>select /*+leading(t1) use_nl(t2)*/ * from t1,t2 wh原创 2017-11-06 18:17:19 · 644 阅读 · 0 评论 -
19.读书笔记收获不止Oracle之 索引MAX和MIN优化
19.读书笔记收获不止Oracle之 索引MAX和MIN优化1. 示例一SQL> drop table t purge;SQL> create table t as select * fromdba_objects;SQL> create index idx1_object_id on t(object_id);使用MAX看看,能不能用到索引。set autotrace原创 2017-11-05 10:24:23 · 942 阅读 · 0 评论 -
18.读书笔记收获不止Oracle之 索引SUM和AVG优化
18.读书笔记收获不止Oracle之 索引SUM和AVG优化看下索引在sum()和avg之类的聚合语句中的优化。drop table t purge;SQL> set timing offSQL> set autotrace offSQL> create table t as select * from dba_objects;SQL> create index idx1_原创 2017-11-05 10:23:50 · 1927 阅读 · 0 评论 -
1.读书笔记收获不止Oracle之开篇
1.读书笔记收获不止Oracle之开篇 偶然看到梁敬彬和梁敬弘合著的《收获,不止Oracle》,心中满怀欣喜,从题目上看不光是讲Oracle知识,应该会参杂一些技术之外或技术之上的东西。而且也有很多大师们的推荐,既然如此觉得可以好好学习一下,吸取其中精华~ 有很多Oracle数据库方面的技术大师们(冯培春,黄志洪,)做了推荐,还有盖国强总为书做了序。原创 2017-11-02 19:55:17 · 680 阅读 · 0 评论 -
2.读书笔记收获不止Oracle之 意识
2.读书笔记收获不止Oracle之 意识在第一篇中,作者说过做IT的小伙伴们差距可能就是在 意识方面。要了解生活和工作中的二八现象。1. 善于规划分类 如下图1是对Oracle基本知识的一个分类图2是对数据库角色知识要点的分类 数据库开发所需人数往往是最多的。但是开发离不开算法,对从业人员的逻辑思维能力要求比较高。原创 2017-11-02 19:57:00 · 629 阅读 · 0 评论 -
3.读书笔记收获不止Oracle之 物理体系
3.读书笔记收获不止Oracle之 物理体系 1. 体系结构来看一张被看烂了的,但是可能没有完全理解的图1 2. 体系结构原理初探当用户连接进来的时候,会在PGA中给用户创建私有的内存空间,只要改SESSION不断开连接,下次系统不用再去硬盘中读取数据,而直接从PGA内存区中获取。 如果用户执行一个SQL语句,原创 2017-11-02 19:57:51 · 688 阅读 · 0 评论 -
4.读书笔记收获不止Oracle之 体系结构原理
4.读书笔记收获不止Oracle之 体系结构原理 数据库更新分为插入、修改、删除三类,都属于数据库操作中最常见的操作。更新一个操作Update t set object_id=92 whereobject_id=29;前面步骤和select应该是一致的。差异在如何更新。在数据缓冲区内修改完数据后,会启用DBWR进程,完成更新的数据从内存中刷入到磁盘,将磁盘中的object_原创 2017-11-02 19:58:24 · 761 阅读 · 0 评论 -
5.读书笔记收获不止Oracle之 插入表性能示例
5.读书笔记收获不止Oracle之 插入表性能示例 1. 单车速度一个案例:#Sqlplus / as sysdbaSQL>drop table t purge;SQL>create table t ( x int);SQL>alter system flush shared_pool;单行插入如下:SQL> create or replace procedu原创 2017-11-02 19:58:57 · 604 阅读 · 0 评论 -
7.读书笔记收获不止Oracle之 逻辑体系二 深入与调整
7.读书笔记收获不止Oracle之 逻辑体系二 深入与调整上篇了解了ORACLE的逻辑体系结构及一些基本查看命令。接下深入看看如何调整。 1. BLOCK调整9i以后的版本中,ORACLE支持用户在新建用户表空间时指定块的大小。这样在多个表空间时,各自的BLOCK大小可能各不相同。 只能是新建自己的用户表空间,不能更改已建好的,更不能更改或调整系统表空间。原创 2017-11-02 20:00:44 · 552 阅读 · 0 评论 -
8.读书笔记收获不止Oracle之 逻辑体系三 扩展和性能
8.读书笔记收获不止Oracle之 逻辑体系三 扩展和性能1. 扩展与性能 如果表记录增长的特别快,可以考虑把这个EXTENT的大小设置得大一点,比如initial extent 和 incremental extent .做个试验:SQL> Create tablespace tbs_toad_aDatafile '+DATA/ORCL/DATAFILE/tbs_toad原创 2017-11-03 22:44:39 · 623 阅读 · 0 评论 -
9.读书笔记收获不止Oracle之 表设计
9.读书笔记收获不止Oracle之 表设计表位于体系物理结构的数据文件部分。在逻辑结构中,一张表就是一个段,如果有索引,一个索引就是一个段。1. 普通堆表缺点:、l 更新有日志开销l 表DELETE操作有瑕疵l 表记录太大检索较慢l 索引回表读开销很大l 有序插入难有序读出在合适场合选择合适技术。没有在高级的技术,只有最适合的技术。 1.原创 2017-11-03 22:45:16 · 581 阅读 · 0 评论 -
10.读书笔记收获不止Oracle之 表设计之分区表
10.读书笔记收获不止Oracle之 表设计之分区表在数据量日益增长的海量数据库时代,分区表技术显得尤为重要,可以说使用得到与否将决定系统的生死。 1. 分区表类型及原理分区表类型有范围分区、列表分区、HASH分区及组合分区四种。其中范围分区应用最为广泛,需要重点学习和掌握,而列表分区次之,在某些场合考虑使用组合分区,而HASH分区在应用中使用的场景不多。1.1原创 2017-11-03 22:45:43 · 608 阅读 · 0 评论 -
11.读书笔记收获不止Oracle之 表设计之分区使用
11.读书笔记收获不止Oracle之 表设计之分区使用1分区表最实用的特性1.1 高效的分区消除分区表的最大意义在于,可以有效的做到分区消除。不过分区数过都,调用时会带来开销的。 1.2 强大的分区操作Delete无法释放空间,而truncate却有效地释放了空间。Truncate往往不能轻易使用,因为DELETE往往是针对某些条件的局部原创 2017-11-03 22:46:03 · 531 阅读 · 0 评论 -
12.读书笔记收获不止Oracle之 索引分区表
12.读书笔记收获不止Oracle之 索引分区表普通堆表操作的不足之处:执行select * from t where id=1.先从索引中获取rowid,然后定位到表中,获取id以外的其他列的动作,这就是回表。 如何不进行回表? 采用索引组织表。来看个例子,创建堆表:create table heap_addresses原创 2017-11-03 22:46:22 · 580 阅读 · 0 评论 -
13.读书笔记收获不止Oracle之 簇表
13.读书笔记收获不止Oracle之 簇表 普通还有一点缺陷,就是ORDERBY 语句中的排序不可避免。 有序簇表可以避免排序。试验如下: 先创建簇如下: create cluster shc ( cust_id number, order_dt timestamp SORT ) hashkeys原创 2017-11-03 22:46:47 · 594 阅读 · 0 评论 -
14.读书笔记收获不止Oracle之 索引
14.读书笔记收获不止Oracle之 索引 1. B树索引索引和表一样,都是逻辑体系结构中的段的一种。当建一个T表,就产生一个T表的表SEGMENT。当在T表的某些列上建索引IDX_T,就产生一个IDX_T的索引SEGMENT。索引建在表的具体列上,存在目的就是让表的查询更快,效率更高。表记录丢失关乎生死,而索引丢失只需重建即可。 索引是数据库学习中最实用原创 2017-11-03 22:47:52 · 636 阅读 · 0 评论 -
15.读书笔记收获不止Oracle之 索引高度
15.读书笔记收获不止Oracle之 索引高度我们用实际例子来看下索引的高度是否真的比较低。构造一系列表T1到T7,记录数从5到500万依次以10倍的差额逐步增大。SQL>Create table t1 as select rownum as id,rownum+1 as id2from dual connect by levelCreate table t2 as select原创 2017-11-03 22:48:13 · 971 阅读 · 0 评论 -
16.读书笔记收获不止Oracle之 分区索引
16.读书笔记收获不止Oracle之 分区索引 分区表索引分为两种:全局索引和局部索引。 局部所以等同于为每个分区段建分区索引,从user_segment的数据字典中,我们可以观察到表有多少个分区,就有多少个分区索引的segment. 先建分区表来测试create table part_tab(id int,col2 in原创 2017-11-03 22:48:37 · 596 阅读 · 0 评论 -
17.读书笔记收获不止Oracle之 索引存储列值
17.读书笔记收获不止Oracle之 索引存储列值下面来看下索引的第二个特点,索引存储列值及rowid的特性。1. 简单示例SQL>create table t as select * from dba_objects;Create index idx1_object_id on t (object_id);Select count(*) from t;原创 2017-11-05 10:23:32 · 821 阅读 · 0 评论 -
36.读书笔记收获不止Oracle之表哈希、合并排序连接与索引
36.读书笔记收获不止Oracle之表哈希、合并排序连接与索引1. 哈希连接与索引对于哈希连接和排序合并连接,索引的连接条件起不到快速检索的作用。但是限制条件列如果有合适的索引可以快速检索到少量记录,是可以提升性能的。 在没有任何索引的情况下,ORACLE倾向走哈希连接,因为哈希连接算法本身还是比较先进的。哈希连接需要在PGA中的HASH_AREA_原创 2017-11-06 18:17:56 · 530 阅读 · 0 评论