linux
===========================================================
min ? max ? 执行计划? (续)
===========================================================

链接:
http://lfree.itpub.net/post/4950/284166

create table big_table as select * from dba_objects;
insert into big_table select * from big_table;
insert into big_table select * from big_table;

ALTER TABLE BIG_TABLE MODIFY(OBJECT_ID NULL);

CREATE INDEX I_BT_OBJECT_ID ON BIG_TABLE(OBJECT_ID)

如果修改
select min(object_id),max(object_id) from big_table;

select min(object_id),min(object_id) from big_table;


----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 307 (4)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
| 2 | INDEX FAST FULL SCAN| I_BT_OBJECT_ID | 405K| 1978K| 307 (4)| 00:00:04 |
----------------------------------------------------------------------------------------


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1386 consistent gets
0 physical reads
0 redo size
484 bytes sent via SQL*Net to client
384 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

可以发现oracle并没有选择合适的执行语句。


lfree 发表于:2007.04.29 17:39 ::分类: ( oracle ) ::阅读:(163次) :: 评论 (0)
===========================================================
ZT: 10种短命生活方式
===========================================================

http://www.ixpub.net/650886,1.html

危险方式1:极度缺乏体育锻炼。
  
  在932名被调查者中,只有96人每周都固定时间锻炼,68%的人选择了“几乎不锻炼”。这极易造成疲劳、昏眩等现象,引发肥胖和心脑血管疾病。
  
  危险方式2:有病不求医。
  
  调查显示,将近一半的人在有病时自己买药解决,有1/3的人则根本不理会任何表面的“小毛病”。许多上班一族的疾病被拖延,错过了最佳的治疗时间,一些疾病被药物表面缓解作用掩盖而积累成大病。
  
  危险方式3:缺乏主动体检。
  
  932人中,有219人从来不体检。
  
  危险方式4:不吃早餐。
  
  随着工作节奏加快,吃上符合营养要求的早餐已经成为办公室白领的奢求。被调查者中,只有219人是有规律、按照营养要求吃早餐的。不吃早餐或者胡乱塞几口成为普遍现象。
  
  危险方式5:与家人缺少交流。
  
  有超过41%的办公室人群很少和家人交流,即使家人主动关心,32%的人也常抱以应付的态度。在缺乏交流、疏导和宣泄的情况下,办公室人群的精神压力与日俱增。
  
  危险方式6:长时间处在空调环境中。
  
  在上班时,超过7成的人一年四季除了外出办事外,几乎常年窝在空调房中。“温室人”的自身肌体调节和抗病能力下降。
  
  危险方式7:常坐不动。
  
  被调查者中,有542人的工作习惯是一旦坐下来,除非上厕所,就轻易不站起来。久坐,不利于血液循环,会引发很多新陈代谢和心血管疾病;坐姿长久固定,也是颈椎、腰椎发病的重要因素。
  
  危险方式8:不能保证睡眠时间。
  
  有超过6成的人经常不能保证8小时睡眠时间,另有7%的人经常失眠。
  
  危险方式9:面对电脑过久。
  
  31%的人经常每天使用电脑超过8小时。过度使用和依赖电脑,除了辐射外,还使眼病、腰颈椎病、精神性疾病在办公室群体中十分普遍。
  
  危险方式10:三餐饮食无规律。
  
  有超过1/3的人不能保证按时进食三餐,确保三餐定时定量的人不满半数。


lfree 发表于:2007.04.29 08:10 ::分类: ( 生活与其他 ) ::阅读:(169次) :: 评论 (0)
===========================================================
min ? max ? 执行计划?
===========================================================

create table big_table as select * from dba_objects;
insert into big_table select * from big_table;
insert into big_table select * from big_table;

ALTER TABLE BIG_TABLE MODIFY(OBJECT_ID NULL);

CREATE INDEX I_BT_OBJECT_ID ON BIG_TABLE(OBJECT_ID)

select min(object_id),max(object_id) from big_table;

