【面试虐菜】—— Oracle知识整理《收获,不止Oracle》
普通堆表不足之处:
--分区表删除 alter table range_part_tab truncate partition p9;--分区表交换 alter table range_part_tab exchange partition p9 with table mid_table;--分区表的分割 alter table range_part_tab split partition p_max at(to_date('2013-02-01','YYYY-MM-DD'))into (partition p2013_01,partition p_max);--分区表合并 alter table range_part_table merge partitions p2013_01,p_max into partition p_max;
select max(object_id) from t;select max,min from (select max(object_id) max from t) a,(select min(object_id) min from t) b;
select * from t where object_id <=5;
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
主外键:
1 主键本身是一种索引
2 可以保证表中主键所在列的唯一性
3 可以有效的限制外键依赖的表的记录的完整性
如果某个表建立的索引过多,插入数据的时候会很慢。可以删除索引后,插入,再建立索引。可以优化很大一部分的时间。
索引过多,对三种操作的影响:
1 对insert影响最大,只要有索引,就会变慢,越多越慢。
2 对delete来说,有好有坏,在海量数据删除较少数据的时候,很有用。但是过多的索引,也会使得其他的索引进行更新时代价变大。
3 对update的影响最小。
建立索引会引起整个表的锁,使得表被挂起,任何操作无法执行。
alter index 索引名 monitoring usage;
select * from v$object_usage;--查询索引是否被使用alter index 索引名 nomonitoring usage;--解锁索引监控
位图索引允许存储为空值(缺点,进行插入的时候,同一个索引的值相同,是插不进去的)
建立位图索引适合的两个条件:1 位图索引列大量重复 2 该表极少更新
为什么位图索引只适用于低基数值,但是对频繁更新的列不适用。
原因在于,PROCESSED_FLAG列只有两个值:Y和N。对于插入到表中的记录,该列值为N(表示未处理)。其他进程读取和处理这个记录时,就会把该列值从N更新为Y。这些进程要很快地找出PROCESSED_FLAG列值为N的记录,所以开发人员知道,应该对这个列建立索引。他们在别处了解到,位图索引适用于低基数(low-cardinality)列,所谓低基数列就是指这个列只有很少的可取值,所以看上去位图索引是一个很自然的选择。
不过,所有问题的根由正是这个位图索引。采用位图索引,一个键指向多行,可能数以百计甚至更多。如果更新一个位图索引键,那么这个键指向的数百条记录会与你实际更新的那一行一同被有效地锁定。
所以,如果有人插入一条新记录(PROCESSED_FLAG列值为N),就会锁定位图索引中的N键,而这会有效地同时锁定另外数百条PROCESSED_FLAG列值为N的记录(以下记作N记录)。此时,想要读这个表并处理记录的进程就无法将N记录修改为Y记录(已处理的记录)。原因是,要想把这个列从N更新为Y,需要锁定同一个位图索引键。实际上,想在这个表中插入新记录的其他会话也会阻塞,因为它们同样想对这个位图索引键锁定。简单地讲,开发人员实现了这样一组结构,它一次最多只允许一个人插入或更新!
可以用一个简单的例子说明这种情况。在此,使用两个会话来展示阻塞很容易发生:
ORA10G> create table t ( processed_flag varchar2(1) ); Table created. ORA10G> create bitmap index t_idx on t(processed_flag); Index created. ORA10G> insert into t values ( 'N' ); 1 row created.
现在,如果在另一个SQL*Plus会话中执行以下命令:
ORA10G> insert into t values ( 'N' );
这条语句就会“挂起”,直到在第一个阻塞会话中发出COMMIT为止。
转载于:https://www.cnblogs.com/xing901022/p/3978089.html
【面试虐菜】—— Oracle知识整理《收获,不止Oracle》相关推荐
- 【面试虐菜】—— LVS负载均衡
Load Balancer(负载均衡器): Load Balancer是整个集群系统的前端,负责把客户请求转发到Real Server上.Load Balancer通过Ldirectord监测各Rea ...
- 不止 oracle,别出心裁 另有蹊径-与梁敬彬《收获,不止ORACLE》序
别出心裁 另有蹊径-与梁敬彬<收获,不止ORACLE>序 梁敬彬兄弟二人联手打造的新书<收获,不止ORACLE>即将出版,嘱我写一点东西,于是就有了以下一段文字,感谢他们与Or ...
- 【面试虐菜】—— MongoDB知识整理
为什么我们要使用MongoDB? 特点: 高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存储,易存储对象类型的数据. 模式自由. 支持动态查询. 支持完全索引,包含内部对象. 支 ...
- 收获不止oracle在线,重温《收获不止Oracle》
闲在家里,正好重新查缺补漏 第一章:方法论: 第二章:物理体系.回滚段与SCN对读一致性的意义.LGWR只能单进程.频率归档日志会引起数据写入效率下降.Oralce的启动顺序(读参数文件.控制文件.数 ...
- oracle中常见ck和fk是什么,oracle知识整理
额滴数据库太薄弱了,整理一下知识点吧: 外键(foreign key)约束: 在建表之后,为表增加外键约束可以像下面这样操作: 为表增加外键约束: 1.alert table student 2.ad ...
- 【面试虐菜】—— JAVA面试题(2)
前篇推荐:http://www.cnblogs.com/xing901022/p/3975626.html 1 String = 与 new 的不同 使用"="赋值不一定每次都创建 ...
- 【面试虐菜】—— 常用SQL语句
创建表 create table emp(id decimal,name char(10),age decimal) 删除表 DROP TABLE EMP 插入默认值 CREATE TABLE EMP ...
- 【面试虐菜】—— JAVA面试题(3)
1 throws与throw的区别 解析:throws和throw是异常处理时两个常见的关键字,初级程序员常常容易正确理解throw和throws的作用和区别,说明已经能比较深入理解异常处理.Thro ...
- *Java软件开发面试知识整理*
Java软件开发面试知识整理 围绕以下几点回答问题:是什么.为什么.什么时候用.项目实现.解决什么问题.遇到的困难 谈谈你对Java和C的理解? Java: 面向对象.Unicode:可以跨平台(JV ...
最新文章
- 生成式对抗网络的原理和实现方法
- java oracle exp_java中使用oracle的exp/imp导出、导入数据
- ISO语言代码和国家代码+Locale常量+ISO货币符号
- 表必须要有主键吗_玄关隔断什么材质好?玄关隔断必须要做吗?
- sql server累计求和函数_窗口函数 以及 储存过程 create procedure
- python docker库
- PyTorch实战福利从入门到精通之七——卷积神经网络(LeNet)
- 第16课 “远程 Git文档库” 的基础操作
- RIA 应用程序模式
- python 代码分块_python大数据分块处理
- 5. CopyOnWriteArrayList 的适用场景
- linux scp 使用简单说明
- linux 分区100g整数,硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
- wget无法批量下载气象数据的解决方案(Python、迅雷批量下载气象数据方法)
- 简单快捷的ArcGIS 10.7安装方法
- 大话布隆过滤器及其应用场景
- 计算机制图员主要学什么,制图员
- Oracle greatest函数
- safari html5插件安装,Safari巧用小插件 体验不输第三方浏览器
- .net famework 版本过低,请升级至4.6.2或更新版本
热门文章
- Win7编译volley成jar包
- android 自定义录像机,android-camera2 - 将自定义捕获请求构建器选项设置为使用Camera2 API捕获图像以使用OpenCV库进行摄像机校准 - 堆栈内存溢出...
- java正则表达式课程_通过此免费课程学习正则表达式
- firebase 推送_如何使用Firebase向Web应用程序添加推送通知?
- 统一建模语言——UML(第9-20课时)(cont.)
- selenium--iframe之模拟qq空间登录
- Qt运行时中文乱码的解决办法
- Sass函数:Sass Maps的函数-map-has-key($map,$key)
- java实现用户登录注册功能(用集合框架来实现)
- asp.net文件上传下载的简单实现