<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="zh-CHS"><title>海@流浪.Blog </title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/" /><tagline type="text/html">流浪的海</tagline><id>http://sea026.cndev.org/</id><author><name>sea026</name><url>http://sea026.cndev.org/</url></author><generator url="http://scottwater.com/blog" version=".Text Version 0.95.2004.101">.Text</generator><modified>2008-08-15T12:13:02Z</modified><entry><title>什么时候去云南是最好的季节</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2008/08/15/59323.aspx" /><id>http://sea026.cndev.org/archive/2008/08/15/59323.aspx</id><created>2008-08-15T12:13:00Z</created><issued>2008-08-15T04:13:00+08:00</issued><modified>2008-08-15T12:13:00Z</modified><summary type="text/html">什么时候去云南是最好的季节</summary><content type="text/html" mode="escaped">&lt;DIV&gt;&lt;FONT size=2&gt;大理最佳季节：&lt;BR&gt;　　大理:年平均气温15.1℃,最冷的1月平均气温8.7℃,最热的7月为20.1℃。年平均降水量1078.9毫米,冬无严寒,夏无酷暑,四季都是观光的好季节。7～8月到此既观光,又避暑。&amp;nbsp; &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;昆明最佳季节：&lt;BR&gt;　　昆明四季如春。1月平均气温约10℃，7月21-25℃。无霜期2月初起，长达11个月左右。日交差8-10度。年降水量1000-1500毫米，5-10月降水占全年的85～90%。&lt;BR&gt;　　昆明的气候四季不分明，但干湿季分明。1-2月气候温和，是旅游的好季节。7月下旬是彝、白、纳拉、蒙古等族的"火把节"可去昆明附近的石林游览,又可观赏火把节的盛况。7～8月，全国大部地区天气酷热，而昆明气温在20～25℃之间，这里是避暑胜地。&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;丽江最佳季节：&lt;BR&gt;丽江属高原型西南季风气候，气温偏低，昼夜温差也很大。来丽江旅游，最好的季节是春夏季。随身携带品：短袖T恤、毛衣、外套、防晒品、雨具。&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;泸沽湖最佳季节：&lt;BR&gt;　　泸沽湖海拔2690米，泸沽湖畔，属高原季风气候，冬暧夏凉，冬无严寒，早晚温差大，气候温和。年平均温度：12-14度。1月平均温度：5-6度。7月平均温度：19-20度。雨季：6-8月。雨季时由于泥石流、塌方等，路况较差。湖水全年不结冰，光照充足。&lt;BR&gt;　　泸沽湖全年平均温度在17度左右，但要注意，高原的天气变化多端，时而晴，时而阴，时而冷时而热，尤其进入夏季后昼夜温差较大，请备好衣物，由于阳光直射紫外线较强，请配备墨镜、防晒霜及雨伞。&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;版纳最佳季节：&lt;BR&gt;　　西双版纳地区属于热带雨林气候，夏无酷暑，冬无严寒，四季温暖宜人。 年平均气温21℃，这里从来不下雪，即使在1月份，白天气温也很高，一件毛衣足可过冬。&amp;nbsp; 最佳的旅游时间在10月至次年6月。&lt;BR&gt;　　西双版纳一年分为早雨两季，每年５－１０月为雨季，11月至翌年4月为旱季。旱季时日温差较大，特别是2－4月，早晚与正午的温差达20℃，因而白天十分炎热。傣族一年一度的传统节日――泼水节，正好是在旱季的4月中旬，即每年4月13－17日之间。　&lt;BR&gt;　　西双版纳不仅有雨季、旱季，还有一个美丽的雾季。每年11月到次年的2月，正是这里多雾的季节。每天雾从夜间起到第二天中午才会慢慢散去，因而每天上午，几乎都是在这如同下着毛毛细雨的大雾中度过的。&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;香格里拉最佳季节：&lt;BR&gt;　　迪庆地区属温带和寒温带季风气候，年平均气温4.7℃～16.5℃，最热月平均气温11.7℃～24.1℃，最冷月平均气温为3.3℃～7.7，年日照时数1742.9～2186.6小时，太阳辐射强，干燥季节分明，立体气候明显。气温随高度增加而剧减。每年5月下旬和10月上旬分别是春、秋雨季，是旅游的最佳时节。春季一望无垠的蓝天下是绚丽的杜鹃花海，远处隐约可见风姿绰约的雪山。秋季则是色彩斑斓的季节，饱享视觉的盛宴。而６－９月通常是雨季。路况不好，容易遭遇泥石流。但是每年的雨季到来不一定就是６月，２００４年５月１７日云南各地自西向东迎来了雨季，迪庆则比往年早了一个月，所以在出发前应该多注意天气预报的信息。冬季更多的是气温太低。雪后的山路不好走，等着雪化，更是一件需要耐心和时间的事。但是观赏梅里雪山的最佳季节是1-5月的冬春季，夏秋季经常云遮雾罩，很难看到雪峰的全景，一般在清晨太阳刚出来的时候，更容易看到美不胜收的&amp;#8220;日照金山&amp;#8221;。&lt;BR&gt;特别提示：&lt;BR&gt;　　迪庆又因横断山脉环抱，地势复杂多变，昼夜温差很大，有&amp;#8220;一天有四季&amp;#8221;之说。建议带上外套、羽绒服、手套、防滑靴。加上气候干燥，紫外线辐射强，女士应准备好防晒霜、遮阳帽、墨镜。由于迪庆的气候呈多种形态，您需要特别注意气候的变化，特别是10月份以后带够必要御寒衣物，以防不测。 &lt;BR&gt;　　迪庆地区海拔高差较大，体质较差或有心血管疾病的游客，应注意高山反应，携带常备药品。&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;img src ="http://sea026.cndev.org/aggbug/59323.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/59323.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/59323.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/59323.aspx</trackback:ping></entry><entry><title>zt 蓬莱 田横山 后海 珍珠浪</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2008/02/26/58352.aspx" /><id>http://sea026.cndev.org/archive/2008/02/26/58352.aspx</id><created>2008-02-26T10:04:00Z</created><issued>2008-02-26T02:04:00+08:00</issued><modified>2008-02-26T10:33:00Z</modified><content type="text/html" mode="escaped">&lt;A href="http://QmmQbb.com/modules/newbb/viewtopic.php?topic_id=3&amp;forum=12"&gt;&lt;IMG src=http://QmmQbb.com/usr/img/080115_31.jpg Width=760 Height=580 border=0&gt;&lt;/A&gt;&lt;img src ="http://sea026.cndev.org/aggbug/58352.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/58352.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/58352.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/58352.aspx</trackback:ping></entry><entry><title>好久没来了，过来发发牢骚。</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2007/11/15/56779.aspx" /><id>http://sea026.cndev.org/archive/2007/11/15/56779.aspx</id><created>2007-11-15T16:31:00Z</created><issued>2007-11-15T08:31:00+08:00</issued><modified>2007-11-15T16:34:00Z</modified><summary type="text/html">MySQL ODBC 2.5 字段字符型开头为0的数字</summary><content type="text/html" mode="escaped">&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;断断续续折腾了3天，发现一个简单问题。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先BS一下这样乱用的旧同事，然后对着MySQL ODBC 2.5 Driver笑笑。 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MySQL中字段是字符型，数据全是数字，对于开头为0的，如果通过 MySQL ODBC 2.5 Driver去查询，条件是数值型的，将查不到数据。而MySQL可以，MySQLCC也可以。&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/56779.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/56779.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/56779.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/56779.aspx</trackback:ping></entry><entry><title>MS SQL Server查询优化方法</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/09/06/3153.aspx" /><id>http://sea026.cndev.org/archive/2004/09/06/3153.aspx</id><created>2004-09-06T14:31:00Z</created><issued>2004-09-06T06:31:00+08:00</issued><modified>2004-09-06T14:32:00Z</modified><content type="text/html" mode="escaped">&lt;CENTER&gt;&lt;B&gt;&lt;FONT size=3&gt;MS SQL Server查询优化方法&lt;/FONT&gt;&lt;/B&gt; 
&lt;HR width="50%" color=#639ace noShade SIZE=1&gt;
710905&amp;nbsp;&amp;nbsp;2003-11-30&amp;nbsp;&amp;nbsp;来源：陶清论坛(www.pdriver.com)&lt;/CENTER&gt;
&lt;P&gt;
●查询速度慢的原因很多，常见如下几种：&lt;BR&gt;1、没有索引或者没有用到索引(这是查询慢最常见的问题，是程序设计的缺陷)&lt;BR&gt;2、I/O吞吐量小，形成了瓶颈效应。&lt;BR&gt;3、没有创建计算列导致查询不优化。&lt;BR&gt;4、内存不足&lt;BR&gt;5、网络速度慢&lt;BR&gt;6、查询出的数据量过大（可以采用多次查询，其他的方法降低数据量）&lt;BR&gt;7、锁或者死锁(这也是查询慢最常见的问题，是程序设计的缺陷)sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。&lt;BR&gt;9、返回了不必要的行和列&lt;BR&gt;10、查询语句不好，没有优化 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;●可以通过如下方法来优化查询 :&lt;BR&gt;1、把数据、日志、索引放到不同的I/O设备上，增加读取速度，以前可以将Tempdb应放在RAID0上，SQL2000不在支持。数据量（尺寸）越大，提高I/O越重要.&lt;BR&gt;2、纵向、横向分割表，减少表的尺寸(sp_spaceuse)&lt;BR&gt;3、升级硬件&lt;BR&gt;4、根据查询条件,建立索引,优化索引、优化访问方式，限制结果集的数据量。注意填充因子要适当（最好是使用默认值0）。索引应该尽量小，使用字节数小的列建索引好（参照索引的创建）,不要对有限的几个值的字段建单一索引如性别字段&lt;BR&gt;5、提高网速;&lt;BR&gt;6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。&lt;BR&gt;配置虚拟内存：&lt;BR&gt;虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server&amp;#8482; 2000 时，可考虑将虚拟内存大小设置为计算机中安装的物理内存的 1.5 倍。如果另外安装了全文检索功能，并打算运行 Microsoft 搜索服务以便执行全文索引和查询，可考虑：&lt;BR&gt;将虚拟内存大小配置为至少是计算机中安装的物理内存的 3 倍。&lt;BR&gt;将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍（虚拟内存大小设置的一半）。&lt;BR&gt;7、增加服务器CPU个数;但是必须明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MsSQL自动评估选择的。单个任务分解成多个任务，就可以在处理器上运行。例如耽搁查询的排序、连接、扫描和GROUP BY字句同时执行，SQL SERVER根据系统的负载情况决定最优的并行等级，复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT，DELETE还不能并行处理。 &lt;BR&gt;8、如果是使用like进行查询的话，简单的使用index是不行的，但是全文索引，耗空间。&lt;BR&gt;like 'a%' 使用索引&lt;BR&gt;like '%a' 不使用索引&lt;BR&gt;用 like '%a%' 查询时，查询耗时和字段值总长度成正比,所以不能用CHAR类型，而是VARCHAR。对于字段的值很长的建全文索引。&lt;BR&gt;9、DB Server 和APPLication Server 分离；OLTP和OLAP分离&lt;BR&gt;10、分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器，但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器，以支持大型的多层 Web 站点的处理需要。有关更多信息，参见设计联合数据库服务器。（参照SQL帮助文件'分区视图'）&lt;BR&gt;a、在实现分区视图之前，必须先水平分区表&lt;/P&gt;
&lt;P&gt;b、在创建成员表后，在每个成员服务器上定义一个分布式分区视图，并且每个视图具有相同的&lt;BR&gt;名称。这样，引用分布式分区视图名的查询可以在任何一个成员服务器上运行。系统操作如同每个成员服务器上都有一个原始表的复本一样，但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。&lt;BR&gt;11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE.&lt;BR&gt;设置自动收缩日志.对于大的数据库不要设置数据库自动增长，它会降低服务器的性能。&lt;/P&gt;
&lt;P&gt;在T-sql的写法上有很大的讲究，下面列出常见的要点：&lt;BR&gt;首先，DBMS处理查询计划的过程是这样的：&lt;BR&gt;1、 查询语句的词法、语法检查&lt;BR&gt;2、 将语句提交给DBMS的查询优化器&lt;BR&gt;3、 优化器做代数优化和存取路径的优化&lt;BR&gt;4、 由预编译模块生成查询规划&lt;BR&gt;5、 然后在合适的时间提交给系统处理执行&lt;BR&gt;6、 最后将执行结果返回给用户&lt;BR&gt;其次，看一下SQL SERVER的数据存放的结构：&lt;BR&gt;一个页面的大小为8K(8060)字节，8个页面为一个盘区，按照B树存放。&lt;BR&gt;Commit和rollback的区别&lt;BR&gt;Rollback:回滚所有的事物。&lt;BR&gt;Commit:提交当前的事物.&lt;BR&gt;没有必要在动态SQL里写事物，如果要写请写在外面如：&lt;BR&gt;begin tran&lt;BR&gt;exec(@s)&lt;BR&gt;commit trans&lt;BR&gt;或者将动态SQL 写成函数或者存储过程。&lt;/P&gt;
&lt;P&gt;13、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据，浪费了服务器的I/O资源，加重了网络的负担降低性能。如果表很大，在表扫描的期间将表锁住，禁止其他的联接访问表,后果严重。&lt;BR&gt;14、SQL的注释申明对执行没有任何影响&lt;BR&gt;15、尽可能不使用光标，它占用大量的资源。如果需要row-by-row地执行，尽量采用非光标技术,如：在客户端循环，用临时表，Table变量，用子查询，用Case语句等等。游标可以按照它所支持的提取选项进行分类： &lt;BR&gt;只进 &lt;BR&gt;必须按照从第一行到最后一行的顺序提取行。FETCH NEXT 是唯一允许的提取操作,也是默认方式。&lt;BR&gt;可滚动性 &lt;BR&gt;可以在游标中任何地方随机提取任意行。&lt;BR&gt;游标的技术在SQL2000下变得功能很强大，他的目的是支持循环。&lt;BR&gt;有四个并发选项 &lt;BR&gt;READ_ONLY：不允许通过游标定位更新(Update)，且在组成结果集的行中没有锁。&lt;BR&gt;OPTIMISTIC WITH valueS:乐观并发控制是事务控制理论的一个标准部分。乐观并发控制用于这样的情形，即在打开游标及更新行的间隔中，只有很小的机会让第二个用户更新某一行。当某个游标以此选项打开时，没有锁控制其中的行，这将有助于最大化其处理能力。如果用户试图修改某一行，则此行的当前值会与最后一次提取此行时获取的值进行比较。如果任何值发生改变，则服务器就会知道其他人已更新了此行，并会返回一个错误。如果值是一样的，服务器就执行修改。 &lt;BR&gt;选择这个并发选项仁褂没Щ虺绦蛟背械Ｔ鹑危砟切┍硎酒渌没б丫云浣辛诵薷牡拇砦蟆Ｓτ贸绦蚴盏秸庵执砦笫辈扇〉牡湫痛胧┚褪撬⑿掠伪辏竦闷湫轮担缓笕糜没Ь龆ㄊ欠穸孕轮到行薷摹?BR&amp;gt;OPTIMISTIC WITH ROW VERSIONING:此乐观并发控制选项基于行版本控制。使用行版本控制，其中的表必须具有某种版本标识符，服务器可用它来确定该行在读入游标后是否有所更改。在 SQL Server 中，这个性能由 timestamp 数据类型提供，它是一个二进制数字，表示数据库中更改的相对顺序。每个数据库都有一个全局当前时间戳值：@@DBTS。每次以任何方式更改带有 timestamp 列的行时，SQL Server 先在时间戳列中存储当前的 @@DBTS 值，然后增加 @@DBTS 的值。如果某&lt;/P&gt;
&lt;P&gt;个表具有 timestamp 列，则时间戳会被记到行级。服务器就可以比较某行的当前时间戳值和上次提取时所存储的时间戳值，从而确定该行是否已更新。服务器不必比较所有列的值，只需比较 timestamp 列即可。如果应用程序对没有 timestamp 列的表要求基于行版本控制的乐观并发，则游标默认为基于数值的乐观并发控制。&lt;BR&gt;SCROLL LOCKS&lt;BR&gt;这个选项实现悲观并发控制。在悲观并发控制中，在把数据库的行读入游标结果集时，应用程序将试图锁定数据库行。在使用服务器游标时，将行读入游标时会在其上放置一个更新锁。如果在事务内打开游标，则该事务更新锁将一直保持到事务被提交或回滚；当提取下一行时，将除去游标锁。如果在事务外打开游标，则提取下一行时，锁就被丢弃。因此，每当用户需要完全的悲观并发控制时，游标都应在事务内打开。更新锁将阻止任何其它任务获取更新锁或排它锁，从而阻止其它任务更新该行。然而，更新锁并不阻止共享锁，所以它不会阻止其它任务读取行，除非第二个任务也在要求带更新锁的读取。&lt;BR&gt;滚动锁&lt;BR&gt;根据在游标定义的 SELECT 语句中指定的锁提示，这些游标并发选项可以生成滚动锁。滚动锁在提取时在每行上获取，并保持到下次提取或者游标关闭，以先发生者为准。下次提取时，服务器为新提取中的行获取滚动锁，并释放上次提取中行的滚动锁。滚动锁独立于事务锁，并可以保持到一个提交或回滚操作之后。如果提交时关闭游标的选项为关，则 COMMIT 语句并不关闭任何打开的游标，而且滚动锁被保留到提交之后，以维护对所提取数据的隔离。&lt;BR&gt;所获取滚动锁的类型取决于游标并发选项和游标 SELECT 语句中的锁提示。&lt;BR&gt;锁提示 只读 乐观数值 乐观行版本控制 锁定&lt;BR&gt;无提示 未锁定 未锁定 未锁定 更新&lt;BR&gt;NOLOCK 未锁定 未锁定 未锁定 未锁定&lt;BR&gt;HOLDLOCK 共享 共享 共享 更新&lt;BR&gt;UPDLOCK 错误 更新 更新 更新&lt;BR&gt;TABLOCKX 错误 未锁定 未锁定 更新&lt;BR&gt;其它 未锁定 未锁定 未锁定 更新&lt;BR&gt;*指定 NOLOCK 提示将使指定了该提示的表在游标内是只读的。&lt;BR&gt;16、用Profiler来跟踪查询，得到查询所需的时间，找出SQL的问题所在;用索引优化器优化索引&lt;BR&gt;17、注意UNion和UNion all 的区别。UNION all好&lt;BR&gt;18、注意使用DISTINCT，在没有必要时不要用，它同UNION一样会使查询变慢。重复的记录在查询里是没有问题的&lt;BR&gt;19、查询时不要返回不需要的行、列&lt;/P&gt;
&lt;P&gt;20、用sp_configure 'query governor cost limit'或者SET QUERY_GOVERNOR_COST_LIMIT来限制查询消耗的资源。当评估查询消耗的资源超出限制时，服务器自动取消查询,在查询之前就扼杀掉。SET LOCKTIME设置锁的时间&lt;/P&gt;
&lt;P&gt;21、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行&lt;BR&gt;22、在SQL2000以前，一般不要用如下的字句: "IS NULL", "&amp;lt;&amp;gt;", "!=", "!&amp;gt;", "!&amp;lt;", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE '%500'"，因为他们不走索引全是表扫描。也不要在WHere字句中的列名加函数，如Convert，substring等,如果必须用函数的时候，创建计算列再创建索引来替代.还可以变通写法：WHERE SUBSTRING(firstname,1,1) = 'm'改为WHERE firstname like 'm%'（索引扫描），一定要将函数和列名分开。并且索引不能建得太多和太大。NOT IN会多次扫描表，使用EXISTS、NOT EXISTS ，IN , LEFT OUTER JOIN 来替代，特别是左连接,而Exists比IN更快，最慢的是NOT操作.如果列的值含有空，以前它的索引不起作用，现在2000的优化器能够处理了。相同的是IS NULL，&amp;#8220;NOT", "NOT EXISTS", "NOT IN"能优化她，而&amp;#8221;&amp;lt;&amp;gt;&amp;#8221;等还是不能优化，用不到索引。&lt;BR&gt;23、使用Query Analyzer，查看SQL语句的查询计划和评估分析是否是优化的SQL。一般的20%的代码占据了80%的资源，我们优化的重点是这些慢的地方。&lt;BR&gt;24、如果使用了IN或者OR等时发现查询没有走索引，使用显示申明指定索引：&lt;BR&gt;SELECT * FROM PersonMember (INDEX = IX_Title) WHERE processid IN (&amp;#8216;男&amp;#8217;，&amp;#8216;女&amp;#8217;)&lt;BR&gt;25、将需要查询的结果预先计算好放在表中，查询的时候再SELECT。这在SQL7.0以前是最重要的手段。例如医院的住院费计算。&lt;BR&gt;26、MIN() 和 MAX()能使用到合适的索引。&lt;BR&gt;27、数据库有一个原则是代码离数据越近越好，所以优先选择Default,依次为Rules,Triggers, Constraint（约束如外健\主健\Check\UNIQUE&amp;#8230;&amp;#8230;,数据类型的最大长度等等都是约束）,Procedure.这样不仅维护工作小，编写程序质量高，并且执行的速度快。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;28、如果要插入大的二进制值到Image列，使用存储过程，千万不要用内嵌INsert来插入(不知JAVA是否)。因为这样应用程序首先将二进制值转换成字符串（尺寸是它的两倍），服务器受到字符后又将他转换成二进制值.存储过程就没有这些动作:&lt;BR&gt;方法：Create procedure p_insert as insert into table(Fimage) values (@image),&lt;BR&gt;在前台调用这个存储过程传入二进制参数，这样处理速度明显改善。&lt;/P&gt;
&lt;P&gt;29、Between在某些时候比IN速度更快,Between能够更快地根据索引找到范围。用查询优化器可见到差别。&lt;BR&gt;select * from chineseresume where title in ('男','女')&lt;BR&gt;Select * from chineseresume where between '男' and '女'&lt;BR&gt;是一样的。由于in会在比较多次，所以有时会慢些。&lt;/P&gt;
&lt;P&gt;30、在必要是对全局或者局部临时表创建索引，有时能够提高速度，但不是一定会这样，因为索引也耗费大量的资源。他的创建同是实际表一样。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;31、不要建没有作用的事物例如产生报表时，浪费资源。只有在必要使用事物时使用它。&lt;BR&gt;32、用OR的字句可以分解成多个查询，并且通过UNION 连接多个查询。他们的速度只同是否使用索&lt;BR&gt;引有关,如果查询需要用到联合索引，用UNION all执行的效率更高.多个OR的字句没有用到索引，改写成UNION的形式再试图与索引匹配。一个关键的问题是否用到索引。&lt;BR&gt;33、尽量少用视图，它的效率低。对视图操作比直接对表操作慢,可以用stored procedure来代替她。特别的是不要用视图嵌套,嵌套视图增加了寻找原始资料的难度。我们看视图的本质：它是存放在服务器上的被优化好了的已经产生了查询规划的SQL。对单个表检索数据时，不要使用指向多个表的视图，直接从表检索或者仅仅包含这个表的视图上读，否则增加了不必要的开销,查询受到干扰.为了加快视图的查询，MsSQL增加了视图索引的功能。&lt;BR&gt;34、没有必要时不要用DISTINCT和ORDER BY，这些动作可以改在客户端执行。它们增加了额外的开销。这同UNION 和UNION ALL一样的道理。&lt;BR&gt;SELECT top 20 ad.companyname,comid,position,ad.referenceid,worklocation,&lt;BR&gt;convert(varchar(10),ad.postDate,120) &lt;BR&gt;as postDate1,workyear,degreedescription &lt;BR&gt;FROM jobcn_query.dbo.COMPANYAD_query ad &lt;BR&gt;where referenceID &lt;BR&gt;in('JCNAD00329667','JCNAD132168','JCNAD00337748','JCNAD00338345','JCNAD00333138','JCNAD00303570',&lt;BR&gt;'JCNAD00303569','JCNAD00303568','JCNAD00306698','JCNAD00231935','JCNAD00231933','JCNAD00254567',&lt;BR&gt;'JCNAD00254585','JCNAD00254608','JCNAD00254607','JCNAD00258524','JCNAD00332133','JCNAD00268618',&lt;BR&gt;'JCNAD00279196','JCNAD00268613') &lt;BR&gt;order by postdate desc&lt;/P&gt;
&lt;P&gt;35、在IN后面值的列表中，将出现最频繁的值放在最前面，出现得最少的放在最后面，减少判断的次数。&lt;/P&gt;
&lt;P&gt;36、当用SELECT INTO时，它会锁住系统表(sysobjects，sysindexes等等)，阻塞其他的连接的存取。创建临时表时用显示申明语句，而不是select INTO. &lt;BR&gt;drop table t_lxh&lt;BR&gt;begin tran&lt;BR&gt;select * into t_lxh from chineseresume where name = 'XYZ'&lt;BR&gt;--commit&lt;BR&gt;在另一个连接中SELECT * from sysobjects可以看到&lt;BR&gt;SELECT INTO 会锁住系统表，Create table 也会锁系统表(不管是临时表还是系统表)。所以千万不要在事物内使用它！！！这样的话如果是经常要用的临时表请使用实表，或者临时表变量。&lt;BR&gt;37、一般在GROUP BY 个HAVING字句之前就能剔除多余的行，所以尽量不要用它们来做剔除行的工作。他们的执行顺序应该如下最优：select 的Where字句选择所有合适的行，Group By用来分组个统计行，Having字句用来剔除多余的分组。这样Group By 个Having的开销小，查询快.对于大的数据行进行分组和Having十分消耗资源。如果Group BY的目的不包括计算，只是分组，那么用Distinct更快&lt;BR&gt;41、一次更新多条记录比分多次更新每次一条快,就是说批处理好&lt;BR&gt;42、少用临时表，尽量用结果集和Table类性的变量来代替它,Table 类型的变量比临时表好&lt;BR&gt;43、在SQL2000下，计算字段是可以索引的，需要满足的条件如下：&lt;BR&gt;a、计算字段的表达是确定的&lt;BR&gt;b、不能用在TEXT,Ntext，Image数据类型&lt;BR&gt;c、必须配制如下选项&lt;BR&gt;ANSI_NULLS = ON, ANSI_PADDINGS = ON, &amp;#8230;&amp;#8230;. &lt;BR&gt;44、尽量将数据的处理工作放在服务器上，减少网络的开销，如使用存储过程。存储过程是编译好、优化过、并且被组织到一个执行规划里、且存储在数据库中的SQL语句，是控制流语言的集合，速度当然快。反复执行的动态SQL,可以使用临时存储过程，该过程（临时表）被放在Tempdb中。&lt;BR&gt;以前由于SQL SERVER对复杂的数学计算不支持，所以不得不将这个工作放在其他的层上而增加网络的开销。SQL2000支持UDFs,现在支持复杂的数学计算，函数的返回值不要太大，这样的开销很大。用户自定义函数象光标一样执行的消耗大量的资源，如果返回大的结果采用存储过程&lt;BR&gt;45、不要在一句话里再三的使用相同的函数，浪费资源,将结果放在变量里再调用更快&lt;BR&gt;46、SELECT COUNT(*)的效率教低，尽量变通他的写法，而EXISTS快.同时请注意区别：&lt;BR&gt;select count(Field of null) from Table 和 select count(Field of NOT null) from Table&lt;BR&gt;的返回值是不同的！！！&lt;BR&gt;47、当服务器的内存够多时，配制线程数量 = 最大连接数+5，这样能发挥最大的效率；&lt;BR&gt;否则使用 配制线程数量&amp;lt;最大连接数启用SQL SERVER的线程池来解决,如果还是数量 = 最大连接数+5，严重的损害服务器的性能。&lt;BR&gt;48、按照一定的次序来访问你的表。如果你先锁住表A，再锁住表B，那么在所有的存储过程中都要按照这个顺序来锁定它们。如果你（不经意的）某个存储过程中先锁定表B，再锁定表A，这可能就&lt;BR&gt;会导致一个死锁。如果锁定顺序没有被预先详细的设计好，死锁很难被发现&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;49、通过SQL Server Performance Monitor监视相应硬件的负载&lt;BR&gt;Memory: Page Faults / sec计数器&lt;BR&gt;如果该值偶尔走高，表明当时有线程竞争内存。如果持续很高，则内存可能是瓶颈。&lt;BR&gt;Process:&lt;BR&gt;1、% DPC Time 指在范例间隔期间处理器用在缓延程序调用(DPC)接收和提供服务的百分比。(DPC 正在运行的为比标准间隔优先权低的间隔)。 由于 DPC 是以特权模式执行的，DPC 时间的百分比为特权时间 百分比的一部分。这些时间单独计算并且不属于间隔计算总数的一部 分。这个总数显示了作为实例时间百分比的平均忙时。&lt;BR&gt;2、%Processor Time计数器&lt;BR&gt;　如果该参数值持续超过95%，表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。&lt;BR&gt;3、% Privileged Time 指非闲置处理器时间用于特权模式的百分比。(特权模式是为操作系统组件和操纵硬件驱动程序而设计的一种处理模式。它允许直接访问硬件和所有内存。另一种模式为用户模式，它是一种为应用程序、环境分系统和整数分系统设计的一种有限处理模式。操作系统将应用程序线程转换成特权模式以访问操作系统服务)。 特权时间的 % 包括为间断和 DPC 提供服务的时间。特权时间比率高可能是由于失败设备产生的大数量的间隔而引起的。这个计数器将平均忙时作为样本时间的一部分显示。&lt;BR&gt;　　4、% User Time表示耗费CPU的数据库操作，如排序，执行aggregate functions等。如果该值很高，可考虑增&lt;BR&gt;加索引，尽量使用简单的表联接，水平分割大表格等方法来降低该值。&lt;/P&gt;
&lt;P&gt;Physical Disk: Curretn Disk Queue Length计数器&lt;BR&gt;该值应不超过磁盘数的1.5~2倍。要提高性能，可增加磁盘。&lt;BR&gt;SQLServer:Cache Hit Ratio计数器&lt;BR&gt;该值越高越好。如果持续低于80%，应考虑增加内存。 注意该参数值是从SQL Server启动后，就一直累加记数，所以运行经过一段时间后，该值将不能反映系统当前值。&lt;BR&gt;40、分析select emp_name form employee where salary &amp;gt; 3000 在此语句中若salary是Float类型的，则优化器对其进行优化为Convert(float,3000)，因为3000是个整数，我们应在编程时使用3000.0而不要等运行时让DBMS进行转化。同样字符和整型数据的转换。&lt;BR&gt;41、查询的关联同写的顺序&lt;BR&gt;select a.personMemberID, * from chineseresume a,personmember b where &lt;BR&gt;personMemberID = b.referenceid and a.personMemberID = 'JCNPRH39681'&lt;BR&gt;（A = B ,B = &amp;#8216;号码&amp;#8217;）&lt;BR&gt;select a.personMemberID, * from chineseresume a,personmember b where &lt;BR&gt;a.personMemberID = b.referenceid and a.personMemberID = 'JCNPRH39681'&lt;BR&gt;and b.referenceid = 'JCNPRH39681'&lt;BR&gt;（A = B ,B = &amp;#8216;号码&amp;#8217;， A = &amp;#8216;号码&amp;#8217;）&lt;BR&gt;select a.personMemberID, * from chineseresume a,personmember b where &lt;BR&gt;b.referenceid = 'JCNPRH39681' and a.personMemberID = 'JCNPRH39681'&lt;BR&gt;（B = &amp;#8216;号码&amp;#8217;， A = &amp;#8216;号码&amp;#8217;）&lt;/P&gt;
&lt;P&gt;42、(1) IF 没有输入负责人代码 THEN&lt;BR&gt;code1=0&lt;BR&gt;code2=9999&lt;BR&gt;ELSE&lt;BR&gt;code1=code2=负责人代码&lt;BR&gt;END IF&lt;BR&gt;执行SQL语句为:&lt;BR&gt;SELECT 负责人名 FROM P2000 WHERE 负责人代码&amp;gt;=:code1 AND负责人代码 &amp;lt;=:code2&lt;BR&gt;(2) IF 没有输入负责人代码 THEN&lt;BR&gt;　SELECT 负责人名 FROM P2000&lt;BR&gt;ELSE&lt;BR&gt;code= 负责人代码&lt;BR&gt;SELECT 负责人代码 FROM P2000 WHERE 负责人代码=:code&lt;BR&gt;END IF&lt;BR&gt;第一种方法只用了一条SQL语句,第二种方法用了两条SQL语句。在没有输入负责人代码时,第二种方法显然比第一种方法执行效率高,因为它没有限制条件;在输入了负责人代码时,第二种方法仍然比第一种方法效率高,不仅是少了一个限制条件,还因相等运算是最快的查询运算。我们写程序不要怕麻烦&lt;/P&gt;
&lt;P&gt;43、关于JOBCN现在查询分页的新方法（如下），用性能优化器分析性能的瓶颈，如果在I/O或者网&lt;BR&gt;络的速度上，如下的方法优化切实有效，如果在CPU或者内存上，用现在的方法更好。请区分如下的方法，说明索引越小越好。&lt;BR&gt;begin&lt;BR&gt;DECLARE @local_variable table (FID int identity(1,1),ReferenceID varchar(20))&lt;BR&gt;insert into @local_variable (ReferenceID) &lt;BR&gt;select top 100000 ReferenceID from chineseresume order by ReferenceID&lt;BR&gt;select * from @local_variable where Fid &amp;gt; 40 and fid &amp;lt;= 60&lt;BR&gt;end&lt;BR&gt;和&lt;BR&gt;begin&lt;BR&gt;DECLARE @local_variable table (FID int identity(1,1),ReferenceID varchar(20))&lt;BR&gt;insert into @local_variable (ReferenceID) &lt;BR&gt;select top 100000 ReferenceID from chineseresume order by updatedate&lt;BR&gt;select * from @local_variable where Fid &amp;gt; 40 and fid &amp;lt;= 60&lt;BR&gt;end&lt;BR&gt;的不同&lt;/P&gt;
&lt;P&gt;begin&lt;BR&gt;create table #temp (FID int identity(1,1),ReferenceID varchar(20))&lt;BR&gt;insert into #temp (ReferenceID) &lt;BR&gt;select top 100000 ReferenceID from chineseresume order by updatedate&lt;BR&gt;select * from #temp where Fid &amp;gt; 40 and fid &amp;lt;= 60&lt;BR&gt;drop table #temp&lt;BR&gt;end&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/3153.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/3153.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/3153.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/3153.aspx</trackback:ping></entry><entry><title>《大腕》经典台词 与 对白精选 </title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/09/02/3074.aspx" /><id>http://sea026.cndev.org/archive/2004/09/02/3074.aspx</id><created>2004-09-02T11:40:00Z</created><issued>2004-09-02T03:40:00+08:00</issued><modified>2008-02-26T10:16:00Z</modified><summary type="text/html">影片对白精选： 

