自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

转载 世界级Oracle专家Jonathan Lewis:我很为DBA们的未来担心(图灵访谈)

Jonathan Lewis 世界级Oracle资深专家,有20多年Oracle关系数据库管理经验。主要从事自由咨询顾问工作,其Oracle数据库引擎方面的培训课程和研讨会世界闻名。Jonathan曾是UKOUG(UK Oracle User Group)的负责人,他著有多本Oracle方面的畅销书,并维护自己的Oracle技术博客。他的博客:http://jonathanlewis.wordpr

2013-11-27 14:51:37 1239

转载 专访Jonathan Lewis:关于Oracle的那些事

【TechTarget中国原创】 在Oracle技术圈里,Jonathan Lewis可以说是神一样的人物,被许多Oracle从业者视为偶像。超过20年的数据库从业经验,同时出版过多本深入Oracle的专业书籍,Jonathan Lewis对数据库技术有着超出常人的热情。在本周举行的Oracle技术嘉年华(OTN China Tour 2013)上,TechTarget中国记者也有幸对

2013-11-27 14:50:23 1385

原创 JXL创建Excel造成整个系统缓慢的解决方案

上午发现系统发现缓慢(数据库连接池不足),配置组定位可能是某某功能的问题,但因为上午有人在使用4个计划上报数据,我怀疑是4个计划的问题。中午测试了下,每次新增数据,后台就会报数据库连接错误。    false,isJTS=true,vendorID=100,connUsed=true,doInit=false,'null',destroyed=false,poolname=JDBC

2013-11-26 18:04:25 3534

转载 做数据库维修工、还是码农,讨论走下神坛的职业

weikle这个话题很好:大部分公司的DBA其实是个数据库维修工,不要神化这个职业http://www.itpub.net/thread-1622257-1-1.html本来想简单回一下,没想到越写越长,干脆单独开一帖算了。DBA曾经被神化过,哪是因为它曾经像刚刚发掘出的金矿,很容易就可以成功。大部分公司的DBA其实是个数据库维修工。大部分公司的程序员其实是代码工,即码农。

2013-11-25 14:38:12 1294

原创 hint OPAQUE_TRANSFORM产生的原因

在AWR报告中经常看到一个hint /*+ OPAQUE_TRANSFORM */,感到莫名其妙。原因是什么引起的呢?如果在数据库B的AWR中看到这种hint,原因是其他数据库通过DB link访问数据库B,且用的是insert into table_name select * from table_name@dblink_name的方式访问。SQL> explain plan for ins

2013-11-22 15:18:48 3127

原创 使用dblink出现ORA-01017

本地的数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明是对的。SQL>  create database link DBLINK_TEST      connect to test identified by test      using '10.10.15.25_11';数据库链接已创建。SQL> se

2013-11-22 14:33:51 2238

原创 SQL优化--分片思想的运用

A表和B表都有个字段是code,code是表示部门编码的意思,如03表示一个大部门,0301,0302是03的小部门,030101,030102是0301的子部门,现在有个需求,就是查A表中部门的子部门在B表中的记录,可以是两种方式:     一种substr(A.code,1,length(B.code))=B.code,     另一种B.code like A.code||'%'。

2013-11-22 09:30:04 1820

原创 模拟等待事件row lock waits

是索引块分裂引起的锁等待,往往与enq: TX - index contention 伴随产生,enq:TX - index contention的解释。      Waits for TX in mode 4 also occur when a transaction inserting a row in an index has to wait for the end of an inde

2013-11-21 20:40:00 2085

原创 oracle 回收站(recyclebin)引起的性能问题

检查最近的数据库AWR报告,发现有一条系统的SQL非常慢,执行一次接近37s,把SQL弄出来执行了一下,发现问题出在回收站,回收站中有1万3千的表,清理之后,运行此条SQL只需要0.46s。我想影响的SQL不仅仅是这一条,相关调用数据字典的功能都会有好处。10913336.491.94fk8ncdwta6fx2JDBC Thi

2013-11-15 12:36:53 3437

原创 2013-11-9 做的一次系统宕机诊断及总结

2013-11-11接到现场实施人员反馈在9日上午(周六)有宕机并发回了weblogic的server.log 。       1.  从server.log中看到在08时25分49秒有stuck <[STUCK] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy

2013-11-14 08:43:01 2234 1

原创 windows xp下安装 oracle 10g OLS(Oracle Label Security)

OLS是数据库控制数据隐私的一个组件,原理是在为每条数据加一个伪劣(标签列),标签是有权限等级的,通过这个来控制用户访问表的数据权限。  oracle 10g下安装的大致步骤:  1. 在开始菜单中点击 /Oracle - OraDb10g_home1/Oracle Installation Products/Universal Installer开始安装;  2. 出现窗口选择安

