Author Archive
Tuesday, September 2nd, 2008
前几天看到论坛上有人问,看到大家都是纸上谈兵,我做了个example。
下载地址:
删除表空间恢复.pdf
Posted in 大话技术 | 2 Comments »
Monday, July 21st, 2008
说实话,在ITPUB上也好,CNOUG上也好,看到很多人问数据模糊查询的问题,特别是一张表的数据量在200M以后,你的查询速度越来越慢。
其实最最简单的就是 like '%xx%',但是这样效率极差,纯粹在拼机器的IO了。
其实在我的日常工作中,对于模糊查询,主要使用以下几种方案提高效率:
A:全文索引
Oracle自带的,SQL SERVER,MYSQL也有这个功能。它的主要实现方式是拆字。记得“玉面飞龙”有一篇文章介绍ORACLE全文索引的,介绍的很详细。
但是全文索引也有很多不足,如:繁体字,孤僻字的支持不好;内部BUG比较多;自身维护的代价和成本很高;新来的开发搞不懂全文索引查询语法;
目前也就少数几个数据库在用全文索引了,打算在不远的将来,将全文索引拿下线了。全部使用Search实现。
B:搜索引擎
其实alibaba集团全部使用的搜索技术,叫“ISEARCH”;100%的知识产权归阿里巴巴所有。
其实在业界最有名的搜索引擎叫“Lunce”,它不仅仅支持JAVA,也支持.NET。
使用搜索最大的好处,它是可以线性扩展的,不像我们的DB。此外我介绍一下搜索引擎大致过程:
数据库有张LOG表,记录变化过的数据》》搜索引擎根据LOG表的数据,DUMP出一份BUILD数据》》把DUMP的东西分发到各个集群》》每台机器再把这个应用到索引文件》》APCHE提供WEB SERVICE给前台
大致过程就这样。至于索引文件本身是个二进制文件。
我觉得搜索引擎本身的实现机制和ORACLE的全文索引类似,也是根据分词器来分词。如果去查找也是根据一个个字Hash mapping出来的,然后根据位置先后次序,找出哪些是符合的。
Posted in 大话技术 | 6 Comments »
Wednesday, July 9th, 2008
今天一个QQ朋友告诉我,他的数据库有点问题,'Checkpoint not complete'。我叫他ALTER文件传过来,下面是我的一些分析:
1:日志切换太频繁,几乎是1分钟不到,就切了(还是归档模式,50M一个)。建议加大日志组成员,另建议问问开发,到底在跑什么?因为晚上11点的LOG,还是很频繁;
2:他说查询很慢,我看了ALTER文件,发现才1.1G的SGA,data buffer就1G,但是PGA倒是有400多M,
如果内存不多的话,还不如PGA小点,多给点databuffer.
我不相信,他的数据库命中率有100%,估计也不可能,因为写日志太频繁了,根据LRU来说,总是有写data buffer要换进换出。
PS:因为我只看到了ALTER文件,所以只能这样定性了。人家没给STATSPACK。
好像有点武断的成分,但是确实也只能这样了。
Posted in 大话技术 | 2 Comments »
Wednesday, July 9th, 2008
最近我管的数据库,上了一套新的系统:《工作流引擎――JBPM》。表上使用了一种很孤僻的类型: RAW。
开发就是把一个对象直接存入到DB里了,额的神啊。。。。这样设计上是方便了,DB这边就不方便了啊。说实话,用不用RAW类型,Donny和我最最关心的还是数据本身的存储,担心RAW和LOB类型的字段一样,存储在别的Segment上。验证了下一下,这种担心不必了。验证如下:
@>SELECT DISTINCT segment_type FROM user_segments;
SEGMENT_TYPE
------------------
INDEX
TABLE
@>desc JBPM_BYTEBLOCK
Name Null? Type
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
PROCESSFILE_ NOT NULL NUMBER(19)
BYTES_ RAW(1024)
INDEX_
Posted in 大话技术 | No Comments »
Monday, July 7th, 2008
今天有人告诉我数据库上有如下错误:
很明显是全文索引的错误,我接下去做了rebuild ,还不能REBUILD ONLINE,FT~···
@>alter index SFA_ACCOUNT_COM_CTXIND rebuild online;
alter index SFA_ACCOUNT_COM_CTXIND rebuild online
*
ERROR at line 1:
ORA-29874: warning in the execution of ODCIINDEXALTER routine
ORA-29960: line 1,
DRG-10595: ALTER INDEX SFA_ACCOUNT_COM_CTXIND failed
DRG-10562: missing alter index parameter
@>alter index SFA_ACCOUNT_COM_CTXIND rebuild;
Index altered.
接下去,一切正常了:
查了METALINK:
Bug# 3039404 See Note 3039404.8
OERI[12406] using NOT CONTAINS with local partitioned TEXT index
Fixed: 9.2.0.5, ...
Posted in 大话技术 | 4 Comments »
Wednesday, June 4th, 2008
See figure:
Posted in 大话技术 | No Comments »
Monday, June 2nd, 2008
前几天MSN上有个朋友的数据库PGA设置了4G,忽然整个os里,PGA占了10多个G。这个问题我一直耿耿于怀,记得Donny曾经说过,今天终于在聊天记录找到了。
“In the latest release 10.2 Oracle changed these default values. The memory allocated to a single SQL operator (_smm_max_size) is limited to:
for P_A_T <= 500MB the parameter _smm_max_size = 20% of P_A_T
for P_A_T between 500MB and 1000MB the parameter _smm_max_size = 100M
for P_A_T betweeen 1001MB and 2560MB (2.5GB) the parameter ...
Posted in 大话技术 | No Comments »
Friday, May 30th, 2008
睡梦中,一架B-52隐形轰炸机离我越来越近,然后在我身上,射了两下。
唉··~··就这样,被迫醒了!!
Posted in 生活八卦 | 2 Comments »