第1次看到类似的sql语句的时候,感觉会使用索引,并且会走
index full scan (min/max).但是仔细看执行计划发现,发现是使用全表扫描。修改约束OBJECT_ID NOT NULL,仅仅计划变为INDEX FAST FULL SCAN。

 查看全文
lfree 发表于:2007.04.28 16:51 ::分类: ( oracle ) ::阅读:(251次) :: 评论 (0)
===========================================================
如何改变字段的统计信息
===========================================================

关键字:DBA_TAB_COL_STATISTICS DBMS_STATS set_column_stats

前几天优化一个sql语句,语句很长,里面有一段where条件status =1 or status is null,单独执行条件status=1 很快完成,但是单独使用status is null条件,执行计划就发生了变化,仔细询问,status的取值范围很小,仅仅0,1,2,null,我修改了回话的optimizer_index_cost_adj 参数,发现可以改变执行计划。适当的加大表分析以及直方图分析的取样数据,并不能使执行计划变好。

 查看全文
lfree 发表于:2007.04.28 15:47 ::分类: ( oracle ) ::阅读:(177次) :: 评论 (0)
===========================================================
oracle hints ? use_hash ? ordered ?
===========================================================

关键字: oracle hints use_hash ordered

今天优化一个sql语句,想使用hash join看看效果,无论如何使用提示,都无法改变执行计划。google,首先发现要可以使用LEADING,但是在8i下无效:
发现LEADING的意思是:
LEADING hint causes Oracle to use the specified table as the first table in the join order.An ORDERED hint will override this hint.

改用ordered后,在检查执行计划发现可以使用hash join。

ordered:Causes the SQL to be driven by the tables in the order left to right.

我将use_hash括号里面的表对调,并不能改变执行计划。

我很少使用hints,为什么会出现这个问题,自己不知道?


lfree 发表于:2007.04.28 15:46 ::分类: ( oracle ) ::阅读:(316次) :: 评论 (0)
===========================================================
在线unix man page
===========================================================

关键字: unix man soalris

http://bama.ua.edu/cgi-bin/man-cgi

这个仅仅作为solaris的man在线man手册。


lfree 发表于:2007.04.28 08:20 ::分类: ( linux ) ::阅读:(292次) :: 评论 (0)
===========================================================
U盘病毒?写保护?
===========================================================

关键字: U盘病毒 写保护

最近遇到几次U盘问题,就是无论U盘在写保护还是不在写保护的情况下,都是无法往
U盘写文件,我个人认为有几个原因:

 查看全文
lfree 发表于:2007.04.27 08:41 ::分类: ( 计算机维修 ) ::阅读:(1733次) :: 评论 (2)
===========================================================
cmd.exe , regedit.exe , msconfig.exe 无法找到与执行
===========================================================

昨天帮别人修理机器,修理完成后发现一个奇怪的问题,无法执行cmd等命令,上网检查
发现许多是关于exe文件的关联问题,试了一下无法解决:

ftype exefile="%1" %*
assoc .exe=exefile

无法解决!!

在注册表检索rededit.exe发现

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\regedit.exe]
"Debugger"="setuprs1.PIF"

删除这个链接后,执行正常!注意开始要执行cmd.exe , regedit.exe , msconfig.exe这些文件,必须先修改后缀名为com.

google 检索如下链接Image File Execution Options发现如下链接,使用它可以调试程序:

http://blogs.msdn.com/junfeng/archive/2004/04/28/121871.aspx
http://hi.baidu.com/ifox/blog/item/fb73c9ea146df7d3d439c90e.html


lfree 发表于:2007.04.25 08:45 ::分类: ( windows ) ::阅读:(813次) :: 评论 (0)
===========================================================
ZT:简单介绍join,outer-join,semi-join,anti-join的区别
===========================================================

http://www.itpub.net/showthread.php?s=&postid=7357788#post7357788

表连接的方式如join,semi-join,outer-join,anti-join;
表连接的实现方式如nested loop,merge,hash.
本文简单的介绍表连接的方式join,semi-join,outer-join,anti-join和适用情景。

假设2个数据源(row source).
Emp(id pk,ename,deptno) Dept(deptno pk,dname)

