2004年11月02日

/*
安全程序 DESede/DES测试
*/
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class TestDes {
    public static void main(String[] args){
        TestDes my=new TestDes();
        my.run();
    }
   
    public  void run() {
        //添加新安全算法,如果用JCE就要把它添加进去
        Security.addProvider(new com.sun.crypto.provider.SunJCE());
        //final String Algorithm=”DES”; //定义加密算法,可用 DES,DESede,Blowfish
        final String Algorithm = “DES/CBC/PKCS5Padding”;
        String myinfo=”要加密的信息”;
       
        try {
            //生成密钥
            byte[] bytes = {‘e’,'+’,’s’,'u’,'%’,'*’,'4′,’O'};        
            byte[] key = new String(“de$%^@#-”).getBytes();
            SecretKey deskey = new SecretKeySpec(key, “DES”);
            Cipher c1 = Cipher.getInstance (Algorithm);
            IvParameterSpec ivSpec = new IvParameterSpec (bytes);
            c1.init (Cipher.ENCRYPT_MODE, deskey, ivSpec);
            //KeyGenerator keygen = KeyGenerator.getInstance(Algorithm);
            //SecretKey deskey = keygen.generateKey();
            //加密
            System.out.println(“加密前的二进串:”+byte2hex(myinfo.getBytes()));
            System.out.println(“加密前的信息:”+myinfo);
            //Cipher c1 = Cipher.getInstance(Algorithm);
            //c1.init(Cipher.ENCRYPT_MODE,deskey);
            byte[] cipherByte=c1.doFinal(myinfo.getBytes());
            System.out.println(“加密后的二进串:”+byte2hex(cipherByte));
            //解密
            c1 = Cipher.getInstance(Algorithm);
            c1.init(Cipher.DECRYPT_MODE, deskey, ivSpec);
            byte[] clearByte=c1.doFinal(cipherByte);
            System.out.println(“解密密钥:”+ (new String(deskey.getEncoded())));
            System.out.println(“解密后的二进串:”+byte2hex(clearByte));
            System.out.println(“解密后的信息:”+(new String(clearByte)));
        } catch (java.security.NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        } catch (javax.crypto.NoSuchPaddingException e2) {
            e2.printStackTrace();
        } catch (java.lang.Exception e3) {
            e3.printStackTrace();
        }
    }
   
    public String byte2hex(byte[] b) {//二行制转字符串
        String hs=”";
        String stmp=”";
        for (int n=0;n<b.length;n++) {
            stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
            if (stmp.length()==1) hs=hs+”0″+stmp;
            else hs=hs+stmp;
            if (n<b.length-1)  hs=hs+”:”;
        }
        return hs.toUpperCase();
    }
}

Oracle专家调优秘密

在过去的十年中, Oracle 已经成为世界上最专业的数据库之一。对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能。
Oracle 调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的。
   在这篇简介中,我们将简要地介绍以下的 Oracle 主题:
  – 外部调整:我们应该记住 Oracle 并不是单独运行的。因此我们将查看一下通过调整 Oracle 服务器以得到高的性能。
  –Row re-sequencing 以减少磁盘 I/O :我们应该懂得 Oracle 调优最重要的目标是减少 I/O 。
  –Oracle SQL 调整。 Oracle SQL 调整是 Oracle 调整中最重要的领域之一,只要通过一些简单的 SQL 调优规则就可以大幅度地提升 SQL 语句的性能,这是一点都不奇怪的。
  – 调整 Oracle 排序:排序对于 Oracle 性能也是有很大影响的。
  – 调整 Oracle 的竞争:表和索引的参数设置对于 UPDATE 和 INSERT 的性能有很大的影响。

   我们首先从调整 Oracle 外部的环境开始。如果内存和 CPU 的资源不足的话,任何的 Oracle 调整都是没有帮助的。

  外部的性能问题
  
  Oracle 并不是单独运行的。 Oracle 数据库的性能和外部的环境有很大的关系。这些外部的条件包括有:
   . CPU–CPU 资源的不足令查询变慢。当查询超过了 Oracle 服务器的 CPU 性能时,你的数据库性能就受到 CPU 的限制。
   .内存 — 可用于 Oralce 的内存数量也会影响 SQL 的性能,特别是在数据缓冲和内存排序方面。
   .网络 — 大量的 Net8 通信令 SQL 的性能变慢。
   许多新手都错误的认为应该首先调整 Oracle 数据库,而不是先确认外部资源是否足够。实际上,如果外部环境出现瓶颈,再多的 Oracle 调整都是没有帮助的。
   在检查 Oracle 的外部环境时,有两个方面是需要注意的:
  1 、当运行队列的数目超过服务器的 CPU 数量时,服务器的性能就会受到 CPU 的限制。补救的方法是为服务器增加额外的 CPU 或者关闭需要很多处理资源的组件,例如 Oracle Parallel Query 。
  2 、内存分页。当内存分页时,内存容量已经不足,而内存页是与磁盘上的交换区进行交互的。补救的方法是增加更多的内存,减少 Oracle SGA 的大小,或者关闭 Oracle 的多线程服务器。
   可以使用各种标准的服务器工具来得到服务器的统计数据,例如 vmstat,glance,top 和 sar 。 DBA 的目标是确保数据库服务器拥有足够的 CPU 和内存资源来处理 Oracle 的请求。
   以下让我们来看一下 Oracle 的 row-resequencing 是如何能够极大地减少磁盘 I/O 的。

  Row-resequencing (行的重新排序)
  
  就象我们上面提到的,有经验的 Oracle DBA 都知道 I/O 是响应时间的最大组成部分。其中磁盘 I/O 特别厉害,因为当 Oracle 由磁盘上的一个数据文件得到一个数据块时,读的进程就必须等待物理 I/O 操作完成。磁盘操作要比数据缓冲慢 10,000 倍。因此,如果可以令 I/O 最小化,或者减少由于磁盘上的文件竞争而带来的瓶颈,就可以大大地改善 Oracle 数据库的性能。
   如果系统响应很慢,通过减少磁盘 I/O 就可以有一个很快的改善。如果在一个事务中通过按一定的范围搜索 primary-key 索引来访问表,那么重新以 CTAS 的方法组织表将是你减少 I/O 的首要策略。通过在物理上将行排序为和 primary-key 索引一样的顺序,就可以加快获得数据的速度。
   就象磁盘的负载平衡一样,行的重新排序也是很简单的,而且也很快。通过与其它的 DBA 管理技巧一起使用,就可以在高 I/O 的系统中大大地减少响应的时间。
   在高容量的在线事务处理环境中( online transaction processing , OLTP ),数据是由一个 primary 索引得到的,重新排序表格的行就可以令连续块的顺序和它们的 primary 索引一样,这样就可以在索引驱动的表格查询中,减少物理 I/O 并且改善响应时间。这个技巧仅在应用选择多行的时候有用,或者在使用索引范围搜索和应用发出多个查询来得到连续的 key 时有效。对于随机的唯一 primary-key (主键)的访问将不会由行重新排序中得到好处。
   让我们看一下它是如何工作的。考虑以下的一个 SQL 的查询,它使用一个索引来得到 100 行:
selectsalaryfromemployeewherelast_name like ‘B%’;
这个查询将会使用 last_name_index ,搜索其中的每一行来得到目标行。这个查询将会至少使用 100 次物理磁盘的读取,因为 employee 的行存放在不同的数据块中。
   不过,如果表中的行已经重新排序为和 last_name_index 的一样,同样的查询又会怎样处理呢?我们可以看到这个查询只需要三次的磁盘 I/O 就读完全部 100 个员工的资料(一次用作索引的读取,两次用作数据块的读取),减少了 97 次的块读取。
   重新排序带来的性能改善的程度在于在你开始的时候行的乱序性如何,以及你需要由序列中访问多少行。至于一个表中的行与索引的排序键的匹配程度,可以查看数据字典中的 dba_indexes 和 dba_tables 视图得到。
   在 dba_indexes 的视图中,查看 clustering_factor 列。如果 clustering_factor 的值和表中的块数目大致一样,那么你的表和索引的顺序是一样的。不过,如果 clustering_factor 的值接近表中的行数目,那就表明表格中的行和索引的顺序是不一样的。
   行重新排序的作用是不可以小看的。在需要进行大范围的索引搜索的大表中,行重新排序可以令查询的性能提高三倍。
   一旦你已经决定重新排序表中的行,你可以使用以下的工具之一来重新组织表格。
  . 使用 Oracle 的 Create Table As Select (CTAS) 语法来拷贝表格
  . Oracle9i 自带的表格重新组织工具
  
   以下,我们来看以下 SQL 语句的调优。

  SQL 调优
  Oracle 的 SQL 调优是一个复杂的主题,甚至是需要整本书来介绍 Oracle SQL 调优的细微差别。不过有一些基本的规则是每个 Oracle DBA 都需要跟从的,这些规则可以改善他们系统的性能。 SQL 调优的目标是简单的:
  . 消除不必要的大表全表搜索:不必要的全表搜索导致大量不必要的 I/O ,从而拖慢整个数据库的性能。调优专家首先会根据查询返回的行数目来评价 SQL 。在一个有序的表中,如果查询返回少于 40% 的行,或者在一个无序的表中,返回少于 7% 的行,那么这个查询都可以调整为使用一个索引来代替全表搜索。对于不必要的全表搜索来说,最常见的调优方法是增加索引。可以在表中加入标准的 B 树索引,也可以加入 bitmap 和基于函数的索引。要决定是否消除一个全表搜索,你可以仔细检查索引搜索的 I/O 开销和全表搜索的开销,它们的开销和数据块的读取和可能的并行执行有关,并将两者作对比。在一些情况下,一些不必要的全表搜索的消除可以通过强制使用一个 index 来达到,只需要在 SQL 语句中加入一个索引的提示就可以了。
  . 在全表搜索是一个最快的访问方法时,将小表的全表搜索放到缓存中,调优专家应该确保有一个专门的数据缓冲用作行缓冲。在 Oracle7 中,你可以使用 alter table xxx cache 语句,在 Oracle8 或以上,小表可以被强制为放到 KEEP 池中缓冲。
  . 确保最优的索引使用 :对于改善查询的速度,这是特别重要的。有时 Oracle 可以选择多个索引来进行查询,调优专家必须检查每个索引并且确保 Oracle 使用正确的索引。它还包括 bitmap 和基于函数的索引的使用。
  . 确保最优的 JOIN 操作:有些查询使用 NESTED LOOP join 快一些,有些则是 HASH join 快一些,另外一些则是 sort-merge join 更快。
   这些规则看来简单,不过它们占 SQL 调优任务的 90% ,并且它们也无需完全懂得 Oracle SQL 的内部运作。以下我们来简单概览以下 Oracle SQL 的优化。
   我们首先简要查看 Oracle 的排序,并且看一看排序操作是如何影响性能的。

   调整 Oracle 的排序操作
   排序是 SQL 语法中一个小的方面,但很重要,在 Oracle 的调整中,它常常被忽略。当使用 create index 、 ORDER BY 或者 GROUP BY 的语句时, Oracle 数据库将会自动执行排序的操作。通常,在以下的情况下 Oracle 会进行排序的操作:
   使用 Order by 的 SQL 语句
   使用 Group by 的 SQL 语句
   在创建索引的时候
   进行 table join 时,由于现有索引的不足而导致 SQL 优化器调用 MERGE SORT
   当与 Oracle 建立起一个 session 时,在内存中就会为该 session 分配一个私有的排序区域。如果该连接是一个专用的连接 (dedicated connection) ,那么就会根据 init.ora 中 sort_area_size 参数的大小在内存中分配一个 Program Global Area (PGA) 。如果连接是通过多线程服务器建立的,那么排序的空间就在 large_pool 中分配。不幸的是,对于所有的 session ,用做排序的内存量都必须是一样的,我们不能为需要更大排序的操作分配额外的排序区域。因此,设计者必须作出一个平衡,在分配足够的排序区域以避免发生大的排序任务时出现磁盘排序( disk sorts )的同时,对于那些并不需要进行很大排序的任务,就会出现一些浪费。当然,当排序的空间需求超出了 sort_area_size 的大小时,这时将会在 TEMP 表空间中分页进行磁盘排序。磁盘排序要比内存排序大概慢 14,000 倍。
   上面我们已经提到,私有排序区域的大小是有 init.ora 中的 sort_area_size 参数决定的。每个排序所占用的大小由 init.ora 中的 sort_area_retained_size 参数决定。当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在 Oracle 实例中的临时表空间中进行。
   磁盘排序的开销是很大的,有几个方面的原因。首先,和内存排序相比较,它们特别慢;而且磁盘排序会消耗临时表空间中的资源。 Oracle 还必须分配缓冲池块来保持临时表空间中的块。无论什么时候,内存排序都比磁盘排序好,磁盘排序将会令任务变慢,并且会影响 Oracle 实例的当前任务的执行。还有,过多的磁盘排序将会令 free buffer waits 的值变高,从而令其它任务的数据块由缓冲中移走。
   接着,让我们看一下 Oracle 的竞争,并且看一下表的存储参数的设置是如何影响 SQL UPDATE 和 INSERT 语句的性能的。

调整 Oracle 的竞争
  Oracle 的其中一个优点时它可以管理每个表空间中的自由空间。 Oracle 负责处理表和索引的空间管理,这样就可以让我们无需懂得 Oracle 的表和索引的内部运作。不过,对于有经验的 Oracle 调优专家来说,他需要懂得 Oracle 是如何管理表的 extent 和空闲的数据块。对于调整拥有高的 insert 或者 update 的系统来说,这是非常重要的。
   要精通对象的调整,你需要懂得 freelists 和 freelist 组的行为,它们和 pctfree 及 pctused 参数的值有关。这些知识对于企业资源计划( ERP )的应用是特别重要的,因为在这些应用中,不正确的表设置通常是 DML 语句执行慢的原因。
   对于初学者来说,最常见的错误是认为默认的 Oracle 参数对于所有的对象都是最佳的。除非磁盘的消耗不是一个问题,否则在设置表的 pctfree 和 pctused 参数时,就必须考虑平均的行长和数据库的块大小,这样空的块才会被有效地放到 freelists 中。当这些设置不正确时,那些得到的 freelists 也是 “dead” 块,因为它们没有足够的空间来存储一行,这样将会导致明显的处理延迟。
Freelists 对于有效地重新使用 Oracle 表空间中的空间是很重要的,它和 pctfree 及 pctused 这两个存储参数的设置直接相关。通过将 pctused 设置为一个高的值,这时数据库就会尽快地重新使用块。不过,高性能和有效地重新使用表的块是对立的。在调整 Oracle 的表格和索引时,需要认真考虑究竟需要高性能还是有效的空间重用,并且据此来设置表的参数。以下我们来看一下这些 freelists 是如何影响 Oracle 的性能的。
   当有一个请求需要插入一行到表格中时, Oracle 就会到 freelist 中寻找一个有足够的空间来容纳一行的块。你也许知道, freelist 串是放在表格或者索引的第一个块中,这个块也被称为段头( segment header )。 pctfree 和 pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出。虽然 freelist link 和 unlink 是简单的 Oracle 功能,不过设置 freelist link (pctused) 和 unlink (pctfree) 对 Oracle 的性能确实有影响。
   由 DBA 的基本知识知道, pctfree 参数是控制 freelist un-links 的(即将块由 freelists 中移除)。设置 pctfree=10 意味着每个块都保留 10% 的空间用作行扩展。 pctused 参数是控制 freelist re-links 的。设置 pctused=40 意味着只有在块的使用低于 40% 时才会回到表格的 freelists 中。
   许多新手对于一个块重新回到 freelists 后的处理都有些误解。其实,一旦由于一个删除的操作而令块被重新加入到 freelist 中,它将会一直保留在 freelist 中即使空间的使用超过了 60% ,只有在到达 pctfree 时才会将数据块由 freelist 中移走。

   表格和索引存储参数设置的要求总结
   以下的一些规则是用来设置 freelists, freelist groups, pctfree 和 pctused 存储参数的。你也知道, pctused 和 pctfree 的值是可以很容易地通过 alter table 命令修改的,一个好的 DBA 应该知道如何设置这些参数的最佳值。
   有效地使用空间和高性能之间是有矛盾的,而表格的存储参数就是控制这个方面的矛盾:
. 对于需要有效地重新使用空间,可以设置一个高的 pctused 值,不过副作用是需要额外的 I/O 。一个高的 pctused 值意味着相对满的块都会放到 freelist 中。因此,这些块在再次满之前只可以接受几行记录,从而导致更多的 I/O 。
. 追求高性能的话,可以将 pctused 设置为一个低的值,这意味着 Oracle 不会将数据块放到 freelists 中直到它几乎是空的。那么块将可以在满之前接收更多的行,因此可以减少插入操作的 I/O 。要记住 Oracle 扩展新块的性能要比重新使用现有的块高。对于 Oracle 来说,扩展一个表比管理 freelists 消耗更少的资源。
   让我们来回顾一下设置对象存储参数的一些常见规则:
   .经常将 pctused 设置为可以接收一条新行。对于不能接受一行的 free blocks 对于我们来说是没有用的。如果这样做,将会令 Oracle 的性能变慢,因为 Oracle 将在扩展表来得到一个空的块之前,企图读取 5 个 “dead” 的 free block 。
   .表格中 chained rows 的出现意味着 pctfree 太低或者是 db_block_size 太少。在很多情况下, RAW 和 LONG RAW 列都很巨大,以至超过了 Oracle 的最大块的大小,这时 chained rows 是不可以避免的。
   .如果一个表有同时插入的 SQL 语句,那么它需要有同时删除的语句。运行单一个一个清除的工作将会把全部的空闲块放到一个 freelist 中,而没有其它包含有任何空闲块的 freelists 出现。
   . freelist 参数应该设置为表格同时更新的最大值。例如,如果在任何时候,某个表最多有 20 个用户执行插入的操作,那么该表的参数应该设置为 freelists=20 。
   应记住的是 freelist groups 参数的值只是对于 Oracle Parallel Server 和 Real Application Clusters 才是有用的。对于这类 Oracle , freelist groups 应该设置为访问该表格的 Oracle Parallel Server 实例的数目。

所有Oracle的文档都说,Oracle的DB_BLOCK_SIZE应该是操作系统的Blocksize的整数倍。
但是Unix那么多,很多人都不知道他的Unix的文件系统的Blocksize是多大。
  
下面我们就依次来分析分析,不同Unix的文件系统的Blocksize分别是多少:
  
首先,我们都知道,文件系统的Block大小,是创建文件系统的时候指定的,一般Unix都会根据对应设备文件的大小,
给一个相应的Block大小。
一般这个Block大小,都是创建文件系统之后就无法更改的,就和Oracle的db_block_size一个德行。:D
  
Linux:
这是我们最容易可以接触到的Unix。我们拿Linux下面最常见的文件系统:Ext2来分析。
我们可以通过mkfs -t ext2 /dev/sdXN 来创建文件系统。
如果我们不指定文件系统的Block大小,Linux会根据设备文件的大小,自动选择适当的BLOCKSIZE。
如何指定Linux的文件系统的BlockSize呢?
mk2efs -B 8192 /dev/sdXN  
那么,对于已经创建的文件系统,我们怎么检查当前文件系统的BlockSize呢?答案是用Tune2fs来检查:
请看:
[root@dwdb /]# tune2fs -l /dev/sda9
tune2fs 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem volume name:   &lt;none>
Last mounted on:          &lt;not available>
Filesystem UUID:          72e96995-fee0-4921-85f8-f9d5d2cad1f8
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      filetype sparse_super large_file
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              6082944
Block count:              12161197
Reserved block count:     608059
Free blocks:              2308319
Free inodes:              6081568
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         16352
Inode blocks per group:   511
Last mount time:          Mon Nov  4 16:36:27 2002
Last write time:          Mon Nov  4 16:57:33 2002
Mount count:              11
Maximum mount count:      37
Last checked:             Sun Aug 18 21:10:08 2002
Check interval:           15552000 (6 months)
Next check after:         Fri Feb 14 21:10:08 2003
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
通过上面的结果,我们很容易就可以看到文件系统的Block大小就是4096.

在Solaris机器上,默认的Block大小是8K
  
我们如何指定Solaris文件系统的Block大小呢?
newfs -b 4096 /dev/c0txdxsx 里面的-b 来指定Block大小,覆盖默认的8K.
其实8k 是一个可以的数字,没有必要覆盖这个缺省参数。
  
那么我们如何检查当前已有文件系统的Block大小呢?
bash-2.05# fstyp -v /dev/rdsk/c0t2d0s0 |more      
ufs
magic   11954   format  dynamic time    Mon Nov  4 17:46:05 2002
sblkno  16      cblkno  24      iblkno  28      dblkno  408
sbsize  2048    cgsize  4096    cgoffset 160    cgmask  0xfffffff0
ncg     697     size    17827200        blocks  17553949
bsize   4096    shift   12      mask    0xfffff000
fsize   1024    shift   10      mask    0xfffffc00
frag    4       shift   2       fsbtodb 1
minfree 1%      maxbpg  1024    optim   time
maxcontig 256   rotdelay 0ms    rps     120
csaddr  408     cssize  11264   shift   8       mask    0xffffff00
ntrak   10      nsect   320     spc     3200    ncyl    11142
cpg     16      bpg     6400    fpg     25600   ipg     3040
nindir  1024    inopb   32      nspf    2
nbfree  4388485 ndir    2       nifree  2118876 nffree  4
cgrotor 0       fmod    0       ronly   0       logbno  0
我们可以看到,这个文件系统的Block大小是4K。
当然,最简单的还是
df -g

实际上,很多高端的Solaris机器,都配置了Veritas的文件系统,所以我们也有必要来研究一下Veritas的VXFS的一些情况。
  
vxfs 的默认的Block大小也是8K
同样,创建vxfs的文件系统,也是可以指定改文件系统的Block大小的:
  
# mkfs -F vxfs -o bsize=4096 /dev/vx/rdsk/edidg/test_vol
     version 4 layout
     10240 sectors, 1280 blocks of size 4096, log size 256 blocks
     unlimited inodes, largefiles not supported
     1280 data blocks, 992 free data blocks
     1 allocation units of 32768 blocks, 32768 data blocks
     last allocation unit has 1280 data blocks
我们检查现有文件系统的Block大小,也是使用fstyp 命令:
  
# fstyp -v /dev/vx/dsk/edidg/test_vol      
vxfs
magic a501fcf5  version 4  ctime Mon Nov  4 18:06:42 2002
logstart 0  logend 0
bsize  4096 size  1280 dsize  1280  ninode 0  nau 0
defiextsize 0  ilbsize 0  immedlen 96  ndaddr 10
aufirst 0  emap 0  imap 0  iextop 0  istart 0
bstart 0  femap 0  fimap 0  fiextop 0  fistart 0  fbstart 0
nindir 2048  aulen 32768  auimlen 0  auemlen 2
auilen 0  aupad 0  aublocks 32768  maxtier 15
inopb 16  inopau 0  ndiripau 0  iaddrlen 2   bshift 12
inoshift 4  bmask fffff000  boffmask fff  checksum e2cda323
oltext1 15  oltext2 518  oltsize 1  checksum2 31d
free 987  ifree 0
efree  1 1 2 0 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

HP Unix和Solaris的命令也是一样的,通过fstyp也可以检查到那个Block的大小啦。
  
在Newfs的时候,也可以指定Block的大小了。
#newfs -F hfs -f 8192 /dev/vg01/rlvol1
  
至于HP上面的vxfs ,和Solaris上的vxfs也是一码事情啦。

在AIX下面,默认的大小是4K。
在smit fs下面来创建文件系统的大小。
  
Tru64,偶就不知道了。
  
说了这么多,其实都没有什么意义。
  
我们创建数据库,一般很少会选择BlockSize小于8k的。
而几乎所有Unix文件系统的Blocksize,都不会默认大于8K.
  
只是一些朋友常常问起,把积累的东西贴出来一下而已,希望对大家有些帮助。

name 姓名
alias 别名
pen name 笔名
date of birth 出生日期
birth date 出生日期
born 出生于
birth place 出生地点
age 年龄
native place 籍贯
province 省
city 市
autonomous region 自治区
prefecture 专区
county 县
nationality 民族,国籍
citizenship 国籍
duel citizenship 双重国籍
address 地址
current address 目前地址
present address 目前地址
permanent address 永久地址
postal code 邮政编码
home phone 住宅电话
office phone 办公电话
business phone 办公电话
tel.电话
sex 性别
male 男
female 女
height 身高
weight 体重
marital status 婚姻状况
family status 家庭状况
married 已婚
single/unmarried 未婚
divorced 离异
separated 分居
number of children 子女人数
none 无
street 街
lane 胡同,巷
road 路
district 区
house number 门牌
health 健康状况
health condition 健康状况
blood type 血型
short-sighted 近视
far-sighted 远视
color-blind 色盲
id card no.身份证号码
date of availability 可到职时间
available 可到职
membership 会员,资格
president 会长
vice-president 副会长
director 理事
standing director 常务理事
secretary general 秘书长
society 学会
association 协会
research society 研究会

教育程度

education 学历
educational background 教育程度
educational history 学历
curriculum 课程
major 主修
minor 副修
educational highlights 课程重点部分
curriculum included 课程包括
specialized courses 专门课程
courses taken 所学课程
courses completed 所学课程
special training 特别训练
social practice 社会实践
part-time jobs 业余工作
summer jobs 暑期工作
vacation jobs 假期工作 刷新
er course 进修课程
extracurricular activities 课外活动
physical activities 体育活动
recreational activities 娱乐活动
academic activities 学术活动
social activities 社会活动
rewards 奖励
scholarship 奖学金
“three goods” student 三好学生
excellent league member 优秀团员
excellent leader 优秀干部
student council 学生会
off-job training 脱产培训
in-job training 在职培训
educational system 学制
academic year 学年
semester 学期(美)
term 学期 (英)
president 校长
vice-president 副校长
dean 院长
assistant dean 副院长
academic dean 教务长
department chairman 系主任
professor 教授
associate professor 副教授
guest professor 客座教授
lecturer 讲师
teaching assistant 助教
research fellow 研究员
research assistant 助理研究员
supervisor 论文导师
principal 中学校长(美)
headmaster 中学校长(英)
master 小学校长 (美)
dean of studies 教务长
dean of students 教导主任
dean of students 教导主任
teacher 教师
probation teacher 代课教师
tutor 家庭教师
governess 女家庭教师
intelligence quotient 智商
pass 及格
fail 不及格
marks 分数
grades 分数
scores 分数
examination 考试
grade 年级
class 班级
monitor 班长
vice-monitor 副班长
commissary in charge of studies 学习委员
commissary in charge of entertainment 文娱委员
commissary in charge of sports 体育委员
commissary in charge of physical labor 劳动委员
party branch secretary 党支部书记
league branch secretary 团支部书记
commissary in charge of organization 组织委员
commissary in charge of publicity 宣传委员
degree 学位 post doctorate 博士后
doctor (ph.d) 博士
master 硕士
bachelor 学士
student 学生
graduate student 研究生
abroad student 留学生
returned student 回国留学生
foreign student 外国学生
undergraduate 大学肄业生
senior 大学四年级学生;高中三年级学生
junior 大学三年级学生;高中二年级学生
sophomore 大学二年级学生;高中一年级学生
freshman 大学一年级学生
guest student 旁听生(英)
auditor 旁听生(美)
government-supported student 公费生
commoner 自费生
extern 走读生
day-student 走读生
intern 实习生
prize fellow 奖学金生
boarder 寄宿生
classmate 同班同学
schoolmate 同校同学
graduate 毕业生

工作经历

accomplish 完成(任务等)
achievements 工作成就,业绩
adapted to 适应于
adept in 善于
administer 管理
advanced worker 先进工作者
analyze 分析
appointed 被任命的
assist 辅助
authorized 委任的;核准的
be promoted to 被提升为
be proposed as 被提名为;被推荐为
behave 表现
breakthrough 惊人的进展,关键问题的解决
break the record 打破记录
business background 工作经历
business experience 工作经历
business history 工作经历
conduct 经营,处理
control 控制
cost 成本;费用
create 创造
decrease 减少
demonstrate 证明,示范
design 设计
develop 开发,发挥
devise 设计,发明
direct 指导
double 加倍,翻一番
duties 职责
earn 获得,赚取
effect 效果,作用
eliminate 消除
employment experience工作经历
employment record 工作经历
employment 工作
enlarge 扩大
enliven 搞活
enrich 使丰富
establish 设立(公司等);使开业;确立
evaluation 估价,评价
excellent league member 优秀团员
excellent party member 优秀党员执行 实行,实施
expand 推广;扩大
expedite 加快;促进
experience 经历
exploit开发(资源,产品)
export 出口
found 创立
generate 产生
good at 擅长于
guide 指导;操纵
implement 完成,实施
import 进口
improve 改进,提高
increase 增加
influence 影响
initiate 创始,开创
innovate 改革,革新
inspired 受启发的;受鼓舞的
install 安装
integrate 使结合;使一体化
introduce 采用,引进
invent 发明
invest 投资
job title 职位
justified 经证明的;合法化的
launch 开办(新企业)
lead 领导
lengthen 延长
lessen 减少(生产成本)
level 水平
localize 使地方化
maintain 保持;维修
make 制造
manage 管理,经营
manufacture 制造
mastered 精通的
modernize 使现代化
motivate 促进,激发
negotiate 谈判
nominated 被提名的;被任命的
occupational history 工作经历
operate 操作,开动(机器等),经营(厂矿)
organize 组织
originate 创始,发明
overcome 克服(困难等)
participate in 参加
perfect 使完善;改善
perform 执行,履行
plan 计划
position 职位
professional history 职业经历
professional 职业经历
profit 利润
promote 生产,制造
promote 推销(商品);创立(企业)等
provide 提供,供应
raise 提高
reach 达到
realize 实现(目标等);获得(利润)
receive 收到,得到,接受
recognize 认清(职责等)
recommended 被推荐的;被介绍的
reconsolidate 重新巩固;重新整顿
reconstruct 重建
recorded 记载的
recover 恢复;弥补
rectify 整顿,调整
redouble 加倍,倍增
reduce 减少,降低(成本等)
refine 精练,精制
reform 改革
regenerate 更新,使更生
registered 已注册的
regularize 使系统化
regulate 控制(费用等)
rehandle 重铸;重新处理
rehash 以新形式处理(旧材料)
reinforce 加强
reckon 计算(成本等)
renew 重建,换新
renovate 革新;修理
repair 修复,修补
replace 接替,替换
representative 代表,代理人
research 调查,研究
resolve 解决
responsibilities 职责
second job 第二职业
set 创造(纪录等)
settle 解决(问题等)
shorten 减低……效能
show 显示,表明
significant 重要的,有效的
simplify 简化,精简
solve 解决
sort out 清理
specific experience 具体经历
speed up 加速
sponsor 主办
spread 传播,扩大
standard 标准,规格
streamline 把……设计流线型
strengthen 加强,巩固
study 研究
succeed 成功
supervise 监督,管理
supply 供给,满足(需要)
systematize 使系统化
target 目标,指标
test 试验,检验
top 头等的,最高的
total 总数,总额
translate 翻译,转化
travel 旅行
unify 使成一体,统一
use 使用,运用
useful 有用的
utilize 利用
valuable 有价值的
vivify 使活跃
well-trained 训练有素的
work experience 工作经历
work history 工作经历
work 工作,起作用
working model 劳动模范
worth 使……钱的,有……价值的

个人品质

able 有才干的,能干的
active 主动的,活跃的
adaptable 适应性强的
adroit 灵巧的,机敏的
aggressive 有进取心的
alert 机灵的
ambitious 有雄心壮志的
amiable 和蔼可亲的
amicable 友好的
analytical 善于分析的
apprehensive 有理解力的
aspiring 有志气的,有抱负的
audacious 大胆的,有冒险精神的
capable 有能力的,有才能的
careful 办事仔细的
candid 正直的
charitable 宽厚的
competent 能胜任的
confident 有信心的
conscientious 认真的,自觉的
considerate 体贴的
constructive 建设性的
contemplative 好沉思的
cooperative 有合作精神的
creative 富创造力的
dashing 有一股子冲劲的,有拼搏精神的
dedicated 有奉献精神的
devoted 有献身精神的
dependable 可靠的
diplomatic 老练的,有策略的
disciplined 守纪律的
discreet (在行动,说话等方面)谨慎的
dutiful 尽职的
dynamic 精悍的
earnest 认真的
well-educated 受过良好教育的
efficient 有效率的
energetic 精力充沛的
enthusiastic 充满热情的
expressive 善于表达
faithful 守信的,忠诚的
forceful (性格)坚强的
frank 直率的,真诚的
friendly 友好的
frugal 俭朴的
generous 宽宏大量的
genteel 有教养的
gentle 有礼貌的
hard-working 勤劳的
hearty 精神饱满的
honest 诚实的
hospitable 殷勤的
humble 恭顺的
humorous 幽默的
impartial 公正的
independent 有主见的
industrious 勤奋的
ingenious 有独创性的
initiative 首创精神
have an inquiring mind 爱动脑筋
intellective 有智力的
intelligent 理解力强的
inventive 有发明才能的,有创造力的
just 正直的
kind-hearted 好心的
knowledgeable 有见识的
learned 精通某门学问的
liberal 心胸宽大的
logical 条理分明的
loyal 忠心耿耿的
methodical 有方法的
modest 谦虚的
motivated 目的明确的
objective 客观的
open-minded 虚心的
orderly 守纪律的
original 有独创性的
painstaking 辛勤的,苦干的,刻苦的
practical 实际的 precise 一丝不苟的
persevering 不屈不挠的
punctual 严守时刻的
purposeful 意志坚强的
qualified 合格的
rational 有理性的
realistic 实事求是的
reasonable 讲道理的
reliable 可信赖的
responsible 负责的
self-conscious 自觉的
selfless 无私的
sensible 明白事理的
sincere 真诚的
smart 精明的
spirited 生气勃勃的
sporting 光明正大的
steady 塌实的
straightforward 老实的
strict 严格的
systematic 有系统的
strong-willed 意志坚强的
sweet-tempered 性情温和的
temperate 稳健的
tireless 孜孜不倦的

其它内容
objective 目标
career objective 职业目标
employment objective 工作目标
position wanted 希望职位
job objective 工作目标
position applied for 申请职位
position sought 谋求职位
position desired 希望职位
for more specialized work 为更专门的工作
for prospects of promotion 为晋升的前途
for higher responsibility 为更高层次的工作责任
for wider experience 为扩大工作经验
due to close-down of company 由于公司倒闭
due to expiry of employment 由于雇用期满
offered a more challenging opportunity 获得的更有挑战性的工作机会
sought a better job 找到了更好的工作
to look for a more challenging opportunity 找一个更有挑战性的工作机会
to seek a better job 找一份更好的工作

    35岁是青春的后期,35岁以后是收获的季节,如果你没有资格说这句话,你将会憎恨自己。所以在35岁以前,在烂漫蓬勃的青春年华里,你最好把下面十件事做好。  
  
     第一,学会本行业所需要的一切知识并有所发展。已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司。每个人在年轻时都可能有过彻夜不眠、刻苦攻读,这在20岁甚或30岁都没有问题,但到了35岁,就不应该再为学习基本技能而大伤脑筋了。35岁之前是一个人从事原始积累的阶段,35岁之后就应该勃发了。  
  
     第二,养成个人风格。在35岁以前,找出你所喜欢的,不论是衣着或是爱好,哪怕是与众不同的小习惯也好。20岁、30岁时你可以不断尝试、不断改变,但是到了35岁,你便要明确地建立个人风格。一位男士或女士在事业中途改变自己的形象,就会让人觉得很不可靠。你喜欢穿西装吗?好!就把西装当作你的商标吧!办公桌上摆些鲜花会令你工作更有效率吗?那就每天都摆些鲜花吧!  
  
     第三,在感情生活方面平和安定。在攀登事业的高峰时,如果私人生活不愉快,陷入感情危机,对你会产生很大的干扰,甚至会逐渐令你对别的事物失去兴趣。那些在35岁之前私人生活已经平和安定的人,一般都比生活动荡不安的人有更大的机会获得成功。因此,如果你想结束一段没有结果的恋情,或者你想和女友结婚,那就赶快行动吧,免得把问题拖到生命的第35个春秋。在35岁以后,你应该专注地看着你对事业的投资开始获利。  
  
     第四,明白自己的短处。承认有些事情你的确做不好,或者不愿做。如果你讨厌数字而喜欢创作,那就不要因为待遇高或顺从别人的期望而强迫自己做数字工作。在35岁之前,一定要投入你所喜爱、所擅长的那种工作。否则,35岁之后必然会有一段郁郁不乐的日子。而且,真正的成功可能因为活力的消退而丧失。  
  
     第五,知道自己的长处。你应该知道自己擅长什么,并且清楚你所喜欢做而又做得比别人好的事情。不管你目前担任什么样的角色,知道自己的长处对成功都很重要。  
  
     第六,储备辞职另谋生路的钱。在这个多变的职业世界里,你也许不会永远在一个地方工作,或者永远在一个位置上淋漓尽致地发挥自己,当你感到无法施展时,你很可能会想到辞职,或者开辟第二职业,如果你事先储蓄了足够的钱,你便有了一个安全的后盾。  
  
     第七,建立人际关系网。如果到了35岁你仍未建立起牢固的人际关系网,那你就有麻烦了。这个人际关系网包括你的朋友、亲人,最低限度包括所有可以互相帮助的人。这些人有的是你的同事,有的受过你的恩惠,有的你倾听过他们的问题,有的你和他有着相同的爱好。人际关系网不是一朝一夕就能建立起来的,它需要几年甚至十几年的培养。一个人在事业上、生活上的成功其实如同一个政党的成功,你要有许多人散布在适当的地方,你可以依赖他们,他们也可以依赖你。  
  
     第八,学会授权他人。许多人不肯或不能这样做,因此始终被钉在从属的职位上。授权他人是成功的一半,一个事无巨细,不能将工作授权别人的人,注定会遇到极大的障碍。到了35岁,你最好已成为这方面的专家。换言之,你懂得挑选合适的人并信任他们。  
  
     第九,学会在什么时候三缄其口。因说话不小心而自毁前程的人,比因为任何其他原因丧失成功的人都多。要学会保持沉默而且看起来机智——别人自然以为你知道的比实际还多。别讲别人的闲话,别谈论你自己的大计,守口如瓶所赢得的声誉,远比讲人闲话所带来的东西更加珍贵。你在事业上越成功,这一点就越重要。  
  
     第十,对人要忠诚。如果你到了35岁仍未能建立起坚如磐石的忠诚信誉,这一缺点将会困扰你一生。不忠诚的恶名必然会使你在事业上到处不受欢迎。你不能靠暗箭伤人爬到事业的顶峰,而要靠在早期树立起来的真诚刚直和不可动摇的声誉。35岁以前,忠诚只是投资;35岁以后,你会作为一个可以信赖的人收到忠诚的回报。

2004年11月01日
S.H.E

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、≠+¥¥任任任任任任任¥¥¥◎◎¥任任任任任任任任任任任任¥任¥任任¥任¥¥+、、
、≠△家任任任任任任家家任¥◎◎○○¥任任任任任任任任任任任¥¥¥任任¥任任家◎、、
、≠任任任任¥任家任任¥○≠++≠≠◎¥任任任任任任任¥任¥¥¥任¥任¥任¥任萱.、
、△家任任¥任家◎≠≠++++:≠+≠◎任任任任任任¥¥¥¥¥¥任¥任¥¥¥¥任:、
、○任任¥任任≠:++++++++::△任任任任任任任¥¥¥¥¥¥¥¥¥¥¥¥家+、
、◎家任¥家::+::::::::.:+¥¥任任任任¥¥¥¥¥¥¥任¥¥¥¥¥家≠、
、◎家¥家○:::::::::....:≠¥¥任任¥¥¥¥任任¥¥¥◎¥◎¥¥家○、
、¥家¥萱+::::....:..:::+△◎任任¥任¥¥¥¥¥¥¥◎¥¥¥¥家○、
、¥¥任家:+:::.:..::..:::+○家任¥¥¥¥¥任¥¥◎¥◎家◎¥任◎、
、任◎家◎:++:.:...::::::::△任¥¥¥◎¥¥任¥¥◎任△任◎◎¥◎、
、任◎家○:+? 洁G..? D........:+≠¥任¥任¥◎¥¥◎◎◎任≠任任○任◎、
、任◎萱≠:+::.............:◎¥¥◎¥◎◎¥◎◎¥任≠¥家○◎○、
、¥¥家+:..........:+≠○≠△+○¥◎◎◎◎◎¥◎◎◎¥△◎任任¥○、
、¥任家¥¥◎+.......+△≠≠≠≠++◎◎¥◎◎◎◎◎◎◎○◎○○家萱△≠、
、¥任¥≠≠○¥○.....++.....、.:○¥◎○○○○◎◎○○○○家++:、
、¥任◎...:≠:.............:≠¥◎◎◎◎○◎◎○○◎◎¥.++、
、¥家○....:+.........≠○≠.:≠¥◎○◎◎○¥◎○○◎◎家::+、
、¥任¥≠家任≠.+:....:..萱任萱美萱任≠○¥◎◎○○◎◎△○◎○¥:.+、
、¥任家萱○.萱△.+....:.¥、、萱○◎任○△◎○○○○◎◎○◎◎≠○::+、
、¥任家家.、萱美:∴:..? D..¥:.美¥+△≠≠○○○○△◎○△◎○≠△≠::、
、¥任家○○≠△○+∴......::....::≠◎◎○○○◎○△◎◎≠:≠::、
、¥任任△:∴:::+:.......:.:.::≠ ? 部部部部部楚窗窗楚部洁洁琚G:、
、¥任¥≠:::::+:............:+○○○○○◎○△◎△≠++::、
、¥任○∴:::::∴.............::○○○○○○○≠◎△≠..::、
、¥任≠:::::∴...............:△○○○△○○≠◎△:、::.、
、¥家≠:::::+...............:△○△○○○○△○△+..≠.、
、¥家+:::.:∴....:..........:△◎△○△○△△○≠.、◎+、、
、¥家+.::..:....::.:.......:△◎△○○○○≠○≠:¥¥≠.、
、¥家≠.:::∴........∴.......:△○△○○○○≠○+○萱△任+、
、¥任△...:.......、.≠.......:≠◎△○△○○≠△≠+家△¥△、
、¥¥任:...:∴+..::∴+........:≠○△? 部部部部琚琚琚B任家○◎、
、¥◎¥○.:...::.............:≠△△○≠≠○+≠≠、≠美○◎、
、¥○任萱::.:::..:....、、.....:+△≠○≠≠○≠+△、、家¥◎ ? B
、¥○¥任△..+:.:..:::.、≠+∴...:+△△○+≠△+:○、、+萱○、
、¥○◎任萱..:○△+:::..≠:.:....:+≠○○+≠△+:≠、、.美◎、
、¥△○¥屆琚D..+++::++:、......::≠○△≠+≠≠++、、¥萱¥、
、¥○○¥家美...::::.:..、......:++△≠++≠≠○△美○萱家¥、
、¥○○¥任萱¥...+:::::........:::△≠:+++△+家家任任¥、
、¥○△任家美.○...............:::+△::≠≠:¥≠任任任任¥、
、◎○△任萱任、萱.:.............::::△::≠+:△≠任任任任¥、
、◎○≠任萱、○○、:............++:::○.:++:≠≠◎任任任¥、
、◎○≠家萱美任、、、:......、、..++:.::○.+≠+:≠+△任¥家任、
? B◎◎≠¥.、、、、、.......、..::::...△.+△++△○≠¥¥家任、
、◎任△○、、、、、、、、.、、、、..::......≠.△◎≠≠○¥△○◎家任、
、◎家○△、、、、、、、 ? G美◎+:::::.......≠:≠¥△△◎¥極禲極穮D、
、◎美≠+、、、、、≠美美萱萱萱:::::.......≠:○¥○○◎◎任家家任◎、
、◎、、、、、○萱美美家任任任家¥::::::....:≠≠任¥○○◎△¥任任任◎、
、≠、.¥美美美家家任任¥任任任任◎::::::::+≠+◎家任○○任○◎任任任¥、
、¥美家家家任任任任任任任任任任任任≠:::::::+△≠○家任○◎任任◎¥任任¥、
、任任任任任任任任任任任任任任任任¥○≠:::::+△◎○○◎○○○¥任¥¥任任¥、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

、、、、、、、、、、.≠◎喜喜喜喜喜喜喜喜◎○○◎¥◎○≠%;,;;;;;;;;、
、、、、、,、、、、¥囍囍喜喜喜碧喜碧碧碧¥○△○○¥¥碧+;+、,.;;;;;、
、、、、,%、、、碧囍碧碧碧喜喜喜碧喜喜碧碧◎≠○喜喜¥¥喜+,,%..;;;;、
、、、、,≠、、¥囍碧碧碧碧喜○喜碧碧碧碧碧囍¥%△◎碧喜◎喜%喜囍○、,;;,、
、、、、++、.囍碧碧碧碧碧¥+%+;¥¥喜碧? 楚窗絨? 葴捖腡D¥喜碧碧,、,;.、
、、、、+,、碧囍碧碧碧碧¥◎△喜碧碧碧喜¥¥喜○◎◎喜碧碧¥喜喜碧囍◎、,;、、
、、、;+、%囍碧碧碧碧喜¥%≠喜碧喜喜喜碧△△○○喜喜喜碧喜¥喜碧碧囍,,、、、
、、.+,、碧囍碧¥¥喜◎%%≠◎喜¥喜△◎¥≠+%喜喜碧喜碧¥喜,碧囍◎、、、、
、、++、%囍碧喜喜碧○△○%+;○¥△◎△%△≠+○喜喜喜碧喜¥¥喜囍△、、、、
.++;、囍囍碧碧喜◎△◎○+;,、%◎◎△%△◎△≠喜碧碧碧碧¥喜碧△,、、、、
,≠++、囍碧碧碧喜¥¥△+,;,..,○¥%○喜喜+,碧碧碧喜碧◎碧%,、、、、
.、..、囍碧碧碧碧喜○≠;;;,,.、.≠◎○○碧喜,;碧碧喜碧◎碧碧;,、、、
、、、、、囍囍碧碧碧喜%,,;;,,,.、.;≠◎○囍囍;+囍喜碧喜喜碧碧囍;、、
、、、、、囍囍碧碧碧¥+;;,,,,,,...,+△≠喜囍%≠碧碧喜¥碧碧囍+? B、
,;,、+囍碧碧碧碧¥+;;,,,,,...,.,+%;△囍○¥喜喜喜碧喜囍△、、
;+;.囍碧碧碧碧囍△;;;,....、、、....;%+◎囍喜喜碧喜碧碧囍◎、、
;;.≠囍碧碧碧碧¥ ? 琚A;;,≠○○%≠++....、;碧¥%碧%喜碧喜碧囍¥、、
;;.¥囍喜碧碧碧○,;;;+△,、、,;++,.,,;.+,%喜喜碧喜碧碧喜、、
;+.碧囍喜囍碧碧△,;;,,.、、、、、.,,.,;+.%囍喜碧喜碧喜碧碧碧.、
,.、◎囍喜囍囍囍◎,;,,,.,△%囍囍≠;,..+;,碧囍◎喜碧喜喜碧碧喜,、
、、、◎碧、◎囍囍◎,;;,,;△○、囍囍≠,,..+;,.、、≠喜碧喜喜囍◎;、
、、、○¥、、囍囍○;;;,..,;,....,,.+≠.、..、%囍碧喜囍△;、
、、、△喜、、;喜◎;;;,,..、、....,,,,%;..,..碧碧喜囍%;、
,,≠○囍,、.+◎+;;,,........,,,.%+.,,,.碧碧碧囍++、
++%○囍%、.,○△;;,,,...,...,;,.+%、.,,.囍碧碧碧;+、
+;≠%喜喜、;,≠○≠+,,,......? A;;.、,%,.,,,囍碧碧喜,≠、
+;≠%喜碧,;;;%≠+;,,,....,,,.,.;%+.,.;囍碧碧碧喜◎、
+++△喜碧○...;≠++;,,...,,,+;;;%;;.,.△囍碧 ? 捖腡D◎、
+≠≠○喜喜◎○、、、≠+;;;,,..,,、....,;+.,.¥囍喜囍+△◎、
,..△¥◎◎囍△△囍○+;,;,,,.,,.、、...;≠,;,碧碧喜囍+;◎、
,..≠¥○○碧○碧囍¥+;,,,,,,,,,;+%%△◎%、,;囍碧囍囍%+△、
,..琡D○○喜%喜碧囍;+,,,,,.+△%≠.、、;△.、,○喜喜喜≠+.+、
,..;◎○○¥%喜碧囍,≠;,,,,,.、;≠;+≠≠△.,;碧喜碧○、;.,、
+≠≠≠◎○△喜%喜喜囍,≠≠,,,,,,..,+≠%≠,.,◎喜喜¥.、,,,、
+++≠◎△△¥%¥¥囍,;%≠;,,,,..,,;,...≠囍碧囍△、.,,,、
++++◎○%¥△¥喜囍,,;%%;,,,........,伺伺伺式F,++≠+、
+++;△○%喜%¥喜喜;;,;+≠+,,..、.,.、、喜囍囍囍%.;+;++、
++≠+%? 郭H¥%¥喜◎+;,,,,+≠≠+,..,.,碧囍碧¥+.;;++++、
≠≠≠≠%△△○○◎◎%+;;,,,,,;;+++≠%¥碧碧△+++++++++、
、、、、、、、、、、、、、、、 、、、、 ? B、、、、、、、、、、、、、、、、、、、、、

;;;;;;;;;++++++≠≠≠≠△+++++++++++++++≠++++、
;;;;;;+;;;%△;;+%¥≠;拉△;;+;+++++++++++≠+++、
;;;;;;;;;::◎○:::拉拉+愛愛◎::;+;++++++++≠≠+++、
;;;;;;;;○○◎拉愛◎+:¥讚愛愛讚讚拉△拉讚%;::;:::;+++++、
;;;;;;;;;≠△¥讚讚讚○愛讚愛愛愛愛讚愛讚讚△%○拉愛拉¥◎△+++++、
;;;;;;::;△¥拉愛愛愛讚讚愛愛愛愛愛讚愛愛讚讚讚讚¥△;:;+%++++、
;;;:;:;○愛愛愛愛愛愛愛愛愛愛愛愛讚愛愛愛愛愛愛愛拉◎○≠;;;+++++、
;;;:;%○%+拉讚愛拉愛愛愛愛愛愛愛愛愛愛愛愛讚愛愛愛讚讚讚愛△:;++++、
;;;+△≠..¥讚拉○拉讚愛愛愛愛愛愛愛愛愛愛讚愛愛愛愛愛愛愛讚讚○:;+++、
;:+≠ ;::%讚¥¥愛拉愛愛愛愛愛愛愛愛愛愛愛讚愛愛愛愛讚愛愛愛愛讚≠;+++、
;;+;;::愛讚愛拉%○愛愛愛愛愛愛愛愛愛愛愛愛愛愛愛愛愛愛愛讚讚◎¥;+++、
;;+;;:+讚讚愛%拉讚讚愛愛愛? g愛愛愛愛愛愛愛愛愛愛讚愛讚愛愛讚愛△+;++、
;;;;:.拉讚愛¥愛愛拉拉拉愛愛愛愛愛愛愛愛愛愛讚愛愛愛愛愛愛愛愛讚拉:+++、
;+;;:%讚愛¥拉愛◎◎拉¥拉愛愛愛愛愛愛愛愛愛愛愛拉愛愛愛愛愛愛讚讚+;++、
;;;;.愛讚愛¥讚¥◎◎◎拉愛愛讚愛愛讚愛愛拉愛愛愛愛¥愛愛愛愛愛愛讚讚;;+、
;;;:;讚讚愛拉¥○△◎拉讚讚讚拉△¥讚愛愛◎¥讚愛愛拉¥愛愛愛愛愛讚愛◎;+、
;;+.◎讚讚拉◎△≠◎愛愛愛○+:+≠愛讚愛拉○¥愛愛愛○愛愛愛愛愛讚拉○≠+、
;;;:讚讚拉○¥%◎讚¥△....;:%愛愛拉拉○拉¥讚愛拉讚愛愛愛讚拉;%+、
;+:+讚讚○¥¥◎愛○:.::.、;::≠讚愛愛拉¥拉拉讚愛愛愛愛愛讚讚%;+、
;+:△讚愛◎拉愛愛○:.::..、::::%讚愛愛愛拉拉愛愛愛愛愛愛讚拉愛≠+、
;;:△讚拉◎讚愛○::;...、、.:;;:△讚讚愛拉讚? R愛愛愛愛愛讚%+○+、
;;:△讚¥¥讚¥;:::.:..、..:::.%讚愛愛愛愛愛愛愛愛愛讚≠:+≠、
;;:%讚¥拉讚△.::::..、、、、;%≠;.◎讚愛愛愛愛愛愛愛愛讚≠;++、
? F;:;讚拉愛愛+.......、.◎愛¥◎○%;;◎¥讚愛愛愛愛讚愛讚≠;++、
;;;:讚讚愛愛;、.....:%愛¥:、、.:;;;+愛愛愛愛愛讚愛拉≠+++、
;;;:◎讚愛讚讚讚◎≠:..;%:.;≠≠:;;;;:△讚愛讚¥;△+++++、
;;;:;讚愛¥;.≠%;:.::+拉讚讚讚¥+::::;愛讚讚愛+:≠≠+++、
;++;:○讚◎%◎拉%+:、.:%;:◎;:...:;;△讚愛+≠:◎≠+≠+、
;+++;:愛愛讚;愛讚;;、:..+:.....:;++△拉讚+::拉;+≠+、
;;++;:○拉△≠+:::、..、、.、、....;++△○◎+.+拉;≠≠+、
;++++;+¥:::.;:、..、、.、、、..:++%△○;:、讚¥;≠++、
;;++;;;¥::..+..::...、、..:;+≠≠△○、、△讚△;≠++、
;;++;;:◎:...? F、、.:+..、、.:;;+≠≠%%、;讚讚≠;≠≠≠、
;;++++;%≠...+.、..+.....:;;;+≠%◎讚讚讚讚≠;≠+≠、
+++;;+++%:.、≠◎%%≠+....::;; ? F;≠%¥拉讚愛讚△;≠+≠、
+;;+++;+≠+...+:、、、、....:::;+%△¥¥讚讚讚讚+≠≠≠、
+;+++++++≠;.:;、、、、、:..::;:;+△◎◎¥讚讚愛讚+≠≠≠、
+++++++++≠+:+%△△△%≠◎△;..::;≠○○△¥讚◎愛讚≠≠≠≠、
+++++++++++;+○○%≠+::.;:::;+△◎≠≠○愛%△拉≠≠≠≠、
++++++++++++::++;+;...:;;;%◎≠;≠△¥○≠△≠≠%%、
+++++++++≠+≠+;;++:....:;≠%◎%;;≠≠△¥%%%%%%、
++++++++++++≠≠;.、.、、..;%△○△::;++≠△○%%%%%、
+++++++++++++≠≠.....:+○○◎≠::;;++++%△△%%%、
+++++++++++++≠≠+;;+≠%△△%+;::;;+++;+≠%%%%、

Oracle 分析函数的使用

Oracle 分析函数使用介绍
   分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明.

今天我主要给大家介绍一下以下几个函数的使用方法
1.  自动汇总函数rollup,cube,
2.  rank 函数, rank,dense_rank,row_number
3.        lag,lead函数
4.        sum,avg,的移动增加,移动平均数
5.        ratio_to_report报表处理函数
6.        first,last取基数的分析函数

06:34:23 SQL> select * from t;

BILL_MONTH      AREA_CODE  NET_TYPE       LOCAL_FARE
————— ———- ———- ————–
200405          5761       G              7393344.04
200405          5761       J              5667089.85
200405          5762       G              6315075.96
200405          5762       J              6328716.15
200405          5763       G              8861742.59
200405          5763       J              7788036.32
200405          5764       G              6028670.45
200405          5764       J              6459121.49
200405          5765       G             13156065.77
200405          5765       J             11901671.70
200406          5761       G              7614587.96
200406          5761       J              5704343.05
200406          5762       G              6556992.60
200406          5762       J              6238068.05
200406          5763       G              9130055.46
200406          5763       J              7990460.25
200406          5764       G              6387706.01
200406          5764       J              6907481.66
200406          5765       G             13562968.81
200406          5765       J             12495492.50
200407          5761       G              7987050.65
200407          5761       J              5723215.28
200407          5762       G              6833096.68
200407          5762       J              6391201.44
200407          5763       G              9410815.91
200407          5763       J              8076677.41
200407          5764       G              6456433.23
200407          5764       J              6987660.53
200407          5765       G             14000101.20
200407          5765       J             12301780.20
200408          5761       G              8085170.84
200408          5761       J              6050611.37
200408          5762       G              6854584.22
200408          5762       J              6521884.50
200408          5763       G              9468707.65
200408          5763       J              8460049.43
200408          5764       G              6587559.23

BILL_MONTH      AREA_CODE  NET_TYPE       LOCAL_FARE
————— ———- ———- ————–
200408          5764       J              7342135.86
200408          5765       G             14450586.63
200408          5765       J             12680052.38

40 rows selected.

Elapsed: 00:00:00.00

1. 使用rollup函数的介绍

 Quote:
下面是直接使用普通sql语句求出各地区的汇总数据的例子
06:41:36 SQL> set autot on
06:43:36 SQL> select area_code,sum(local_fare) local_fare
06:43:50   2  from t
06:43:51   3  group by area_code
06:43:57   4  union all
06:44:00   5  select ‘合计’ area_code,sum(local_fare) local_fare
06:44:06   6  from t
06:44:08   7  /

AREA_CODE      LOCAL_FARE
———- ————–
5761          54225413.04
5762          52039619.60
5763          69186545.02
5764          53156768.46
5765         104548719.19
合计         333157065.31

6 rows selected.

Elapsed: 00:00:00.03

Execution Plan
———————————————————-
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=7 Card=1310 Bytes=
          24884)

   1    0   UNION-ALL
   2    1     SORT (GROUP BY) (Cost=5 Card=1309 Bytes=24871)
   3    2       TABLE ACCESS (FULL) OF ‘T’ (Cost=2 Card=1309 Bytes=248
          71)

   4    1     SORT (AGGREGATE)
   5    4       TABLE ACCESS (FULL) OF ‘T’ (Cost=2 Card=1309 Bytes=170
          17)

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

