??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品13p,亚洲精品亚洲人成在线麻豆,亚洲国产AV一区二区三区四区http://m.tkk7.com/1948asd/zh-cnSun, 11 May 2025 23:43:38 GMTSun, 11 May 2025 23:43:38 GMT60ORACLE多表查询优化Q{Q?/title><link>http://m.tkk7.com/1948asd/archive/2009/05/12/270272.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Tue, 12 May 2009 11:44:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2009/05/12/270272.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/270272.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2009/05/12/270272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/270272.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/270272.html</trackback:ping><description><![CDATA[ <div id="jqvilni" class="tit">ORACLE多表查询优化</div> <div id="hmvuviy" class="date"> </div> <table style="TABLE-LAYOUT: fixed"> <tbody> <tr> <td> <div id="bkjxbhp" class="cnt" id="blog_text">q里提供的是执行性能的优?而不是后台数据库优化器资? <p>参考数据库开发性能斚w的各U问?攉了一些优化方案统计如?当然,?strong>索引</strong>{优化方案太q简单就不列入了,嘿嘿):</p><p><strong>执行路径:ORACLE</strong>的这个功能大大地提高了SQL的执行性能q节省了内存的?我们发现,单表数据的统计比多表l计的速度完全是两个概?单表l计可能只要0.02U?但是2张表联合l计可能要几十表了.q是因ؓ(f)<strong>ORACLE</strong>只对单的表提?strong>高速缓?/strong>(cache buffering) ,q个功能q不适用?strong>多表q接查询</strong>..数据库管理员必须在init.ora中ؓ(f)q个区域讄合适的参数,当这个内存区域越?可以保留更多的语句,当然被共享的可能性也p大了.</p><p>当你?strong>ORACLE</strong>提交一个SQL语句,<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>?x)首先在q块内存中查扄同的语句. <br />q里需要注明的?<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>对两者采取的是一U严格匹?要达成共?SQL语句必须 <br />完全相同(包括I格,换行{?. <br />      ׃n的语句必L三个条? <br /><strong>A.       字符U的比较:</strong><br />当前被执行的语句和共享池中的语句必须完全相同. <br />       例如: <br />           SELECT * FROM EMP; <br />       和下列每一个都不同 <br />           SELECT * from EMP; <br />           Select * From Emp; <br />           SELECT       *      FROM EMP;</p><p><strong>B.       两个语句所指的对象必须完全相同:</strong><strong><br /></strong></p><p>   用户对象名                     ?如何讉K <br />Jack   sal_limit                      private synonym <br />Work_city                           public synonym <br />Plant_detail                         public synonym <br />Jill sal_limit                         private synonym <br />Work_city                           public synonym <br />Plant_detail                        table owner <br />      考虑一下下列SQL语句能否在这两个用户之间׃n. <br />SQL 能否׃n 原因 <br />select max(sal_cap) from sal_limit; 不能 每个用户都有一个private synonym - sal_limit , 它们是不同的对象 <br />select count(*) from work_city where sdesc like 'NEW%'; ?两个用户讉K相同的对象public synonym - work_city <br />select a.sdesc,b.location from work_city a , plant_detail b where a.city_id = b.city_id 不能 用户jack 通过private synonym讉Kplant_detail 而jill 是表的所有?对象不同.</p><p><strong>C.       两个SQL语句中必M用相同的名字的绑定变?bind variables)</strong><br />例如Q第一l的两个SQL语句是相同的(可以׃n),而第二组中的两个语句是不同的(即在运行时,赋于不同的绑定变量相同的? <br />a. <br />select pin , name from people where pin = :blk1.pin; <br />select pin , name from people where pin = :blk1.pin; <br />b. <br />select pin , name from people where pin = :blk1.ot_ind; <br />select pin , name from people where pin = :blk1.ov_ind; <br /><strong>重点x1:选择最有效率的表名序(只在Z规则的优化器中有?</strong><strong><font color="#ff0000">重点x<br /></font>ORACLE</strong>的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的?基础?driving table)被最先处? 在FROM子句中包含多个表的情况下,你必选择记录条数最的表作为基??strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>处理多个表时, ?x)运用排序及合ƈ的方式连接它?首先,扫描W一个表(FROM子句中最后的那个?q对记录q行zֺ,然后扫描W二个表(FROM子句中最后第二个?,最后将所有从W二个表中检索出的记录与W一个表中合适记录进行合q? <br />例如:       ?TAB1 16,384 条记?<br />          ?TAB2 1       条记?<br />      选择TAB2作ؓ(f)基础?(最好的Ҏ(gu)) <br />      select count(*) from tab1,tab2    执行旉0.96U?<br />      选择TAB2作ؓ(f)基础?(不佳的方?<br />select count(*) from tab2,tab1    执行旉26.09U?<br />如果?个以上的表连?strong style="COLOR: black; BACKGROUND-COLOR: #ff9999">查询</strong>, 那就需要选择交叉?intersection table)作ؓ(f)基础? 交叉表是指那个被其他表所引用的表. <br />例如:    EMP表描qCLOCATION表和CATEGORY表的交集. <br />SELECT * <br />FROM LOCATION L , <br />       CATEGORY C, <br />       EMP E <br />WHERE E.EMP_NO BETWEEN 1000 AND 2000 <br />AND E.CAT_NO = C.CAT_NO <br />AND E.LOCN = L.LOCN <br />比下列SQL更有效率 <br />SELECT * <br />FROM EMP E , <br />LOCATION L , <br />       CATEGORY C <br />WHERE   E.CAT_NO = C.CAT_NO <br />AND E.LOCN = L.LOCN <br />AND E.EMP_NO BETWEEN 1000 AND 2000 <br /><strong>重点x2:WHERE子句中的q接序Q?/strong><strong><font color="#ff0000">重点x</font></strong></p><p><font color="#ff0000"><font color="#000000"><strong><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>采用自下而上的顺序解析WHERE子句,Ҏ(gu)q个原理,表之间的q接必须写在其他WHERE条g之前, 那些可以qo(h)掉最大数量记录的条g必须写在WHERE子句的末? <br />例如: <br /><strong>(低效,执行旉156.3U? <br /></strong>SELECT ?<br />FROM EMP E <br />WHERE   SAL >; 50000 <br />AND     JOB = ‘MANAGER?<br />AND     25 < (SELECT COUNT(*) FROM EMP</font><br /><font color="#000000">WHERE MGR=E.EMPNO); <br /><strong>(高效,执行旉10.6U? <br /></strong>SELECT ?<br />FROM EMP E <br />WHERE 25 < (SELECT COUNT(*) FROM EMP <br />              WHERE MGR=E.EMPNO) <br />AND     SAL >; 50000 <br />AND     JOB = ‘MANAGER? </font><br /><font color="#000000"><strong>重点x3:SELECT子句中避免??* ?Q?/strong></font><strong><font color="#ff0000">重点x</font></strong></font></p><p>当你惛_SELECT子句中列出所有的COLUMN?使用动态SQL列引???是一个方便的Ҏ(gu).不幸的是,q是一个非怽效的Ҏ(gu). 实际?<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>在解析的q程? ?x)将??依次转换成所有的列名, q个工作是通过<strong style="COLOR: black; BACKGROUND-COLOR: #ff9999"><font style="BACKGROUND-COLOR: white">查询</font></strong>数据字典完成? q意味着耗费更多的时? <br />7.      减少讉K数据库的ơ数 <br />当执行每条SQL语句? <strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, l定变量 , L据块{等. 由此可见, 减少讉K数据库的ơ数 , p实际上减?strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>的工作量. <br />例如, <br />     以下有三U方法可以检索出雇员L(fng)?342?291的职? <br /><strong>Ҏ(gu)1 (最低效) <br /></strong>     SELECT EMP_NAME , SALARY , GRADE <br />     FROM EMP <br />     WHERE EMP_NO = 342; <br />      SELECT EMP_NAME , SALARY , GRADE <br />     FROM EMP <br />     WHERE EMP_NO = 291; <br /><strong>Ҏ(gu)2 (ơ低? <br /></strong>        DECLARE <br />         CURSOR C1 (E_NO NUMBER) IS <br />         SELECT EMP_NAME,SALARY,GRADE<br />FROM EMP <br />         WHERE EMP_NO = E_NO; <br />     BEGIN <br />         OPEN C1(342); <br />         FETCH C1 INTO ?..,.. ; <br />                 OPEN C1(291); <br />        FETCH C1 INTO ?..,.. ; <br />          CLOSE C1; <br />       END; <br /><strong>Ҏ(gu)3 (高效) <br /></strong>     SELECT A.EMP_NAME , A.SALARY , A.GRADE, <br />             B.EMP_NAME , B.SALARY , B.GRADE <br />     FROM EMP A,EMP B <br />     WHERE A.EMP_NO = 342 <br />     AND    B.EMP_NO = 291; <br />注意: <br />在SQL*Plus , SQL*Forms和Pro*C中重新设|ARRAYSIZE参数, 可以增加每次数据库访问的索数据量 ,gؓ(f)200.</p><p><strong>重点x4:使用DECODE函数来减处理时?</strong><strong><font color="#ff0000">重点x</font></strong><br />使用DECODE函数可以避免重复扫描相同记录或重复连接相同的? <br />例如: <br />    SELECT COUNT(*)QSUM(SAL) <br />    FROM EMP <br />    WHERE DEPT_NO = 0020 <br />    AND ENAME LIKE ‘SMITH%? <br />    SELECT COUNT(*)QSUM(SAL) <br />    FROM EMP <br />    WHERE DEPT_NO = 0030 <br />    AND ENAME LIKE ‘SMITH%? <br />你可以用DECODE函数高效地得到相同结?<br />SELECT COUNT(DECODE(DEPT_NO,0020,’X?NULL)) D0020_COUNT, <br />         COUNT(DECODE(DEPT_NO,0030,’X?NULL)) D0030_COUNT, <br />         SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL, <br />         SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SAL <br />FROM EMP WHERE ENAME LIKE ‘SMITH%? <br />cM?DECODE函数也可以运用于GROUP BY 和ORDER BY子句?</p><p><strong>重点x5: 删除重复记录.</strong><strong><font color="#ff0000">重点x</font></strong></p><p>最高效的删除重复记录方?( 因ؓ(f)使用了ROWID) <br />DELETE FROM EMP E <br />WHERE E.ROWID >; (SELECT MIN(X.ROWID) <br />                    FROM EMP X <br />                    WHERE X.EMP_NO = E.EMP_NO);</p><p><strong>重点x6: 用TRUNCATE替代DELETE</strong><strong>.</strong><strong><font color="#ff0000">重点x</font></strong></p><p>当删除表中的记录?在通常情况? 回滚D?rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>?x)将数据恢复到删除之前的状?准确地说是恢复到执行删除命o(h)之前的状? <br />而当q用TRUNCATE? 回滚D不再存放Q何可被恢复的信息.当命令运行后,数据不能被恢?因此很少的资源被调用,执行旉也会(x)很短. <br />(译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)</p><p><strong>重点x7: 量多用COMMIT</strong><strong>.</strong><strong><font color="#ff0000">重点x</font></strong></p><p>只要有可?在程序中量多用COMMIT, q样E序的性能得到提高,需求也?x)因为COMMIT所释放的资源而减? <br />COMMIT所释放的资? <br />a.        回滚D上用于恢复数据的信? <br />b.        被程序语句获得的?<br />c.        redo log buffer 中的I间 <br />d.       <strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><font style="BACKGROUND-COLOR: white">ORACLE</font></strong>为管理上q?U资源中的内部花?<br />(译者按: 在用COMMIT时必要注意C务的完整?现实中效率和事务完整性往往是鱼和熊掌不可得? <br /><strong>重点x8:减少对表的查?/strong><strong>.</strong><strong><font color="#ff0000">重点x</font></strong></p><p><font color="#ff0000"><font color="#000000">在含有子</font><strong><font color="#000000">查询</font></strong><font color="#000000">的SQL语句?要特别注意减对表的</font><strong><font color="#000000">查询</font></strong><font color="#000000">. </font></font></p><p><font color="#ff0000"><font color="#000000">例如: <br />      低效 <br />           SELECT TAB_NAME <br />           FROM TABLES <br />           WHERE TAB_NAME = ( SELECT TAB_NAME <br />                                 FROM TAB_COLUMNS <br />                                 WHERE VERSION = 604) <br />           AND DB_VER= ( SELECT DB_VER <br />                            FROM TAB_COLUMNS <br />                            WHERE VERSION = 604) <br />      高效 <br />           SELECT TAB_NAME <br />           FROM TABLES <br />           WHERE   (TAB_NAME,DB_VER) <br />= ( SELECT TAB_NAME,DB_VER) <br />                    FROM TAB_COLUMNS <br />                    WHERE VERSION = 604) <br />      Update 多个Column 例子: <br />      低效: <br />            UPDATE EMP <br />            SET EMP_CAT = (SELECT MAX(CATEGORY) FROM EMP_CATEGORIES), <br />               SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM EMP_CATEGORIES) <br />            WHERE EMP_DEPT = 0020; <br />      高效: <br />            UPDATE EMP <br />            SET (EMP_CAT, SAL_RANGE) <br />= (SELECT MAX(CATEGORY) , MAX(SAL_RANGE) <br />FROM EMP_CATEGORIES) <br />            WHERE EMP_DEPT = 0020; </font><br /><font color="#000000"><strong>重点x9:用EXISTS替代IN.</strong></font><strong><font color="#ff0000">重点x</font></strong></font></p><p><font color="#ff0000"><font color="#000000">在许多基于基表的<strong style="COLOR: black; BACKGROUND-COLOR: #ff9999">查询</strong>?Z满一个条?往往需要对另一个表q行联接.在这U情况下, 使用EXISTS(或NOT EXISTS)通常提?strong style="COLOR: black; BACKGROUND-COLOR: #ff9999">查询</strong>的效? <br />低效: <br />SELECT * <br />FROM EMP (基础? <br />WHERE EMPNO >; 0 <br />AND DEPTNO IN (SELECT DEPTNO <br />FROM DEPT <br />WHERE LOC = ‘MELB? <br />     高效: <br />SELECT * <br />FROM EMP (基础? <br />WHERE EMPNO >; 0 <br />AND EXISTS (SELECT ‘X?<br />FROM DEPT <br />WHERE DEPT.DEPTNO = EMP.DEPTNO <br />AND LOC = ‘MELB? <br />(译者按: 相对来说,用NOT EXISTS替换NOT IN 更显著地提高效?下一节中指? </font><br /><font color="#000000"><strong>重点x10:用NOT EXISTS替代NOT IN .</strong></font><strong><font color="#ff0000">重点x</font></strong></font></p><p><font color="#ff0000"><font color="#000000">在子查询?NOT IN子句执行一个内部的排序和合q? 无论在哪U情况下,NOT IN都是最低效?(因ؓ(f)它对子查询中的表执行了一个全表遍?.   Z避免使用NOT IN ,我们可以把它改写成外q接(Outer Joins)或NOT EXISTS. <br />例如: <br />SELECT ?<br />FROM EMP <br />WHERE DEPT_NO NOT IN (SELECT DEPT_NO <br />                          FROM DEPT <br />                          WHERE DEPT_CAT=’A?; <br />Z提高效率.改写? <br />(Ҏ(gu)一: 高效) <br />SELECT ? <br />FROM EMP A,DEPT B <br />WHERE A.DEPT_NO = B.DEPT(+) <br />AND B.DEPT_NO IS NULL <br />AND B.DEPT_CAT(+) = ‘A?<br />(Ҏ(gu)? 最高效) <br />SELECT ? <br />FROM EMP E <br />WHERE NOT EXISTS (SELECT ‘X?<br />                     FROM DEPT D <br />                     WHERE D.DEPT_NO = E.DEPT_NO <br />                     AND DEPT_CAT = ‘A?; </font><br /><strong><font color="#000000">当然,最高效率的Ҏ(gu)是有表关?直接两表关系对联的速度是最快的!</font></strong><br /><font color="#000000"><strong>重点x11:识别’低效执行’的SQL语句.</strong></font><strong><font color="#ff0000">重点x</font></strong></font></p><p><font color="#ff0000"><font color="#000000">用下列SQL工具扑և低效SQL: <br />SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, <br />         ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, <br />         ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, <br />         SQL_TEXT <br />FROM    V$SQLAREA <br />WHERE   EXECUTIONS>;0 <br />AND      BUFFER_GETS >; 0 <br />AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 <br />ORDER BY 4 DESC; <br />      (译者按: 虽然目前各种关于SQL优化的图形化工具层出不穷,但是写出自己的SQL工具来解决问题始l是一个最好的Ҏ(gu))</font></font></p></div> </td> </tr> </tbody> </table> <img src ="http://m.tkk7.com/1948asd/aggbug/270272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2009-05-12 19:44 <a href="http://m.tkk7.com/1948asd/archive/2009/05/12/270272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库学?/title><link>http://m.tkk7.com/1948asd/archive/2009/05/11/270068.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Mon, 11 May 2009 08:37:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2009/05/11/270068.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/270068.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2009/05/11/270068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/270068.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/270068.html</trackback:ping><description><![CDATA[ <br />数据理技术经历了人工理、文件系l、数据库和高U数据库技术等四个阶段?br />数据库系l是在文件系l的基础上发展而成的,同时又克服了文gpȝ的三个缺P(x)数据的冗余、不一致性和联系弱?br /><br />数据模型是对现实世界q行抽象的工P用于描述现实世界的数据、数据联pR数据语义和数据U束{方面内宏V数据模型分成概忉|型和l构模型两大cR前者的代表是实体联pL型,后者的代表是层ơ、网状、关pd面向对象模型。关pL型是当今的主模型,面向对象模型是今后发展的方向?br /><br />数据库是存储在一起集中管理的相关数据的集合。数据库的体pȝ构是Ҏ(gu)据的三个抽象U别。它把数据的具体l织留给DBMSdQ用户只需抽象地处理逻辑数据Q而不必关心数据在计算Z的存储,减轻了用户用系l的负担。由于三U结构之间往往差别很大Q存在着两映象Q因此DBSh较高的数据独立性:(x)物理数据独立性和逻辑数据独立性?br /><br />数据独立性是指在某个层次上修Ҏ(gu)式而不影响较高一层模式的能力?br />DBMS是位于用户与OS之间的一层数据管理Y件。数据库语言分成DDL和DML两类。DBMS主要由查询处理器和存储管理器两大部分l成?br />DBS是包含DB和DBMS的计机pȝ。DBS的全局l构体现了DBS的模块功能结构?br /><br /><strong>数据库三U体pȝ构:(x)<br /><img height="576" alt="fsdafsd.jpg" src="http://m.tkk7.com/images/blogjava_net/1948asd/fsdafsd.jpg" width="702" border="0" /><br /><img height="1" src="/WebResource.axd?d=pLXXeGbWF7eXU8SMs2-GFZvUWY2JNH05dFx5YzJhGUYAYJAFEaTEq36NAhTPy7_KekvzDFwt8wvQWdByvJIGWdEq6x2KpKD80&t=633043282320000000" width="1" /><br /><br /></strong><br /><strong>数据库体pȝ构五要素:</strong><br />1、概忉|式是数据库中全部数据的整体逻辑l构的描q?br />2、外模式是用户写数据库系l的接口Q是用户用到那部分数据的描述?br />3、内模式是数据库在物理存储方面的描述Q定义内部记录类型、烦引和文g的组l方式,以及数据控制斚w的细节?br />4、模式/内模式映象存在于概念U和内部U之_(d)用于定义概念模式和内模式之间的对应性?br />5、外模式Q模式映象存在于外部U和概念U之_(d)用于定义外模式和概念模式之间的对应性?br /><br /><strong> DBMS的模块组成:(x)<br /></strong><br />查询处理器有四个主要成分QDDL~译器,DML~译器,嵌入式DML的预~译器及查询q行核心E序?br />存储理器有四个主要成分Q权限和完整性管理器Q事务管理器Q文件管理器及缓冲区理器?br /><br /><strong>DBS的全局l构Q?br /><br /><img height="1" src="/WebResource.axd?d=pLXXeGbWF7eXU8SMs2-GFZvUWY2JNH05dFx5YzJhGUYAYJAFEaTEq36NAhTPy7_KekvzDFwt8wvQWdByvJIGWdEq6x2KpKD80&t=633043282320000000" width="1" /><img height="593" alt="ttttt.jpg" src="http://m.tkk7.com/images/blogjava_net/1948asd/ttttt.jpg" width="510" border="0" /><br /></strong><br /><br /><strong>DBSl构的分c:(x)<br /></strong><br />集中式DBSQcentralized DBSQ?br />客户机/服务器式DBSQclient/server DBSQ记为C/S DBSQ?br />q行式DBSQparallel DBSQ?br />分布式DBSQdistributed DBSQ?br /><br /><br /><strong>DBA的主要职责有以下六点Q?/strong><br />1、定义模式?br />2、定义内模式?br />3、与用户的联l。包括定义外模式、应用程序的设计、提供技术培训等专业服务?br />4、定义安全性规则,对用戯问数据库的授权?br />5、定义完整性规则,监督数据库的q行?br />6、数据库的{储与恢复工作?img src ="http://m.tkk7.com/1948asd/aggbug/270068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2009-05-11 16:37 <a href="http://m.tkk7.com/1948asd/archive/2009/05/11/270068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】配|ehcache.xml文g http://m.tkk7.com/1948asd/archive/2009/04/17/266200.html我是菜鸟我是菜鸟Fri, 17 Apr 2009 09:47:00 GMThttp://m.tkk7.com/1948asd/archive/2009/04/17/266200.htmlhttp://m.tkk7.com/1948asd/comments/266200.htmlhttp://m.tkk7.com/1948asd/archive/2009/04/17/266200.html#Feedback0http://m.tkk7.com/1948asd/comments/commentRss/266200.htmlhttp://m.tkk7.com/1948asd/services/trackbacks/266200.html    
<!-- Hibernate SessionFactory -->
    
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource" ref="dataSource"/>
        