　　泰勒：唐纳德-萨瑟兰饰
　　尤优：葛优饰
　　路易王：英达饰
　　露茜：关之琳饰</summary><content type="text/html" mode="escaped">&lt;DIV class=postTitle&gt;&lt;A id=CategoryEntryList.ascx_EntryStoryList_Entries__ctl0_TitleUrl HREF="/articles/3073.aspx"&gt;&lt;FONT color=#0000cf&gt;《大腕》对白精选&lt;/FONT&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;A id=CategoryEntryList.ascx_EntryStoryList_Entries__ctl1_TitleUrl HREF="/articles/3066.aspx"&gt;&lt;FONT color=#0000cf&gt;大腕经典台词&lt;/FONT&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;P&gt;以下是影片对白精选：&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　泰勒：唐纳德-萨瑟兰饰&lt;BR&gt;　　尤优：葛优饰&lt;BR&gt;　　路易王：英达饰&lt;BR&gt;　　露茜：关之琳饰&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;　　泰勒：你看，中国的皇宫是由两种颜色组成的，红色的墙和金色的瓦。红色代表鲜血，黄金象征财富，谁能不惜黄金和鲜血？只有皇帝。这就是东方人对权力的理解，而且是毫不掩饰的。但从人的角度来看，一个孩子当他走上王位的那一天起，作为一个统治者，他的一生都将是非常孤独的。所以贝特鲁奇的皇帝是伤感的。他知道这个角度是最能打动西方人的。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：NO，他有很多漂亮的女人，如果他有心气的话，可以每天换一个，而且不用花钱，都是朝廷给他养着。我只有一个女人，还跟我离婚了，我的一生才是悲剧的。&amp;#8221; &lt;/P&gt;
&lt;P&gt;　　尤优：No money,no women(没有钱，没有女人。)才是悲剧的。悲剧怎么说？&lt;/P&gt;
&lt;P&gt;　　泰勒心领神会：No good。&lt;/P&gt;
&lt;P&gt;　　尤优：耶耶。&lt;/P&gt;
&lt;P&gt;　　泰勒：Good,I love you (很好，我爱你。) &lt;/P&gt;
&lt;P&gt;　　尤优：我也I love you您。&lt;/P&gt;
&lt;P&gt;　　尤优：我们中国有句话，叫早死早脱生，这辈子过不好还有下辈子，轮回转世，坏事变好事。&lt;/P&gt;
&lt;P&gt;　　泰勒：中国人很会安慰自己。&lt;/P&gt;
&lt;P&gt;　　尤优：耶耶。(加手势比划着说)Chinese seventy years以上的old people die,no bad finish,is good finish中国人七十岁以上的老人死了，不是坏的结束，是好的结束。......(急得想不出词)Every body cheers(所有的人喝酒干杯)......就是葬礼很happy(高兴)。葬礼怎么说，急死我了。&lt;/P&gt;
&lt;P&gt;　　露茜：你到底想说什么？&lt;/P&gt;
&lt;P&gt;　　尤优：我想说，在中国活过七十年以上的老人死了，葬礼是喜丧。&lt;/P&gt;
&lt;P&gt;　　泰勒：我明白了，他是不是说，中国老人的葬礼象喜剧。&lt;/P&gt;
&lt;P&gt;　　路易王：根据泰勒先生生前的愿望，我们将为他老人家举行一个节目丰富多彩，形式类似春节晚会、快乐大本营、欢乐总动员，同时又有点象赈灾义演一样的葬礼。使其悲中有喜，喜中有悲，悲喜交加。这次活动的总设计师为泰勒先生本人，监制是露茜小姐，总导演由我本人和尤优联袂担纲，由泛太平洋演出公司承办。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;露茜：联袂担纲是什么意思？&lt;/P&gt;
&lt;P&gt;　　尤优：就是联合挂帅。&lt;/P&gt;
&lt;P&gt;　　路易王：葬礼的主题是八个字，团结、奋进、继往开来。&lt;/P&gt;
&lt;P&gt;　　尤优：这个提法是不是太中国了，不国际。是不是可以改为，和平、友谊、进步。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 路易王重复了一遍，说：怎么听着这么耳熟呵，好象哪次大型活动上用过。&lt;/P&gt;
&lt;P&gt;　　尤优：亚运会。&lt;/P&gt;
&lt;P&gt;　　路易王：对对对，我看可以。记下来，六个字，和平、友谊、进步。下面，让我们来讨论一下举行葬礼的地点。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：泰勒虽是美国人，但他的祖籍在意大利，所以葬礼将以中国著名导演张艺谋执导的意大利歌剧《图兰多》开场。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　露茜：那开场就需要两个小时？&lt;/P&gt;
&lt;P&gt;　　路易王：当然不能是全剧，只能精选其中的一个经典片段。《今夜无人入睡》怎么样？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：还是《好一朵美丽的茉莉花》吧。这段旋律是意大利作曲家普契尼根据中国民歌创作的，既是泰勒故乡的音乐，听上去又更中国。&lt;/P&gt;
&lt;P&gt;　　路易王：接下来便是由著名笑星冯巩、牛群合说的相声悼词，《戏说泰勒》。&lt;/P&gt;
&lt;P&gt;　　尤优向露茜解释：就是把悼词编成你们美国的脱口秀。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：然后就该煽点情了。由中国著名摇滚歌手臧天朔演唱他自己创作的歌曲《朋友》。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：最后的一个单元，我们称之为泰勒的新生。时间太紧了，请你粗略地看一个动画演示吧。&lt;/P&gt;
&lt;P&gt;　　尤优解释道：这孩子就是泰勒转世。&lt;/P&gt;
&lt;P&gt;　　露茜：泰勒是白种人，可为什么变出来的小孩是黄种人？&lt;/P&gt;
&lt;P&gt;　　露茜：但我认为，他是什么是，变出来的就应该还是什么人。&lt;/P&gt;
&lt;P&gt;　　路易王：那不利于增进中美两国之间的友谊，而且还很可能伤害了热情的中国人民的感情，这是我们不愿意看到的。&lt;/P&gt;
&lt;P&gt;　　露茜：但你想没想过，会伤害美国人民的感情呢？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：好了，不要争了。泰勒是国际大腕，世界名导，不能因为他是白种人就一定还变成白种人，你别急露茜，听我说完。当然也不能因为他的葬礼在中国办了就非得变成黄种人，应该是哪里最需要他，他就变成哪儿的人。非洲的电影正处于起步阶段，我觉得他应该变成黑人，一个小黑孩横空出世。(为了安慰露茜，尤优又补充道：)这样吧，小孩的皮肤虽然是黑的，但口音可以保留泰勒的原声。(向路易王解释：)就是电影里，意大利黑手党说话的那种语调。&lt;/P&gt;
&lt;P&gt;　　露茜心有不甘地：一定要变成黑人吗？&lt;/P&gt;
&lt;P&gt;　　尤优：没办法，世界上的人就这三种色，除非你同意他变成鸟或鱼什么的，那可以选择的色就多多了。&lt;/P&gt;
&lt;P&gt;　　路易王：OK，变成黑的。&lt;/P&gt;
&lt;P&gt;　　张总：我的要求就是，在葬礼的整个过程中，这位蒙着黑纱的神密的女子将始终伴随在泰勒的遗体边。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：这小狐狸是谁呀？&lt;/P&gt;
&lt;P&gt;　　张总说：她是泰勒的情人。&lt;/P&gt;
&lt;P&gt;　　尤优：这不可能，泰勒没有情人。他这岁数就是有这心也没这力了。您这创意搁在克林顿的葬礼上还差不多。&lt;/P&gt;
&lt;P&gt;　　路易王：当然这不是真的，她的真实身份是张总新签约的女演员。刚在网上选出来的潘金莲。张总想让她以泰勒情人的身份在葬礼上曝光，媒体不是就喜欢搞八卦吗？一夜她就成名了。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：戏没红人先红了。&lt;/P&gt;
&lt;P&gt;　　路易王：就是这意思，如果咱们同意，张总愿意支付葬礼的全部费用，五百万。&lt;/P&gt;
&lt;P&gt;　　张总：你刚才不是说四百万吗？怎么又涨了？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：四百万她得蒙着黑纱，您要出五百万，我们同意她把黑纱摘了，整个葬礼过程中切她三回特写。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　张总：那得让她爬在泰勒的身上哭三十秒。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：哭十分钟都成。我再给您打一个狠折，刚才我不是跟您说，葬礼的最后，泰勒不是要变成一小孩吗？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　张总点头：就是泰勒的新生那个单元。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：您再加五十万，我让这孩子一变出来，谁都不认，就认她，张嘴就能喊出她的名来。(问女子：)你叫什么名呀？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　女子：妮娜。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：妮娜还是留着给张总自己当情人吧。我觉得张总下这么大的本，不如捧红自己，给您整整容，整成一杂种的样，以泰勒私生子的身份参加葬礼，保证媒体也呜泱呜泱的....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：搜狗想和咱们合作，对葬礼进行一次大胆的改革，破除旧有的传统观念对葬礼的束缚，充分使之更适合二十一世纪新人类经济发展.....战略，不是战略，刚才你是怎么说的来着汤姆李？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　汤姆李：就是一种新的经济模式，我们IT行业把这种模式称之为：生当做人杰，死亦为鬼雄.....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：我不太明白，听着怎么那么乱呵？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：这么跟你说吧，就是挖掘葬礼的经济潜力，向葬礼要效益。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　汤姆李：我们计划建立一个全球最大的&amp;#8220;太平网站&amp;#8221;首先开通一个&amp;#8220;搜狗葬礼在线&amp;#8221;，搞网上葬礼，广告词我们都想好了，就叫&amp;#8220;上搜狗，搜泰勒&amp;#8221;。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　尤优：你们打算出多少钱买我们的授权呀？现在惦记这事的网特多，各种在线都在找我们。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王：我电话都不敢接。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　汤姆李：如果你们同意的话，我们愿意提供搜狗商务网，无偿的，为泰勒的葬礼进行一次广告招商，使名人葬礼成为发布名优新产品的新视窗，新平台，以此作为对你们授权的回报。你们愿意的话，我们还可以负责将葬礼包装上市，用股民的钱办葬礼，再用葬礼的广告收入使股票升值。你算算你们二位能赚多少钱吧？&lt;/P&gt;
&lt;P&gt;&amp;nbsp;　　路易王；不是两位，是三位，还有我呢。 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/3074.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/3074.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/3074.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/3074.aspx</trackback:ping></entry><entry><title>【提取SQL注释，生成数据字典】</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/06/16/982.aspx" /><id>http://sea026.cndev.org/archive/2004/06/16/982.aspx</id><created>2004-06-16T13:33:00Z</created><issued>2004-06-16T05:33:00+08:00</issued><modified>2007-10-22T16:24:00Z</modified><summary type="text/html">select A.name as TableName, B.name as ColName, C.Name as Type,B.length, 
case when B.isnullable=0 then 'NOT NULL' else 'NULL' end as 'NULL',
D.Value as Memo 
from sysobjects A
left join syscolumns B on A.id=B.id
left join systypes C on C.xusertype = B.xusertype
left join sysproperties D on  B.id=D.id and D.smallid=B.colid
where A.type='U' 
and A.name like 'Table'
order by A.name</summary><content type="text/html" mode="escaped">&lt;P&gt;【提取SQL注释，生成数据字典】&lt;BR&gt;select A.name as TableName, B.name as ColName, C.Name as Type,B.length, &lt;BR&gt;case when B.isnullable=0 then 'NOT NULL' else 'NULL' end as 'NULL',&lt;BR&gt;D.Value as Memo &lt;BR&gt;from sysobjects A&lt;BR&gt;left join syscolumns B on A.id=B.id&lt;BR&gt;left join systypes C on C.xusertype = B.xusertype&lt;BR&gt;left join sysproperties D on? B.id=D.id and D.smallid=B.colid&lt;BR&gt;where A.type='U' &lt;BR&gt;and A.name like 'Table'&lt;BR&gt;order by A.name&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/982.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/982.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/982.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/982.aspx</trackback:ping></entry><entry><title>我也美化一下,谢谢 http://zhong.cndev.org/</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/06/15/929.aspx" /><id>http://sea026.cndev.org/archive/2004/06/15/929.aspx</id><created>2004-06-15T14:34:00Z</created><issued>2004-06-15T06:34:00+08:00</issued><modified>2004-06-15T14:36:00Z</modified><content type="text/html" mode="escaped">谢谢&lt;A href="http://zhong.cndev.org/archive/2004/06/10/748.aspx" target=_blank&gt;http://zhong.cndev.org/&lt;/A&gt; 
&lt;P&gt;我也美化一下。&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/929.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/929.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/929.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/929.aspx</trackback:ping></entry><entry><title>用宏代码清除除Excle2000文档中的宏代码、部分控件</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/06/11/779.aspx" /><id>http://sea026.cndev.org/archive/2004/06/11/779.aspx</id><created>2004-06-11T15:31:00Z</created><issued>2004-06-11T07:31:00+08:00</issued><modified>2007-10-22T16:39:00Z</modified><summary type="text/html">vbeComp(i).CodeModule.DeleteLines 1, vbeComp(i).CodeModule.CountOfLines
vbaObje.Select: Selection.Delete
</summary><content type="text/html" mode="escaped">&lt;P&gt;&lt;FONT color=#006400&gt;'&lt;BR&gt;'removeExcelMacro("Book1.Xls",Array("CheckBox1","TextBox1","ListBox"))&lt;BR&gt;'&lt;BR&gt;'直接删除目标文件的宏代码和控件(可选择保留的控件),Excel文件名称、要删除的控件名称数组&lt;BR&gt;&lt;/FONT&gt;Public Static Function removeExcelMacro(targetExcelFileName As String, killOleObjectType As Variant) As Boolean&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo ErrHand&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i, j, n As Byte&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vbeComp As New VBComponents&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim vbaObje As OLEObject&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; removeExcelMacro = False&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set vbeComp = Application.Workbooks(targetExcelFileName).VBProject.VBComponents&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = vbeComp.Count&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 1 To n&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If i &amp;gt; vbeComp.Count Then Exit For&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If vbeComp(i).Type = 100 Then&amp;nbsp;&amp;nbsp; &lt;FONT color=#006400&gt;'&amp;nbsp;&amp;nbsp; 100: xl_Document_Type(Include Workbook , Worksheet)&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#006400&gt;'删除代码&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If vbeComp(i).CodeModule.CountOfLines &amp;gt; 0 Then vbeComp(i).CodeModule.DeleteLines 1, vbeComp(i).CodeModule.CountOfLines&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#006400&gt;'删除控件&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vbeComp(i).Activate&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If killOleObjectType(0) &amp;lt;&amp;gt; "" Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each vbaObje In ActiveSheet.OLEObjects&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To UBound(killOleObjectType)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If UCase(Split(vbaObje.ProgId, ".")(1)) = UCase(killOleObjectType(j)) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vbaObje.Select: Selection.Delete&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#006400&gt;'删除整个模块&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vbeComp.Remove vbeComp(i)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = i - 1&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; removeExcelMacro = True&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Function&lt;BR&gt;ErrHand:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox Err.Description &amp;amp; vbCrLf &amp;amp; vbCrLf &amp;amp; "请与XXX联系！", vbOKOnly + vbCritical&lt;BR&gt;End Function&lt;/P&gt;&lt;img src ="http://sea026.cndev.org/aggbug/779.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/779.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/779.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/779.aspx</trackback:ping></entry><entry><title>反编译工具 与 混淆器</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/05/28/196.aspx" /><id>http://sea026.cndev.org/archive/2004/05/28/196.aspx</id><created>2004-05-28T18:21:00Z</created><issued>2004-05-28T10:21:00+08:00</issued><modified>2004-05-28T18:40:00Z</modified><content type="text/html" mode="escaped">&lt;HTML&gt;&lt;HEAD&gt;
&lt;META content="text/html; charset=gb2312" http-equiv=Content-Type&gt;
&lt;META content="MSHTML 5.00.3700.6699" name=GENERATOR&gt;&lt;/HEAD&gt;
&lt;BODY&gt;&lt;FONT face=宋体 size=2&gt;
&lt;DIV&gt;模糊器和反编译器大展播： &lt;BR&gt;　　▲模糊器： &lt;BR&gt;　　&lt;A 
href="http://www.lesser-software.com/en/content/products/LSW%20DotNet-Tools/LSW_DotNet_IL-Obfuscator.htm"&gt;LSW 
Dot&lt;B style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;Net&lt;/B&gt; IL Obfuscator 
&lt;/A&gt;&lt;BR&gt;　　&lt;A href="http://www.wiseowl.com/products/Products.aspx"&gt;Demeanor for 
.&lt;B style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt;&lt;/A&gt; &lt;BR&gt;　　&lt;A 
href="http://www.remotesoft.com/salamander/obfuscator.html"&gt;Salamander .&lt;B 
style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt; Obfuscator&lt;/A&gt; &lt;BR&gt;　　&lt;A 
href="http://www.preemptive.com/dotfuscator/index.html"&gt;dotfuscator &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://www.aspose.com/"&gt;Aspose.Obfuscator &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://9rays.net/cgi-bin/components.cgi?act=1&amp;amp;cid=86"&gt;.&lt;B 
style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt; IL-Obfuscator 
&lt;/A&gt;&lt;BR&gt;　　&lt;A href="http://www.junglecreatures.com/jungle/index.jsp"&gt;Deploy .&lt;B 
style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt; &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://www.remotesoft.com/salamander/protector.html"&gt;Salamander .&lt;B 
style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt; Protector &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://thinstall.com/dotnet/"&gt;Thinstall &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://www.xenocode.com/"&gt;XenoCode &lt;/A&gt;&lt;BR&gt;&lt;BR&gt;　　▲ 反编译器： &lt;BR&gt;　　&lt;A 
href="http://www.remotesoft.com/salamander/index.html"&gt;Salamander .&lt;B 
style="BACKGROUND-COLOR: #ffff66; COLOR: black"&gt;NET&lt;/B&gt; Decompiler &lt;/A&gt;&lt;BR&gt;　　&lt;A 
href="http://www.saurik.com/net/exemplar/"&gt;Exemplar/Anakrino 
&lt;/A&gt;&lt;/DIV&gt;&lt;/FONT&gt;&lt;/BODY&gt;&lt;/HTML&gt;&lt;img src ="http://sea026.cndev.org/aggbug/196.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/196.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/196.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/196.aspx</trackback:ping></entry><entry><title>我的Blog开通了,多谢MM!!!</title><link rel="alternate" type="text/html" href="http://sea026.cndev.org/archive/2004/05/28/184.aspx" /><id>http://sea026.cndev.org/archive/2004/05/28/184.aspx</id><created>2004-05-28T17:44:00Z</created><issued>2004-05-28T09:44:00+08:00</issued><modified>2004-05-28T18:29:00Z</modified><content type="text/html" mode="escaped">&lt;html&gt;&lt;body&gt;&lt;img src="http://soft.ttdown.com/img/green.jpg" &gt;
&lt;/body&gt;&lt;/html&gt;
&lt;img src ="http://sea026.cndev.org/aggbug/184.aspx" width = "1" height = "1" /&gt;</content><wfw:comment>http://sea026.cndev.org/comments/184.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://sea026.cndev.org/comments/commentRss/184.aspx</wfw:commentRss><trackback:ping>http://sea026.cndev.org/services/trackbacks/184.aspx</trackback:ping></entry></feed>