下面是使用分析函数rollup得出的汇总数据的例子
06:44:09 SQL> select nvl(area_code,’合计’) area_code,sum(local_fare) local_fare
06:45:26   2  from t
06:45:30   3  group by rollup(nvl(area_code,’合计’))
06:45:50   4  /

AREA_CODE      LOCAL_FARE
———- ————–
5761          54225413.04
5762          52039619.60
5763          69186545.02
5764          53156768.46
5765         104548719.19
             333157065.31

6 rows selected.

Elapsed: 00:00:00.00

Execution Plan
———————————————————-
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=5 Card=1309 Bytes=
          24871)

   1    0   SORT (GROUP BY ROLLUP) (Cost=5 Card=1309 Bytes=24871)
   2    1     TABLE ACCESS (FULL) OF ‘T’ (Cost=2 Card=1309 Bytes=24871
          )

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

从上面的例子我们不难看出使用rollup函数,系统的sql语句更加简单,耗用的资源更少,从6个consistent gets降到4个consistent gets,如果基表很大的话,结果就可想而知了.

1. 使用cube函数的介绍


  Quote:
为了介绍cube函数我们再来看看另外一个使用rollup的例子
06:53:00 SQL> select area_code,bill_month,sum(local_fare) local_fare
06:53:37   2  from t
06:53:38   3  group by rollup(area_code,bill_month)
06:53:49   4  /