<property name="mappingResources">
        
<list>
            
<value>com/ouou/model/Videos.hbm.xml</value>   
         
</list>
         
</property>
        
<property name="hibernateProperties">
            
<props>
                
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                
<prop key="hibernate.current_session_context_class">thread</prop>
                
<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
                
<prop key="hibernate.query.substitutions">true 'Y'false 'N'</prop>
                
<!--add ehcache-->
                
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
                
<prop key="hibernate.cache.use_query_cache">false</prop><!-- 是否使用查询~存 -->
                
<!--
                
<prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
                
<prop key="hibernate.show_sql">true</prop>
                
-->
                
<!--<prop key="hibernate.transaction.auto_close_session">true</prop>-->
                
<prop key="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
                
<!-- Create/update the database tables automatically when the JVM starts up
                 
<prop key="hibernate.hbm2ddl.auto">update</prop> -->
                
<!-- Turn batching off for better error messages under PostgreSQL -->
                
<prop key="hibernate.jdbc.batch_size">25</prop>
                
<!--
                
<prop key="hibernate.connection.pool_size">10</prop>
                
-->
            
</props>
        
</property>
    
</bean>


    如果不设|“查询缓存”,那么hibernate只会(x)~存使用load()Ҏ(gu)获得的单个持久化对象Q如果想~存使用findall()?list()、Iterator()、createCriteria()、createQuery(){方法获得的数据l果集的话,需要设|hibernate.cache.use_query_cache true 才行

2.首先讄EhCacheQ徏立配|文件ehcache.xmlQ默认的位置在class-pathQ可以放C的src目录下:(x)

 <ehcache>

    
<!-- Sets the path to the directory where cache .data files are created.

     If the path is a Java System Property it is replaced by
     its value in the running VM.
     The following properties are translated:
     user.home 
- User's home directory
     user.dir - User's current working directory
     java.io.tmpdir - Default temp file path -->
     
<!--<diskStore path="java.io.tmpdir"/>-->
     
<diskStore path="/data/ehcache"/>

    
<!--Default Cache configuration. These will applied to caches programmatically created through
        the CacheManager.

        The following attributes are required:

        maxElementsInMemory            
- Sets the maximum number of objects that will be created in memory
        eternal                                     
- Sets whether elements are eternal. If eternal,  timeouts are 
                                                            ignored and the element is never expired.
        overflowToDisk                      
- Sets whether elements can overflow to disk when the in-memory cache
                                                        has reached the maxInMemory limit.

        The following attributes are optional:
        timeToIdleSeconds           
- Sets the time to idle for an element before it expires.
                                                        i.e. The maximum amount of time between accesses before an
                                                        element expires Is only used 
if the element is not eternal.
                                                        Optional attribute. A value of 
0 means that an Element can idle
                                                       
for infinity.The default value is 0.
        timeToLiveSeconds             
- Sets the time to live for an element before it expires.
                                                         i.e. The maximum time between creation time and when an element 
                                                         expires.  Is only used 
if the element is not eternal.
                                                         Optional attribute. A value of 
0 means that and Element can live
                                                        
for infinity.
                                                        The 
default value is 0.
        diskPersistent                           
- Whether the disk store persists between restarts of the Virtual
                                                             Machine.
                                                         The 
default value is false.
        diskExpiryThreadIntervalSeconds   
- The number of seconds between runs of the disk expiry thread. 
                                                         The 
default value  is 120 seconds.
        
-->

    
<defaultCache
        maxElementsInMemory
="10000"
        eternal
="false"
        overflowToDisk
="true"
        timeToIdleSeconds
="120"
        timeToLiveSeconds
="120"
        diskPersistent
="false"
        diskExpiryThreadIntervalSeconds
="120"/>
    
<cache name="org.hibernate.cache.UpdateTimestampsCache" maxElementsInMemory="5000" 
     eternal
="true" overflowToDisk="true"/>
    
<cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="5" eternal="false"
    timeToLiveSeconds
="120" overflowToDisk="true"/>
    
<cache name="userCache" maxElementsInMemory="100000" eternal="false" timeToIdleSeconds=
        "
600"    timeToLiveSeconds="600" overflowToDisk="false" diskPersistent="false"/>
    
<cache name="com.ouou.webapp.util.OuouMethodIntecepter" maxElementsInMemory="100000" 
    eternal
="false" timeToIdleSeconds="600" timeToLiveSeconds="600" overflowToDisk="false"
    diskPersistent
="false"/>
    
<cache name="bbcode" maxElementsInMemory="100000" eternal="false" timeToIdleSeconds="600"
    timeToLiveSeconds
="600" 
    overflowToDisk
="false" diskPersistent="false"/>
    
<cache name="com.ouou.model.Videos" maxElementsInMemory="10000"  eternal="false" 
    overflowToDisk
="false" timeToIdleSeconds="120" timeToLiveSeconds="120" diskPersistent="false"/>
    
<cache name="com.ouou.model.Tags" maxElementsInMemory="10000"  eternal="false"
    overflowToDisk
="false" timeToIdleSeconds="120" timeToLiveSeconds="120" diskPersistent="false"/>
</ehcache>


以com.ouou.model.VideosZ?br />在Videos.hbm.xml中配|:(x)
<class name="Videos" table="TEST" lazy="false">
  <cache usage="read-write" region="ehcache.xml中的name的属性?/>注意Q这一句需要紧跟在class标签下面Q其他位|无效?br />hbm文g查找cacheҎ(gu)名的{略Q如果不指定hbm文g中的region="ehcache.xml中的name的属性?Q则使用name名ؓ(f)com.ouou.model.Videos的cacheQ?br />如果不存在与cd匚w的cache名称Q则用defaultCache?br />如果Videos包含set集合Q则需要另行指定其cache
例如Videos包含Tags集合Q则需?br />d如下配置到ehcache.xml?br /><cache name="com.ouou.model.Tags"
        maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120"
        timeToLiveSeconds="120" overflowToDisk="false" />
另,针对查询~存的配|如下:(x)
<cache name="org.hibernate.cache.UpdateTimestampsCache"
        maxElementsInMemory="5000"
        eternal="true"
        overflowToDisk="true"/>
<cache name="org.hibernate.cache.StandardQueryCache"
        maxElementsInMemory="10000"
        eternal="false"
        timeToLiveSeconds="120"
        overflowToDisk="true"/>

3?选择~存{略依据Q?br />
<cache  usage="transactional|read-write|nonstrict-read-write|read-only" (1)/>
ehcache不支持transactionalQ其他三U可以支持?br />read-onlyQ无需修改Q?那么可以对其进行只?~存Q注意,在此{略下,如果直接修改数据库,即能够看到前台昄效果Q?br />但是对象修改至cache中会(x)报errorQcache不会(x)发生作用。另Q删除记录会(x)报错Q因Z能在read-only模式的对象从cache中删除?br />read-writeQ需要更新数据,那么使用?写缓?比较合适,前提Q数据库不可以ؓ(f)serializable transaction isolation level
Q序列化事务隔离U别Q?br />nonstrict-read-writeQ只偶尔需要更新数据(也就是说Q两个事务同时更新同一记录的情况很不常见)Q也不需要十分严格的事务隔离Q?br />那么比较适合使用非严D/写缓存策略?br />
4?调试时候用log4j的log4j.logger.org.hibernate.cache=debugQ更方便看到ehcache的操作过E,主要用于调试q程,实际应用发布时候,h释掉Q以免媄响性能?br />
5?使用ehcacheQ打印sql语句是正常的Q因为query cache讄为true会(x)创徏两个~存区域Q一个用于保存查询结果集 (
org.hibernate.cache.StandardQueryCache)Q另一个则用于保存最q查询的一pd表的旉?org.hibernate.cache.UpdateTimestampsCache)?br />h意:(x)在查询缓存中Q它q不~存l果集中所包含的实体的切状态;它只~存q些实体的标识符属性的倹{以及各值类型的l果?br />需要将打印sql语句与最q的cache内容相比较,不同之处修改到cache中,所以查询缓存通常?x)和二~存一起用?/p>

我是菜鸟 2009-04-17 17:47 发表评论
]]>
oracle 权限理http://m.tkk7.com/1948asd/archive/2009/04/13/265303.html我是菜鸟我是菜鸟Mon, 13 Apr 2009 07:42:00 GMThttp://m.tkk7.com/1948asd/archive/2009/04/13/265303.htmlhttp://m.tkk7.com/1948asd/comments/265303.htmlhttp://m.tkk7.com/1948asd/archive/2009/04/13/265303.html#Feedback0http://m.tkk7.com/1948asd/comments/commentRss/265303.htmlhttp://m.tkk7.com/1948asd/services/trackbacks/265303.html

