自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 Oracle中 的 DBMS_CRYPTO加密包

原文地址http://blog.csdn.net/rznice/article/details/7402850对Oracle内部数据的加密,可以简单得使用DBMS_CRYPTO来进行,效果还是不错的,而且使用也比较方便,所以今天专门来学习一下这个包的使用方法。在使用之前,要注意两件事情:     1、DBMS_CRYPTO包是10g才有的,如果在10g以前的版本,使用DBMS_

2017-04-19 17:10:19 8026

原创 sql首次执行快,后续慢(_optimizer_use_feedback)

开发反映执行一条sql很慢,查看问题时发现,第一次执行很快,后续执行很慢,等待无结果,只好中断对应sql语句为select o.merchant_no,       o.mer_order_id,       o.bank_name,       o.account_no,       o.account_name,       o.cert_type,     

2016-09-26 16:49:44 5896

原创 基于规则的优化器

出现以下情形之一时,即使修改优化器模式使用rbo,oracle也不会使用rbo1、目标sql中有iot(index organized table)2、目标sql中有分区表3、使用了并行查询或并行dml4、使用了星型链接5、使用了hash连接6、使用了索引快速全扫描7、使用了函数索引......在sql中使用hint,就默认启用了cbo,下两个hint例

2016-09-21 16:13:25 990

原创 理解B树索引

问题描述:理解B树索引解决方案:有一张表:create table cust(cust_id number,first_name varchar2(10),last_name varchar2(20));由于经常使用last_name进行查询,在last_name上有一个索引create index idx_cust_lname on cust(last_name);加

2016-09-20 17:43:38 1314

原创 通过审计监控表的使用

问题描述:如何通过审计监控某些表是否被操作,包括插入,删除,更新,查询解决方案:使用oracle标准审计1、设置审计参数audit_trail2、重启数据库3、使用audit语句对特定操作进行审计audit的值为:none:禁用数据库审计os:启用审计,将审计信息写到操作系统文件db:启用审计,将审计信息写到SYS.AUD$表db_extended:启用

2016-09-20 11:25:34 523

原创 列级压缩数据(混合列式压缩)

问题描述:oracle的exadata存储支持混合列式压缩,能够提高io性能,减少select读取的块数解决方案:创建表时通过compress for query或compress for archive子句create table f_regs(reg_id number,reg_desc varchar2(1000)) compress for query;也可以指定压缩级别

2016-09-20 10:12:03 2818

原创 为所有dml压缩数据(oltp压缩)

问题描述:如何在oltp环境中为所有dml语句压缩数据解决方案:使用oracle oltp压缩创建表时使用compress for oltpcreate table regs(id number,name varchar2(1000)) compress for oltp;在11.2之前,compress for oltp使用compress for all opera

2016-09-19 17:48:26 368

原创 压缩数据以进行直接路径加载