AREA_CODE  BILL_MONTH          LOCAL_FARE
———- ————— ————–
5761       200405             13060433.89
5761       200406             13318931.01
5761       200407             13710265.93
5761       200408             14135782.21
5761                          54225413.04
5762       200405             12643792.11
5762       200406             12795060.65
5762       200407             13224298.12
5762       200408             13376468.72
5762                          52039619.60
5763       200405             16649778.91
5763       200406             17120515.71
5763       200407             17487493.32
5763       200408             17928757.08
5763                          69186545.02
5764       200405             12487791.94
5764       200406             13295187.67
5764       200407             13444093.76
5764       200408             13929695.09
5764                          53156768.46
5765       200405             25057737.47
5765       200406             26058461.31
5765       200407             26301881.40
5765       200408             27130639.01
5765                         104548719.19
                             333157065.31

26 rows selected.

Elapsed: 00:00:00.00

系统只是根据rollup的第一个参数area_code对结果集的数据做了汇总处理,而没有对bill_month做汇总分析处理,cube函数就是为了这个而设计的.
下面,让我们看看使用cube函数的结果

06:58:02 SQL> select area_code,bill_month,sum(local_fare) local_fare
06:58:30   2  from t
06:58:32   3  group by cube(area_code,bill_month)
06:58:42   4  order by area_code,bill_month nulls last
06:58:57   5  /