pȝ权限Q?br />grant create session to li;//为用h予访问数据库的权限?br />grant create table to li;//为用h予创建数据库的权限?br />grant unlimited tablespace //为用h予没有上限的良讉K表空间的权限?br />revoke table from li;//;//删除用户授予创徏数据库的权限?br />revoke unlimited tablespace //删除用户授予没有上限的确良访问表I间的权限?br />grant create session to public //所有都?br />数据字典Q?br />select * from user_sys_privs;//当前用户拥有权限

--------------------------------------------------------------------------------------------
对象权限Q谁拥有谁就可以授权

grant select on mytab to lisi ;//让lisi 有访问li拥有的mytab的查询权?br />
grant insert on mytab to lisi ;//让lisi 有访问li拥有的mytab的插入权?br />

grant all on mytab to lisi;//所有权限赋?lisi;

数据字典Q?br />select * from user_tab_privs;

grant create session to public //所?br />
对象权限控制到列

grant update(name)  on mytab to lisi;//  授予lisi只能更新name属?为字D分配权限:(x) 只能是插入和更新)





我是菜鸟 2009-04-13 15:42 发表评论
]]>
Oracle调优Q{Q?/title><link>http://m.tkk7.com/1948asd/archive/2009/04/13/265213.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Mon, 13 Apr 2009 00:57:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2009/04/13/265213.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/265213.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2009/04/13/265213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/265213.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/265213.html</trackback:ping><description><![CDATA[ <p> <span id="efyyrck" class="bold"> <span id="tsllafn" class="smalltxt"> <strong> <font face="Comic Sans MS">Oracle调优(入门及提高篇)</font> </strong> </span> </span> </p> <p> <span id="eiqmtyg" class="bold"> <span id="qvgoopm" class="smalltxt"> <strong> <font face="Comic Sans MS"> <font size="1"> <br /> </font> <br /> </font> </strong> </span> </span>在过ȝ十年中, Oracle 已经成ؓ(f)世界上最专业的数据库之一。对?IT 专家来说Q就是要保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能?<br />Oracle 调优是一个复杂的主题。关于调优可以写整整一本书Q不q,Z改善 Oracle 数据库的性能Q有一些基本的概念是每?Oracle DBA 都应该遵从的?<br />   在这简介中Q我们将要地介绍以下?Oracle 主题Q?<br />  -- 外部调整Q我们应该记?Oracle q不是单独运行的。因此我们将查看一下通过调整 Oracle 服务器以得到高的性能?<br />  --Row re-sequencing 以减磁?I/O Q我们应该懂?Oracle 调优最重要的目标是减少 I/O ?<br />  --Oracle SQL 调整?Oracle SQL 调整?Oracle 调整中最重要的领域之一Q只要通过一些简单的 SQL 调优规则可以大q度地提?SQL 语句的性能Q这是一炚w不奇怪的?<br />  -- 调整 Oracle 排序Q排序对?Oracle 性能也是有很大媄响的?<br />  -- 调整 Oracle 的竞争:(x)表和索引的参数设|对?UPDATE ?INSERT 的性能有很大的影响?<br /><br />   我们首先从调?Oracle 外部的环境开始。如果内存和 CPU 的资源不的话,M?Oracle 调整都是没有帮助的?<br /><br />  外部的性能问题 <br />  <br />  Oracle q不是单独运行的?Oracle 数据库的性能和外部的环境有很大的关系。这些外部的条g包括有:(x) <br />   Q?CPU--CPU 资源的不o(h)查询变慢。当查询过?Oracle 服务器的 CPU 性能Ӟ你的数据库性能受?CPU 的限制?<br />   Q内?-- 可用?Oralce 的内存数量也?x)媄?SQL 的性能Q特别是在数据缓冲和内存排序斚w?<br />   Q网l?-- 大量?Net8 通信?SQL 的性能变慢?<br />   许多新手都错误的认ؓ(f)应该首先调整 Oracle 数据库,而不是先认外部资源是否_。实际上Q如果外部环境出现瓶颈,再多?Oracle 调整都是没有帮助的?<br />   在检?Oracle 的外部环境时Q有两个斚w是需要注意的Q?<br />  1 、当q行队列的数目超q服务器?CPU 数量Ӟ服务器的性能׃(x)受到 CPU 的限制。补救的Ҏ(gu)是ؓ(f)服务器增加额外的 CPU 或者关闭需要很多处理资源的lgQ例?Oracle Parallel Query ?<br />  2 、内存分c当内存分页Ӟ内存定w已经不Q而内存页是与盘上的交换行交互的。补救的Ҏ(gu)是增加更多的内存Q减?Oracle SGA 的大,或者关?Oracle 的多U程服务器?<br />   可以使用各种标准的服务器工具来得到服务器的统计数据,例如 vmstat,glance,top ?sar ?DBA 的目标是保数据库服务器拥有_?CPU 和内存资源来处理 Oracle 的请求?<br />   以下让我们来看一?Oracle ?row-resequencing 是如何能够极大地减少盘 I/O 的?<br /><br />  Row-resequencing Q行的重新排序) <br />   <br />  p我们上面提到的,有经验的 Oracle DBA 都知?I/O 是响应时间的最大组成部分。其中磁?I/O 特别厉害Q因为当 Oracle q盘上的一个数据文件得C个数据块Ӟȝq程必ȝ待物?I/O 操作完成。磁盘操作要比数据缓冲慢 10,000 倍。因此,如果可以?I/O 最化Q或者减由于磁盘上的文件竞争而带来的瓉Q就可以大大地改?Oracle 数据库的性能?<br />   如果pȝ响应很慢Q通过减少盘 I/O 可以有一个很快的改善。如果在一个事务中通过按一定的范围搜烦 primary-key 索引来访问表Q那么重C CTAS 的方法组l表是你减?I/O 的首要策略。通过在物理上行排序为和 primary-key 索引一L(fng)序Q就可以加快获得数据的速度?<br />   p盘的负载^衡一P行的重新排序也是很简单的Q而且也很快。通过与其它的 DBA 理技巧一起用,可以在?I/O 的系l中大大地减响应的旉?<br />   在高定w的在U事务处理环境中Q?online transaction processing Q?OLTP Q,数据是由一?primary 索引得到的,重新排序表格的行可以o(h)q箋块的序和它们的 primary 索引一Pq样可以在索引驱动的表格查询中Q减物?I/O q且改善响应旉。这个技巧仅在应用选择多行的时候有用,或者在使用索引范围搜烦和应用发出多个查询来得到q箋?key 时有效。对于随机的唯一 primary-key Q主键)的访问将不会(x)p重新排序中得到好处?<br />   让我们看一下它是如何工作的。考虑以下的一?SQL 的查询,它用一个烦引来得到 100 行:(x) <br />selectsalaryfromemployeewherelast_name like 'B%'; <br />q个查询会(x)使用 last_name_index Q搜索其中的每一行来得到目标行。这个查询将?x)至?100 ơ物理磁盘的dQ因?employee 的行存放在不同的数据块中?<br />   不过Q如果表中的行已l重新排序ؓ(f)?last_name_index 的一P同样的查询又?x)怎样处理呢?我们可以看到q个查询只需要三ơ的盘 I/O p完全?100 个员工的资料Q一ơ用作烦引的dQ两ơ用作数据块的读取)Q减了 97 ơ的块读取?<br />   重新排序带来的性能改善的程度在于在你开始的时候行的ؕ序性如何,以及你需要由序列中访问多行。至于一个表中的行与索引的排序键的匹配程度,可以查看数据字典中的 dba_indexes ?dba_tables 视图得到?<br />   ?dba_indexes 的视图中Q查?clustering_factor 列。如?clustering_factor 的值和表中的块数目大致一P那么你的表和索引的顺序是一L(fng)。不q,如果 clustering_factor 的值接q表中的行数目,那就表明表格中的行和索引的顺序是不一L(fng)?<br />   行重新排序的作用是不可以看的。在需要进行大范围的烦引搜索的大表中,行重新排序可以o(h)查询的性能提高三倍?<br />   一旦你已经军_重新排序表中的行Q你可以使用以下的工具之一来重新组l表根{?<br />  . 使用 Oracle ?Create Table As Select (CTAS) 语法来拷贝表?<br />  . Oracle9i 自带的表格重新组l工?<br />  <br />   以下Q我们来看以?SQL 语句的调优?<br /><br />  SQL 调优 <br />  Oracle ?SQL 调优是一个复杂的主题Q甚x需要整本书来介l?Oracle SQL 调优的细微差别。不q有一些基本的规则是每?Oracle DBA 都需要跟从的Q这些规则可以改善他们系l的性能?SQL 调优的目标是单的Q?<br />  . 消除不必要的大表全表搜烦Q不必要的全表搜索导致大量不必要?I/O Q从而拖慢整个数据库的性能。调优专安先会(x)Ҏ(gu)查询q回的行数目来评?SQL 。在一个有序的表中Q如果查询返回少?40% 的行Q或者在一个无序的表中Q返回少?7% 的行Q那么这个查询都可以调整Z用一个烦引来代替全表搜烦。对于不必要的全表搜索来_(d)最常见的调优方法是增加索引。可以在表中加入标准?B ?wi)烦引,也可以加?bitmap 和基于函数的索引。要军_是否消除一个全表搜索,你可以仔l检查烦引搜索的 I/O 开销和全表搜索的开销Q它们的开销和数据块的读取和可能的ƈ行执行有养Iq将两者作Ҏ(gu)。在一些情况下Q一些不必要的全表搜索的消除可以通过强制使用一?index 来达刎ͼ只需要在 SQL 语句中加入一个烦引的提示可以了?<br />  . 在全表搜索是一个最快的讉KҎ(gu)Ӟ小表的全表搜烦攑ֈ~存中,调优专家应该保有一个专门的数据~冲用作行缓册Ӏ在 Oracle7 中,你可以?alter table xxx cache 语句Q在 Oracle8 或以上,表可以被强制ؓ(f)攑ֈ KEEP 池中~冲?<br />  . 保最优的索引使用 Q对于改善查询的速度Q这是特别重要的。有?Oracle 可以选择多个索引来进行查询,调优专家必须查每个烦引ƈ且确?Oracle 使用正确的烦引。它q包?bitmap 和基于函数的索引的用?<br />  . 保最优的 JOIN 操作Q有些查询?NESTED LOOP join 快一些,有些则是 HASH join 快一些,另外一些则?sort-merge join 更快?<br />   q些规则看来单,不过它们?SQL 调优d?90% Qƈ且它们也无需完全懂得 Oracle SQL 的内部运作。以下我们来单概览以?Oracle SQL 的优化?<br />   我们首先要查?Oracle 的排序,q且看一看排序操作是如何影响性能的?<br /><br />   调整 Oracle 的排序操?<br />   排序?SQL 语法中一个小的方面,但很重要Q在 Oracle 的调整中Q它常常被忽略。当使用 create index ?ORDER BY 或?GROUP BY 的语句时Q?Oracle 数据库将?x)自动执行排序的操作。通常Q在以下的情况下 Oracle ?x)进行排序的操作Q?<br />   使用 Order by ?SQL 语句 <br />   使用 Group by ?SQL 语句 <br />   在创建烦引的时?<br />   q行 table join Ӟ׃现有索引的不导?SQL 优化器调?MERGE SORT <br />   当与 Oracle 建立起一?session Ӟ在内存中׃(x) session 分配一个私有的排序区域。如果该q接是一个专用的q接 (dedicated connection) Q那么就?x)根?init.ora ?sort_area_size 参数的大在内存中分配一?Program Global Area (PGA) 。如果连接是通过多线E服务器建立的,那么排序的空间就?large_pool 中分配。不q的是,对于所有的 session Q用做排序的内存量都必须是一L(fng)Q我们不能ؓ(f)需要更大排序的操作分配额外的排序区域。因此,设计者必MZ个^衡,在分配够的排序区域以避免发生大的排序Q务时出现盘排序Q?disk sorts Q的同时Q对于那些ƈ不需要进行很大排序的dQ就?x)出C些浪贏V当Ӟ当排序的I间需求超Z sort_area_size 的大时Q这时将?x)?TEMP 表空间中分页q行盘排序。磁盘排序要比内存排序大概慢 14,000 倍?<br />   上面我们已经提到Q私有排序区域的大小是有 init.ora 中的 sort_area_size 参数军_的。每个排序所占用的大由 init.ora 中的 sort_area_retained_size 参数军_。当排序不能在分配的I间中完成时Q就?x)用磁盘排序的方式Q即?Oracle 实例中的临时表空间中q行?<br />   盘排序的开销是很大的Q有几个斚w的原因。首先,和内存排序相比较Q它们特别慢Q而且盘排序?x)消耗(f)时表I间中的资源?Oracle q必d配缓冲池块来保持临时表空间中的块。无Z么时候,内存排序都比盘排序好,盘排序会(x)令Q务变慢,q且?x)媄?Oracle 实例的当前Q务的执行。还有,q多的磁盘排序将?x)o(h) free buffer waits 的值变高,从而o(h)其它d的数据块q冲中U走?<br />   接着Q让我们看一?Oracle 的竞争,q且看一下表的存储参数的讄是如何媄?SQL UPDATE ?INSERT 语句的性能的?<br /><br />调整 Oracle 的竞?<br />  Oracle 的其中一个优Ҏ(gu)它可以管理每个表I间中的自由I间?Oracle 负责处理表和索引的空间管理,q样可以让我们无需懂得 Oracle 的表和烦引的内部q作。不q,对于有经验的 Oracle 调优专家来说Q他需要懂?Oracle 是如何管理表?extent 和空闲的数据块。对于调整拥有高?insert 或?update 的系l来_(d)q是非常重要的?<br />   要精通对象的调整Q你需要懂?freelists ?freelist l的行ؓ(f)Q它们和 pctfree ?pctused 参数的值有兟뀂这些知识对于企业资源计划( ERP Q的应用是特别重要的Q因为在q些应用中,不正的表设|通常?DML 语句执行慢的原因?<br />   对于初学者来_(d)最常见的错误是认ؓ(f)默认?Oracle 参数对于所有的对象都是最佳的。除非磁盘的消耗不是一个问题,否则在设|表?pctfree ?pctused 参数Ӟ必考虑q_的行长和数据库的块大,q样I的块才?x)被有效地放?freelists 中。当q些讄不正时Q那些得到的 freelists 也是 "dead" 块,因ؓ(f)它们没有_的空间来存储一行,q样会(x)D明显的处理gq?<br />Freelists 对于有效地重C?Oracle 表空间中的空间是很重要的Q它?pctfree ?pctused q两个存储参数的讄直接相关。通过?pctused 讄Z个高的|q时数据库就?x)尽快地重新使用块。不q,高性能和有效地重新使用表的块是对立的。在调整 Oracle 的表格和索引Ӟ需要认真考虑I竟需要高性能q是有效的空间重用,q且据此来设|表的参数。以下我们来看一下这?freelists 是如何媄?Oracle 的性能的?<br />   当有一个请求需要插入一行到表格中时Q?Oracle ׃(x)?freelist 中寻找一个有_的空间来容纳一行的块。你也许知道Q?freelist 串是攑֜表格或者烦引的W一个块中,q个块也被称为段_(d) segment header Q?pctfree ?pctused 参数的唯一目的是Z控制块如何在 freelists 中进出。虽?freelist link ?unlink 是简单的 Oracle 功能Q不q设|?freelist link (pctused) ?unlink (pctfree) ?Oracle 的性能实有媄响?<br />   ?DBA 的基本知识知道, pctfree 参数是控?freelist un-links 的(卛_块由 freelists 中移除)。设|?pctfree=10 意味着每个块都保留 10% 的空间用作行扩展?pctused 参数是控?freelist re-links 的。设|?pctused=40 意味着只有在块的用低?40% 时才?x)回到表格?freelists 中?<br />   许多新手对于一个块重新回到 freelists 后的处理都有些误解。其实,一旦由于一个删除的操作而o(h)块被重新加入?freelist 中,它将?x)一直保留在 freelist 中即使空间的使用过?60% Q只有在到达 pctfree 时才?x)将数据块?freelist 中移走?<br /><br />   表格和烦引存储参数设|的要求ȝ <br />   以下的一些规则是用来讄 freelists, freelist groups, pctfree ?pctused 存储参数的。你也知道, pctused ?pctfree 的值是可以很容易地通过 alter table 命o(h)修改的,一个好?DBA 应该知道如何讄q些参数的最?jng)_{?<br />   有效C用空间和高性能之间是有矛盾的,而表格的存储参数是控制q个斚w的矛盾:(x) <br />. 对于需要有效地重新使用I间Q可以设|一个高?pctused |不过副作用是需要额外的 I/O 。一个高?pctused 值意味着相对满的块都?x)放?freelist 中。因此,q些块在再次满之前只可以接受几行记录Q从而导致更多的 I/O ?<br />. q求高性能的话Q可以将 pctused 讄Z个低的|q意味着 Oracle 不会(x)数据块攑ֈ freelists 中直到它几乎是空的。那么块可以在满之前接收更多的行,因此可以减少插入操作?I/O 。要C Oracle 扩展新块的性能要比重新使用现有的块高。对?Oracle 来说Q扩展一个表比管?freelists 消耗更的资源?<br />   让我们来回顾一下设|对象存储参数的一些常见规则:(x) <br />   Q经常将 pctused 讄为可以接收一条新行。对于不能接受一行的 free blocks 对于我们来说是没有用的。如果这样做Q将?x)o(h) Oracle 的性能变慢Q因?Oracle 在扩展表来得到一个空的块之前Q企图读?5 ?"dead" ?free block ?<br />   Q表g chained rows 的出现意味着 pctfree 太低或者是 db_block_size 太少。在很多情况下, RAW ?LONG RAW 列都很巨大,以至过?Oracle 的最大块的大,q时 chained rows 是不可以避免的?<br />   Q如果一个表有同时插入的 SQL 语句Q那么它需要有同时删除的语句。运行单一个一个清除的工作会(x)把全部的I闲块放C?freelist 中,而没有其它包含有MI闲块的 freelists 出现?<br />   Q?freelist 参数应该讄格同时更新的最大倹{例如,如果在Q何时候,某个表最多有 20 个用h行插入的操作Q那么该表的参数应该讄?freelists=20 ?<br />   应记住的?freelist groups 参数的值只是对?Oracle Parallel Server ?Real Application Clusters 才是有用的。对于这c?Oracle Q?freelist groups 应该讄问该表格?Oracle Parallel Server 实例的数?/p> <img src ="http://m.tkk7.com/1948asd/aggbug/265213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2009-04-13 08:57 <a href="http://m.tkk7.com/1948asd/archive/2009/04/13/265213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 基础http://m.tkk7.com/1948asd/archive/2009/04/13/265211.html我是菜鸟我是菜鸟Mon, 13 Apr 2009 00:52:00 GMThttp://m.tkk7.com/1948asd/archive/2009/04/13/265211.htmlhttp://m.tkk7.com/1948asd/comments/265211.htmlhttp://m.tkk7.com/1948asd/archive/2009/04/13/265211.html#Feedback0http://m.tkk7.com/1948asd/comments/commentRss/265211.htmlhttp://m.tkk7.com/1948asd/services/trackbacks/265211.htmlsqlplus 然后输入pȝ用户名和密码
登陆别的用户
conn 用户?密码;
2.创徏表空?br />create tablespace I间?br />datafile 'c:\I间? size 15M  --表空间的存放路径,初始gؓ(f)15M
autoExtend on next 10M  --I间的自动增长的值是10M
permanent online;  --怹使用
3.创徏用户
create user shi   --创徏用户名ؓ(f)shi
identified by scj  --创徏密码为scj
default tablespace 表空间名 --默认表空间名
temporary tablespace temp --临时表空间ؓ(f)temp
profile default   --受profile文g的限?br />quota unlimited on 表空间名; --在表I间下面不受限制
4.创徏角色
create role 角色?identified by 密码;
5.l角色授?br />grant create session to 角色名;--l角色授予创Z(x)话的权限
grant 角色?to 用户名; --把角色授予用?br />6.l用h予权?br />grant create session,resource to shi;--lshi用户授予所有权?br />grant create table to shi; --lshi用户授予创徏表的权限
7.select table_name from user_tables;   察看当前用户下的所有表
8.select tablespace_name from user_tablespaces; 察看当前用户下的 表空?br />9.select username from dba_users;察看所有用户名U命?必须用sys as sysdba登陆
Oracle 查看用户权限数据字典视图分ؓ(f)3大类, 用前~区别Q分别ؓ(f)QUSERQALL ?DBAQ许多数据字典视囑֌含相似的信息?

USER_*:有关用户所拥有的对象信息,即用戯己创建的对象信息

ALL_*Q有关用户可以访问的对象的信息,即用戯己创建的对象的信息加上其他用户创建的对象但该用户有权讉K的信?/p>

DBA_*Q有x个数据库中对象的信息

Q这里的*可以为TABLESQ?INDEXESQ?OBJECTSQ?USERS{?/p>

1.查看所有用P(x)
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用户pȝ权限Q?br />select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限Q?br />select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角Ԍ(x)
select * from dba_roles;
5.查看用户所拥有的角Ԍ(x)
select * from dba_role_privs;
select * from user_role_privs;

6.查看当前用户的缺省表I间
select username,default_tablespace from user_users;

7.查看某个角色的具体权限,如grant connect,resource,create session,create view to TEST;查看RESOURCEh那些权限Q用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
 

10.创徏?br />create table 表名
(
id int not null,
name varchar2(20) not null
)tablespace 表空间名  --所属的表空?br />storage
(
   initial 64K   --表的初始?br />   minextents 1   --最扩展?br />   maxextents unlimited  --最大扩展?br />);
11.--为usrs表添加主键和索引
alter table users
add constraint pk primary key (ID);
12.为已l创建users表添加外?br />alter table users
  add constraint fk_roleid foreign key (roleid)
  references role(role_id) on delete cascad; --下边写主表的?br />   on delete cascad是创建?br />13.把两个列q接h
select concat(name,id) from 表名Q ?-把name和idq接h
14.截取字符?br />select column(name,'?) from 表名Q ?-把name中的‘李’去?br />15.q行事务之前必须?br />set serveroutput on;  --打开输入输出Q不写的?打印不出信息Q?br />16.while的应?br />declare   --声明部分
ccc number:=1;  --复职
a number:=0;
begin   --事务的开?br />while ccc<=100 loop --循环
if((ccc mod 3)=0) then --条g
 dbms_output.put_line(ccc||',');    --打印昄
 a:=a+ccc;
end if;   --l束if
ccc:=ccc+1;
end loop;  --l束循环
dbms_output.put_line(a); 
end;   --l束事务
/   
17.select into  的用法?-只能处理一行结果集
declare
  name varchar(30);
begin
 select username into name
 from users
 where id=2;
dbms_output.put_line('姓名为:(x)'||name);
end;
/
18.利用%rowtype属性可以在q行时方便的声明记录变量和其他结?br />Set serveroutput on;
Declare
   utype hr.employees%rowtype;
Begin
Select * into utype from hr.employees where employee_id=194;
Dbms_output.put_line('姓名'|| utype.first_name);
Dbms_output.put_line('生日'|| utype.last_name);
end;
/   --%rowtype惛_于复制一个表
19.游标的定义和使用
Declare
Cursor ucur is select * from users; --声明游标
Us users%rowtype;--定义与游标想匚w的变?br />Begin
Open ucur;--打开游标
Fetch ucur into us;
While ucur %found loop --使用循环遍历游标的查询结?br />Dbms_output.put_line('姓名Q?||us.username||'生日'||us.brithday);
Fetch ucur into us;
End loop;
Close ucur; --关闭游标
End;
=======================================
%found在前一条的fetch语句臛_对应数据库的一行时Q?found属性gؓ(f)trueQ否则ؓ(f)false;
% notfound 在前一条fetch语句没有对应的数据库行时Q?notfound属性gؓ(f)trueQ否则ؓ(f)false;
%isopen 在游标打开?isopen属性gؓ(f)trueQ否则ؓ(f)false;
%rowcount昄q今为止从显C游标中取出的行?/p>

20.
删除
drop tablespace I间?including contents; --删除表空间和里面的内?br />drop table 表名   --删除?br />drop user 用户名 ?-删除用户

insert into student(stuid,stuname,age,birthday)values(stu_sn.nextval,'lisi',21,to_date('1989-09-08','yyyy-mm-dd'));
insert into student(stuid,stuname,age,birthday)values(stu_sn.nextval,'wangwu',21,to_date('1989-09-08','yyyy-mm-dd'));
insert into student(stuid,stuname,age,birthday)values(stu_sn.nextval,'zhaoliu',20,to_date('1990-09-08','yyyy-mm-dd'));
insert into exam(stuid,subid,grade)values(1,2,70);
insert into exam(stuid,subid,grade)values(2,1,45);
insert into exam(stuid,subid,grade)values(2,2,70);



我是菜鸟 2009-04-13 08:52 发表评论
]]>
Servlet及JSP中的多线E同步问?/title><link>http://m.tkk7.com/1948asd/archive/2009/04/12/265092.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Sun, 12 Apr 2009 03:16:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2009/04/12/265092.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/265092.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2009/04/12/265092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/265092.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/265092.html</trackback:ping><description><![CDATA[ <strong>一、在Servlet/JSP中的几种变量cd</strong> <br /> <br />  在编写Servlet/JSPE序Ӟ对实例变量一定要心使用。因为实例变量是非线E安全的。在Servlet/JSP中,变量可以归ؓ(f)下面的几c:(x) <br /><br />  <b>1. cd?/b><br /><br />  requestQresponse,sessionQconfig,applicationQ以及JSP面内置的page, pageContext。其中除了application外,其它都是U程安全的?<br /><br />  <b>2. 实例变量</b><br /><br />  实例变量是实例所有的Q在堆中分配。在Servlet/JSP容器中,一般仅实例化一个Servlet/JSP实例Q启动多个该实例的线E来处理h。而实例变量是该实例所有的U程所׃nQ所以,实例变量不是U程安全的?<br /><br />  <b>3. 局部变?/b><br /><br />  局部变量在堆栈中分配,因ؓ(f)每一个线E有自己的执行堆栈,所以,局部变量是U程安全的?img src ="http://m.tkk7.com/1948asd/aggbug/265092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2009-04-12 11:16 <a href="http://m.tkk7.com/1948asd/archive/2009/04/12/265092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如梦?/title><link>http://m.tkk7.com/1948asd/archive/2009/03/27/262294.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Fri, 27 Mar 2009 02:08:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2009/03/27/262294.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/262294.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2009/03/27/262294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/262294.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/262294.html</trackback:ping><description><![CDATA[ <font size="4">汽R渴望公\Q?<br />  p渴望雨露Q?<br />  太监q切渴望著雄性激素。?<br />  灵魂渴望度Q?<br />  心灵渴望归宿Q?<br />  而我则迫切(f)望著有个媛_。?<br />  众里d千百度,  <br />  t^脚下路。?<br />  蓦然回首l环,  <br />  大婶大娘无数。?<br />  偶有女光顾Q?<br />  q是有夫之妇Q?<br />  余下大多敎ͼ  <br />  基本不堪入目。?<br />  旉犹如脱兔Q?<br />  匆匆不肯停步。?<br />  转眼把我拖C该当爹妈的岁数。?<br />  然而上天却挺可Ӟ  <br />  Ҏ(gu)不管不顾。?<br />  把我培养的庸庸碌,  <br />  难以获得女的爱慕。?<br />  我曾向月老求助,  <br />  求他我单n的生涯结束。?<br />  而他l予我的眷顾Q?<br />  竟是接踵而至的恶奛_怨妇。?<br />  比v她们的飞扬跋扈,  <br />  以及Ҏ(gu)_上的无情戮屠Q?<br />  我更愿意选择让步Q?<br />  甘心走向黄泉之\。?<br />  无助Q无助。?<br />  其实我ƈ非一无是处。?<br />  我有很多的优点可以列丑֒陈述。?<br />  但我不知道是什么缘故,  <br />  我竟无法得到q别人的敬Ԓ和拥护?<br />  我的爱心彰明较著Q?<br />  最最热心于公益捐助。?<br />  Z国利和体育事业的长q步Q、?<br />  我不知疲倦的奔L于体彩和彩中心投注Q?<br />  Z向世ZC的C会(x)M制度Q?<br />  以及在党和国家的领导下我们小L(fng)E度Q?<br />  我毅然决然的增加了喝酒的ơ数Q?<br />  l于l出了代表富的啤酒肚;  <br />  我还坚持Zh民服务,用我最大的热情为别人提供帮助。?<br />  Z让我q片心意落到实处Q?<br />  我硬是把不愿q去的大娘也搀q了马\……?<br />  而我得到的赞扬却q远于挨骂的次数。?<br />  我不明白我的努力换来的ؓ(f)何只是别人的不屑一儡x愤怒。?<br />  是因为我qh的天赋,  <br />  让他们相形见l,  <br />  q是我高的品格和气度,  <br />  让他们生了深深的嫉妒?  <br />  我的优秀q没有让我自负,  <br />  更没有因q伟大而恃才傲物。?<br />  本以h能有奛_Ҏ(gu)暗生情素Q?<br />  谁知我等到现在也q没有一点迹象和眉目。?<br />  其实要把女h比做猎物Q?<br />  我则是一个迷茫的猎户。?<br />  因ؓ(f)我实在是不懂狩猎的技术。?<br />  该跟著群雄逐鹿Q?<br />  q是该l著守株待兔Q?<br />  思考了很久也没有整理出一条清晰的思\。?<br />  也许q便也成了我的禁锢,  <br />  成了我无法得到爱情的又一大因素。?<br />  或许曄的某ơ时我奢侈的贻误Q?<br />  造成了现在的万劫不复。?<br />  ׃q个国度Q?<br />  人口资源丰富。?<br />  但ؓ(f)何娶不到老婆的男是不计其敎ͼ  <br />  是因为封建思想的束~,  <br />  打ؕ了男女的比例和数目,  <br />  q是因ؓ(f)C会(x)的退步,  <br />  又重新开始了一夫多ȝ制度Q?<br />  有时x也他妈愤怒,  <br />  你说凭啥大款可以包MQ个情妇Q?<br />  N只ؓ(f)著权利和财富Q?<br />  可以不受道L(fng)U束Q?<br />  q置我们光棍于不,  <br />  抢占著资源无敎ͼ  <br />  怪也怪女Zq于世故Q?<br />  寚w钱和C的趋之若鹜。?<br />  只知道花园洋房和别墅Q?<br />  早把真情的概念颠覆。?<br />  冲动时我真恨不得变成动物Q?<br />  哪怕只是头卖力的牲畜。?<br />  听凭Mh的吩咐,  <br />  不用感受做h的无助。?<br />  或者干脆来个移花接木,  <br />  d的做个变性手术。?<br />  跑到人群中滥竽充敎ͼ  <br />  也好让光们多一条可以选择的出路。?<br />  街上的婚介星|棋布。?<br />  我也曑։惌他们能帮我打开销路。?<br />  然而最l的l果是让我明白了什么叫认贼作父Q?<br />  q被婚托儿们榨干了我几年的收入。?<br />  吃不著猪y儿能看看猪跑也对我心灵创伤的q_。?<br />  所以能看到女的繁华地D|了我最qd。?<br />  每当看著她们q著ƾ款的猫步,  <br />  在我的视UK出出入入Q?<br />  我L能感受到久违了的心蟩q便痛心一下她们的已ؓ(f)人妇。?<br />  现实的打击让我鸡肠小肚。?<br />  我最看不惯情侣们当众亲密q度。?<br />  只要看到有hE越h半步Q?<br />  我就?x)上前阻止ƈ提醒他们病出口入。?<br />  l果自然不必赘述Q?<br />  我经怼(x)体验到肢体语a的丰富。?<br />  管如此我也q没有减对此事的关注,  <br />  反而更觉得有必要加大宣传的d和力度。?<br />  没有q倾注Q?<br />  我如涸辙之鲋。?<br />  q样的生zȝ实很难让我安之若素。?<br />  看著朋友们已ZhӞ  <br />  生z过的美满和睦,  <br />  我又何尝不是深深的M慕,  <br />  q(f)望著感情上的p致富Q?<br />  都说男儿有泪不扑,  <br />  但那l对是未C心处。?<br />  有谁知道泪水已经多少ơ模p了我心늚H户Q?<br />  况且咱都是一_,  <br />  凭啥我就不能在爱情的岸登陆Q?<br />  只能一口一口的吃著q醋Q?<br />  被动的尽著晚婚晚育的义务Q?<br />  人生本来q促,我又怎能p样默默的虚度Q?<br />  Z快l自己找一个归宿,  <br />  我决心不择手D늚全力以ʎ。?<br />  错误Q错误。?<br />  q种x最l成了我N的劫数。?<br />  没想到我一时的慌不择\Q?<br />  竟上演了那样惨绝人寰的一q。?<br />  那是我走投无路,  <br />  勑ּ了有夫之妇。?<br />  谁知道罪行|Ԍ  <br />  被h家当场抓住。?<br />  只后(zhn)不?x)武术,?<br />  没能够杀路。?<br />  无奈的Q人摆布,  <br />  惨遭了打?yn)L复。?<br />  他们恼羞成怒,  <br />  打得义无反顾。?<br />  片刀循环往复,  <br />  板砖频频招呼。?<br />  我浑w血如注,  <br />  俩腿q不住抽搐。?<br />  走错那罪恶一步,  <br />  差点死不瞑目。?<br />  恐怖,恐怖。、?<br />  真庆q我q能把命保住。?<br />  那场我自D演的前R之覆Q?<br />  带给了我贼深贼深的感触。?<br />  往事历历在目,  <br />  我此M一q溯。?<br />  l历了苦痛挣扎后的觉(zhn),  <br />  l于上升C前所未有的高度。?<br />  问世间情Z物,  <br />  我算是大d(zhn)。?<br />  感情上的事儿看来q真不能q于盲目。?<br />  是你的挡不住Q?<br />  不是你的留也留不住。?<br />  别h的老婆是再好也不能轻易接触。?<br />  有道是皮之不存毛焉附,  <br />  我要是OQӞIQ了q上哪儿L我的贤内助?  <br />  更何况h生短促,  <br />  q有很多东西值得我们珍惜和呵护。?<br />  爱情的光环固然眩目,  <br />  也毕竟不是生命的全部。?<br />  岁月的痕痕无孔不入。?<br />  无有爱情的皮囊苍老的更加q速。?<br />  看著我那用蒸汽熨斗都已无法熨q的面部Q?<br />  真不知还有谁肯向我将她的ln托付。?<br />  {待著等待到行将木Q?<br />  持箋著持l到人生落幕。?<br />  盼望吧盼望著解决光棍待遇的法规早日颁布,  <br />  但愿啊但愿我首先t入的能够是婚姻的坟?/font>  <br /><img src ="http://m.tkk7.com/1948asd/aggbug/262294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2009-03-27 10:08 <a href="http://m.tkk7.com/1948asd/archive/2009/03/27/262294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2输入校验程http://m.tkk7.com/1948asd/archive/2009/03/26/262026.html我是菜鸟我是菜鸟Thu, 26 Mar 2009 01:54:00 GMThttp://m.tkk7.com/1948asd/archive/2009/03/26/262026.htmlhttp://m.tkk7.com/1948asd/comments/262026.htmlhttp://m.tkk7.com/1948asd/archive/2009/03/26/262026.html#Feedback0http://m.tkk7.com/1948asd/comments/commentRss/262026.htmlhttp://m.tkk7.com/1948asd/services/trackbacks/262026.html2、在cd转换中如果出现异常,异怿存到ActionContext中,conversionError拦截器负责将其封装到fieldError中,然后执行3Q如无异常,直接q入3?br />3、通过反射调用validatorXxxҎ(gu)QXxx代表处理用户h的业务逻辑的方法名?br />4、调用ActioncȝvalidatorҎ(gu)?br />5、如果以上没有出现fieldErrorQ则调用Action的业务处理方法,如有fieldError错误Q{入input逻辑视图所指定的视图资源?br />
处理程如下Q?br />

struts.gif

我是菜鸟 2009-03-26 09:54 发表评论
]]>
当和遇上钻?/title><link>http://m.tkk7.com/1948asd/archive/2006/09/26/71957.html</link><dc:creator>我是菜鸟</dc:creator><author>我是菜鸟</author><pubDate>Tue, 26 Sep 2006 05:36:00 GMT</pubDate><guid>http://m.tkk7.com/1948asd/archive/2006/09/26/71957.html</guid><wfw:comment>http://m.tkk7.com/1948asd/comments/71957.html</wfw:comment><comments>http://m.tkk7.com/1948asd/archive/2006/09/26/71957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/1948asd/comments/commentRss/71957.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/1948asd/services/trackbacks/71957.html</trackback:ping><description><![CDATA[在你的想象中Q和可能是q个样子Qn材枯瘦、老态龙钟,与世隔绝而又高深莫测?br /><br />    现在Q请惌下面的场境:(x)你就是这个和。有一天,在你闭关修炼二十q之后,你的师傅对你_(d)你已l达到够的境界Q现在,要求你下山去Q在Z间修?font color="#808080">Q——最好是l商Q呵呵)</font>Q?br /><br />     然后你走出清静的?jng)门Q出向喧嚣的世。在路上Q你看见脚下有一颗异常发亮的东西,在阳光下熠熠生辉Q耀眼夺眹{你以前从未看见q个东西Q你甚至叫不个东西的名字Q你q时H然惌v一部你l常诵读的经典《金刚经》,你想Q这是是不是传说的金刚石Q或者叫ȝ呢?<br /><br />    q时Q你有三个选择Q?br /><br />    W一Q你可以视而不见,从这颗可能是ȝ的小东西旁边走过。如果你q样做,你是对的Q因Z早已l知道,万物本性ؓ(f)I,你看见了一颗钻矻I其实你什么都没有看到Q?br /><br />    W二Q把q颗ȝ拾v来,交给你的师傅Q因为寺庙里已经I得揭不开锅了Q正需要你的化~,你可以把q颗可能的钻矛_作上天给你的一ơ布施?br /><br />    W三Q你拾vq颗ȝQ仔l地研究它,使用它,一辈子都不要离开q它?br /><br />    事实上,上面提到的和正是我Q而我在以往历次轮回的经历中Q上面的选择我都曄做过。第一ơ,我选择了视而不见。我回到庙里Q师傅对我的做法非常高兴Q他_(d)(x)你终于明白万物的I性了?br /><br />    W二ơ,我选择了交回师傅。师傅也非常高兴Q他_(d)你不仅已l懂得,而且在实践中做到布施、持戒、忍辱、精q和定Q你已经获得真正的般若智慧了?br /><br />    W三ơ,我把ȝ拾v后,没有交给M人,最l,我成Z名钻矛_人,拥有亿万财富。我在(f)M前,把我所有的财富分给了我认识或者不认识的hQ最后I地dZQ正如我的每一ơ尘世经历一栗这一ơ,我没有听到我师傅的Q何评仗?br /><br />    其实Q在每个人的一生中Q会(x)遇到诸如此类的选择Q而最l的l果非常奇妙Q它没有对与错之分,所有的对与错只Z一个原因:(x)如果你觉得选择是对的,l果对Q如果你觉得选择错了Q结果就错了?br /><br /><font color="#0000ff">之二 我是和尚Q我l营ȝ</font><br /><br />    在这一世中Q作为和,我选择了当一名钻矛_人。其实,我是否是一名和中Q以及我是否从事ȝ事业都ƈ不重要,重要的是Q通过U种机缘获得?jng)法的大道。如果作为钻矛_的我做到了,从事各行各业的你Q也一定能做到?br /><br />     我的事业之\始于寚w石的打磨。打钻x一异常劳累的工作Q因为钻x世界上最坚硬的物质,除了它自己,没有什么东西能动得了它一分一毫!当然我就偏偏利用ȝ来打钻矟뀂在打磨和加工的q程中,我明白了《金刚经》的微言大义Q万物的潜能一如钻矻I一旦知晓这U潜能,p带来人内在的徯与外在的成功。事实上Q一旦我打磨成功一颗钻矻I我内心的ȝ也就成熟了一颗;一旦我内有的心性有如钻矌澈明Q我的事业也p得了成功Q我的手中开始抓着大把大把的钻矻I<br /><br />    在纽U的ȝ界,可以说每个h都来历非凡,每个人都有离奇的w世和背景,而我也有着一些小的特点Q我是一名在ȝ?jng)学的博士,一名兼职做ȝ生意的和?br /><br />     我发玎ͼ我的工作与我在寺院中的修行一脉相承,形式变换了,实质却是完全相同Q我从最基层的职位开始做P虽然入不敷出我还努力攒钱Q最l买了一套西服;我每天六炚w起床Q而四时之前Q也是凌晨两点Q我刚刚睡下Q我成天w着西装Q无论里面的衬衫是否被汗湉K,我依然保持着怸的笑容;无论工作有多忙碌Q我没有遗忘学习(fn)Q而且利用出差的机?x),回到寺院中l修行;我的老板、同事以及顾客,不可能每天对我{彬有C|甚至l常有恶语相加,但我心中全无嗔怒,我心静如_(d)知道自己该做什么,不该做什么。在寺院中,我所做的事完全不一P但它们都有着同样的名Uͼ你可以把q些事说成是“布施、忍辱、持戒、精q、禅定、般若”,你甚臛_以简单地_(d)(x)“我在谋生”。这有什么差别呢?br /><br /><font color="#0000ff">之三 和尚的心态,商h的成?/font><br /><br />    在一般h的眼里,和尚非常奇怪:(x)明明寚w钱、美艌Ӏ权力、名誉和C的追求是Z常情Q是Z本性,每个人在为得到它们而欣喜,得不到它们而愧疚,偏偏是和和所谓的隐士们,没有能耐得到它们,却故作清高地“视金钱为粪土”,U尘的乐你都不知道Q你凭什么看破红!如果仅仅因ؓ(f)你IP你?zhn)伤,你不如h意就逃避U尘循入寺庙Q那只能说明你是个没有勇气、缺乏能力的懦夫Q?br /><br />    其实Q和没有“视金钱如粪土”过Q那只是个别偏激文h的无病呻呤之作。相养I和尚珍爱金钱Q寺中的和尚q不没有能力去赚钱,只把q个布施的机?x)留l了q大的善男h善女人,而自己却要用“忍辱”、“持戒”来勤修_进。这也是仅是三万六千法门中的一U。而这三万六千法门Q正??6000ơ幂Q你可以惌一下,q个数字有多么大?br /><br />    是不是和对金钱、美艌Ӏ权力和名誉没有了追求呢Q绝对不是,只是他们比较q运Q发C一般hg的金钱、美艌Ӏ权力和名誉背后的东西,也就是说Q他们只是把一般hq求的东西当Z了表相,从而发C表相深底的实质。这个实质是什么呢Q如果我说这是“不可说”,你可能会(x)举v一Ҏ(gu)子来打我。由于害怕被打,我打一个比dQ这个所谓的实质Q其实正是你心中的钻矟?br /><br />    做和的功课Q就是日复一日地打磨内心的钻矟뀂其实这颗钻x然天成、积天地之灵气、万物之_֍Qh(hun)gԌ功d无量Q它是完全的化nQ它是佛(jng)性的代表Q只不过被你的一些前往事,遮蔽了而已?br /><br />     因此Q五门下的大弟子神U做偈_(d)(x)w是菩提?wi),心如明镜収ͼ时时勤拂拭,勿惹尘埃。这真的为我们脱苦hZ盏明灯。但偏偏Z个慧能和,他说Q菩提本无树(wi)Q明镜亦非台Q本来无一物,何处惹尘埃。有Q后者的境界更高。其实,境界那有高下之分Q只不过秀话是说给自己听的Q也是说过天下众生的,相当于大学教材,大家h较低Q还需要苦学;而慧能的话也说给自己听的Q却是说q智慧已开者,相当于说q博士听的,没有通过博士的门Q最好还是不要看博士的书。即使这一生成不了博士Q也要ؓ(f)下一世打下基? <h4><font color="#0000ff">    D  (台湾?jng)光山寺住持 心定和尚) </font></h4><p>    (zhn)是因何U动翻阅这本书的?是被面的标题所吸引Q对作者的w䆾感到好奇Q还是试图ؓ(f)某种烦闷、愁困找寻解{?……或者仅是顺手翻开书页Q不是显意识或潜意识的动作Q在那背后,一定有某种q微的网l在늳着、拨动着。这些在脑v中、冥冥中飘忽闪逝的意念Q能否以某种隐约的概忉|Q玎ͼq而清晰地昑֪、落实,在于我们能否“清楚”洞见与掌握q些念头?</p><p>    两年前,初次接到亚马逊网l书店的书讯Q介l这本由藏传?jng)教格鲁z格襉K克尔·|奇所著的《当和尚遇到ȝ》(The Diamond Cutter: The Buddhaon Strategies for Managing Your Business and Your LifeQ时Q对映入眼帘的作者n份与题目之间的“落差”,感到十分新鲜、有。印象中Q从未见q由僧G所写的商业专书……尤其是作者罗奇格西ƈ未还俗,仍是以出家僧人的w䆾Q跻w于U约大都?x)中、经营着竞争Ȁ烈的ȝ行业。在好奇心的׃下,加上长久以来思考“结合世法与?jng)法修行”的问题Q便q不及待地想了解q本书和作者的来龙去脉?</p><p>    在一由亚马逊书店记者布莱恩·布雅QBrian BruyaQ所做的专访之中Q罗奇提及了他出家学?jng)的因缘以及从一名僧人成为杰出钻矛_人的l过?974q_(d)他在普林斯顿大学毕业前夕Q母亲突然过世,不久之后父亲与兄弟也相d。亲人的骤逝,让他对生命的意义产生了莫大的疑情Q在急于探烦生死问题之下Q他d国、放弃原本打l深造的学业Q到印度的达兰莎拉,q入了著名的色拉寺,研读?jng)学?</p><p>    早先Q罗奇格西曾在新泽西州一所蒙古寺院Q跟随汪贾格西(Geshe WangyalQ学?fn)?q的藏文Q娴熟藏语,因此能顺利进入佛(jng)学院p。这位启蒙老师汪贾DQ是最早ʎ弘扬藏传佛(jng)教的格鲁zփ人,以慈爱、宽博接引了不少当今国藏传?jng)教界的著名学者,如哥伦比亚大学教?Robert Thurman、弗吉尼亚大学教授Jeffery Hopkins{hQ都是他早期的入门弟子?</p><p>    之后Q罗奇格西于1983q在辑օ莎拉落发为僧Q经q多q的学习(fn)、ƈ通过考试后,1995q获颁相当于?jng)学博士的格西学位。他在印度待?1q之久(1974?995Q,期间在上师的下,?981q回到美国接受“经商”的另一Uh生与修持考验Qƈ持箋往q于印度与美国两地。几lL折、历l,成ؓ(f)U约首屈一指的ȝ商h。在事业成功的背后,有着长年研修?jng)法的精力量,和随之而培d的严谨、专注、诚信等特质作ؓ(f)支柱Q这些h格特质,x他在书中教导读者用以自我训l、成功致富的钥匙?</p><p><font color="#0000ff">    “切割钻石”的L </font></p><p>    《当和尚遇到ȝ》这本书的特别之处,或者说Q它值得推荐与阅ȝ原因Q在于罗奇格西跨了世俗概念的`沟,积极、正面的起心动念付诸实践Qƈ指出了宽qѝ可行、充满徏设性的商业l营Ҏ(gu)。这个实늚q程Q也同时涉|了双重的层面Q一是就|奇D个h对上师的承诺、面Ҏ(gu)战与理想的层面而言Q他弥和了世俗与Z生活的界域,佛(jng)法融入商业生zMQ另一斚wQ就书写目的、内定w陈与章节架构来说Q他也兼了理论与实늚部分Q通过叙述以僧侣n份从事充满竞争压力的ȝ行业Q到获得成功的历E,来道出经商之路上所蕴含的h生之理。“钻石与僧h”,乍看之下Q虽易让惛_又是一则商Z奇,但其实个中深藏玄诣?</p><p>    从字面上看来Q“切割钻石的人”指的似乎是作者——罗奇格西在俗世的职业。但事实上,在佛(jng)教、尤其是藏传?jng)教Q金刚乘Q的传统中,ȝQ金刚石Q具有其丰富、深奥的象征意义——坚实稳固、无坚不摧却又清透明净的特质,代表了众生本L(fng)?jng)性,也就是究竟空性的本质。因此,“切割钻石的人”,在内在的意义上,也就意味着z澈本性、直见本心之人。这般的开(zhn)者,在世间能无入而不自得Q一如钻矌清明、稳定,不被M环境所L?</p><p>    为此Q罗奇格西援引了一个兼具世俗与宗教寓意的象征——钻矻I来阐明内在的观点和潜能,其实比外在的现象有着更高p的影响力,端看如何发现那以切割钻石的Q空性)力道Q借力使力而已。从前半部详实的ȝ行业描绘、到后半部的I性禅修指引,从日常生zd?fn)性的转化Q罗奇格西仔l铺陈了一条引介读者自我修点{超外在冲H与挑战的道路,妥善地融合了?jng)法与商业的l营Q将U极、良好的心念Q{化ؓ(f)促事业成功的主要动能?</p><p> <font color="#0000ff">   僧h与商人、出世与入世 </font></p><p>    从僧人的w䆾Q跨谲多变的商场Q这一路走来,|奇D也历l了自我调适、学?fn)与炼的各U阶Dc他坦言Q一开始,在面对上师提出经商的Ӟ也曾多所抗拒。因为在l济上,他承袭自父母留下的遗产,q不虞匮乏。但是,l商q是ؓ(f)了赚钱或谋生而已Q“上师要我经历一般h在日常生zM所遭遇的困难,q样才能了解他们Q进而运用佛(jng)法来帮助Z。”最后,在一ơ上师给予的Ҏ(gu)教授中,他终于了解到l商的积极意义,军_q入商界?</p><p>    “我曄?975q的某次坐中,观知自己未来?x)从事钻矌业,因此p着N石买卖方面的工作。”这是他投nȝ行业的缘赗但因不懂行规,他屡吃闭门羹Q始l不得其门而入Q直到遇见一位创业的老板Q才蒙录用。“我无心赚钱Q只xC个栖w之所p了。”无心插柳的l果Q篏U了多年丰富的从商经验后Q罗奇格西在此书中综理出他“商Z(jng)学”的心得l晶?</p><p>    他认为经营商业之道有三:(x)一是赚钱,二是乐在其中Q三是以此创造有意义的h生。而乐在其中指的是w心的和谐与快乐Q也是此书援引《金刚经》“缘h空”的道理Q来说明、D证、指引如何在瞬息万变的商ZQ觅得喜(zhn)、和乐的U诀所在。许多hZ赚取金钱Q付Z莫大的代P失去了n心的健康和快乐,q样的h生又有何意义Q?</p><p>    因此Q罗奇格西表C,真正的成功,来自于对心灵的关注,也就是对w心调和的重视,他以自己ZQ指出妥善运用时间、开发心늚力量Q益能事半功倍。近q来Q他更设立了一个名叫“证(zhn)商业机构”(Enlightened Business InstituteQ的l织Q专门教导商界h士如何透过修Q来增长创意与智能、加强“铭印”(imprintQ的良善力量Q《当和尚遇到ȝ》亦是这个机构的参考用书之一?</p><p>    在书中,|奇D从理论到实践Q从概念的明晰到可行的徏议细则,《当和尚遇到ȝ》提供了一个具体、有效、且融会(x)“快乐、积极、有意义”的赚钱之道?</p><p>    |奇D融合l商与修持的成功事例Q对许多认ؓ(f)两者互相矛盄人来_(d)不啻是一U鼓舞和解脱。认Z法与?jng)法不能兼容的观点,也可能仅是某U偏执的概念而已。此外,虽明知“佛(jng)法不M法,M觅佛(jng)法,犹如觅兔角。”但要如何真正在生活中实践佛(jng)法,以日常生zMؓ(f)道,融洽地治于一炉,往往不是“知”难Q存在着认知上的盲点或偏见;是“行”难Q理Z虽了解,但实际上却做不到。尤其是在面临压力、挫折和矛盾Ӟ要如何切实地q用?jng)法Q来自助助hQ在面(f)艰难的挑战和抉择Ӟ又要如何保持清晰的思A、^和的心情Q做出最好的判断q勇于承担? </p><p>    在《当和尚遇到ȝ》中Q对于许多盼望能在日常生zM修行、寻访积极营生之道或探求心灵深度与静谧的人来_(d)都是一个宝贵而重要的参考。希望有~阅L书的(zhn),能从中获得许多启发和帮助Q开创有意义、美好的人生</p><img src ="http://m.tkk7.com/1948asd/aggbug/71957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/1948asd/" target="_blank">我是菜鸟</a> 2006-09-26 13:36 <a href="http://m.tkk7.com/1948asd/archive/2006/09/26/71957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://mm1131.com" target="_blank">߹ۿѻվ</a>| <a href="http://xinyuanmy.com" target="_blank">պƷһ</a>| <a href="http://jgxsdst.com" target="_blank">שש</a>| <a href="http://bdykdq.com" target="_blank">һëƬѿ˾</a>| <a href="http://haha02.com" target="_blank">ɫ㽶</a>| <a href="http://5138k.com" target="_blank">޸߲</a>| <a href="http://yzddcpj.com" target="_blank">պƷһ</a>| <a href="http://igao4.com" target="_blank">jŮpƵ</a>| <a href="http://imfakaixin.com" target="_blank">޾ƷŮɫ</a>| <a href="http://556228.com" target="_blank">޾ƷþþþþðĦ</a>| <a href="http://kfdingrui.com" target="_blank">VAһ </a>| <a href="http://928348.com" target="_blank">޳av޳av</a>| <a href="http://mcsser.com" target="_blank">޵һ˵</a>| <a href="http://26672814.com" target="_blank">þAV뾫Ʒ</a>| <a href="http://jjesqc.com" target="_blank">h⶯߹ۿ</a>| <a href="http://77663499.com" target="_blank">ŮҹëƬѿ</a>| <a href="http://sxhengshan.com" target="_blank">˳ѹۿ</a>| <a href="http://43caopen.com" target="_blank">þ99ȾƷѹۿţţ</a>| <a href="http://gzbaida.com" target="_blank">Ļձ޾þþ</a>| <a href="http://cctv69.com" target="_blank">þþƷav鶹ɫ </a>| <a href="http://b2b-chinese.com" target="_blank">avavav߲</a>| <a href="http://0827fang.com" target="_blank">޾ƷӰ߲Ʒ</a>| <a href="http://caoporg.com" target="_blank">ҹ޹˲</a>| <a href="http://ahsuibao.com" target="_blank">ƷСƵ</a>| <a href="http://cfxzp.com" target="_blank">avվȫ</a>| <a href="http://tlyyt.com" target="_blank">ѹۿaƬ</a>| <a href="http://jcss99.com" target="_blank">߹ۿƵݮ</a>| <a href="http://chenglide.com" target="_blank">߹ۿ</a>| <a href="http://scdsrq.com" target="_blank">ѵĻվ˵</a>| <a href="http://my55572.com" target="_blank">Ƶ</a>| <a href="http://57798b.com" target="_blank">ŷ޾Ʒһѿ</a>| <a href="http://mysb123.com" target="_blank">AVҹƬ</a>| <a href="http://wangdei.com" target="_blank">þþƷ96Ʒ </a>| <a href="http://wumase.com" target="_blank">þþþAVרJN </a>| <a href="http://xuexilo.com" target="_blank">þҹɫƷa</a>| <a href="http://xxnxgay.com" target="_blank">˳߹ۿŹ </a>| <a href="http://niutextile.com" target="_blank">337pձŷ޴󵨾Ʒ555588 </a>| <a href="http://jomashopcn.com" target="_blank">ŮaܴƬ</a>| <a href="http://gsonlinet.com" target="_blank">ҹҹƵ</a>| <a href="http://ynkmht.com" target="_blank">ƷٸAVѾþϴ</a>| <a href="http://hdznzdh.com" target="_blank">˿wwwƵ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>