如下是join
select ename,dname from emp,dept where emp.deptno=dname.deptno;
2个数据源键值一一比较,返回相互匹配的记录集
for example: nested loop join
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
End if
end loop
end loop

outer-join
select ename,dname from emp,dept where emp.deptno= dept.deptno(+);
select ename,dname from emp,dept where emp.deptno(+)=dept.deptno;
2个数据源键值一一比较,返回相互匹配的;但如果在另外一个row source没有找到匹配的也返回记录
for example: nested loop outer-join
for x in ( select * from emp )
loop
find_flag=false;
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
Find_flag=true
End if
end loop
if ( find_flag == false )
OutPut_Record(x.ename,null)
End if
end loop
semi-join
select dname from dept where exists( select null from emp where emp.deptno=dept.deptno)
多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row source其他的键值了。
for example: nested loop semi-join


for x in ( select * from dept )
loop
for y in ( select * from emp)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.dname)
Break;
End if
end loop
end loop

anti-join
select ename,deptno from emp,dept where emp.deptno!=dept.deptno
多用于!= not in 等查询;如果找到满足条件(!= not in)的不返回,不满足条件(!= not in)的返回。和join相反。
 for example: nested loop anti-join
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno != y.deptno )
OutPut_Record(x.dname,y.deptno)
End if
end loop
end loop

More information get document
http://download-east.oracle.com/doc...imops.htm#39473

http://blog.itpub.net/post/901/12680


lfree 发表于:2007.04.25 08:20 ::分类: ( oracle ) ::阅读:(151次) :: 评论 (0)
===========================================================
十大垃圾食品
===========================================================

zt: http://news.xinhuanet.com/health/2005-01/13/content_2453233.htm

1.油炸食品 此类食品热量高,含有较高的油脂和氧化物质,经常进食易导致肥胖;是导致高脂血症和冠心病的最危险食品。在油炸过程中,往往产生大量的致癌物质。已经有研究表明,常吃油炸食物的人,其部分癌症的发病率远远高于不吃或极少进食油炸食物的人群。

2.罐头类食品不论是水果类罐头,还是肉类罐头,其中的营养素都遭到大量的破坏,特别是各类维生素几乎被破坏殆尽。另外,罐头制品中的蛋白质常常出现变性,使其消化吸收率大为降低,营养价值大幅度“缩水”。还有,很多水果类罐头含有较高的糖分,并以液体为载体被摄入人体,使糖分的吸收率因之大为增高牞可在进食后短时间内导致血糖大幅攀升,胰腺负荷加重。同时,由于能量较高,有导致肥胖之嫌。

3.腌制食品在腌制过程中,需要大量放盐,这会导致此类食物钠盐含量超标,造成常常进食腌制食品者肾脏的负担加重,发生高血压的风险增高。还有,食品在腌制过程中可产生大量的致癌物质亚硝胺,导致鼻咽癌等恶性肿瘤的发病风险增高。此外,由于高浓度的盐分可严重损害胃肠道粘膜,故常进食腌制食品者,胃肠炎症和溃疡的发病率较高。

4.加工的肉类食品(火腿肠等) 这类食物含有一定量的亚硝酸盐,故可能有导致癌症的潜在风险。此外,由于添加防腐剂、增色剂和保色剂等,造成人体肝脏负担加重。还有,火腿等制品大多为高钠食品,大量进食可导致盐分摄入过高,造成血压波动及肾功能损害。

5.肥肉和动物内脏类食物 虽然含有一定量的优质蛋白、维生素和矿物质,但肥肉和动物内脏类食物所含有的大量饱和脂肪和胆固醇,已经被确定为导致心脏病最重要的两类膳食因素。现已明确,长期大量进食动物内脏类食物可大幅度地增高患心血管疾病和恶性肿瘤(如结肠癌、乳腺癌)的发生风险。

6.奶油制品 常吃奶油类制品可导致体重增加,甚至出现血糖和血脂升高。饭前食用奶油蛋糕等,还会降低食欲。高脂肪和高糖成分常常影响胃肠排空,甚至导致胃食管反流。很多人在空腹进食奶油制品后出现反酸、烧心等症状。

