<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[80后]]></title>
  <subtitle type="html"><![CDATA[数据仓库，Linux，ETL，SQL Server，Oracle，生命感悟]]></subtitle>
  <id>http://www.mowoa.com/</id>
  <link rel="alternate" type="text/html" href="http://www.mowoa.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.mowoa.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2009-10-22T21:00:00+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[重庆市打黑反腐风暴战果辉煌（9月30日更新）]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=7" label="资源共享" /> 
	  <updated>2009-10-22T21:00:00+08:00</updated>
	  <published>2009-10-22T21:00:00+08:00</published>
		  <summary type="html"><![CDATA[2007年11月30日薄熙来任重庆市委委员、常委、书记以来，重庆市打黑反腐捷报频传，全国人民欢欣鼓舞！现将网上已公布的战果收集汇总，<br/><br/>请人民检阅：<br/><br/>重庆市九龙坡区原区长黄云<br/>重庆市江北城城投公司原董事长、市规划局原副局长梁晓琦<br/>重庆市地产集团原董事长、市国土房管局原副局长王斌<br/><br/>重庆市规划局局长、党组书记蒋勇 <br/><br/>重庆市司法局局长(原公安局第一副局长)文强<br/><br/>重庆市公安局副局长彭长健<br/><br/>重庆市公安局交警总队总队长、重庆市公安交通管理局局长陈洪刚<br/><br/>重庆市公安局原经侦总队长赵利民<br/><br/>重庆市公安局刑警总队副总队长黄代强<br/><br/>重庆市公安局治安总队副总队长陈涛<br/><br/>重庆市公安局刑警总队打黑支队支队长李寒彬(原刑警总队打黑支队支队长)<br/><br/>南岸区公安局长陈江渝<br/><br/>重庆市人大代表、重庆市垫江县副县长、垫江县公安局局长徐强<br/><br/>目前，已有一批涉嫌包庇黑恶势力组织犯罪的警员被限制行动或接受调查，渝北、北碚、江北、渝中等区县公安局局长或副局长，以及一大批普通民警。<br/><br/>重庆市高级人民法院副院长张弢<br/><br/>重庆市高级人民法院原执行局局长乌小青<br/><br/>重庆市高级人民法院执行庭副庭长、审判员杨政<br/><br/>重庆市第一中级人民法院审判委员会委员、民事审判庭第四庭庭长彭朴<br/><br/>重庆市第一中级人民法院民事审判庭第二庭庭长张仁辉<br/><br/>重庆市第一中级人民法院民事审判庭第四庭副庭长张伟<br/><br/>重庆市第五中级人民法院审判委员会委员、立案庭庭长王德华<br/><br/>重庆市第五中级人民法院审判委员会委员、审判监督庭庭长朱晓波<br/><br/>重庆市第五中级人民法院执行庭庭长郭剑<br/><br/>重庆市高级人民法院审判员周旭<br/><br/>重庆煤矿安全监察局党组成员、副局长王西平<br/><br/>万盛区政协副主席、区安监局局长赵威<br/><br/>万盛区国土局副局长、黑山管委会副主任熊勇<br/><br/>重庆振兴煤业(集团)有限公司董事长方建红<br/><br/>重庆市人大代表黎强<br/><br/>重庆渝中区人大代表陈明亮<br/><br/>重庆大渡口区政协委员王天伦<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=180" /> 
	  <id>http://www.mowoa.com/default.asp?id=180</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[自己看吧]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=10" label="视听感受" /> 
	  <updated>2009-10-11T10:53:56+08:00</updated>
	  <published>2009-10-11T10:53:56+08:00</published>
		  <summary type="html"><![CDATA[<div align="center"><img src="http://www.mowoa.com/attachments/month_0910/y20091011105313.jpg" border="0" alt=""/></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=179" /> 
	  <id>http://www.mowoa.com/default.asp?id=179</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[开心农场给我们的20条人生启示]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=10" label="视听感受" /> 
	  <updated>2009-10-09T23:07:56+08:00</updated>
	  <published>2009-10-09T23:07:56+08:00</published>
		  <summary type="html"><![CDATA[开心农场给我们的20条人生启示 <br/>1、在利益面前，没有亲情和道义可讲，任何人都可能成为对你背后下手的贼； <br/>2、帮你除草、杀虫，对你示好的人，来你家的真实目的可能并不是这个，而是看你有没有可偷的东西； <br/>3、越有钱的人赚钱的速度最快，温饱线上的人都在量入为出中挣扎； <br/>4、很多事情都有捷径可走，有“背景”的人肯定升级快； <br/>5、勤能补拙是有局限性的，每天靠除草、杀虫的经验只有那么多； <br/>6、挖种子是排除人民币升级之外最快的升级方法，也就是说只要肯付出高昂的代价走歪门邪道，肯定能领先别人一步； <br/>7、那种以“友情”为名义的化肥，是最不讲友情的东西； <br/>8、想让狗干活，又不想给狗喂食，是不可能的，就算一条狗也会消极怠工； <br/>9、狗会疯狂地咬穷人，当你身无分文，被咬的概率是100%； <br/>10、广交朋友是硬道理，多个朋友就会多一条路； <br/>11、有些时候我们期待着有人来搞一点小事端，从而获得想要的经验； <br/>12、不遵守时间是要付出代价的； <br/>13、没事的时候多出去转转，总会有意想不到的收获； <br/>14、未必撒下昂贵的种子就一定赚更多的钱，但被盗时种贵菜的损失肯定会更多； <br/>15、任何活动都是有目的的，不管是促销化肥还是促销打狗棒； <br/>16、集体的力量是巨大的，可以瞬间让一个人破产； <br/>17、当有人告诉你快去某某的菜地偷菜时，不要把他当成最亲密的战友，因为当你成熟的时候，他也一定会这么告诉别人； <br/>18、大地主都是排在前面的； <br/>19、很多级别高而且地多的人在种白萝卜，不是他们傻，而是因为他们想升职，而且不差钱儿； <br/>20、早晨很早就起床，并不是不可能的<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=178" /> 
	  <id>http://www.mowoa.com/default.asp?id=178</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[2009最贫嘴的15句话]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=10" label="视听感受" /> 
	  <updated>2009-08-08T13:33:45+08:00</updated>
	  <published>2009-08-08T13:33:45+08:00</published>
		  <summary type="html"><![CDATA[　　1.漫漫人生路，总会错几步。<br/><br/>　　2.贫僧是自东土大唐而来，专程去往西天拜佛求亲的。<br/><br/>　　3.三分天注定，七分靠打扮。<br/><br/>　　4.只要功夫深，一日夫妻百日恩。——据说是某相声里的词儿<br/><br/>　　5.没有拆不散的夫妻，只有不努力的小三。<br/><br/>　　6.将客户睡服。<br/><br/>　　7.“回床率”，好词儿。<br/><br/>　　8.我先脱了，您随意<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9.公司的无耻程度总是超出员工的想象。<br/><br/>　　10.挣的是卖白菜的钱，操的是卖bai粉的心。<br/><br/>　　11.早晨在路上见一车，车后贴一标，标上一句话：驾校除名，自学成才。<br/><br/>　　12.琴棋书画不会，洗衣做饭嫌累。拒绝生儿育女，上床按次收费。——新时代女性宣言<br/><br/>　　13.任何一个消息在经过官方否认之前都不能相信。<br/><br/>　　14.贵国有风险，投胎须谨慎。<br/><br/>　　15.你有权保持不沉默，但我们很快会让你沉默的。——据说是某国的米兰达警告。<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=177" /> 
	  <id>http://www.mowoa.com/default.asp?id=177</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[又一架客机出事]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=10" label="视听感受" /> 
	  <updated>2009-07-15T19:56:13+08:00</updated>
	  <published>2009-07-15T19:56:13+08:00</published>
		  <summary type="html"><![CDATA[伊朗一架客机15日在西部加兹温省坠毁，据信机上168人全部遇难，现在飞机越来越不安全了，6.30也门一架客机坠毁，机上153人只有1和小女孩幸存，6.1法航一架飞机坠毁，机上228人全部遇难，飞机不出事则以，一出事就要命。<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=176" /> 
	  <id>http://www.mowoa.com/default.asp?id=176</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IE Maxthon镜像被劫持]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=7" label="资源共享" /> 
	  <updated>2009-06-28T17:27:36+08:00</updated>
	  <published>2009-06-28T17:27:36+08:00</published>
		  <summary type="html"><![CDATA[IE Maxthon镜像被劫持，打开IE和Maxthon都会自己动打开一个网站，修改首页没有作用，金山毒霸和360安全卫士都能查到有异常，但都不能清除或即使显示清除了实际还是没有，解决办法：<br/>1.打开360安全卫士，选择高级选项的修复IE<br/>2.修复之后在常用选项里选择清理恶评插件，会发现个“未知系统文件镜像劫持”，详细信息的内容就是它修改的注册表：<br/>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Maxthon.exe [Debugger]: (C:\Program Files\Internet Explorer\IEXPLORE.EXE <a href="http://www.qian14.cn/?" target="_blank" rel="external">http://www.qian14.cn/?</a>)<br/>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\TTraveler.exe [Debugger]: (C:\Program Files\Internet Explorer\IEXPLORE.EXE <a href="http://www.qian14.cn/?" target="_blank" rel="external">http://www.qian14.cn/?</a>)<br/>3.打开注册表，找到这两项，在Maxthon.exe、TTraveler.exe上右键--&gt;权限，给当前操作系统的用户赋予完全控制的权限，然后删除这两项，OK]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=175" /> 
	  <id>http://www.mowoa.com/default.asp?id=175</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[0x80070002 打SP3补丁后系统无法启动]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=5" label="技术知识" /> 
	  <updated>2009-06-05T18:51:19+08:00</updated>
	  <published>2009-06-05T18:51:19+08:00</published>
		  <summary type="html"><![CDATA[非正版的XP打了SP3补丁后下次启动时，提示“Windows产品激活，一个问题阻止Windows正确检查此机器的许可证。错误代码：0x80070002 ”错误，点确定后返回用户登陆界面，循环出现上面的错误不能进入系统，解决办法：<br/>找个启动盘，进入DOS，把C:\WINDOWS\system32中的winlogon.exe替换为C:\WINDOWS\$NtServicePackUninstall$中的winlogon.exe即可。<br/><br/>我的电脑就因昨晚装了SP3启动不了，今天上午用这个办法解决。进入系统后把SP3删了。<br/><br/>也有人说在安全模式下把SP3删除，这个没试过。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=174" /> 
	  <id>http://www.mowoa.com/default.asp?id=174</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[《女人如烟》[魏佳艺]，有女人如此夫复何求？]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=10" label="视听感受" /> 
	  <updated>2009-05-30T11:36:07+08:00</updated>
	  <published>2009-05-30T11:36:07+08:00</published>
		  <summary type="html"><![CDATA[女人如烟》[魏佳艺]，有女人如此夫复何求？<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;如果一个女人爱你，如同歌中唱的那般，只求今生来时与你相伴，这是何等的幸运与幸福？<br/>&nbsp;&nbsp;<br/><img src="http://www.mowoa.com/attachments/month_0905/e2009530113313.jpg" border="0" alt=""/><br/><br/>女人如烟<br/>&nbsp;&nbsp;<br/>词曲:穆真<br/>演唱:魏佳艺<br/>&nbsp;&nbsp;<br/>那天你用柔情将我点燃<br/>我开始变成你手中的烟<br/>你轻轻地将我含在唇间<br/>我的身姿弥漫了你的眼<br/>&nbsp;&nbsp;<br/>你漫不经心燃烧我的生命<br/>我也心甘情愿做你的烟<br/>也许你不经意的一个微笑<br/>我就义无反顾地来到你身边<br/>&nbsp;&nbsp;<br/>你说过今生与烟为伴<br/>你说过女人如烟你已习惯<br/>你说过聚散离合随遇而安<br/>可我来世还要做你手中的烟<br/>&nbsp;&nbsp;<br/>想我了就请你把我点燃<br/>任我幸福的泪缠绵你指尖<br/>化成灰也没有一丝遗憾<br/>让我今生来世为你陪伴<br/>&nbsp;&nbsp;<br/>那天你用柔情将我点燃<br/>我开始变成你手中的烟<br/>你轻轻地将我含在唇间<br/>我的身姿弥漫了你的眼<br/>&nbsp;&nbsp;<br/>你漫不经心燃烧我的生命<br/>我也心甘情愿做你的烟<br/>也许你不经意的一个微笑<br/>我就义无反顾地来到你身边<br/>&nbsp;&nbsp;<br/>空气中寂寞在悄悄蔓延<br/>就算我化为烟雾也不忍离散<br/>好喜欢你疼我说笨蛋噢乖<br/>我知道我的感觉无法改变<br/>&nbsp;&nbsp;<br/>想我了就请你把我点燃<br/>任我幸福的泪缠绵你指尖<br/>化成灰也没有一丝遗憾<br/>让我今生来世为你陪伴<br/>让我今生来世<br/>为你陪伴<br/><br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mowoa.com/images/music.gif" alt="" style="margin:0px 2px -3px 0px" border="0"/>播放音频文件</div><div class="UBBContent"><a id="temp47970_href" href="http://www.mowoa.com/javascript:MediaShow('wma','temp47970','http://www.xsjs.cn/UploadFiles/2007-7/101551138531.mp3','400','300')"><img name="temp47970_img" src="http://www.mowoa.com/images/mm_snd.gif" style="margin:0px 3px -2px 0px" border="0" alt=""/><span id="temp47970_text">在线播放</span></a><div id="temp47970"></div></div></div><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=173" /> 
	  <id>http://www.mowoa.com/default.asp?id=173</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ORACLE EXPLAIN PLAN的总结]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=13" label="数据仓库" /> 
	  <updated>2009-03-06T10:38:10+08:00</updated>
	  <published>2009-03-06T10:38:10+08:00</published>
		  <summary type="html"><![CDATA[在ORACLE数据库中,需要对SQL语句进行优化的话需要知道其执行计划,从而针对性的进行调整.ORACLE的执行计划的获得有几种方法,下面就来总结下 <br/>1、EXPLAIN的使用<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;o&#114;acle RDBMS执行每一条SQL语句，都必须经过Oracle优化器的评估。所以，了解优化器是如何选择(搜索)路径以及索引是如何被使用的，对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。<br/>1.1 、安 装&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>要使用EXPLAIN首先要执行相应的脚本，创建出Explain_plan表。<br/><br/>具体脚本执行如下：<br/><br/>SQL&gt; @D:\oracle\ora92\rdbms\admin\utlxplan.sql<br/><br/>Table cr&#101;ated<br/><br/>该脚本后会生成一个表这个程序会创建一个名为plan_table的表。<br/><br/>1.2 、使用<br/>常规使用语法：<br/>explain PLAN [ SET STATEMENT_ID [=] &lt; string literal &gt; ] [ INTO &lt; table_name &gt; ]<br/>FOR &lt; sql_statement &gt;<br/><br/>其中：<br/>STATEMENT_ID：是一个唯一的字符串，把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。<br/>TABLE_NAME：是plan表名，它结构如前所示，你可以任意设定这个名称。<br/>SQL_STATEMENT：是真正的SQL语句。<br/>比如：<br/>SQL&gt; explain plan set statement_id=&#39;Store_Sell&#39; for sel&#101;ct * from scott.Store_Sell wh&#101;re Store_ID=&#39;01&#39;;<br/><br/>Explained<br/><br/>执行下面语句可以查询到执行计划<br/><br/>SQL&gt;Sel&#101;ct A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID<br/>&nbsp;&nbsp; 2&nbsp;&nbsp; FROM PLAN_TABLE&nbsp;&nbsp; a<br/>&nbsp;&nbsp; 3&nbsp;&nbsp; Wh&#101;re STATEMENT_ID=&#39;Store_Sell&#39; <br/>&nbsp;&nbsp; 4&nbsp;&nbsp; o&#114;DER BY Id;<br/>也可以用这句话 sel&#101;ct * from table(dbms_xplan.display); 可以把所有PLAN_TABLE里的数据罗列出来。<br/> <br/><br/>2 、AUTOTRACE的使用方法<br/><br/>2.1、安装<br/><br/>用sys用户运行脚本ultxplan.sql<br/><br/>建立这个表的脚本是：（UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%\rdbms\admin）ultxplan.sql。<br/><br/>SQL&gt; connect sys/sys@colm2 as sysdba;<br/><br/>SQL&gt; @C:\oracle\ora92\rdbms\admin\utlxplan.sql;<br/><br/>SQL&gt; cr&#101;ate public synonym plan_table for plan_table;--建立同义词<br/><br/>SQL&gt; grant all on plan_table to public;--授权所有用户 <br/><br/><br/>要在数据库中建立一个角色plustrace,用sys用户运行脚本plustrce.sql来创建这个角色，这个脚本在目录（UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%\sqlplus\admin）中；<br/><br/>SQL&gt; @D:\oracle\ora92\sqlplus\admin\plustrce.sql;<br/><br/>然后将角色plustrace授予需要autotrace的用户；<br/><br/>SQL&gt;grant plustrace to public;<br/><br/>经过以上步骤的设置，就可以在sql*plus中使用autotrace了<br/><br/>2、2 使用<br/><br/>使用起来非常方便，只要使用一条命令就可以了<br/><br/>SQL&gt;SET AUTOTRACE ON；<br/><br/><br/>*autotrace功能只能在SQL*PLUS里使用<br/><br/><br/>其他一些使用方法：<br/><br/>2.2.1、在SQLPLUS中得到语句总的执行时间<br/><br/>SQL&gt; set timing on;<br/><br/>2.2.2、只显示执行计划--（会同时执行语句得到结果）<br/><br/>SQL&gt;set autotrace on explain<br/><br/>比如：<br/><br/>sql&gt; sel&#101;ct count(*) from test;<br/><br/>count(*)<br/><br/>-------------<br/><br/>4<br/><br/><br/>Execution plan<br/><br/>----------------------------<br/><br/>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct statement ptimitzer=choose (cost=3 card=1)<br/><br/>1&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(aggregate)<br/><br/>2&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; partition range(all)<br/><br/>3&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table access (full) of &#39;t_test&#39; (cost=3 card=900)<br/><br/><br/><br/><br/>2.2.3、只显示统计信息---（会同时执行语句得到结果）<br/><br/>SQL&gt;set autotrace on statistics;<br/><br/>（备注：对于SYS用户，统计信息将会是0）<br/><br/><br/>2.2.4、显示执行计划，屏蔽执行结果--（但语句实质还执行的&nbsp;&nbsp;<br/><br/>SQL&gt; set autotrace on traceonly;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>（备注：同SET AUTOTRACE ON; 只不过不显示结果，显示计划和统计）<br/><br/><br/>2.2.5、仅仅显示执行计划，屏蔽其他一切结果--(语句还是执行了)<br/><br/>SQL&gt;set autotrace on traceonly explain;<br/><br/>对于仅仅查看大表的Explain Plan非常管用。<br/><br/><br/>2.2.6、关闭<br/><br/>SQL&gt;set autotrace off;<br/><br/><br/>总结：SQLPLUS 下的自动显示功能，在看执行计划中其语句还是会被执行的。尤其在执行Up&#100;ate/Del&#101;te语句时请千万注意，ORACLE是先执行脚本同时显示执行计划的，即使使用set autotrace on traceonly explain;<br/><br/>这个时候推荐使用EXPLAIN PLAN FOR来看或者PL/SQL等第三方工具<br/><br/><br/>3、第三工具来看执行计划<br/><br/>&nbsp;&nbsp; 如果在PL/SQL中使用选择要查询语句显示执行计划，则只需要SQL WINDOWS 窗口里面输入要查询的SQL语句，然后选择按键F5或者在菜单TOOLS&gt;Explain Plan 菜单按键就可以在执行计划窗口查看该语句的执行计划。<br/>在TOAD语句中在执行当前的SQL窗口中选择下方的Explain PlanTAB页即可以查看要执行语句的执行计划信息。<br/><br/><br/><br/>4、限制<br/><br/>explain真正的唯一的限制是用户不能去解释其它用户的表，视图，索引或其它类型，用户必须是所有被解释事物的所有者，如果不是所有者而只有sel&#101;ct权限，explain会返回一个错误。<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=172" /> 
	  <id>http://www.mowoa.com/default.asp?id=172</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Oracle SQL Trace和TKPROF的使用]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.mowoa.com/</uri>
		 <email>e_mailto@163.com</email>
	  </author>
	  <category term="" scheme="http://www.mowoa.com/default.asp?cateID=13" label="数据仓库" /> 
	  <updated>2009-03-05T15:52:37+08:00</updated>
	  <published>2009-03-05T15:52:37+08:00</published>
		  <summary type="html"><![CDATA[SQL TRACE 和 tkprof sql语句分析工具<br/> <br/>一 SQL TRACE 使用方法：<br/>&nbsp;&nbsp;1.初始化sql trace<br/>&nbsp;&nbsp;&nbsp;&nbsp;参数：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timed_statistics=true&nbsp;&nbsp;允许sql trace 和其他的一些动态性能视图收集与时间有关的参数、<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt;alt&#101;r session set timed_statistics=true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max_dump_file_size=500 指定跟踪文件的大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt; alt&#101;r system set max_dump_file_size=500;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user_dump_dest&nbsp;&nbsp;指定跟踪文件的路径<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQL&gt; alt&#101;r system set user_dump_dest=/oracle/oracle/diag/rdbms/orcl/orcl/trace;<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;2.为一个session 启动sql trace<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; 2.1命令方式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alt&#101;r session set sql_trace=true<br/>&nbsp;&nbsp;&nbsp;&nbsp; 2.2 通过存储过程启动sqltrace<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sel&#101;ct sid,serial#,osuser from v$session;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SID&nbsp;&nbsp;&nbsp;&nbsp;SERIAL# OSUSER<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 168&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;o&#114;acle<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; execute rdbms_system.set_sql_trace_in_session (168 ,1,true);<br/>&nbsp;&nbsp;3.停止一个sql trace 会话<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1 命令方式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt&#101;r session set sql_trace=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2 储存过程的方式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execute rdbms_system.set_sql_trace_in_session (168 ,1,false); <br/>&nbsp;&nbsp;4. 为整个实例启动SQL trace （一般消耗系统性能较高，不会用）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt&#101;r system set sql_trace=true scope=spfile <br/>&nbsp;&nbsp;&nbsp;&nbsp; 从新启动数据库<br/>&nbsp;&nbsp;5. 停止一个实例的sql trace<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt&#101;r system set sql_trace=flase scope=spfile <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;启动sql trace 之后收集的信息包括<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.解析、执行、返回数据的次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.cpu和执行命令的时间<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.物理读和逻辑读的次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.系统处理的记录数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.库缓冲区错误<br/>二 TKPROF的使用<br/>&nbsp;&nbsp;&nbsp;&nbsp; tkprof 的目的是将sql trace 生成的跟踪文件转换成用户可以理解的格式<br/>&nbsp;&nbsp;&nbsp;&nbsp;1. 格式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tkprof inputfile outputfile [optional | parameters ]<br/>&nbsp;&nbsp;&nbsp;&nbsp;参数和选项：<br/>&nbsp;&nbsp;&nbsp;&nbsp; explain=user/password 执行explain命令将结果放在SQL trace的输出文件中<br/>&nbsp;&nbsp;&nbsp;&nbsp; table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名<br/>&nbsp;&nbsp;&nbsp;&nbsp; ins&#101;rt=scriptfile 创建一个文件名为scriptfile的文件，包含了tkprof存放的输出sql语句<br/>&nbsp;&nbsp;&nbsp;&nbsp; sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句<br/>&nbsp;&nbsp;&nbsp;&nbsp; print=number 将仅生成排序后的第一条sql语句的输出结果<br/>&nbsp;&nbsp;&nbsp;&nbsp; record=recordfile 这个选项创建一个名为recorderfile的文件，包含了所有重调用的sql语句<br/>&nbsp;&nbsp;&nbsp;&nbsp; sort=sort_option 按照指定的方法对sql trace的输出文件进行降序排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sort_option 选项<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prscnt&nbsp;&nbsp;按解析次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prscpu&nbsp;&nbsp;按解析所花cpu时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prsela&nbsp;&nbsp;按解析所经历的时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prsdsk&nbsp;&nbsp;按解析时物理的读操作的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prsqry&nbsp;&nbsp;按解析时以一致模式读取数据块的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prscu&nbsp;&nbsp; 按解析时以当前读取数据块的次数进行排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execnt&nbsp;&nbsp;按执行次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execpu&nbsp;&nbsp;按执行时花的cpu时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exeela&nbsp;&nbsp;按执行所经历的时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exedsk&nbsp;&nbsp;按执行时物理读操作的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exeqry&nbsp;&nbsp;按执行时以一致模式读取数据块的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execu&nbsp;&nbsp; 按执行时以当前模式读取数据块的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exerow&nbsp;&nbsp;按执行时处理的记录的次数进行排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exemis&nbsp;&nbsp;按执行时库缓冲区的错误排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchcnt&nbsp;&nbsp;按返回数据的次数进行排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchcpu&nbsp;&nbsp;按返回数据cpu所花时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchela&nbsp;&nbsp;按返回数据所经历的时间排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchdsk&nbsp;&nbsp;按返回数据时的物理读操作的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchqry&nbsp;&nbsp;按返回数据时一致模式读取数据块的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchcu&nbsp;&nbsp; 按返回数据时当前模式读取数据块的次数排序<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fchrow&nbsp;&nbsp;按返回数据时处理的数据数量排序<br/>三 sql trace 的输出结果<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count：提供OCI过程的执行次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU：&nbsp;&nbsp;提供执行CPU所花的时间单位是秒<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elapsed：提供了执行时所花的时间。单位是秒。这个参数值等于用户响应时间<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disk：提供缓存区从磁盘读取的次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query：以一致性模式从缓存区获得数据的次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Current：以当前模式从缓存区获得数据的次数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWs： 返回调用或执行调用时，处理的数据行的数量。<br/> <br/>在report.txt文件头有各个数据的解释，根据以下一些指标可以分析一下SQL的执行性能: query+current/rows 平均每行所需的block数，太大的话（超过20）SQL语句效率太低 <br/>Parse count/Execute count parse count应尽量接近1，如果太高的话，SQL会进行不必要的reparse。要检查Pro*C程序的MAXOPENCURSORS是不是太低了，或不适当的使用的RELEASE_CURSOR选项 <br/>rows Fetch/Fetch Fetch Array的大小，太小的话就没有充分利用批量Fetch的功能，增加了数据在客户端和服务器之间的往返次数。在Pro*C中可以用prefetch=NN,Java/JDBC中可调用SETROWPREFETCH,在PL/SQL中可以用BULK COLLECT,SQLPLUS中的arraysize(缺省是15) <br/>disk/query+current 磁盘IO所占逻辑IO的比例，太大的话有可能是db_buffer_size过小(也跟SQL的具体特性有关) <br/>elapsed/cpu 太大表示执行过程中花费了大量的时间等待某种资源 <br/>cpu&nbsp;&nbsp;o&#114;&nbsp;&nbsp;elapsed 太大表示执行时间过长，或消耗了大量的CPU时间，应该考虑优化 <br/>执行计划中的Rows 表示在该处理阶段所访问的行数，要尽量减少 <br/> <br/>四：举例：<br/>sql&gt;alt&#101;r session set sql_trace=true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>SQL&gt;sel&#101;ct * from dba_users;<br/>SQL&gt;show parameter user_dump_dest<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user_dump_dest&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;/oracle/oracle/diag/rdbms/orcl/orcl/trace<br/>SQL&gt;exit<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mowoa.com/article.asp?id=171" /> 
	  <id>http://www.mowoa.com/default.asp?id=171</id>
  </entry>	
		
</feed>
