表空间传输与交换分区
一个数据迁移的实验。假设每个分公司定期导出一份数据(普通表)到总公司进行汇总(分区表)。分公司使用windows系统,而总公司使用Linux系统。这个时候可以使用表空间传输,配合交换分区的功能,快速导入数据。主要步骤1.分公司(分公司内部ID为11) 1.1 新创建一个表空间,用...
全面学习分区表及分区索引(10)--交换分区
直白的说就是迁移数据。迁移数据的方式很多,为什么要使用exchange partition的方式呢,表急,听三思慢慢道来。Exchange partition提供了一种方式,让你在表与表或分区与分区之间迁移数据,注意不是将表...
避免使用Oracle的char类型
尽量避免使用Oracle的char类型,即使只有一个字节,也应该使用varchar2类型。char的缺点主要有两个1.占用空间大 如果声明一个char(10)的字段,仅仅使用了一个字节,剩余的9个字节也会使用空格补齐。 create table a( id c...
使用组合索引处理包含空值的查询
字段不全为空的行可以被索引如果有这样一种需求,尚未处理的单据,该列为null。已经处理的单据,则将处理人的ID更新到该列。那么查询尚未处理的单据,就需要查询该列为null的行。处理这个需求,除了函数索引,还可以使用组合索引。假设处理人的那个字段就是测试表中的ID字段。create table test(...
URIEncoding和useBodyEncodingForURI详解
之前关于编码的问题已经总结过两次了,有些地方写的很粗略。http://blog.itpub.net/29254281/viewspace-775925/http://blog.itpub.net/29254281/viewspace-1063133/Tomcat解决请求乱码可以使用URIEncoding和useBodyEncodingForURI.下面是两个参数的具体说明,参见ApacheTomcat官方手册。URIEncoding...
使用Sign统计范围问题
有一个学生表,有id和分数两列。低于60分为不及格低于75分为及格低于85分为良高于85分为优数据初始化。create table student( student_id number, grade number);insert into student select rownum,ro...
删除redo所有日志,数据库无法启动
半夜在itpub上看到有人发贴,说不小心删除了redo所有日志,导致数据库无法启动,因此模拟了一下。 如下:OS: Oracle Linux Server release 5.7DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production[oracle@yoon yoon]$ lscontrol01.ctl redo01.log&...
Apache配置反向代理、负载均衡和集群(mod_proxy方式)
Apache配置负载均衡和集群使用mod_jk的方式比较多。但是mod_jk已经停止更新,并且配置相对复杂。Apache2.2以后,提供了一种原生的方式配置负载均衡和集群,比mod_jk简单很多。1.Apache配置反向代理 正向代理一般是指PC连接到代理服务器,由代理服务器转发请求到网站。而反向代理指的是用户将请求发送...
Oracle修改数据字符集
今天一个同事遇到一个问题。他们的数据库是GBK编码的,但是因为测试的原因,需要使用UTF8编码。但是原来数据库中的数据需要保留。解决过程:1.导出源数据库数据2.修改编码3.将数据倒回导入和导出的过程并不需要指定编码,Oracle会根据数据库的编码自动转换。下面的实验验证数据库会自动转换编码1.创建实验表和数...
【MV】物化视图查询重写
所谓物化视图查询重写就是,如果初始化参数query_rewrite_enabled设置为TRUE,并且数据库运行在CBO优化模式下,当对基表进行查询时,Oracle会自动判断是否能利用这个基表的所有包含ENABLE QUERY REWRITE关键...
回滚表空间切换实验
缩小回滚表空间http://blog.itpub.net/29254281/viewspace-1067212/切换回滚表空间的时候,猜测两种方式第一种,复制旧的回滚表空间数据到新的回滚表空间第二种,新的事物使用新的回滚表空间,旧的事物使用旧的回滚表空间实验,使用终端A,开始一个很大的事物;使用另一个终端B,切换回滚表空间终端A,可以看到当...
收缩Oracle数据文件
在开发和测试的环境中,数据经常大规模插入、删除,最后导致数据文件很大,磁盘空间很紧张。因为实际的数据占用的空间并不多,所以可以考虑收缩数据文件。实验模拟创建了一张很大的表,然后删除绝大部分数据,然后收缩数据文件和回滚表空间。create table test ( &nbs...
使用索引消除排序
索引是有顺序的,如果一个查询使用索引,可以利用索引的顺序读取数据,这样可以消除OrderBy的排序。 前提:索引列的顺序和OrderBy的顺序完全一致 实验使用Hr模式的Employees表,查询某个工种(job_id)的所有员工,并且按照入职时间降序排列。查看索引对排序的影响。cre...
删除从未使用的索引
平时创建的索引,因为种种原因、场景考虑不全,根本没有使用过。等到生产环境实际部署,这些索引没有任何作用,还影响数据插入的效率。所以,在功能测试和性能测试阶段,可以打开索引监控,找到这些从未使用过的索引。分析这些索引没有使用的原因,并且删除。1.在全面测试之前,开启索引监控select 'alter i...
在JAR包中内嵌页面资源
有时候使用JAVA写一些功能,封装为一个JAR包,提供给项目使用,这些项目最终发布为WAR包。但是有的时候,我提供的功能需要少许的页面,如JSP,JS,HTML和图片等。但是又不能侵入到项目的代码。当然,使用Servlet3.0可以实现在JAR中内嵌视图资源的功能。但是如果不使用Servlet3.0,可以写一个过滤器实现这个功能。过滤器...
Oracle主键选择对插入的影响
主键一般使用序列或者UUID使用UUID主要优点是分布式环境下,主键不会重复;缺点是性能相对较低。序列则相反,他在分布式环境下会重复,但是性能较高。实验分别测试序列,UUID,使用RAW类型的UUID,测试100W数据插入的时间。import java.sql.Connection;import java.sql.DriverManager;...