7.方便面 属于高盐、高脂、低维生素、低矿物质一类食物。一方面,因盐分含量高增加了肾负荷,会升高血压;另一方面,含有一定的人造脂肪(反式脂肪酸),对心血管有相当大的负面影响。加之含有防腐剂和香精,可能对肝脏等有潜在的不利影响。

8.烧烤类食品 含有强致癌物质三苯四丙吡。

9.冷冻甜点 包括冰淇淋、雪糕等。这类食品有三大问题:因含有较高的奶油,易导致肥胖;因高糖,可降低食欲;还可能因为温度低而刺激胃肠道。

10.果脯、话梅和蜜饯类食物 含有亚硝酸盐,在人体内可结合胺形成潜在的致癌物质亚硝酸胺;含有香精等添加剂可能损害肝脏等脏器;含有较高盐分可能导致血压升高和肾脏负担加重。


lfree 发表于:2007.04.24 09:20 ::分类: ( 生活与其他 ) ::阅读:(138次) :: 评论 (0)
===========================================================
ZT:字符长度与共享问题
===========================================================

http://tkyte.blogspot.com/2007/04/share-and-share-alike.html

Share and Share alike...

create table t ( x varchar2(2000) );

declare
a varchar2(1) := 'x';
b varchar2(100) := rpad('x',100,'x');
c varchar2(500) := rpad('x',500,'x');
d varchar2(1000) := rpad('x',1000,'x');
begin
insert into t big_to_small values(d);
insert into t big_to_small values(c);
insert into t big_to_small values(b);
insert into t big_to_small values(a);
insert into t small_to_big values(a);
insert into t small_to_big values(b);
insert into t small_to_big values(c);
insert into t small_to_big values(d);
end;


column sql_text format a45
column address new_val ADDR
select sql_text, address, child_address
from v$sql
where sql_text like 'INSERT%INTO%T%VALUES(%:B1%)'
/

SQL_TEXT ADDRESS CHILD_ADDRESS
--------------------------------------------- ---------------- ----------------
INSERT INTO T BIG_TO_SMALL VALUES(:B1 ) 00000000CABA0820 00000000CAC197D8
INSERT INTO T SMALL_TO_BIG VALUES(:B1 ) 00000000CA7F9300 00000000D16A97A0
INSERT INTO T SMALL_TO_BIG VALUES(:B1 ) 00000000CA7F9300 00000000D1A477A0
INSERT INTO T SMALL_TO_BIG VALUES(:B1 ) 00000000CA7F9300 00000000D155C0B8


lfree 发表于:2007.04.24 09:15 ::分类: ( oracle ) ::阅读:(148次) :: 评论 (0)
===========================================================
如何优化这个sql?
===========================================================

上个星期发现开发人员写的一条sql,语句如下:

0。
SELECT DISTINCT a.dept_code, a.dept_name, a.input_code
FROM dept_dict a, pat_visit b
WHERE a.dept_code = b.dept_admission_to

 查看全文
lfree 发表于:2007.04.23 10:24 ::分类: ( oracle ) ::阅读:(159次) :: 评论 (0)
===========================================================
ZT:放孩子一条生路吧!
===========================================================

http://alexwu2300.blog.hexun.com/8876940_d.html

我曾经在加拿大住过几年,发现加拿大的老外邻居,平时大多数都很早就睡了,晚上九、十点,整条街大多数家庭的灯都关了。特别是家里的小孩,都在晚上八、九点就赶上床了。回到亚洲,无论住在大陆还是台湾,所有的孩子做完功课都已经十一点了。两岸的教育系统都用古老的填鸭式教育,只着重于灌输书本的知识,从来不注意知识和生活的联结。

虽然在学校里也有健康教育的课程,却仅止于文字,从来没有让孩子有机会真正过着可以得到健康的生活,现在的孩子连最基本的早睡都是奢侈的妄想,在这样的环境,再多的健康教育也不能带给孩子健康。没有良好的睡眠,学校里的体育课,也不可能真正锻练出健康的孩子。发展出这种病态教育体系的两岸教育主管机构和官员,实在是人民健康的最大杀手。两岸的医疗支出愈来愈大,年轻人得到重病的机率愈来愈高,病态的教育体系是主要的罪魁祸首。