AREA_CODE  BILL_MONTH          LOCAL_FARE
———- ————— ————–
5761       200405                13060.43
5761       200406                13318.93
5761       200407                13710.27
5761       200408                14135.78
5761                             54225.41
5762       200405                12643.79
5762       200406                12795.06
5762       200407                13224.30
5762       200408                13376.47
5762                             52039.62
5763       200405                16649.78
5763       200406                17120.52
5763       200407                17487.49
5763       200408                17928.76
5763                             69186.54
5764       200405                12487.79
5764       200406                13295.19
5764       200407                13444.09
5764       200408                13929.69
5764                             53156.77
5765       200405                25057.74
5765       200406                26058.46
5765       200407                26301.88
5765       200408                27130.64
5765                            104548.72
           200405                79899.53
           200406                82588.15
           200407                84168.03
           200408                86501.34

                                333157.05

30 rows selected.

Elapsed: 00:00:00.01

可以看到,在cube函数的输出结果比使用rollup多出了几行统计数据.这就是cube函数根据bill_month做的汇总统计结果

1 rollup 和 cube函数的再深入


  Quote:
从上面的结果中我们很容易发现,每个统计数据所对应的行都会出现null,
我们如何来区分到底是根据那个字段做的汇总呢,
这时候,oracle的grouping函数就粉墨登场了.
如果当前的汇总记录是利用该字段得出的,grouping函数就会返回1,否则返回0

  1  select decode(grouping(area_code),1,’all area’,to_char(area_code)) area_code,
  2         decode(grouping(bill_month),1,’all month’,bill_month) bill_month,
  3         sum(local_fare) local_fare
  4  from t
  5  group by cube(area_code,bill_month)
  6* order by area_code,bill_month nulls last
