<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[『波过无痕』's Blog]]></title>
  <subtitle type="html"><![CDATA[秀出自己|我的博客我做主!   http://www.cn31.com/ | http://www.uuzz.net]]></subtitle>
  <id>http://www.cn31.com/</id> 
  <link rel="alternate" type="text/html" href="http://www.cn31.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.cn31.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2008-06-30T19:01:30+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[国家发改委：中国核电已具备规模化发展的条件]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=5" label="生活自我" /> 
	  <updated>2008-06-30T19:01:30+08:00</updated>
	  <published>2008-06-30T19:01:30+08:00</published>
		  <summary type="html"><![CDATA[中新网6月30日电&nbsp;国家发改委今日在其官方网站上发布文章称，经过30多年的发展和积累，中国核电已经具备了大规模发展的条件。&nbsp;<br/><br/>文章说，目前，国内对核电发展的认识逐渐统一。国家首次明确核电在国家能源结构中的战略地位，确定了“积极推进核电建设”的方针，为核电发展指明了方向。国务院批准发布的《核电中长期发展规划(2005-2020)》，明确到2020年，中国核电运行装机容量达到4000万千瓦、在建1800万千瓦的发展目标。核电占全部电力装机容量的比重从现在不到2%提高到4%。中国核电进入到批量化规模发展的新阶段。&nbsp;<br/><br/>文章称，中国核电发展技术路线已经确定。坚持发展百万千瓦级压水堆核电技术路线，实施中采取技术引进和自主创新相接合的方式。<br/><br/>一方面，以我为主，中外合作，通过引进国际新一代百万千瓦压水堆核电站工程的设计和设备制造技术，作为中国下一步核电建设的主要堆型。<br/><br/>另一方面，通过消化吸收国际先进核电技术，并再创新，加强自主研发，实施“大型先进压水堆及高温气冷堆核电站”重大专项，通过对引进技术的改进研发及示范电站建设，形成中国大型先进压水堆自主品牌和知识产权，具备批量建设能力。与此同时，为使中国核电建设不停步，满足电力发展需求，以现有成熟的二代改进型核电技术为基础，通过设计改进和研发，自主建设一批百万千瓦级压水堆核电站。&nbsp;<br/><br/>据悉，中国已先后建成了浙江秦山、广东大亚湾和江苏田湾三大核电基地，已有11台机组投产运营，装机容量为908万千瓦。2007年,我国核电发电业绩继续保持了较快增长势头，发电量629亿千瓦时，上网电量为593亿千瓦时，同比分别增长14.59%和14.39%；10台商运机组的平均负荷因子达到86.15%。2007年核电总发电量折算成煤耗，相当于少燃烧了1860万吨煤，减少了温室气体的排放。&nbsp;<br/><br/>国家已批准了广东岭澳二期、浙江秦山二期扩建、辽宁红沿河一期和福建宁德一期工程共计12台核电机组，装机容量达到1210万千瓦。&nbsp;<br/><br/>为提升中国核电自主化能力，经国家批准，引进美国西屋公司AP1000三代核电技术建设浙江三门和山东海阳两个自主化依托项目，目前，项目各项准备工作正在开展中，计划2009年3月首台机组开工。此外，为满足核电发展需要，广东、福建、浙江、山东等高温气冷堆示范工程项目的前期工作正在积极实施中，将根据工作进展情况分批开工建设。以上项目机组共17台，容量1940万千瓦。&nbsp;<br/><br/>核电项目选址工作已遍及全国18个省(区、市)，据统计，除已建和在建工程外，沿海地区开展前期工作已较充分的厂址有近6000万千瓦，为核电下一步扩大发展规模提供了厂址保证。&nbsp;<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=955" /> 
	  <id>http://www.cn31.com/default.asp?id=955</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[江西彭泽核电建设项目调度会]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=5" label="生活自我" /> 
	  <updated>2008-06-23T14:15:01+08:00</updated>
	  <published>2008-06-23T14:15:01+08:00</published>
		  <summary type="html"><![CDATA[为更好地推进彭泽核电站项目前期工作，6月20日下午，市委副书记、市长、市彭泽核电站建设协调领导小组组长王萍主持会议，专题研究核电项目前期工作。市委常委、副市长刘建平，副市长熊永强，中国电力投资集团公司核电事业部副主任汪映荣，中电投江西核电有限公司总经理张腾出席会议。&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;彭泽核电项目是我省重点工程，预计投资额达600亿元，最终装机容量将达800万千瓦。在省委、省政府的关心和大力支持下，按时间节点今年年底前须完成征地拆迁和农民安置工作，明年完成“四通一平”，可望成为中国内陆地区第一家开工建设的核电站。&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;王萍在讲话中代表市委、市政府对中电投给予九江的大力支持和帮助表示感谢，她说，彭泽核电站项目是我省确定的重点工程，它的建设对我省、我市的经济发展都具有重要的战略意义。各相关部门和单位要按照省彭泽核电站建设协调领导小组会议的要求，切实增强大局意识，在推进项目建设的过程中，多一些换位思考，互相支持，互相配合，全力做好征地拆迁、居民安置前期工作；要在科学发展观指导下，前瞻性地对农民安置小区进行理性定位，科学规划，在充分尊重农民意愿的基础上，深入了解当地实际的基础上，依山就势，错落有致，搞好房型和色调设计，高标准建好安置小区，使之成为我市新农村建设的样板小区；要以人为本，妥善安排群众的生计问题，深入调查，确定合理的补偿标准，不让农民吃亏，不为将来留后患，各级政府要依法依规通过调整土地承包、给予社会保障等办法，安排好搬迁村民的生产生活。&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;王萍说，当前，核电站前期准备工作已进入关键时期，各级各单位要加强宣传发动工作，把工作做到农民家里、做到田间地头，让农民理解政府、支持政府的工作；要维护好社会稳定，尽可能地把矛盾想多一点，困难想大一点，事情做周全一点；要加强领导，精心操作，深入研究拆迁、安置方案，倒排时间表，按规定的时间节点，快速推进核电项目的建设，同时，要提前研究设立与核电配套的产业园区，做到未雨绸缪，为产业集聚做好前期准备。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=954" /> 
	  <id>http://www.cn31.com/default.asp?id=954</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[巴基斯坦决定建造两座新核电反应堆]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=5" label="生活自我" /> 
	  <updated>2008-06-23T14:03:54+08:00</updated>
	  <published>2008-06-23T14:03:54+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;巴基斯坦决定在恰希玛启动两个新核电项目，总价值1293.74亿巴基斯坦卢比，可为巴基斯坦发电640&nbsp;MW。新反应堆是恰希玛核电项目c3和c4，政府已经在2008-2009年度公共部门开发计划为这两个项目投资1亿巴基斯坦卢比（约合1030万人民币）。消息来源称，巴基斯坦政府的2030远景战略要求在2030年以前使核电达到8000&nbsp;MW。巴基斯坦政府还计划在卡拉奇建造两个反应堆。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=953" /> 
	  <id>http://www.cn31.com/default.asp?id=953</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[中国内陆核电正式起步 赣鄂湘三省核电项目将被核准]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=5" label="生活自我" /> 
	  <updated>2008-06-23T13:57:03+08:00</updated>
	  <published>2008-06-23T13:57:03+08:00</published>
		  <summary type="html"><![CDATA[多位业内人士向《财经》记者证实，国家近期将核准位于华中地区的江西、湖北、湖南三省的核电项目。内陆核电有望由论证付诸实施。<br/>&nbsp;&nbsp;&nbsp;&nbsp;这三个核电项目分别是江西彭泽核电项目、湖北咸宁大畈核电项目和湖南益阳桃花江核电项目，分别由中国广东核电集团（下称中广核）、中国核工业集团（下称中核集团）和中国电力投资集团（下称中电投）主导投资建设。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;今年上半年，国家发改委先后批准上述三个核电项目开展前期工作。对安徽、吉林、甘肃等省市申报核电项目也正在调研中。同样亟需进行能源结构转型的四川省，则因为地处地震带而在审批中出局。<br/>&nbsp;&nbsp;&nbsp;&nbsp;按照国家发改委颁布的《核电中长期发展规划（2005-2020）》（下称《规划》），中国核电站选址主要在广东、浙江、山东、江苏、辽宁、福建等沿海省份选择。但是近年来，中国内陆地区也饱受能源匮乏之累，包括江西、湖北、湖南、安徽、河南、重庆、四川、甘肃、吉林在内的多个内陆省市向中央提出了建设核电站的计划。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;专家认为，华中三省核电项目有望获批，标志着中国内陆核电发展将正式起步。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;业内人士透露，省内能源结构是否合理，是中央核准内陆核电项目的一个重要标准。江西在华中电网六省市中，一次能源储量最少，仅占华中六省市总储量的3.3%，其中水能理论蕴量只有682万千瓦，占全国的0.98%；煤炭保有储量仅占全国0.137%，且分布散乱，开采困难；油气等其他一次能源则没有分布。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在2006年举行的湖北湖南江西三省核电项目专家论证会上，江西省发改委一位负责人曾表示，江西常规能源匮乏，从外省输入又存在诸多制约因素，只有建设核电项目，才能从根本上解决问题。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;2008年5月12日，由中核集团、华润电力工程服务有限公司、中国长江三峡工程开发总公司、湖南湘投控股集团有限公司共同出资的湖南桃花江核电有限公司成立。6月上旬，由中广核与湖北省能源集团共同设立的湖北核电公司也宣告成立，这家公司主要负责开展湖北省内所有核电项目，中广核持股60%，湖北能源集团持股40%。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;在中广核与湖北省合作框架协议的签订仪式上，国家发改委副主任、国家能源局局长张国宝透露，湖北核电项目将可能使用第三代技术，即AP1000。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;国家电监会一位官员向《财经》记者表示，中国电力能源以火电为主，在电煤价格高涨、煤电矛盾愈演愈烈的形势下，国家鼓励优先发展核电。不过他强调，目前内陆核电还处于起步阶段，具体如何发展并无现成模式。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=952" /> 
	  <id>http://www.cn31.com/default.asp?id=952</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Oracle中执行sql脚本]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:27:40+08:00</updated>
	  <published>2008-03-22T19:27:40+08:00</published>
		  <summary type="html"><![CDATA[其实很简单，就是@命令即可，例如<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.cn31.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&nbsp;SQL&gt;&nbsp;@c:\cr&#101;ate_table_a.sql;&nbsp;&nbsp;&nbsp;<br/></div></div>&nbsp;<br/>表已创建。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=950" /> 
	  <id>http://www.cn31.com/default.asp?id=950</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[PB数据窗口自动换行]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:25:39+08:00</updated>
	  <published>2008-03-22T19:25:39+08:00</published>
		  <summary type="html"><![CDATA[在&nbsp;Datawindow&nbsp;中，若只选中列的&nbsp;Auto&nbsp;Horz&nbsp;Scroll，键入的字符可以加到文本串中并始终维持一行，直到达到上限；&nbsp;<br/>若只选中列的&nbsp;Auto&nbsp;Vert&nbsp;Scroll，键入的字符可以加到文本串中并会换行，直到达到上限；&nbsp;<br/>若都不选中，且高度不足以让文本多行显示的话，键入的字符只可达到控件的显示范围内的长度。&nbsp;<br/>所以为实现多行显示要求：必须不选中&nbsp;Auto&nbsp;Horz&nbsp;Scroll，并且在&nbsp;EditChanged&nbsp;事件中自动调整列高。建议不选中&nbsp;Auto&nbsp;Vert&nbsp;Scroll，以避免打印与显示不一致的问题。注：只有&nbsp;string&nbsp;型的文本才可以换行。最终方案：<br/>Object.DataWindow.Detail.Height.AutoSize&nbsp;=&nbsp;&#39;yes&#39;<br/><br/>Object.&lt;DWObject&gt;.Height.AutoSize&nbsp;=&nbsp;&#39;yes&#39;<br/><br/>Object.&lt;DWObject&gt;.Edit.AutoVScroll&nbsp;=&nbsp;&#39;yes&#39;&nbsp;//用于可编辑列<br/><br/>即可实现自动换行功能。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=949" /> 
	  <id>http://www.cn31.com/default.asp?id=949</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[oracle SQL性能优化 ]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:22:39+08:00</updated>
	  <published>2008-03-22T19:22:39+08:00</published>
		  <summary type="html"><![CDATA[网上找的优化方案，都学会后自己也成了高手。<br/>我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享！&nbsp;<br/>（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择最有效率的表名顺序(只在基于规则的优化器中有效)：<br/>o&#114;ACLE的解析器按照从右到左的顺序处理FROM子句中的表名，FROM子句中写在最后的表(基础表&nbsp;driving&nbsp;table)将被最先处理，在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询,&nbsp;那就需要选择交叉表(intersection&nbsp;table)作为基础表,&nbsp;交叉表是指那个被其他表所引用的表.<br/>（2）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wh&#101;re子句中的连接顺序．：<br/>o&#114;ACLE采用自下而上的顺序解析Wh&#101;re子句,根据这个原理,表之间的连接必须写在其他Wh&#101;re条件之前,&nbsp;那些可以过滤掉最大数量记录的条件必须写在Wh&#101;re子句的末尾.<br/>（3）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct子句中避免使用&nbsp;‘&nbsp;*&nbsp;‘：<br/>o&#114;ACLE在解析的过程中,&nbsp;会将&#39;*&#39;&nbsp;依次转换成所有的列名,&nbsp;这个工作是通过查询数据字典完成的,&nbsp;这意味着将耗费更多的时间<br/>（4）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;减少访问数据库的次数：<br/>o&#114;ACLE在内部执行了许多工作:&nbsp;解析SQL语句,&nbsp;估算索引的利用率,&nbsp;绑定变量&nbsp;,&nbsp;读数据块等；<br/>（5）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在SQL*Plus&nbsp;,&nbsp;SQL*Forms和Pro*C中重新设置ARRAYSIZE参数,&nbsp;可以增加每次数据库访问的检索数据量&nbsp;,建议值为200<br/>（6）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用DECODE函数来减少处理时间：<br/>使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.<br/>（7）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;整合简单,无关联的数据库访问：<br/>如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)<br/>（8）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除重复记录：<br/>最高效的删除重复记录方法&nbsp;(&nbsp;因为使用了ROWID)例子：<br/>Del&#101;te&nbsp;&nbsp;FROM&nbsp;&nbsp;EMP&nbsp;E&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;E.ROWID&nbsp;&gt;&nbsp;(Sel&#101;ct&nbsp;MIN(X.ROWID)&nbsp;<br/>FROM&nbsp;&nbsp;EMP&nbsp;X&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;X.EMP_NO&nbsp;=&nbsp;E.EMP_NO);<br/>（9）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用TRUNCATE替代Del&#101;te：<br/>当删除表中的记录时,在通常情况下,&nbsp;回滚段(rollback&nbsp;segments&nbsp;)&nbsp;用来存放可以被恢复的信息.&nbsp;如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)&nbsp;而当运用TRUNCATE时,&nbsp;回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短.&nbsp;(译者按:&nbsp;TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)<br/>（10）&nbsp;尽量多使用COMMIT：<br/>只要有可能,在程序中尽量多使用COMMIT,&nbsp;这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:&nbsp;<br/>COMMIT所释放的资源:&nbsp;<br/>a.&nbsp;回滚段上用于恢复数据的信息.&nbsp;<br/>b.&nbsp;被程序语句获得的锁&nbsp;<br/>c.&nbsp;redo&nbsp;log&nbsp;buffer&nbsp;中的空间&nbsp;<br/>d.&nbsp;o&#114;ACLE为管理上述3种资源中的内部花费<br/>（11）&nbsp;用Wh&#101;re子句替换HAVING子句：<br/>避免使用HAVING子句,&nbsp;HAVING&nbsp;只会在检索出所有记录之后才对结果集进行过滤.&nbsp;这个处理需要排序,总计等操作.&nbsp;如果能通过Wh&#101;re子句限制记录的数目,那就能减少这方面的开销.&nbsp;(非oracle中)on、wh&#101;re、having这三个都可以加条件的子句中，on是最先执行，wh&#101;re次之，having最后，因为on是先把不符合条件的记录过滤后才进行统计，它就可以减少中间运算要处理的数据，按理说应该速度是最快的，wh&#101;re也应该比having快点的，因为它过滤数据后才进行sum，在两个表联接时才用on的，所以在一个表的时候，就剩下wh&#101;re跟having比较了。在这单表查询统计的情况下，如果要过滤的条件没有涉及到要计算字段，那它们的结果是一样的，只是wh&#101;re可以使用rushmore技术，而having就不能，在速度上后者要慢如果要涉及到计算的字段，就表示在没计算之前，这个字段的值是不确定的，根据上篇写的工作流程，wh&#101;re的作用时间是在计算之前就完成的，而having就是在计算后才起作用的，所以在这种情况下，两者的结果会不同。在多表联接查询时，on比wh&#101;re更早起作用。系统首先根据各个表之间的联接条件，把多个表合成一个临时表后，再由wh&#101;re进行过滤，然后再计算，计算完后再由having进行过滤。由此可见，要想过滤条件起到正确的作用，首先要明白这个条件应该在什么时候起作用，然后再决定放在那里<br/>（12）&nbsp;减少对表的查询：<br/>在含有子查询的SQL语句中,要特别注意减少对表的查询.例子：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;&nbsp;TAB_NAME&nbsp;FROM&nbsp;TABLES&nbsp;Wh&#101;re&nbsp;(TAB_NAME,DB_VER)&nbsp;=&nbsp;(&nbsp;Sel&#101;ct<br/>TAB_NAME,DB_VER&nbsp;FROM&nbsp;&nbsp;TAB_COLUMNS&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;VERSION&nbsp;=&nbsp;604)<br/>（13）&nbsp;通过内部函数提高SQL效率.：<br/>复杂的SQL往往牺牲了执行效率.&nbsp;能够掌握上面的运用函数解决问题的方法在实际工作中是非常有意义的<br/>（14）&nbsp;使用表的别名(Alias)：<br/>当在SQL语句中连接多个表时,&nbsp;请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.<br/>（15）&nbsp;用EXISTS替代IN、用NOT&nbsp;EXISTS替代NOT&nbsp;IN：<br/>在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,&nbsp;使用EXISTS(或NOT&nbsp;EXISTS)通常将提高查询的效率.&nbsp;在子查询中,NOT&nbsp;IN子句将执行一个内部的排序和合并.&nbsp;无论在哪种情况下,NOT&nbsp;IN都是最低效的&nbsp;(因为它对子查询中的表执行了一个全表遍历).&nbsp;为了避免使用NOT&nbsp;IN&nbsp;,我们可以把它改写成外连接(Outer&nbsp;Joins)或NOT&nbsp;EXISTS.<br/>例子：<br/>（高效）Sel&#101;ct&nbsp;*&nbsp;FROM&nbsp;&nbsp;EMP&nbsp;(基础表)&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;EMPNO&nbsp;&gt;&nbsp;0&nbsp;&nbsp;AND&nbsp;&nbsp;EXISTS&nbsp;(Sel&#101;ct&nbsp;‘X&#39;&nbsp;&nbsp;FROM&nbsp;DEPT&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;DEPT.DEPTNO&nbsp;=&nbsp;EMP.DEPTNO&nbsp;&nbsp;AND&nbsp;&nbsp;LOC&nbsp;=&nbsp;‘MELB&#39;)<br/>(低效)Sel&#101;ct&nbsp;&nbsp;*&nbsp;FROM&nbsp;&nbsp;EMP&nbsp;(基础表)&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;EMPNO&nbsp;&gt;&nbsp;0&nbsp;&nbsp;AND&nbsp;&nbsp;DEPTNO&nbsp;IN(Sel&#101;ct&nbsp;DEPTNO&nbsp;&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;LOC&nbsp;=&nbsp;‘MELB&#39;)<br/>（16）&nbsp;识别&#39;低效执行&#39;的SQL语句：<br/>虽然目前各种关于SQL优化的图形化工具层出不穷,但是写出自己的SQL工具来解决问题始终是一个最好的方法：<br/>Sel&#101;ct&nbsp;&nbsp;EXECUTIONS&nbsp;,&nbsp;DISK_READS,&nbsp;BUFFER_GETS,&nbsp;<br/>ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2)&nbsp;Hit_radio,&nbsp;<br/>ROUND(DISK_READS/EXECUTIONS,2)&nbsp;Reads_per_run,&nbsp;<br/>SQL_TEXT&nbsp;<br/>FROM&nbsp;&nbsp;V$SQLAREA&nbsp;<br/>Wh&#101;re&nbsp;&nbsp;EXECUTIONS&gt;0&nbsp;<br/>AND&nbsp;&nbsp;BUFFER_GETS&nbsp;&gt;&nbsp;0&nbsp;<br/>AND&nbsp;&nbsp;(BUFFER_GETS-DISK_READS)/BUFFER_GETS&nbsp;&lt;&nbsp;0.8&nbsp;<br/>o&#114;DER&nbsp;BY&nbsp;&nbsp;4&nbsp;DESC;<br/>（17）&nbsp;用索引提高效率：<br/>索引是表的一个概念部分,用来提高检索数据的效率，ORACLE使用了一个复杂的自平衡B-tree结构.&nbsp;通常,通过索引查询数据比全表扫描要快.&nbsp;当ORACLE找出执行查询和Up&#100;ate语句的最佳路径时,&nbsp;o&#114;ACLE优化器将使用索引.&nbsp;同样在联结多个表时使用索引也可以提高效率.&nbsp;另一个使用索引的好处是,它提供了主键(primary&nbsp;key)的唯一性验证.。那些LONG或LONG&nbsp;RAW数据类型,&nbsp;你可以索引几乎所有的列.&nbsp;通常,&nbsp;在大型表中使用索引特别有效.&nbsp;当然,你也会发现,&nbsp;在扫描小表时,使用索引同样能提高效率.&nbsp;虽然使用索引能得到查询效率的提高,但是我们也必须注意到它的代价.&nbsp;索引需要空间来存储,也需要定期维护,&nbsp;每当有记录在表中增减或索引列被修改时,&nbsp;索引本身也会被修改.&nbsp;这意味着每条记录的Ins&#101;rt&nbsp;,&nbsp;Del&#101;te&nbsp;,&nbsp;Up&#100;ate将为此多付出4&nbsp;,&nbsp;5&nbsp;次的磁盘I/O&nbsp;.&nbsp;因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.。定期的重构索引是有必要的.：<br/>Alt&#101;r&nbsp;&nbsp;INDEX&nbsp;&lt;INDEXNAME&gt;&nbsp;REBUILD&nbsp;&lt;TABLESPACENAME&gt;<br/>（18）&nbsp;用EXISTS替换DISTINCT：<br/>当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在Sel&#101;ct子句中使用DISTINCT.&nbsp;一般可以考虑用EXIST替换,&nbsp;EXISTS&nbsp;使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果.&nbsp;例子：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(低效):&nbsp;<br/>Sel&#101;ct&nbsp;&nbsp;DISTINCT&nbsp;&nbsp;DEPT_NO,DEPT_NAME&nbsp;&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;D&nbsp;,&nbsp;EMP&nbsp;E&nbsp;<br/>Wh&#101;re&nbsp;&nbsp;D.DEPT_NO&nbsp;=&nbsp;E.DEPT_NO&nbsp;<br/>(高效):&nbsp;<br/>Sel&#101;ct&nbsp;&nbsp;DEPT_NO,DEPT_NAME&nbsp;&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;D&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;EXISTS&nbsp;(&nbsp;Sel&#101;ct&nbsp;‘X&#39;&nbsp;<br/>FROM&nbsp;&nbsp;EMP&nbsp;E&nbsp;&nbsp;Wh&#101;re&nbsp;E.DEPT_NO&nbsp;=&nbsp;D.DEPT_NO);<br/>（19）&nbsp;sql语句用大写的；因为oracle总是先解析sql语句，把小写的字母转换成大写的再执行<br/>（20）&nbsp;在java代码中尽量少用连接符“＋”连接字符串！<br/>（21）&nbsp;避免在索引列上使用NOT&nbsp;通常，　<br/>我们要避免在索引列上使用NOT,&nbsp;NOT会产生在和在索引列上使用函数相同的影响.&nbsp;当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描.<br/>（22）&nbsp;避免在索引列上使用计算．<br/>Wh&#101;re子句中，如果索引列是函数的一部分．优化器将不使用索引而使用全表扫描．&nbsp;<br/>举例:&nbsp;<br/>低效：&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;&nbsp;Wh&#101;re&nbsp;SAL&nbsp;*&nbsp;12&nbsp;&gt;&nbsp;25000;&nbsp;<br/>高效:&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;FROM&nbsp;DEPT&nbsp;Wh&#101;re&nbsp;SAL&nbsp;&gt;&nbsp;25000/12;<br/>（23）&nbsp;用&gt;=替代&gt;<br/>高效:&nbsp;<br/>Sel&#101;ct&nbsp;*&nbsp;FROM&nbsp;&nbsp;EMP&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;DEPTNO&nbsp;&gt;=4&nbsp;<br/>低效:&nbsp;<br/>Sel&#101;ct&nbsp;*&nbsp;FROM&nbsp;EMP&nbsp;Wh&#101;re&nbsp;DEPTNO&nbsp;&gt;3&nbsp;<br/>两者的区别在于,&nbsp;前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.<br/>（24）&nbsp;用UNION替换OR&nbsp;(适用于索引列)<br/>通常情况下,&nbsp;用UNION替换Wh&#101;re子句中的OR将会起到较好的效果.&nbsp;对索引列使用OR将造成全表扫描.&nbsp;注意,&nbsp;以上规则只针对多个索引列有效.&nbsp;如果有column没有被索引,&nbsp;查询效率可能会因为你没有选择OR而降低.&nbsp;在下面的例子中,&nbsp;LOC_ID&nbsp;和REGION上都建有索引.&nbsp;<br/>高效:&nbsp;<br/>Sel&#101;ct&nbsp;LOC_ID&nbsp;,&nbsp;LOC_DESC&nbsp;,&nbsp;REGION&nbsp;<br/>FROM&nbsp;LOCATION&nbsp;<br/>Wh&#101;re&nbsp;LOC_ID&nbsp;=&nbsp;10&nbsp;<br/>UNION&nbsp;<br/>Sel&#101;ct&nbsp;LOC_ID&nbsp;,&nbsp;LOC_DESC&nbsp;,&nbsp;REGION&nbsp;<br/>FROM&nbsp;LOCATION&nbsp;<br/>Wh&#101;re&nbsp;REGION&nbsp;=&nbsp;“MELBOURNE”&nbsp;<br/>低效:&nbsp;<br/>Sel&#101;ct&nbsp;LOC_ID&nbsp;,&nbsp;LOC_DESC&nbsp;,&nbsp;REGION&nbsp;<br/>FROM&nbsp;LOCATION&nbsp;<br/>Wh&#101;re&nbsp;LOC_ID&nbsp;=&nbsp;10&nbsp;o&#114;&nbsp;REGION&nbsp;=&nbsp;“MELBOURNE”&nbsp;<br/>如果你坚持要用OR,&nbsp;那就需要返回记录最少的索引列写在最前面.<br/>（25）&nbsp;用IN来替换OR&nbsp;&nbsp;<br/>这是一条简单易记的规则，但是实际的执行效果还须检验，在ORACLE8i下，两者的执行路径似乎是相同的．　<br/>低效:&nbsp;<br/>Sel&#101;ct….&nbsp;FROM&nbsp;LOCATION&nbsp;Wh&#101;re&nbsp;LOC_ID&nbsp;=&nbsp;10&nbsp;o&#114;&nbsp;LOC_ID&nbsp;=&nbsp;20&nbsp;o&#114;&nbsp;LOC_ID&nbsp;=&nbsp;30&nbsp;<br/>高效&nbsp;<br/>Sel&#101;ct…&nbsp;FROM&nbsp;LOCATION&nbsp;Wh&#101;re&nbsp;LOC_IN&nbsp;&nbsp;IN&nbsp;(10,20,30);<br/>（26）&nbsp;避免在索引列上使用IS&nbsp;NULL和IS&nbsp;NOT&nbsp;NULL<br/>避免在索引中使用任何可以为空的列，ORACLE将无法使用该索引．对于单列索引，如果列包含空值，索引中将不存在此记录.&nbsp;对于复合索引，如果每个列都为空，索引中同样不存在此记录.　如果至少有一个列不为空，则记录存在于索引中．举例:&nbsp;如果唯一性索引建立在表的A列和B列上,&nbsp;并且表中存在一条记录的A,B值为(123,null)&nbsp;,&nbsp;o&#114;ACLE将不接受下一条具有相同A,B值（123,null）的记录(插入).&nbsp;然而如果所有的索引列都为空，ORACLE将认为整个键值为空而空不等于空.&nbsp;因此你可以插入1000&nbsp;条具有相同键值的记录,当然它们都是空!&nbsp;因为空值不存在于索引列中,所以Wh&#101;re子句中对索引列进行空值比较将使ORACLE停用该索引.<br/>低效:&nbsp;(索引失效)&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;FROM&nbsp;&nbsp;DEPARTMENT&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;DEPT_CODE&nbsp;IS&nbsp;NOT&nbsp;NULL;&nbsp;<br/>高效:&nbsp;(索引有效)&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;FROM&nbsp;&nbsp;DEPARTMENT&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;DEPT_CODE&nbsp;&gt;=0;<br/>（27）&nbsp;总是使用索引的第一个列：<br/>如果索引是建立在多个列上,&nbsp;只有在它的第一个列(leading&nbsp;column)被wh&#101;re子句引用时,优化器才会选择使用该索引.&nbsp;这也是一条简单而重要的规则，当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引<br/>（28）&nbsp;用UNION-ALL&nbsp;替换UNION&nbsp;(&nbsp;如果有可能的话)：<br/>当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并,&nbsp;然后在输出最终结果前进行排序.&nbsp;如果用UNION&nbsp;ALL替代UNION,&nbsp;这样排序就不是必要了.&nbsp;效率就会因此得到提高.&nbsp;需要注意的是，UNION&nbsp;ALL&nbsp;将重复输出两个结果集合中相同记录.&nbsp;因此各位还是要从业务需求分析使用UNION&nbsp;ALL的可行性.&nbsp;UNION&nbsp;将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存.&nbsp;对于这块内存的优化也是相当重要的.&nbsp;下面的SQL可以用来查询排序的消耗量<br/>低效：&nbsp;<br/>Sel&#101;ct&nbsp;&nbsp;ACCT_NUM,&nbsp;BALANCE_AMT&nbsp;<br/>FROM&nbsp;&nbsp;DEBIT_TRANSACTIONS&nbsp;<br/>Wh&#101;re&nbsp;TRAN_DATE&nbsp;=&nbsp;&#39;31-DEC-95&#39;&nbsp;<br/>UNION&nbsp;<br/>Sel&#101;ct&nbsp;ACCT_NUM,&nbsp;BALANCE_AMT&nbsp;<br/>FROM&nbsp;DEBIT_TRANSACTIONS&nbsp;<br/>Wh&#101;re&nbsp;TRAN_DATE&nbsp;=&nbsp;&#39;31-DEC-95&#39;&nbsp;<br/>高效:&nbsp;<br/>Sel&#101;ct&nbsp;ACCT_NUM,&nbsp;BALANCE_AMT&nbsp;<br/>FROM&nbsp;DEBIT_TRANSACTIONS&nbsp;<br/>Wh&#101;re&nbsp;TRAN_DATE&nbsp;=&nbsp;&#39;31-DEC-95&#39;&nbsp;<br/>UNION&nbsp;ALL&nbsp;<br/>Sel&#101;ct&nbsp;ACCT_NUM,&nbsp;BALANCE_AMT&nbsp;<br/>FROM&nbsp;DEBIT_TRANSACTIONS&nbsp;<br/>Wh&#101;re&nbsp;TRAN_DATE&nbsp;=&nbsp;&#39;31-DEC-95&#39;<br/>（29）&nbsp;用Wh&#101;re替代ORDER&nbsp;BY：<br/>o&#114;DER&nbsp;BY&nbsp;子句只在两种严格的条件下使用索引.&nbsp;<br/>o&#114;DER&nbsp;BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.&nbsp;<br/>o&#114;DER&nbsp;BY中所有的列必须定义为非空.&nbsp;<br/>Wh&#101;re子句使用的索引和ORDER&nbsp;BY子句中所使用的索引不能并列.<br/>例如:&nbsp;<br/>表DEPT包含以下列:&nbsp;<br/>DEPT_CODE&nbsp;PK&nbsp;NOT&nbsp;NULL&nbsp;<br/>DEPT_DESC&nbsp;NOT&nbsp;NULL&nbsp;<br/>DEPT_TYPE&nbsp;NULL<br/>低效:&nbsp;(索引不被使用)&nbsp;<br/>Sel&#101;ct&nbsp;DEPT_CODE&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;&nbsp;o&#114;DER&nbsp;BY&nbsp;&nbsp;DEPT_TYPE&nbsp;<br/>高效:&nbsp;(使用索引)&nbsp;<br/>Sel&#101;ct&nbsp;DEPT_CODE&nbsp;&nbsp;FROM&nbsp;&nbsp;DEPT&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;DEPT_TYPE&nbsp;&gt;&nbsp;0<br/>（30）&nbsp;避免改变索引列的类型.:<br/>当比较不同数据类型的数据时,&nbsp;o&#114;ACLE自动对列进行简单的类型转换.&nbsp;<br/>假设&nbsp;EMPNO是一个数值类型的索引列.&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;&nbsp;FROM&nbsp;EMP&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;EMPNO&nbsp;=&nbsp;‘123&#39;&nbsp;<br/>实际上,经过ORACLE类型转换,&nbsp;语句转化为:&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;&nbsp;FROM&nbsp;EMP&nbsp;&nbsp;Wh&#101;re&nbsp;&nbsp;EMPNO&nbsp;=&nbsp;TO_NUMBER(‘123&#39;)&nbsp;<br/>幸运的是,类型转换没有发生在索引列上,索引的用途没有被改变.&nbsp;<br/>现在,假设EMP_TYPE是一个字符类型的索引列.&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;&nbsp;FROM&nbsp;EMP&nbsp;&nbsp;Wh&#101;re&nbsp;EMP_TYPE&nbsp;=&nbsp;123&nbsp;<br/>这个语句被ORACLE转换为:&nbsp;<br/>Sel&#101;ct&nbsp;…&nbsp;&nbsp;FROM&nbsp;EMP&nbsp;&nbsp;Wh&#101;reTO_NUMBER(EMP_TYPE)=123&nbsp;<br/>因为内部发生的类型转换,&nbsp;这个索引将不会被用到!&nbsp;为了避免ORACLE对你的SQL进行隐式的类型转换,&nbsp;最好把类型转换用显式表现出来.&nbsp;注意当字符和数值比较时,&nbsp;o&#114;ACLE会优先转换数值类型到字符类型<br/>（31）&nbsp;需要当心的Wh&#101;re子句:<br/>某些Sel&#101;ct&nbsp;语句中的Wh&#101;re子句不使用索引.&nbsp;这里有一些例子.&nbsp;<br/>在下面的例子里,&nbsp;(1)‘!=&#39;&nbsp;将不使用索引.&nbsp;记住,&nbsp;索引只能告诉你什么存在于表中,&nbsp;而不能告诉你什么不存在于表中.&nbsp;(2)&nbsp;‘||&#39;是字符连接函数.&nbsp;就象其他函数那样,&nbsp;停用了索引.&nbsp;(3)&nbsp;‘+&#39;是数学函数.&nbsp;就象其他数学函数那样,&nbsp;停用了索引.&nbsp;(4)相同的索引列不能互相比较,这将会启用全表扫描.<br/>（32）&nbsp;a.&nbsp;如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高.&nbsp;<br/>b.&nbsp;在特定情况下,&nbsp;使用索引也许会比全表扫描慢,&nbsp;但这是同一个数量级上的区别.&nbsp;而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!<br/>（33）&nbsp;避免使用耗费资源的操作:<br/>带有DISTINCT,UNION,MINUS,INTERSECT,ORDER&nbsp;BY的SQL语句会启动SQL引擎&nbsp;<br/>执行耗费资源的排序(SORT)功能.&nbsp;DISTINCT需要一次排序操作,&nbsp;而其他的至少需要执行两次排序.&nbsp;通常,&nbsp;带有UNION,&nbsp;MINUS&nbsp;,&nbsp;INTERSECT的SQL语句都可以用其他方式重写.&nbsp;如果你的数据库的SORT_AREA_SIZE调配得好,&nbsp;使用UNION&nbsp;,&nbsp;MINUS,&nbsp;INTERSECT也是可以考虑的,&nbsp;毕竟它们的可读性很强<br/>（34）&nbsp;优化GROUP&nbsp;BY:<br/>提高GROUP&nbsp;BY&nbsp;语句的效率,&nbsp;可以通过将不需要的记录在GROUP&nbsp;BY&nbsp;之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.<br/>低效:&nbsp;<br/>Sel&#101;ct&nbsp;JOB&nbsp;,&nbsp;AVG(SAL)&nbsp;<br/>FROM&nbsp;EMP&nbsp;<br/>GROUP&nbsp;JOB&nbsp;<br/>HAVING&nbsp;JOB&nbsp;=&nbsp;‘PRESIDENT&#39;&nbsp;<br/>o&#114;&nbsp;JOB&nbsp;=&nbsp;‘MANAGER&#39;&nbsp;<br/>高效:&nbsp;<br/>Sel&#101;ct&nbsp;JOB&nbsp;,&nbsp;AVG(SAL)&nbsp;<br/>FROM&nbsp;EMP&nbsp;<br/>Wh&#101;re&nbsp;JOB&nbsp;=&nbsp;‘PRESIDENT&#39;&nbsp;<br/>o&#114;&nbsp;JOB&nbsp;=&nbsp;‘MANAGER&#39;&nbsp;<br/>GROUP&nbsp;JOB]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=948" /> 
	  <id>http://www.cn31.com/default.asp?id=948</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[如何在pb9中调用WebService]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:20:08+08:00</updated>
	  <published>2008-03-22T19:20:08+08:00</published>
		  <summary type="html"><![CDATA[网上找到的文章，不错。<br/>用一个实例来说明：&nbsp;新建应用,这些步骤与pb8一致的。然后建立一个WebService&nbsp;&nbsp;Proxy&nbsp;&nbsp;Wizard,下一步会提示你输入WSDL文件，点击浏览选择，假设是C:\inetpub\wwwroot\的service1.wsdl文件。点击下一步，会自动出现WSDL文件中的Service.点击下一步，系统默认选择ServiceSoap，紧接着输入proxy&nbsp;&nbsp;name(代理对象名)，输入test_ws.后面的几项按默认即可。&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;完成后是编译代理对象的界面。会出现：&nbsp;<br/><br/>Web&nbsp;Service&nbsp;Generator&nbsp;Project&nbsp;Status<br/><br/>Deployment&nbsp;PBL:&nbsp;&nbsp;E:\333\test.pbl<br/><br/>Clear&nbsp;PBL&nbsp;on&nbsp;build:&nbsp;&nbsp;No<br/><br/>Confirm&nbsp;overwrites:&nbsp;&nbsp;No<br/><br/>WSDL&nbsp;Location:&nbsp;&nbsp;<a href="http://192.168.0.50/Service.wsdl" target="_blank">http://192.168.0.50/Service.wsdl</a><br/><br/>Services&nbsp;sel&#101;cted&nbsp;:<br/>&#160;&#160;&#160;&#160;Service&nbsp;Service:<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ServiceSoap<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;可以在属性中设置，也可以不用去管。点击编译的绿色图标，好了，一个代理对象生成了。&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;在左边的treeview中可以看到如:test_wsservice1soap的东西。&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;点击加号的图标，在function中可以看到里面的我们定义的helloworld()&nbsp;&nbsp;returns&nbsp;&nbsp;string.&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;好了最重要的一步已经完成了，我们来测试一下：&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;建一个windows，添加一个文本框和按钮控件。&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;在cb_1.click事件写入：&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;SoapConnection&nbsp;&nbsp;conn&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Test_wsservice1soap&nbsp;&nbsp;test_ws&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;&nbsp;rVal&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;conn&nbsp;&nbsp;=&nbsp;&nbsp;cr&#101;ate&nbsp;&nbsp;SoapConnection&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;rVal&nbsp;&nbsp;=&nbsp;&nbsp;Conn.Cr&#101;ateInstance(test_ws,&nbsp;&nbsp;&#34;test_wsservice1soap&#34;)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sle_1.text&nbsp;&nbsp;=&nbsp;&nbsp;test_ws.helloworld()&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;destroy&nbsp;&nbsp;conn&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;好了，保存，会提示SoapConnection未定义。&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;增加PBSoapClient90.pbd到库列表中。PBSoapClient90.pbd在pb安装目录下&nbsp;&nbsp;&nbsp;&nbsp;Shared\PowerBuilder。增加后左边treeview会出现soapconnection，SOAP&nbsp;&nbsp;server&nbsp;&nbsp;pexception&nbsp;两个对象.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行，点击按钮，文本框中出现&#34;HELLO&nbsp;WORLD&#34;&nbsp;<br/><br/><span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;注意的是:Service1.asmx文件在服务器上是可以运行的，否则不会出现东西的</span>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=947" /> 
	  <id>http://www.cn31.com/default.asp?id=947</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[PB使DataWindow列只能追加不能修改]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:15:17+08:00</updated>
	  <published>2008-03-22T19:15:17+08:00</published>
		  <summary type="html"><![CDATA[如何使DataWindow中的数据只能追加新记录而不能修改，利用&nbsp;Column&nbsp;的&nbsp;Protect&nbsp;属性可以很方便的做到这一点，方法如下：<br/>将每一列的&nbsp;Protect&nbsp;属性设置为：<br/>If(&nbsp;IsRowNew(),&nbsp;0,&nbsp;1)&nbsp;)<br/>在&nbsp;PowerScript&nbsp;中可以动态修改&nbsp;Protect&nbsp;属性：<br/>dw_1.Modify(&#34;column_name_here.Protect=&#39;1~tIf(IsRowNew(),0,1)&#39;&#34;)<br/>这样，DataWindow&nbsp;中只有新追加的记录可修改，而其他记录是只读的。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=946" /> 
	  <id>http://www.cn31.com/default.asp?id=946</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Oracle查看用户默认表空间使用情况的sql语句]]></title>
	  <author>
		 <name>bob520</name>
		 <uri>http://www.cn31.com/</uri>
		 <email>zoubo265168@126.com</email>
	  </author>
	  <category term="" scheme="http://www.cn31.com/default.asp?cateID=19" label="PB设计" /> 
	  <updated>2008-03-22T19:13:02+08:00</updated>
	  <published>2008-03-22T19:13:02+08:00</published>
		  <summary type="html"><![CDATA[查看用户默认的表空间.sql：<br/><br/>sel&#101;ct&nbsp;username,default_tablespace&nbsp;from&nbsp;dba_users;<br/><br/>查看各个表空间占用磁盘情况.sql：<br/><br/><span style="color:Purple">sel&#101;ct&nbsp;<br/>b.file_id&nbsp;文件ID号,&nbsp;<br/>b.tablespace_name&nbsp;表空间名,&nbsp;<br/>b.bytes/1024/1024||&#39;M&#39;字节数,&nbsp;<br/>(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||&#39;M&#39;&nbsp;已使用,&nbsp;<br/>sum(nvl(a.bytes,0))/1024/1024||&#39;M&#39;&nbsp;剩余空间,&nbsp;<br/>100&nbsp;-&nbsp;sum(nvl(a.bytes,0))/(b.bytes)*100&nbsp;占用百分比&nbsp;<br/>from&nbsp;dba_free_space&nbsp;a,dba_data_files&nbsp;b&nbsp;<br/>wh&#101;re&nbsp;a.file_id=b.file_id&nbsp;<br/>group&nbsp;by&nbsp;b.tablespace_name,b.file_id,b.bytes&nbsp;<br/>o&#114;der&nbsp;by&nbsp;b.file_id&nbsp;</span><br/><br/>以上2者关联，就是查看用户默认表空间使用情况的sql语句：<br/><br/><span style="color:Purple">Sel&#101;ct&nbsp;*<br/>FROM&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(sel&#101;ct&nbsp;username,default_tablespace&nbsp;from&nbsp;dba_users)&nbsp;ut,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(sel&#101;ct&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--b.file_id&nbsp;文件ID号,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.tablespace_name&nbsp;表空间名,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.bytes/1024/1024||&#39;M&#39;字节数,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||&#39;M&#39;&nbsp;已使用,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum(nvl(a.bytes,0))/1024/1024||&#39;M&#39;&nbsp;剩余空间,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100&nbsp;-&nbsp;sum(nvl(a.bytes,0))/(b.bytes)*100&nbsp;占用百分比&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;dba_free_space&nbsp;a,dba_data_files&nbsp;b&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wh&#101;re&nbsp;a.file_id=b.file_id&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;by&nbsp;b.tablespace_name,b.file_id,b.bytes&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&#114;der&nbsp;by&nbsp;b.file_id&nbsp;)&nbsp;tsu<br/>Wh&#101;re&nbsp;ut.default_tablespace&nbsp;=&nbsp;tsu.表空间名<br/>o&#114;DER&nbsp;BY&nbsp;ut.username</span>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.cn31.com/default.asp?id=945" /> 
	  <id>http://www.cn31.com/default.asp?id=945</id> 
  </entry>	
		
</feed>