早睡早起身体好,是每一个人幼年时学校里都教过的内容。可是单单学校指定的功课,就已经让人无法早睡。大多数孩子在年幼时,根本没有机会试试早睡是不是真的可以让身体变好。这种知和行不一的教学方法,使得『光说不练』都快成了中国人的民族性。中国人是最懂得养生知识的民族,但是生活上却是最不健康的。香港和台湾是全世界睡得最晚的地区,大陆的主要城市这几年的『现代化』,也慢慢跟上了港台的脚步。

两岸的中国人都有『不能让孩子输在起跑点』的想法,因此,从孩子很小的时候,就开始安排各种补习的功课。家庭环境好的,除了正常的功课,还加上钢琴、画画、舞蹈、珠算等。这些繁重的功课压力,不仅没有真正让孩子赢在起跑点,常常让孩子还没有起跑就先输掉了健康。

孩子的过敏性鼻炎,『需要早睡』身体才能有能量排除体内的寒气;孩子的成长迟缓,『需要早睡』身体才有足够的能量提供成长的需要;孩子的过动,『需要早睡』才能使身体不再透支血气,肝火和心火才会下降,过动才能改善;……;孩子的未来,需要现在早睡,才能有健康的身体和幸福的人生。

大人们,放孩子一条生路吧!


lfree 发表于:2007.04.16 15:02 ::分类: ( 生活与其他 ) ::阅读:(107次) :: 评论 (0)
===========================================================
字符串abcde我要输出字符串de?
===========================================================

cat a

cat a

12345
67890
aasjhdsa kasjhdsakjdh
asjkdsa asjkdsa
214324200

1

在vim下可以执行:

vim -c ":%s/\(.*\)\(..$\)/\2/" -c ":wq" a


lfree 发表于:2007.04.16 09:01 ::分类: ( vim ) ::阅读:(141次) :: 评论 (0)
===========================================================
ZT:增长气血的捷径——山药薏米芡实粥
===========================================================
http://jinjiduli.blog.hexun.com/8774220_d.html 查看全文
lfree 发表于:2007.04.16 08:30 ::分类: ( 医学 ) ::阅读:(193次) :: 评论 (0)
===========================================================
VIM插件AutoClose
===========================================================

http://vim.sourceforge.net/scripts/script.php?script_id=1849

使用这个插件可以打入快速输入括号,引号等,避免出错。

安装很简单,copy到plugin目录。

\a 关闭这个特性。

 查看全文

lfree 发表于:2007.04.04 08:27 ::分类: ( vim ) ::阅读:(279次) :: 评论 (0)
===========================================================
lZ:10gR2--EMCA常用命令说明:
===========================================================

http://vongates.itpub.net/post/2553/271778

在10g 中,我们可能会经常遇到OEM不能正常使用的问题,但导致问题的原因不尽相同,最后绝大多数问题可以通过emca 这个命令来解决,详细的说明可以查看连机帮助,下面给出一些常用的命令,及实例步骤.

创建一个EM资料库
emca -repos create
重建一个EM资料库
emca -repos recreate
删除一个EM资料库
emca -repos drop
配置数据库的 Database Control
emca -config dbcontrol db
删除数据库的 Database Control配置
emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
先设置ORACLE_SID环境变量后,启动EM console服务
emctl start dbconsole
先设置ORACLE_SID环境变量后,停止EM console服务
emctl stop dbconsole
先设置ORACLE_SID环境变量后,查看EM console服务的状态
emctl status dbconsole

配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole


lfree 发表于:2007.04.04 08:02 ::分类: ( oracle ) ::阅读:(158次) :: 评论 (0)
===========================================================
LR2 的 user level收集
===========================================================

收集的LR2关卡,自己许多都没有过。

如提:

http://lfree.itpub.net/get/4950/UL.rar


lfree 发表于:2007.04.02 10:23 ::分类: ( 生活与其他 ) ::阅读:(120次) :: 评论 (0)
自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...