07:07:29 SQL> /

AREA_CODE  BILL_MONTH          LOCAL_FARE
———- ————— ————–
5761       200405                13060.43
5761       200406                13318.93
5761       200407                13710.27
5761       200408                14135.78
5761       all month             54225.41
5762       200405                12643.79
5762       200406                12795.06
5762       200407                13224.30
5762       200408                13376.47
5762       all month             52039.62
5763       200405                16649.78
5763       200406                17120.52
5763       200407                17487.49
5763       200408                17928.76
5763       all month             69186.54
5764       200405                12487.79
5764       200406                13295.19
5764       200407                13444.09
5764       200408                13929.69
5764       all month             53156.77
5765       200405                25057.74
5765       200406                26058.46
5765       200407                26301.88
5765       200408                27130.64
5765       all month            104548.72
all area   200405                79899.53
all area   200406                82588.15
all area   200407                84168.03
all area   200408                86501.34
all area   all month            333157.05

30 rows selected.

Elapsed: 00:00:00.01
07:07:31 SQL>


可以看到,所有的空值现在都根据grouping函数做出了很好的区分,这样利用rollup,cube和grouping函数,我们做数据统计的时候就可以轻松很多了.

2. rank函数的介绍

介绍完rollup和cube函数的使用,下面我们来看看rank系列函数的使用方法.

问题2.我想查出这几个月份中各个地区的总话费的排名.


  Quote:
为了将rank,dense_rank,row_number函数的差别显示出来,我们对已有的基础数据做一些修改,将5763的数据改成与5761的数据相同.
  1  update t t1 set local_fare = (
  2    select local_fare from t t2
  3     where t1.bill_month = t2.bill_month
  4     and t1.net_type = t2.net_type
  5     and t2.area_code = ‘5761′
  6* ) where area_code = ‘5763′
07:19:18 SQL> /

8 rows updated.

Elapsed: 00:00:00.01

我们先使用rank函数来计算各个地区的话费排名.
07:34:19 SQL> select area_code,sum(local_fare) local_fare,
07:35:25   2    rank() over (order by sum(local_fare) desc) fare_rank
07:35:44   3  from t
07:35:45   4  group by area_codee
07:35:50   5
07:35:52 SQL> select area_code,sum(local_fare) local_fare,
07:36:02   2    rank() over (order by sum(local_fare) desc) fare_rank
07:36:20   3  from t
07:36:21   4  group by area_code
07:36:25   5  /

AREA_CODE      LOCAL_FARE  FARE_RANK
———- ————– ———-
5765            104548.72          1
5761             54225.41          2
5763             54225.41          2
5764             53156.77          4
5762             52039.62          5

Elapsed: 00:00:00.01

