打对了

实践Oracle优化技术在医疗信息化中的深入应用,探索医院信息系统性能优化设计之道。公众号:医信系统性能优化。

 

2006年10月17日

如果一个触发器中只有一条Null语句,是否会产生日志?为什么?

摘要: 是否产生日志,以及产生多少日志,应区分:三种不同的触发器(Befor,After,Instead),三种不同的DML操作(Insert,Update,Delete),两类Oracle版本(9i及以下,10G)区别来说. 触发器中的什么都不执行也可能产生日志,并且某些情况下产生大量的额外日志,影响性能. 主要情况如下:1.Befor和After触发器在9i及以下进行Insert操作会额外增加近3倍的... 阅读全文

posted @ 2006-10-17 10:50 知道得越多知道的越少 阅读(637) 评论(0) 推荐(0) 编辑

关于Tom的新书

摘要: 最近在看Tom的新作看了一半左右,基本上是新瓶装旧酒,算是的升级版,不过,还是有一些关于9i和10g方面的新东西.关于触发器对重作日志的影响这一点,研究得确实很细,但是发现两本书在同一个问题的实验结果有一个地方表述不一致估计确实是因为这个问题比较复杂,TOM被搞晕了.具体就是:10g以前,update操作会受before触发器的影响,产生额外的日志,而不受after触发器的影响新书307页的总结表... 阅读全文

posted @ 2006-10-17 10:43 知道得越多知道的越少 阅读(415) 评论(0) 推荐(0) 编辑

2006年9月19日

原来这种情况下的全表扫描不是真的全表扫描

摘要: 看到我们的程序中较多的使用类似下面的语句来取得字段类型等信息,一看执行计划,紧张了一下,全表扫描 后来通过多次试验才发现,这种全表扫描是假的,它不读数据,所以不耗资源. (注意:第一次执行时,会较多的递归SQL,造成逻辑读存在的假象,所以需要第二次以上执行后观察) SQL> select * from 病人信息 where rownum select * from 病人信息 where 病人id=... 阅读全文

posted @ 2006-09-19 13:22 知道得越多知道的越少 阅读(437) 评论(0) 推荐(0) 编辑

2006年8月11日

授权操作引发存储过程重编译

摘要: 公司产品中的授权操作将涉及大量的存储过程授权,此操作将会使这些存储过程重编译,如果此时并发会话很多的话,可能正在执行某些存储过程,授权操作就会被卡住,表现为等待时间加长. 可能你会觉得奇怪授权怎么会导致过程重编译呢?事实上Oracle正是这样做的,grant,revoke与alter procedure操作一样,都会导致存储过程重编译. 前两天看到盖国强分析buffer cache latch的一... 阅读全文

posted @ 2006-08-11 10:15 知道得越多知道的越少 阅读(467) 评论(0) 推荐(0) 编辑

2006年7月13日

强制刷新Buffer Cache的几种方法

摘要: 很多时候,我们在做一些试验中,需要清空数据缓冲区,以便显示正确的物理读和逻辑读 据我所知,有下面三种方法,你知道还有哪些方法吗?(除了重启数据库) 1.表空间脱机再联机的方法alter tablespace xx offline;alter tablespace xx online; 2.在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache,其语法为:alte... 阅读全文

posted @ 2006-07-13 11:23 知道得越多知道的越少 阅读(1906) 评论(0) 推荐(0) 编辑

2006年6月30日

对latch的一点理解

摘要: 我们在一些书藉和电子文档对latch的介绍,一般的解释都是翻译过来的,缺乏本地化的理解介绍. 轻量级的内存保护机制,栓(闩)锁等,各种解释,让人很难有直观,透彻的理解. 我觉得,如果把对表的lock的理解与对latch的理解联系起来的话,就很容易了. 为了解决并发冲突,Oracle通过lock来对表进行并发控制,但区别于SQL Server等数据库很重要的一点就是:Oracle读取数据(Selec... 阅读全文

posted @ 2006-06-30 14:21 知道得越多知道的越少 阅读(780) 评论(0) 推荐(0) 编辑

2006年6月29日

8174上占用CPU过高('CPU used by this session' has high value)

摘要: Oracle v8174 在启用了statspack的自动作业后,发现Statspack报告中出现了下面的信息: Instance Activity Stats for DB: INSIDE Instance: inside Snaps: 17 -19 Statistic Total per Second per ... 阅读全文

posted @ 2006-06-29 14:25 知道得越多知道的越少 阅读(920) 评论(0) 推荐(0) 编辑

2006年6月28日

在statspack显示完整的SQL

摘要: 用spreport.sql生成statspack文件时,其中的SQL语句只显示了5行,往往显示不完整,有时又需要完整的SQL来进一步分析SQL的性能问题.以前一直不知道怎么办,今天查资料找到了解决办法. 对于8i,直接修改spreport.sql文件中的下面这一句,把5改为20等更大的值 define num_rows_per_hash=5; 对于9i以上,是修改这个文件中的值\rdbms\adm... 阅读全文

posted @ 2006-06-28 18:31 知道得越多知道的越少 阅读(514) 评论(0) 推荐(0) 编辑

2006年6月7日

使用全文检索的intermedia索引时遇到ORA-03212问题的解决

摘要: Bug系统中按反馈描述或处理情况的关键字查询,有时会找不到,但明明有这样的记录.后来,查到是因为该搜索使用了Oracle的intermedia索引,该索引需要定期重建和收集,但自动任务失效了. 查到那个执行失败的过程,手工执行时出现了如下错误:ORA-03212 : Temporary Segment Cannot Be Created In Locally-Managed Tablespace进... 阅读全文

posted @ 2006-06-07 19:17 知道得越多知道的越少 阅读(572) 评论(0) 推荐(0) 编辑

2006年5月29日

位图索引深度探讨

摘要: 一.什么是位图索引我们目前大量使用的索引一般主要是B*Tree索引,在索引结构中存储着键值和键值的RowID,并且是一一对应的.而位图索引主要针对大量相同值的列而创建(例如:类别,操作员,部门ID,库房ID等),索引块的一个索引行中存储键值和起止Rowid,以及这些键值的位置编码,位置编码中的每一位表示键值对应的数据行的有无.一个位图索引块可能指向的是几十甚至成百上千行数据的位置. 这种方式存储... 阅读全文

posted @ 2006-05-29 13:46 知道得越多知道的越少 阅读(1307) 评论(3) 推荐(0) 编辑

导航