2013-11-12 09:13:13 1591

原创 再探not in 与not exists

有些公司在SQL规范中写到,禁止使用not in,所有用not in的地方都要用not exists,这种结论对吗?下面我们来做实验:1. 准备环境C:\Documents and Settings\guogang>sqlplus test/testSQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 11 19:54:27 2013

2013-11-11 20:10:06 1534 1

原创 oracle update执行计划原理解析与优化

当使用update,大多数情况下只有一个子节点,只有当set子句中使用子查询时,它才能有两个以上的节点,如果它只有一个节点的情况下,类似于过滤操作(探索执行计划中filter的原理),如下试验所示,步骤2首先扫描一次,当步骤2每返回一条数据步骤3、4、5都扫描一次,所以步骤3、4、5扫描了999次。          当update下面有多个节点时,大家可以看到相当于是多个nestedloop

2013-11-08 09:05:46 2656

原创 探索执行计划中filter的原理

之前写过一篇文章,filter造成的性能问题,开头是这么写的:    filter这个词总让人很费解,它下一级可以挂 一个子节点,二个子节点,三个子节点...。     挂一个子节点意思过滤,如对全表进行扫描后,按照条件过滤,丢弃不满足条件的数据。     挂二个子节点类似是nest loop。     挂三个子节点类似1和2做nest loop,结果集再与3做nest loo

2013-11-07 19:09:34 4828

原创 数据库设计中单个字段多值的处理

在数据库设计中,有一种情况是比较头痛的,就是一条业务数据有一个字段是多个值拼起来的,如一个设备有多个维护部门。create table devcie(   devcie_id number,   vindicate_dept_id  varchar2(100));insert into devcie values(1,'11');insert into devcie

2013-11-07 09:39:31 8923 2

原创 如何判断一个字符在一个字符串中出现的次数

在平常的业务中,会有业务单据上有多个所属部门的信息,如何判断出有多个部门,如下实例所示,可以通过判断分号来判断部门的个数。with t as (select ';11482;11484;107875;' dept_id from dual)select length(replace(translate(dept_id,'0123456789',' '),' ','')) cishu fro

2013-11-07 09:10:25 2968

原创 游标共享之cursor_sharing=similar

cursor_sharing=similar   ,exact和force折中的参数。当探测到谓词会导致执行计划的改变,就会重新解析,否则不会。      适用场景:在无法将应用的代码修改为绑定变量情况下,oracle提供的又一种解决方法,similar的好处是最大限度地避免CBO在绑定变量的情况下做出的错误的判断,但它的代价是分析的次数变大。       参数还有两种选择:

2013-11-05 17:34:53 1946

原创 游标共享之cursor_sharing=force

cursor sharing=force , oracle将2条类似的SQL的谓词用一个变量代替,同时将它们看做同一条SQL语句处理。这种方式很粗暴,极可能造成执行计划的不准确。        适用场景:在无法将应用的代码修改为绑定变量情况下,oracle提供的一种解决方法。        注意:游标共享特性有个不太好的名声,就是它不是很稳定,过去数年,大量与之相关的bug被发现和确认

2013-11-05 16:31:53 5022

原创 游标共享之cursor_sharing=EXACT

cursor sharing用来告诉oracle什么情况下可以共享游标,即SQL重用。oracle默认cursor_sharing 是exact  指的是SQL语句必须绝对一样的情况下才能共享游标,否则作为新的SQL语句处理。        适合场景:使用exact 高效的前提是应用代码中使用了绑定变量,是最好的实践方式,这也是oracle推荐的。SQL> Drop table t p

2013-11-05 16:16:32 3002

原创 用oracle logminer挖不出数据报In Memory Undo is unsupported

最近在用logminer进行日志挖掘,无意之中create table test as select * from v$logmnr_contents; 发现其实是有记录的,只是记录的内容无法解析,info字段报In Memory Undo is unsupported这个问题。几经周折,加上附件日志就ok了,下面是实验再现:C:\Documents and Settings\guogang>

2013-11-04 19:19:27 2434

原创 排序合并连接(sort merge join)的原理

排序合并连接(sort merge join)    访问次数:两张表都只会访问0次或1次。    驱动表是否有顺序:无。    是否要排序:是。    应用场景:当结果集已经排过序。排序合并连接原理:如果A表的数据为(2,1,4,5,2),B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序,如下:              A    B

2013-11-01 08:24:09 7405

编译原理及实践

一起来学编译原理,看看编译器内部的工作

2008-03-08

空空如也

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

TA关注的人

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