我们可以看到红色标注的地方出现了,跳位,排名3没有出现
下面我们再看看dense_rank查询的结果.

07:36:26 SQL> select area_code,sum(local_fare) local_fare,
07:39:16   2    dense_rank() over (order by sum(local_fare) desc ) fare_rank
07:39:39   3  from t
07:39:42   4  group by area_code
07:39:46   5  /

AREA_CODE      LOCAL_FARE  FARE_RANK
———- ————– ———-
5765            104548.72          1
5761             54225.41          2
5763             54225.41          2
5764             53156.77          3  这是这里出现了第三名
5762             52039.62          4

Elapsed: 00:00:00.00


在这个例子中,出现了一个第三名,这就是rank和dense_rank的差别,
rank如果出现两个相同的数据,那么后面的数据就会直接跳过这个排名,而dense_rank则不会,
差别更大的是,row_number哪怕是两个数据完全相同,排名也会不一样,这个特性在我们想找出对应没个条件的唯一记录的时候又很大用处

  1  select area_code,sum(local_fare) local_fare,
  2     row_number() over (order by sum(local_fare) desc ) fare_rank
  3  from t
  4* group by area_code
07:44:50 SQL> /

AREA_CODE      LOCAL_FARE  FARE_RANK
———- ————– ———-
5765            104548.72          1
5761             54225.41          2
5763             54225.41          3
5764             53156.77          4
5762             52039.62          5

在row_nubmer函数中,我们发现,哪怕sum(local_fare)完全相同,我们还是得到了不一样排名,我们可以利用这个特性剔除数据库中的重复记录.

这个帖子中的几个例子是为了说明这三个函数的基本用法的. 下个帖子我们将详细介绍他们的一些用法.

2. rank函数的介绍

a. 取出数据库中最后入网的n个用户
select user_id,tele_num,user_name,user_status,create_date
from (
   select user_id,tele_num,user_name,user_status,create_date,
      rank() over (order by create_date desc) add_rank
   from user_info
)
where add_rank <= :n;