问题描述:dss系统(decision support system)环境中包含许多加载一次,然后频繁扫描的表,采用压缩可以节省io,带来额外的cpu消耗解决方案:使用oracle基本压缩特性将直接路径加载的数据压缩1、使用compress子句创建,修改或移动表时启用压缩2、通过直接路径方式(create table ... as select或insert /*+ app

2016-09-18 16:18:02 319

原创 收缩表

问题描述:段顾问显示一张表有大量闲置空间,如何释放来提高全表扫描的性能解决方案:1、启用行移动2、使用alter table ... shrink space语句释放空间收缩表功能要求表所在表空间是自动段空间管理在对一张表进行收缩时,需要移动数据行,需要启动行移动alter table inv enable row movement;收缩表alter tab

2016-09-18 14:23:00 254

原创 处理行链接

问题描述:你有一张表,其中的数据行可能存储在多个数据块中,这回增加IO使用率,减慢查询速度,你想使这些数据位于一个数据块中当表有显著的行链接问题时,手工执行段顾问建议,可得到以下输出select 'TASK_NAME      :'||T1.TASK_NAME ||CHR(10)|| 'START_RUN_TIME :'||TO_CHAR(T1.EXECUTION_STAR

2016-09-13 16:22:02 370

原创 手工生成段顾问建议

问题描述:你有一张表做了大量数据更新,你发现这张表的查询速度有所下降,你怀疑有行链接问题,因此想手工生成段顾问建议解决方案:使用dbms_advisor可分析特定表空间的所有段,或者某个特定的对象(例如表或索引)1、创建一个任务2、为任务分配对象3、设置任务参数4、执行任务执行dbms_advisor需要advisor权限grant advisor to sco

2016-09-12 16:26:30 721

原创 显示自动段顾问建议

问题描述:你有一个查询耗费时间很长,但是表中数据很少,你想查看段顾问有什么建议解决方案:使用段顾问来显示表的信息,曾经分配过但现在是空的空间(删除大量数据行),有大量未使用的空间的表会使全表扫描变得很慢,因为全表扫描会扫描高水位线下的所有块dbms_space包可以查看段顾问的建议。这些信息由段顾问生成,这些段适合收缩,移动或压缩,如下查询:select 'segment

2016-09-09 15:35:54 1032

原创 高效移除表中数据

问题描述如何快速的从表中移除数据解决方案使用truncate或delete。truncate更快,但是有副作用。truncate是ddl语句,会自动提交,并且不能回滚。也不能在一个事物中truncate两张独立的表truncate table computer_systems;truncate之后,表只会剩下minextents定义的空间,其余空间会释放,如果不希望释放空间

2016-09-08 18:10:21 277

原创 数据加载速度最大化

问题描述:尽快的加载大量数据到一张表中解决方案:1、修改表的日志记录属性为nologging,会使直接路径生成的redo最小(对dml基本没有影响)2、使用直接路径加载   insert /*+ append */ into xxx select ...   insert /*+ append_values*/ into xxx values   create tabl

2016-09-06 18:50:44 700

原创 创建表时控制段延迟分配

问题描述:部署一个应用时,需要创建数千表和索引。如果每个表都分配段,你希望这些语句尽快运行完,不需要为每个表分配初始化空间解决方案:推迟初始段生成的唯一方法就是使用11gr2的段延迟分配,将出事物理空间分配推迟到第一条记录插入的时候。例子:create table f_regs(reg_id number,reg_name varchar2(200));查询表尚未分配任何空间s

2016-09-06 15:19:32 681

原创 选择有益于性能的列类型

问题描述创建表时,应有合适的列类型及约束解决方案创建表时,考虑下面的特性1、如果一列总是存储数值型数据,那么将其数据类型设置为数值型。"01"和1是不同的,正确的类型可避免不必要的数据类型转换2、如果有明确的业务规则定义数值类型的长度,则照此实现,如number(7,2)。如果没有,则定义为number(38)3、对于长度可变的字符数据,使用varchar2而不

2016-09-01 15:04:11 218

原创 匹配表类型与业务需求

问题描述:oracle提供了非常多的表类型供选择,根据特定的业务需求选择合适类型的表对于性能有很大的影响解决方案:oracle创建的表默认是堆组织表,大多数情况,堆组织表可以提供搞笑的数据存取,下面有其他一些表类型:堆组织表:默认的表类型,除非有特殊原因,否则就是用这种表索引组织表:数据存放在一个按照主键排序的索引结构中,通常用于按照主键查找临时表:用于在事物或者会话期

2016-08-31 10:50:15 522

原创 创建具有最优性能的表空间

问题:表空间是存储数据库对象的逻辑容器,在创建对象时不指定存储特性,则会继承表空间的存储特性,因此应如何创建可维护最优化的表空间解决方案:创建的表空间应具有如下特性(如果可以选择):1、本地管理2、ASSM(automatic segment space management),自动段空间管理使用下面的语句创建:create tablespace tools 

2016-08-30 17:25:02 615

原创 创建具有最优性能的数据库

问题:如何创建具有最优性能的数据库1、强制创建的每一个表空间都是本地管理的2、为每个用户自动分配一个默认的永久表空间3、为每个用户自动分配一个默认的临时表空间解决方案:使用下面的创建数据库脚本create database o11r2  maxlogfiles 16  maxlogmembers 4  maxdatafiles 1024  maxinst

2016-08-29 16:33:46 472

原创 分区表查询带分区条件,没有分区消除

1、数据库中交易流水表越来越大,对流水表以create_time列做了分区,开发配合对sql改进,加了create_time做查询条件。但是观察sql执行情况,查询sql的where条件中虽然有create_time,但是却是全表扫描所有分区,性能甚至低于分区之前 分区情况如下:  sql文本和执行计划如下:  对应的java代码如下,其中使用了timestamp类型:

2016-08-05 14:45:55 9557

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除