- 浏览: 7856367 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
1 如果一个多分区的表,要将某个分区的数据导出去,可以通过表空间导出的方式导出,方法步骤为:
1)建立一个临时表及临时索引
2) 通过交换分区的方法互换:
alter table sale_data exchange partition sales_2009_1 with
table tmp_sale_data_2009_1 including indexes with validation;
3)导出整个表空间
4) 将离线的数据库导入新的表空间
5) 将导入的临时表中的数据和索引重新交换到分区表中去
2 delete不能释放其表空间,因为表的高水位线并不能下降,必须用drop或者truncate
操作。
3 哈希分区
create table t_hash partition by hash(object_id) partitions 8 as select * from dba_objects;
select partition_name,count(*) from user_extents where segment_name='T_HASH' group by partition_name
分区的数量应该是2的N次方为好
哈希区,不能drop,split及merge分区,但可以truncate方式清除分区数据,比如
alter table t_has truncate partition sys_p48;
注意的是,如果hash列上的数据大量重复,则会造成数据分布不均匀
4 列表分区
....partition by list(sales_date)
(partition abc values('xxx','....'),
partition def values('xxxx','yyyy'),
partition hijk values(default));//默认分区
5 对重复率很低的一个表,当小范围扫描时,哈希分区通过索引访问数据的效率高于
范围分区;当扫描值足够大时,范围分区性能好于哈希分区。
6 SQL语句执行时,第一次,ORACLE会对其进行硬解析,会额外站用一些资源,因为要对其语法,语义分析,可以通
过trace文件看到
alter session set sql_trace=true;
7 位图索引,比如scott用户的emp表中的job列,重复很高,可以建立位图索引
create bitmap index emp_bit_ind on emp(job);
1)位图索引占用空间比较小
2)位图索引对于数据重复率高的数据进行AND,OR操作,比B树好,因为都是AND OR运算,对于0和1
3)对于比如性别,年龄,位置这些类型的字段,用位图索引比较好
4)位图索引适合OLAP,不大适合OLTP,因为OLTP不断修改,不断写;因为位图索引中一个索引键中可能对应多条
记录,更新时容易发生死锁。
附:看死锁
select distinct sid from v$mystat;
select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in(查出来的sid1,查出来的sid2)
8 全文索引
1) create index t2_text_idex on t2(name) indextype is ctxsys.context
select table_name,index_name from user_indexes;
可以看到创建了dr$开头的4个表,为全文索引的基表,而索引 t2_text_idex本身不占空间。会产生4个基表
DR$_索引名_IDEX$I为一个大表,存储了索引字段通过语法分析器处理后的关键字信息即分割词汇。
2)全文索引占空间比较大,要注意
3)得到表和全文索引表占用的空间
select trunc(bytes/(1024*1024)) table_size_M from user_segments where segment_name='T1' order by
1;
获得全文索引大小:
select ctx_report.index_size('T1_IDX') FROM DUAL
4) 建立全文索引后,比如dml后,不会马上反映到全文索引中去
alter index t_idx rebuild parameters('sync')
5)删除记录后,全文索引马上有效果
6) 而更新记录也需要手工同步
7) 创建表时,参数指定同步更新索引
create index t_idex on t(name) indextype is ctxsys.context parameters('sync(on commit)')
9 ctx_report工具包,提供关于全文索引的很多东西
1)建立一个临时表及临时索引
2) 通过交换分区的方法互换:
alter table sale_data exchange partition sales_2009_1 with
table tmp_sale_data_2009_1 including indexes with validation;
3)导出整个表空间
4) 将离线的数据库导入新的表空间
5) 将导入的临时表中的数据和索引重新交换到分区表中去
2 delete不能释放其表空间,因为表的高水位线并不能下降,必须用drop或者truncate
操作。
3 哈希分区
create table t_hash partition by hash(object_id) partitions 8 as select * from dba_objects;
select partition_name,count(*) from user_extents where segment_name='T_HASH' group by partition_name
分区的数量应该是2的N次方为好
哈希区,不能drop,split及merge分区,但可以truncate方式清除分区数据,比如
alter table t_has truncate partition sys_p48;
注意的是,如果hash列上的数据大量重复,则会造成数据分布不均匀
4 列表分区
....partition by list(sales_date)
(partition abc values('xxx','....'),
partition def values('xxxx','yyyy'),
partition hijk values(default));//默认分区
5 对重复率很低的一个表,当小范围扫描时,哈希分区通过索引访问数据的效率高于
范围分区;当扫描值足够大时,范围分区性能好于哈希分区。
6 SQL语句执行时,第一次,ORACLE会对其进行硬解析,会额外站用一些资源,因为要对其语法,语义分析,可以通
过trace文件看到
alter session set sql_trace=true;
7 位图索引,比如scott用户的emp表中的job列,重复很高,可以建立位图索引
create bitmap index emp_bit_ind on emp(job);
1)位图索引占用空间比较小
2)位图索引对于数据重复率高的数据进行AND,OR操作,比B树好,因为都是AND OR运算,对于0和1
3)对于比如性别,年龄,位置这些类型的字段,用位图索引比较好
4)位图索引适合OLAP,不大适合OLTP,因为OLTP不断修改,不断写;因为位图索引中一个索引键中可能对应多条
记录,更新时容易发生死锁。
附:看死锁
select distinct sid from v$mystat;
select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in(查出来的sid1,查出来的sid2)
8 全文索引
1) create index t2_text_idex on t2(name) indextype is ctxsys.context
select table_name,index_name from user_indexes;
可以看到创建了dr$开头的4个表,为全文索引的基表,而索引 t2_text_idex本身不占空间。会产生4个基表
DR$_索引名_IDEX$I为一个大表,存储了索引字段通过语法分析器处理后的关键字信息即分割词汇。
2)全文索引占空间比较大,要注意
3)得到表和全文索引表占用的空间
select trunc(bytes/(1024*1024)) table_size_M from user_segments where segment_name='T1' order by
1;
获得全文索引大小:
select ctx_report.index_size('T1_IDX') FROM DUAL
4) 建立全文索引后,比如dml后,不会马上反映到全文索引中去
alter index t_idx rebuild parameters('sync')
5)删除记录后,全文索引马上有效果
6) 而更新记录也需要手工同步
7) 创建表时,参数指定同步更新索引
create index t_idex on t(name) indextype is ctxsys.context parameters('sync(on commit)')
9 ctx_report工具包,提供关于全文索引的很多东西
发表评论
-
mybatis generator中的字段大小写生成问题
2017-10-22 19:35 11254mybatis generator插件中,如果 mysql数据 ... -
MySQL统计一个列中不同值的数量
2017-07-11 14:04 16233https://yiqiwuliao.com/post/mys ... -
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
2017-03-02 09:44 1730权限问题,授权 给 root 所有sql 权限 mysql ... -
几个不错的MYSQL 优化TIPS
2016-11-19 12:30 768图片来自http://imysql.com/的PDF分享 [ ... -
powerdesign 逆向ORACLE的坑
2016-09-27 17:08 526要注意的是,在WIN 64中,如果要用powerdesin 来 ... -
( 转)mysql中删除两条重复记录中的一条
2015-10-19 20:19 1298| id | createTime | labId | pub ... -
mysql中sql语句=,>的时候的索引设置
2015-05-02 12:27 1288在 https://www.percona.com/blog/ ... -
mysql中profile的使用
2015-04-30 11:11 2188mysql 的 sql 性能分析器主要用途是显示 sql 执行 ... -
mysql中的sql mode
2015-04-13 11:29 1114mysql sql mode小结 1 sql mode可以 ... -
PROCEDURE ANALYSE()为mysql提高性能提供建议
2015-04-02 16:37 1409procedure analyse();语法如下 select ... -
mongodb中意外退出的问题
2015-02-11 14:32 1311mongodb启动的时候,意外退出: Unclean shut ... -
mysql 5.5中保留字查询
2014-06-05 23:16 1456mysql 5.5中保留字查询 http://www.5is ... -
(转)oracle 临时表空间的增删改查
2014-03-18 12:44 1102oracle 临时表空间的增删改查 1、查看临时表空间 (d ... -
pl-sql developer安装
2014-02-07 09:16 1096一直都是机器本机上有oracle,所以装pl sql deve ... -
oracle中的nvl,nvl2等参数
2013-12-26 11:18 22441.nul函数将一个null值转换为一个实际的值。 数据类型可 ... -
Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
2013-12-26 11:08 2329http://gong-10140.iteye.com/blo ... -
ORACLE XE版本的限制
2013-12-07 08:11 361310g中用户数据最大为4G, 11G中最大为11G,如果超出大 ... -
oracle中监控索引是否可用
2013-11-04 07:22 1039在oracle中,可以使用如下的方法监控索引是否可用: a ... -
mysql 5.6中的时间类型的新精度介绍
2013-10-28 09:33 8375留意到mysql 5.6中,可以使用select now(6) ... -
<<oracle索引技术》读书笔记1
2013-08-25 16:23 1291expert indexing in oracle datab ...
相关推荐
让Oracle跑得更快2基于海量数据的数据库设计与优化
让Oracle跑得更快(扫描版).pdf 高清下载
让Oracle跑得更快基于海量数据的数据库设计与优化].谭怀远.第2版
让Oracle跑得更快(2):基于海量数据的数据库设计与优化 - 谭怀远。
让oracle跑得更快!如果你想深入学习oracle,如果你想学习优化oracle,下它吧!
让Oracle跑得更快2:基于海量数据的数据库设计与优化 谭怀远 清晰扫描版 带书签目录
《让Oracle跑得更快:Oracle 10g性能分析与优化思路》PDF版本下载
让Oracle跑的更快1、2集合
Oracle数据库分区和压缩技术应用——让Oracle跑得更快.pdf
让Oracle跑得更快.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
( 让Oracle跑得更快 2 基于海量数据的数据库设计与优化.pdf )(清晰中文完整版)
在这本书里读者将会学到作者在性能优化方面的一些思路和思考,一些故障处理的方法和原则,这些东西是作者在实践中长期积累的心得体会,当读者掌握了一些处理问题的基本思路之后,成为一名合格的DBA就是一件轻而易举...
让ORACLE跑得更快。。。。。。。。。。。。。。。。。。。
通过文档可以让你了解到是什么在影响着数据库的性能,如何才能让数据库更为优化,让系统速度更快
海量数据处理,oracle数据库设计,优化性能
让Oracle跑得更快基于海量数据的数据库设计与优化.谭怀远.第2版
让oracle跑的更快PDF,供参考。读后再处理oracle会有不同感受。
让Oracle跑得更快1:Oracle 10g性能分析与优化思路(1)(带详细目录)
让Oracle跑得更快.pdf-Oracle 10g 性能分析与优化思路
让Oracle跑得更快.Oracle.10g性能分析与优化思路