b.根据object_name删除数据库中的重复记录
create table t as select obj#,name from sys.obj$;
再insert into t1 select * from t1 数次.
delete from t1 where rowid in (
   select row_id from (
      select rowid row_id,row_number() over (partition by obj# order by rowid ) rn
   ) where rn <> 1
);

c. 取出各地区的话费收入在各个月份排名.
SQL> select bill_month,area_code,sum(local_fare) local_fare,
  2     rank() over (partition by bill_month order by sum(local_fare) desc) area_rank
  3  from t
  4  group by bill_month,area_code
  5  /

BILL_MONTH      AREA_CODE           LOCAL_FARE  AREA_RANK
————— ————— ————– ———-
200405          5765                  25057.74          1
200405          5761                  13060.43          2
200405          5763                  13060.43          2
200405          5762                  12643.79          4
200405          5764                  12487.79          5
200406          5765                  26058.46          1
200406          5761                  13318.93          2
200406          5763                  13318.93          2
200406          5764                  13295.19          4
200406          5762                  12795.06          5
200407          5765                  26301.88          1
200407          5761                  13710.27          2
200407          5763                  13710.27          2
200407          5764                  13444.09          4
200407          5762                  13224.30          5
200408          5765                  27130.64          1
200408          5761                  14135.78          2
200408          5763                  14135.78          2
200408          5764                  13929.69          4
200408          5762                  13376.47          5

20 rows selected.

3. lag和lead函数介绍

取出每个月的上个月和下个月的话费总额
  1  select area_code,bill_month, local_fare cur_local_fare,
  2     lag(local_fare,2,0) over (partition by area_code order by bill_month ) pre_local_fare,
  3     lag(local_fare,1,0) over (partition by area_code order by bill_month ) last_local_fare,
  4     lead(local_fare,1,0) over (partition by area_code order by bill_month ) next_local_fare,
  5     lead(local_fare,2,0) over (partition by area_code order by bill_month ) post_local_fare
  6  from (
  7     select area_code,bill_month,sum(local_fare) local_fare
  8     from t
  9     group by area_code,bill_month
10* )
SQL> /
AREA_CODE BILL_MONTH CUR_LOCAL_FARE PRE_LOCAL_FARE LAST_LOCAL_FARE NEXT_LOCAL_FARE POST_LOCAL_FARE
——— ———- ————– ————– ————— ————— —————
5761      200405          13060.433              0               0        13318.93       13710.265
5761      200406           13318.93              0       13060.433       13710.265       14135.781
5761      200407          13710.265      13060.433        13318.93       14135.781               0
5761      200408          14135.781       13318.93       13710.265               0               0
5762      200405          12643.791              0               0        12795.06       13224.297
5762      200406           12795.06              0       12643.791       13224.297       13376.468
5762      200407          13224.297      12643.791        12795.06       13376.468               0
5762      200408          13376.468       12795.06       13224.297               0               0
5763      200405          13060.433              0               0        13318.93       13710.265
5763      200406           13318.93              0       13060.433       13710.265       14135.781
5763      200407          13710.265      13060.433        13318.93       14135.781               0
5763      200408          14135.781       13318.93       13710.265               0               0
5764      200405          12487.791              0               0       13295.187       13444.093
5764      200406          13295.187              0       12487.791       13444.093       13929.694
5764      200407          13444.093      12487.791       13295.187       13929.694               0
5764      200408          13929.694      13295.187       13444.093               0               0
5765      200405          25057.736              0               0        26058.46       26301.881
5765      200406           26058.46              0       25057.736       26301.881       27130.638
5765      200407          26301.881      25057.736        26058.46       27130.638               0
5765      200408          27130.638       26058.46       26301.881               0               0
20 rows selected.

利用lag和lead函数,我们可以在同一行中显示前n行的数据,也可以显示后n行的数据.

4. sum,avg,max,min移动计算数据介绍

计算出各个连续3个月的通话费用的平均数
  1  select area_code,bill_month, local_fare,
  2     sum(local_fare)
  3             over (  partition by area_code
  4                     order by to_number(bill_month)
  5                     range between 1 preceding and 1 following ) “3month_sum”,
  6     avg(local_fare)
  7             over (  partition by area_code
  8                     order by to_number(bill_month)
  9                     range between 1 preceding and 1 following ) “3month_avg”,
10     max(local_fare)
11             over (  partition by area_code
12                     order by to_number(bill_month)
13                     range between 1 preceding and 1 following ) “3month_max”,
14     min(local_fare)
15             over (  partition by area_code
16                     order by to_number(bill_month)
17                     range between 1 preceding and 1 following ) “3month_min”
18  from (
19     select area_code,bill_month,sum(local_fare) local_fare
20     from t
21     group by area_code,bill_month
22* )
SQL> /

AREA_CODE BILL_MONTH       LOCAL_FARE 3month_sum 3month_avg 3month_max 3month_min
——— ———- —————- ———- ———- ———- ———-
5761      200405            13060.433  26379.363 13189.6815   13318.93  13060.433
5761      200406            13318.930  40089.628 13363.2093  13710.265  13060.433
5761      200407            13710.265  41164.976 13721.6587  14135.781   13318.93
40089.628 = 13060.433 + 13318.930 + 13710.265
13363.2093 = (13060.433 + 13318.930 + 13710.265) / 3
13710.265 = max(13060.433 + 13318.930 + 13710.265)
13060.433 = min(13060.433 + 13318.930 + 13710.265)

5761      200408            14135.781  27846.046  13923.023  14135.781  13710.265
5762      200405            12643.791  25438.851 12719.4255   12795.06  12643.791
5762      200406            12795.060  38663.148  12887.716  13224.297  12643.791
5762      200407            13224.297  39395.825 13131.9417  13376.468   12795.06
5762      200408            13376.468  26600.765 13300.3825  13376.468  13224.297
5763      200405            13060.433  26379.363 13189.6815   13318.93  13060.433
5763      200406            13318.930  40089.628 13363.2093  13710.265  13060.433
5763      200407            13710.265  41164.976 13721.6587  14135.781   13318.93
5763      200408            14135.781  27846.046  13923.023  14135.781  13710.265
5764      200405            12487.791  25782.978  12891.489  13295.187  12487.791
5764      200406            13295.187  39227.071 13075.6903  13444.093  12487.791
5764      200407            13444.093  40668.974 13556.3247  13929.694  13295.187
5764      200408            13929.694  27373.787 13686.8935  13929.694  13444.093
5765      200405            25057.736  51116.196  25558.098   26058.46  25057.736
5765      200406            26058.460  77418.077 25806.0257  26301.881  25057.736
5765      200407            26301.881  79490.979  26496.993  27130.638   26058.46
5765      200408            27130.638  53432.519 26716.2595  27130.638  26301.881

20 rows selected.
5. ratio_to_report函数的介绍


  Quote:
  1  select bill_month,area_code,sum(local_fare) local_fare,
  2     ratio_to_report(sum(local_fare)) over
  3       ( partition by bill_month ) area_pct
  4  from t
  5* group by bill_month,area_code
SQL> break on bill_month skip 1
SQL> compute sum of local_fare on bill_month
SQL> compute sum of area_pct on bill_month
SQL> /

BILL_MONTH AREA_CODE       LOCAL_FARE   AREA_PCT
———- ——— —————- ———-
200405     5761             13060.433 .171149279
           5762             12643.791 .165689431
           5763             13060.433 .171149279
           5764             12487.791 .163645143
           5765             25057.736 .328366866
**********           —————- ———-
sum                         76310.184          1

200406     5761             13318.930 .169050772
           5762             12795.060 .162401542
           5763             13318.930 .169050772
           5764             13295.187 .168749414
           5765             26058.460 .330747499
**********           —————- ———-
sum                         78786.567          1

200407     5761             13710.265 .170545197
           5762             13224.297 .164500127
           5763             13710.265 .170545197
           5764             13444.093 .167234221
           5765             26301.881 .327175257
**********           —————- ———-
sum                         80390.801          1

200408     5761             14135.781 .170911147
           5762             13376.468 .161730539
           5763             14135.781 .170911147
           5764             13929.694 .168419416
           5765             27130.638 .328027751
**********           —————- ———-
sum                         82708.362          1

20 rows selected.

6 first,last函数使用介绍


  Quote:
取出每月通话费最高和最低的两个用户.
1  select bill_month,area_code,sum(local_fare) local_fare,
  2     first_value(area_code)
  3             over (order by sum(local_fare) desc
  4                     rows unbounded preceding) firstval,
  5     first_value(area_code)
  6             over (order by sum(local_fare) asc
  7                     rows unbounded preceding) lastval
  8  from t
  9  group by bill_month,area_code
10* order by bill_month
SQL> /

BILL_MONTH AREA_CODE       LOCAL_FARE FIRSTVAL        LASTVAL
———- ——— —————- ————— —————
200405     5764             12487.791 5765            5764
200405     5762             12643.791 5765            5764
200405     5761             13060.433 5765            5764
200405     5765             25057.736 5765            5764
200405     5763             13060.433 5765            5764
200406     5762             12795.060 5765            5764
200406     5763             13318.930 5765            5764
200406     5764             13295.187 5765            5764
200406     5765             26058.460 5765            5764
200406     5761             13318.930 5765            5764
200407     5762             13224.297 5765            5764
200407     5765             26301.881 5765            5764
200407     5761             13710.265 5765            5764
200407     5763             13710.265 5765            5764
200407     5764             13444.093 5765            5764
200408     5762             13376.468 5765            5764
200408     5764             13929.694 5765            5764
200408     5761             14135.781 5765            5764
200408     5765             27130.638 5765            5764
200408     5763             14135.781 5765            5764

20 rows selected.

 

 

系统环境

操作系统:Windows 2000 Server

数据库:Oracle 9i

安装路径:C:\Oracle

1、手工创建相关目录

C\Oracle\admin\web

C\Oracle\admin\web\bdump

C\Oracle\admin\web\udump

C\Oracle\admin\web\cdump

C\Oracle\admin\web\pfile

C\Oracle\admin\web\create

C\Oracle\oradata\web

C\Oracle\oradata\web\archive

2、手工创建初始化参数文件c:\oracle\admin\web\pfile\init.ora,内容可以copy别的实例init.ora文件后修改。

3、手工创建initweb.ora文件,内容::ifile= c:\oracle\admin\web\pfile\init.ora

4、使用orapwd.exe命令,创建口令文件pwdweb.ora,命令格式如下:

   orapwd.exe  file=c:\oracle\ora90\database\pwdweb.ora  password=ltjsb  entries=5

5、通过oradim.exe命令,在服务里生成一个新的实例管理服务,启动方式为手工

set ORACLE_SID=web

C:\oracle\ora90\bin\oradim -new  -sid WEB -startmode m

-pfile C:\oracle\ora90\database\initweb.ora

6、创建数据库,执行createdb.sql脚本命令,

SQL>sqlplus /nolog

SQL>connect SYS/change_on_install as SYSDBA

SQL>@Createdb.sql

Createdb.sql脚本内容如下:

set echo on

spool C:\oracle\admin\mydb\create\CreateDB.log

startup nomount pfile=”C:\oracle\admin\web\pfile\init.ora”;

CREATE DATABASE web

MAXINSTANCES 1

MAXLOGHISTORY 1

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXDATAFILES 100

DATAFILE ‘C:\oracle\oradata\web\system01.dbf’ SIZE 325M REUSE AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED

UNDO TABLESPACE “UNDOTBS” DATAFILE ‘C:\oracle\oradata\web\undotbs01.dbf’ SIZE 200M REUSE AUTOEXTEND ON NEXT  5120K MAXSIZE UNLIMITED

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1 (‘C:\oracle\oradata\web\redo01.log’) SIZE 100M,

GROUP 2 (‘C:\oracle\oradata\web\redo02.log’) SIZE 100M,

GROUP 3 (‘C:\oracle\oradata\web\redo03.log’) SIZE 100M;

spool off

exit;

注:创建数据库时,执行sql.bsqj脚本命令,此脚本命令创建如下内容:

   创建控制文件和联机日志文件

   创建数据库系统表空system

   system表空间上创建system系统回滚段

   创建syssystem账号

   创建基表和簇

   创建数据字典表、索引和序列

   创建相关角色权限

7、创建数据库数据文件,执行脚本createfiles.sql

SQL>sqlplus /nolog

SQL> connect SYS/change_on_install as SYSDBA

SQL>@createfiles.sql

Createfiles.sql脚本内容如下:

set echo on

spool C:\oracle\admin\mydb\create\CreateDBFiles.log

CREATE TABLESPACE “INDX” LOGGING DATAFILE ‘C:\oracle\oradata\web\indx01.dbf’ SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

CREATE TEMPORARY TABLESPACE “TEMP” TEMPFILE ‘C:\oracle\oradata\web\temp01.dbf’ SIZE 40M REUSE AUTOEXTEND ON NEXT  640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE “TEMP”;

CREATE TABLESPACE “TOOLS” LOGGING DATAFILE ‘C:\oracle\oradata\web\tools01.dbf’ SIZE 10M REUSE AUTOEXTEND ON NEXT  320K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE “USERS” LOGGING DATAFILE ‘C:\oracle\oradata\web\users01.dbf’ SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

CREATE UNDO TABLESPACE “UNDOTBS” DATAFILE ‘C:\oracle\oradata\web\undotbs01.dbf’ SIZE 200M REUSE AUTOEXTEND ON NEXT  5120K;

spool off

exit;

8、创建数据字典,运行createdbcatalog.sql脚本命令

SQL>sqlplus /nolog

SQL> connect SYS/change_on_install as SYSDBA

SQL>@createdbcatalog.sql

Createdbcatalog.sql脚本内容如下:

 

set echo on

spool C:\oracle\admin\mydb\create\CreateDBCatalog.log

@C:\oracle\ora90\rdbms\admin\catalog.sql;

@C:\oracle\ora90\rdbms\admin\catexp7.sql;

@C:\oracle\ora90\rdbms\admin\catblock.sql;

@C:\oracle\ora90\rdbms\admin\catproc.sql;

@C:\oracle\ora90\rdbms\admin\catoctk.sql;

@C:\oracle\ora90\rdbms\admin\catobtk.sql;

@C:\oracle\ora90\rdbms\admin\caths.sql;

@C:\oracle\ora90\rdbms\admin\owminst.plb;

connect SYSTEM/manager

@C:\oracle\ora90\sqlplus\admin\pupbld.sql;

connect SYSTEM/manager

set echo on

spool C:\oracle\ora90\assistants\dbca\logs\sqlPlusHelp.log

@C:\oracle\ora90\sqlplus\admin\help\hlpbld.sql helpus.sql;

spool off

spool off

exit;

9、完善数据库,创建spfile文件,将数据库实例启动服务设置成自动启动方式。

SQL>sqlplus /nolog

SQL> connect SYS/change_on_install as SYSDBA

SQL> @postdbcreation.sql

Postdbcreation.sql脚本内容如下:

set echo on

spool C:\oracle\admin\web\create\postDBCreation.log

create spfile=’C:\oracle\ora90\database\spfileweb.ora’ FROM pfile=’C:\oracle\admin\web\init.ora’;

connect SYS/change_on_install as SYSDBA

set echo on

spool C:\oracle\ora90\assistants\dbca\logs\postDBCreation.log

shutdown ;

startup ;

注:以上都设置PATH环境变量,将bin目录加入到PATH中以便于使用工具GMGRLl,sqlplus等。

帕金森定律

  英国著名历史学家诺斯古德·帕金森通过长期调查研究,写出一本名叫《帕金森定律》的书。他在书中阐述了机构人员膨胀的原因及后果:一个不称职的官员,可能有三条出路,第一是申请退职,把位子让给能干的人;第二是让一位能干的人来协助自己工作;第三是任用两个水平比自己更低的人当助手。这第一条路是万万走不得的,因为那样会丧失许多权利;第二条路也不能走,因为那个能干的人会成为自己的对手;看来只有第三条路最适宜。于是,两个平庸的助手分担了他的工作,他自己则高高在上发号施令,他们不会对自己的权利构成威胁。两个助手既然无能,他们就上行下效,再为自己找两个更加无能的助手。如此类推,就形成了一个机构臃肿,人浮于事,相互扯皮,效率低下的领导体系。

  苛希纳定律

  西方管理学中有一条著名的苛希纳定律:如果实际管理人员比最佳人数多两倍,工作时间就要多两倍,工作成本就要多4倍;如果实际管理人员比最佳人员多3倍,工作时间就要多3倍,工作成本就要多6倍。

  250定律

  美国著名推销员拉德在商战中总结出了“250定律”。他认为每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也就意味着得罪了250名顾客。这一定律有力地论证了“顾客就是上帝”的真谛。由此,我们可以得到如下启示:必须认真对待身边的每一个人,因为每一个人的身后,都有一个相对稳定的、数量不小的群体。善待一个人,就像拨亮一盏灯,照亮一大片。

  达维多定律

  达维多定律是以英特尔公司副总裁达维多的名字命名的。他认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。这一定律的基点是着眼于市场开发和利益分割的成效。因为人们在市场竞争中无时无刻不在抢占先机,只有先入市场才能更容易获取较大的份额和较高的利润。

  木桶定律

一个有许多块长短不同的木板箍成的木桶,决定其容量大小的并非其中最长的那块木板,而是其中最短的那块木板。同样,在一个企业的营销过程中,必然存在着许多相关的环节,只有找出制约企业经济效益提高的某一关键环节,把这一个矛盾解决了,其它矛盾就可以迎刃而解了。

a、领导

一、 素养

蓝斯登原则

在你往上爬的时候,一定要保持梯子的整洁,否则你下来时可能会滑倒。

提出者:美国管理学家蓝斯登
点评:进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。

卢维斯定理

谦虚不是把自己想得很糟,而是完全不想自己。

提出者:美国心理学家h·卢维斯
点评:如果把自己想得太好,就很容易将别人想得很糟。

托利得定理

测验一个人的智力是否属于上乘,只看脑子里能否同时容纳两种相反的思想,而无碍于其处世行事。

提出者:法国社会心理学家h·m·托利得
点评:思可相反,得须相成。

二、统御

刺猬理论

刺猬在天冷时彼此靠拢取暖,但保持一定距离,以免互相刺伤。

点评:保持亲密的重要方法,乃是保持适当的距离。

鲦鱼效应

鲦鱼因个体弱小而常常群居,并以强健者为自然首领。将一只稍强的鲦鱼脑后控制行为的部分割除后,此鱼便失去自制力,行动也发生紊乱,但其他鲦鱼却仍像从前一样盲目追随。

提出者:德国动物学家霍斯特
点评:1、下属的悲剧总是领导一手造成的。2、下属觉得最没劲的事,是他们跟着一位最差劲的领导。

雷鲍夫法则

在你着手建立合作和信任时要牢记我们语言中:
1、最重要的八个字是:我承认我犯过错误
2、最重要的七个字是:你干了一件好事
3、最重要的六个字是:你的看法如何
4、最重要的五个字是:咱们一起干
5、最重要的三个字是:谢谢您
6、最重要的两个字是:咱们

提出者:美国管理学家雷鲍夫
点评:1、最重要的四个字是:不妨试试;2、最重要的一个字是:您

洛伯定理

对于一个经理人来说,最要紧的不是你在场时的情况,而是你不在场时发生了什么。

提出者:美国管理学家r·洛伯
点评:如果只想让下属听你的,那么当你不在身边时他们就不知道应该听谁的了。

三、沟通

斯坦纳定理

在哪里说得愈少,在哪里听到的就愈多。

提出者:美国心理学家s·t·斯坦纳
点评:只有很好听取别人的,才能更好说出自己的。

费斯诺定理

人有两只耳朵却只有一张嘴巴,这意味着人应该多听少讲。

提出者:英国联合航空公司总裁兼总经理l·费斯诺
点评:说得过多了,说的就会成为做的障碍。

牢骚效应

凡是公司中有对工作发牢骚的人,那家公司或老板一定比没有这种人或有这种人而把牢骚埋在肚子里的公司要成功得多。

提出者:美国密歇根大学社会研究院
点评:1、牢骚是改变不合理现状的催化剂。2、牢骚虽不总是正确的,但认真对待牢骚却总是正确的。

避雷针效应

在高大建筑物顶端安装一个金属棒,用金属线与埋在地下的一块金属板连接起来,利用金属棒的尖端放电,使云层所带的电和地上的电逐渐中和,从而保护建筑物等避免雷击。

点评:善疏则通,能导必安

四、协调

氨基酸组合效应

组成人体蛋白的八种氨基酸,只要有一种含量不足,其他七种就无法合成蛋白质。

点评:当缺一不可时,”一”就是一切。

米格-25效应

前苏联研制的米格-25喷气式战斗机的许多零部件与美国的相比都落后,但因设计者考虑了整体性能,故能在升降、速度、应急反应等方面成为当时世界一流。

点评:所谓最佳整体,乃是个体的最佳组合。

磨合效应

新组装的机器,通过一定时期的使用,把磨擦面上的加工痕迹磨光而变得更加密合。

点评:要想达到完整的契合,须双方都作出必要的割舍。

五、指导

波特定理

当遭受许多批评时,下级往往只记住开头的一些,其余就不听了,因为他们忙于思索论据来反驳开头的批评。

提出者:英国行为科学家l·w·波特
点评:总盯着下属的失误,是一个领导者的最大失误。

蓝斯登定律

跟一位朋友一起工作,远较在”父亲”之下工作有趣得多。

提出者:美国管理学家蓝斯登
点评:可敬不可亲,终难敬;有权没有威,常失权。

吉尔伯特法则

工作危机最确凿的信号,是没有人跟你说该怎样作。

提出者:英国人力培训专家b·吉尔伯特
点评:真正危险的事,是没人跟你谈危险。

权威暗示效应

一化学家称,他将测验一瓶臭气的传播速度,他打开瓶盖15秒后,前排学生即举手,称自己闻到臭气,而后排的人则陆续举手,纷纷称自己也已闻到,其实瓶中什么也没有。

点评:迷信则轻信,盲目必盲从。

没走过的路。2、特色不特,优势无优。

古特雷定理

每一处出口都是另一处的入口。

提出者:美国管理学家W·古特雷
点评:上一个目标是下一个目标的基础,下一个目标是上一个目标的延续。

十四、计划

列文定理

那些犹豫着迟迟不能作出计划的人,通常是因为对自己的能力没有把握。

提出者:法国管理学家P·列文
点评:如果没有能力去筹划,就只有时间去后悔了。

弗洛斯特法则

在筑墙之前应该知道把什么圈出去,把什么圈进来。

提出者:美国思想家W·P·弗洛斯特
点评:开始就明确了界限,最终就不会作出超越界限的事来。

十五、参谋

波克定理

只有在争辩中,才可能诞生最好的主意和最好的决定。

提出者:美国庄臣公司总经理詹姆士·波克
点评:无磨擦便无磨合,有争论才有高论。

韦奇定理

即使你已有了主见,但如果有十个朋友看法和你相反,你就很难不动摇。

提出者:美国洛杉矶加州大学经济学家伊渥·韦奇
点评:1、未听之时不应有成见,既听之后不可无主见。2、不怕开始众说纷纭,只怕最后莫衷一是。

十六、决策

福克兰定律

没有必要作出决定时,就有必要不作决定。

提出者:法国管理学家D·L·福克兰
点评:当不知如何行动时,最好的行动就是不采取任何行动。

王安论断

犹豫不决固然可以免去一些作错事的机会,但也失去了成功的机遇。

提出者:美籍华裔企业家王安博士
点评:寡断能使好事由好变坏,果断可将危机转危为安。

十七、执行

格瑞斯特定理

杰出的策略必须加上杰出的执行才能奏效。

提出者:美国企业家H·格瑞斯特
点评:好事干实更好,实事办好愈实。

吉德林法则

把难题清清楚楚地写出来,便已经解决了一半。

提出者:美国通用汽车公司管理顾问查尔斯·吉德林
点评:杂乱无章的思维,不可能产生有条有理的行动

d、调控

十八、信息

沃尔森法则

把信息和情报放在第一位,金钱就会滚滚而来。

提出者:美国企业家s·m·沃尔森
点评:你能得到多少,往往取决于你能知道多少。

塔马拉效应

塔马拉是捷克雷达专家弗·佩赫发明的一种雷达,它与其他雷达的最大不同是不发射信号而只接收信号,故不会被敌方反雷达装置发现。

点评:善藏者人不可知,能知者人无以藏。

十九、监督

小池定理

越是沉醉,就越是抓住眼前的东西不放。

提出者:日本管理学家小池敬
点评:自我陶醉不易清醒,自以为是不喜批评。

赫勒法则

当人们知道自己的工作成绩有人检查的时候会加倍努力。

提出者:英国管理学家h·赫勒
点评:只有在相互信任的情况下,监督才会成为动力。

二十、控制

横山法则

最有效并持续不断的控制不是强制,而是触发个人内在的自发控制。

提出者:日本社会学家横山宁夫
点评:有自觉性才有积极性,无自决权便无主动权。

蝴蝶效应

“紊乱学”研究者称,南半球某地的一只蝴蝶偶尔扇动一下翅膀所引起的微弱气流,几星期后可变成席卷北半球某地的一场龙卷风。他们将这种由一个极小起因,经过一定的时间,在其他因素的参与作用下,发展成极为巨大和复杂后果的现象称为”蝴蝶效应”。
点评:善终者慎始,谨小者慎微。

阿什法则

承认问题是解决问题的第一步。

提出者:美国企业家m·k·阿什
点评:你愈是躲着问题,问题愈会揪住你不放。

二十一、法纪

洛克忠告

规定应该少定,一旦定下之后,便得严格遵守。

提出者:英国教育家洛克
点评:简则易循,严则必行。

热炉法则

当人用手去碰烧热的火炉时,就会受到”烫”的惩罚,其有以下三个特点:即时性、预警性、平等性。

点评:罪与罚能相符,法与治可相期。

二十二、改革

柯美雅定律

世上没有十全十美的东西,所以任何东西都有改革的余地。

提出者:美国社会心理学家m·r·柯美雅
点评:不拘于常规,才能激发出创造力。

达维多夫定律

没有创新精神的人永远也只能是一个执行者。

提出者:前苏联心理学家达维多夫
点评:只有敢为人先的人,才最有资格成为真正的先驱者。

自吃幼崽效应

美国硅谷企业竞争十分激烈,以至于各公司都积极寻找自己的致命弱点,所有公司共同的生存之道是:拿出更好看产品来击败自己的原有产品。有人将这种行为戏称为”自吃幼崽”。

点评:1、自己不逼自己,别人迟早会逼你。2、敢于对过去告一个段落,才有信心掀开新的一章。

二十三、创新

舍恩定理

新思想只有落到真正相信它,对它着迷的人手里才能开花结果。

提出者:美国麻省理工学院教授舍恩
点评:只有信之不疑,才能持之以恒。

吉宁定理

真正的错误是害怕犯错误。

提出者:美国管理学家h·吉宁
点评:不怕错误的人,错误往往也离他最远。

卡贝定理

放弃是创新的钥匙。

提出者:美国电话电报公司前总经理卡贝
点评:在未学会放弃之前,你将很难懂得什么是争取。

二十四、考评

吉普林忠告

将成败同等看待。

提出者:英国作家、诺贝尔文学奖获得者吉普林
点评:如果不明白失败是什么,那么对成功的理解也是片面的。

史华兹论断

所有”不幸事件”,都只有在我们认为它不幸的情况下,才会真正成为不幸事件。

提出者:美国管理心理学家d·克华兹
点评:若能坏中看好,终会好上加好。

e、绩效

二十五、竞争

廷克定律

如果你处在第二的位置,你就总想努力去争作第一。

提出者:英国管理学家哈罗德·廷克
点评:欲往高处走,须向高处看。

鲁尼恩定律

赛跑时不一定快的赢,打架时不一定弱的输。

提出者:奥地利经济学家r·h·鲁尼恩
点评:无备,强不抵弱,出奇,弱可胜强。

史密斯原则

如果你不能战胜他们,你就加入到他们之中去。

提出者:美国通用汽车公司前董事长r·史密斯
点评:竞争使人进步最快,合作让人得到最多。

二十六、营销

阿尔巴德定理

一个企业经营成功与否,全靠对顾客的要求了解到什么程度。

提出者:匈牙利全面质量管理国际有限公司顾问波尔加·韦雷什·阿尔巴德
点评:看到了别人的需要,你就成功了一半;满足了别人的需求,你就成功了全部。

冰淇淋哲学

卖冰淇淋必须从冬天开始,因为冬天顾客少,会逼迫你降低成本,改善服务。如果能在冬天的逆境中生存,就再也不会害怕夏天的竞争。

提出者:台湾著名企业家王永庆
点评:逆境不错,顺境更好。

二十七、广告

布里特定理

商品不作广告,就像姑娘在暗处向小伙子递送秋波,脉脉此情只有她自己知道。

提出者:英国广告学专家s·布里特
点评:要推而广之,先广而告之。

伯内特定理

只有占领头脑,才会占有市场。

提出者:美国广告专家利奥·伯内特
点评:脍炙人口才会耐人寻味,深得人心方可引人入胜。

拉图尔定律

一个好品名可能无助于劣质产品的销售,但是一个坏品名则会使好产品滞销。

提出者:法国诺门公司德国分公司负责人苏珊·拉图尔
点评:取名的艺术,亦是取得成功的艺术。

赫斯定律

广告超过12个字,读者的记忆力要降低50%。

提出者:澳大利亚广告家h·赫斯
点评:忘却即等于抛弃。

二十八、公关

玛丽法则

假如还没有破,就不要去修它,免得弄巧成拙。

提出者:美国著名企业家玛丽·凯·阿什
点评:弄巧之所以成拙,往往是因为本来就无巧可弄。

弗里施定理

没有满意的工作人员,就没有满意的顾客。

提出者:德国慕尼黑企业咨询顾问弗里施
点评:协调内外关系,从协调内部关系开始。

反哺效应

动物学家将某些动物长大后把觅到的食物给予其父母的行为称为反哺。

点评:给别人好处的人,往往也是得到好处最多的人。

史崔维兹定理

如果你为获得好处而帮助他人,就不算帮助他人。

提出者:美国社会心理学家g·史崔维兹
点评:动机不纯,行为失真。

二十九、谈判

奥狄思法则

在每一次谈判中,你都应准备向对方作出让步。

提出者:美国谈判专家j·s·奥狄思
点评:争,丈不足;让,寸有余。

居家效应

一个人在家里或自己最熟悉的环境中,言谈举止表现得最为自信和从容。

点评:没有实力垫底,自信永远是苍白的。

尼伦伯格原则

一场圆满的、成功的谈判,每一方都应是胜利者。

提出者:美国著名谈判学家尼伦伯格
点评:总想自己得势,必然势不两立。

比林定律

一生中的麻烦有一半是由于太快说”是”,太慢说”不”造成的。

提出者:美国幽默作家比林
点评:1、没有否决权,发言权也很容易被剥夺。2、对不该让步的事不让步,别人反而更容易给你让步。

三十、交往

克林纳德法则

与人相处得好坏,在很大程度上取决于我们用什么方式与人打交道。

提出者:美国人际关系学家h·h·克林纳德
点评:交之有道,能打好交道;来而无往,难有常来往。

忌讳效应

因风俗习惯或个人理由等,对某些言语或举动有所顾忌,积久成为禁忌。

点评:知道别人不喜欢什么,比知道别人喜欢什么更重要。

弗里德曼定律

当一个人的需要可以满足另一个人的需要时,两人就趋于互相喜欢。

提出者:美国心理学家n·w·弗里德曼
点评:有利益与利益的相互补充,才会有需要与需要的相互满足。

三十一、成果

基利定理

容忍失败,这是人们可以学习并加以运用的极为积极的东西。

提出者:美国多布林咨询公司集团总经理拉里·基利
点评:1、成功者之所以成功,只不过是他不被失败左右而已。2、不许失败,无异于不许成功。

沸腾效应

水温升到99度,还不是开水,其价值有限;若再添一把火,在99度的基础上再升高1度,就会使水沸腾,并产生大量水蒸气来开动机器,从而获得巨大的经济效益。

点评:只差一点点,往往是导致最大差别的关键。

王永庆法则

节省一元钱等于净赚一元钱。
提出者:台湾企业界”精神领袖”台塑总裁王永庆

点评:赚钱要依赖别人,节省只取决自己

一位老司机对新司机所教的开车经验

1)当你在野外开车时,突然从路旁窜出一行人,这时候如果你躲避行人,你就会车毁人亡,否则你就会将行人碾过。你怎么办?
  答:轧死他,你的命比他值钱
  2)在正常行使过程中,如果大家的车速假定都是50公里/小时,你的车速应该是多少?
  答:略大于50公里/小时,因为其它车辆超你的可能性小。
  3)如何躲避十字路口的警察?
  答:过十字路口时先跟在一个比你大的车后,绿灯一亮,开车就跑。
  4)如何躲避电子眼(电子警察)的监控?
  答:按照中国的交通法,十字路口红灯可以右转向,你闯红灯时要在K右的慢行道或者逆道行使。
  5)你违章被警察抓住了怎么办?
  答:如果你还没下车,先观察地形,把几个车门都从里面锁好,看能否跑掉。如果跑不掉,你就把执照给小警察,千万别和他纠缠,然后找关系要出来。
  6)在野外遇到查车的怎么办?
  答:你要看见是提着冲锋枪查车的,你就老老实实下来接受检查。如果是警察设卡查车乱罚款的,你先看看他们是什么车辆,能不能追上你,减速打右转向灯,假装要停车接受检查,骗过警察后加油就跑,一般警察不会追你。
  7)有人投诉你的车违章怎么办?
  答:死不认帐。
  8)遇见警察拦你车搭乘车怎么办?
  答:别给他停。下次你违章被他抓住一样会被罚,他不会和你交朋友的。
  9)遇见同方向行使的警车开道的车队怎么办?
  答:不要超,停车去解个手。
  10)遇见前面同方向有个大车(满载)不给你让路怎么办?
  答:紧跟其后,找准机会,超过它后你用车压住他的车,待上大坡时你减速,直到让他一挡起步。
  11)如果在十字路口你走眼误闯红灯过线了怎么办?
  答:紧急刹车,只要后轮不过线,电子眼不会拍摄。
  12)五座小车哪个位置最安全?
  答:驾驶员位。
  13)你把车交给无证人员驾驶,出了点小车祸怎么办你在车上)?
  答:不管你有理无理,停车下来先和对方大吵大骂,迷惑对方,转移他的注意力,待交警来后你把执照交上去,多数情况对方不会注意,如果对方发现,你就死不认帐。
  14)公路限速60公里/小时,你高速行使时遇见紧急情况,紧急刹车后造成事故,刹车印痕很长,交警来处理时问你行使车速,你怎么回答?
  答:大约60公里/小时的速度行使,主要是刹车不太好,再加上驾驶技术欠佳。
  15)你在野外农村撞死了农民怎么办?
  答:如果农民确已死亡,你要快速搭乘其它车辆离开出事地点,向保险公司和交通部门报案,再派一个朋友去帮你处理后事。你千万不能去出事地点,农民家属会打死你的。你可以说你受到刺激,也去住院检查。
  16)你在野外农村撞死了农民的牲畜怎么办?
  答:只要汽车还能开,能跑多远就跑多远,因为一头猪的价格要2000多元,要是一头牛,没个万儿八千的下不来,因为农民会说他的牛是种牛,肚子里还有牛崽等等。
  17)你在野外汽车抛锚了,过路车又不给你停怎么办?
  答:去路边捡些石头块,横挡在路上,手里再拿出200元钱示意,会有人帮你。
  18)如果你的车行使在野外没油了怎么办?
  答:拦一辆大车,从他的车里用管吸出几升油即可,70号油不要紧。不要拦小车,一般小车是不能抽油的。
  19)野外路上遇到有人搭车怎么办?
  答:最好不要带。你又不知他是干什么的,万一要是贩卖大烟的呢。
  20)连续下山,刹车片过热引起制动不灵怎么办?
  答:停下来,自然冷却。千万不要用水冷却。
  21)夏日连续上山爬坡,车温过高但你又不想停车,怎么办?
  答:把空调关掉,车窗打开,把暖气开到最大,风门也开到最大,几分钟车即可降温。
  22)普通野外三级公路,公路两边都有自行车和行人,如何高速行使?
  答:尽可能占用逆向道行使,因为同方向的自行车等看不见你。
  23)崎岖山路如何高速行使?
  答:拐弯要加油。(经验丰富者)
  24)如何在普通公路上超越比你性能优越的车?
  答:紧跟其后,在同方向车多的情况时退档加速超越,不过你要胆大车技好。
  25)什么情况下最好不要超车?
  答:对面来的车比你大,如果撞击你倒霉。
  26)夏天行使汽车要注意哪些?
  答:前轮胎气压不能大,防止高速爆胎。
  27)行车与时间的关系?
  答:晚上8–10点要注意地方牌照的公用小车,这时候他们可能刚喝完酒,横冲直撞。凌晨3–5点,要注意过境公路上的长途汽车,司机可能在打磕睡。
  28)野外夜间行车注意事项?
  答:如果是后半夜,会车时要连续变换远近光灯,提醒对方注意,对方有可能在打磕睡。
  对方远光灯不关,一定要提前减速,预防同方向的拖拉机等不明物。
  29)山路弯道注意事项?
  答:白天在山路弯道行使,一定要占自己的道(看不见对面的情况),高速下坡转弯时,一定要提前减速。