`
xuyan2680
  • 浏览: 31735 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
1)基本概念:   泛型(Generic Type或Generics)是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看做是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的占 ...
转载来源:IT专家网 作者:Peak Wong 1. 使用提示(Hints)   对于表的访问,可以使用两种Hints:FULL 和 ROWID   FULL hint 告诉ORACLE使用全表扫描的方式访问指定表。   例如:   SELECT /*+ FULL(EMP) */ *   FROM EMP   WHERE EMPNO = 7893;   ROWID hint 告诉ORACLE使用TABLE ACCESS BY ROWID的操作访问表。   通常, 你需要采用TABLE ACCESS BY ROWID的方式特别是当访问大表的时候, 使用这种方式, 你需要知道R ...
转载来源:IT专家网 作者:Peak Wong 1. 用UNION替换OR (适用于索引列)   通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果。 对索引列使用OR将造成全表扫描。注意, 以上规则只针对多个索引列有效。 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低。   在下面的例子中, LOC_ID 和REGION上都建有索引。   高效:   SELECT LOC_ID , LOC_DESC , REGION   FROM LOCATION   WHERE LOC_ID = 10   UNION   SELECT LOC_I ...
转载来源:IT专家网 作者:Peak Wong 1. 避免在索引列上使用计算   WHERE子句中,如果索引列是函数的一部分。优化器将不使用索引而使用全表扫描。   举例:   低效:   SELECT …   FROM DEPT   WHERE SAL * 12 > 25000;   高效:   SELECT …   FROM DEPT   WHERE SAL > 25000/12;   :这是一个非常实用的规则,请务必牢记   2. 自动选择索引   如果表中有两个以上(包括两个)索引,其中有一个唯一性索引,而其他是非唯一性。   在这种情况 ...
转载来源:IT专家网 作者:Peak Wong 1. 基础表的选择   基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问)。 根据优化器的不同, SQL语句中基础表的选择是不一样的。   如果你使用的是CBO (COST BASED OPTIMIZER),优化器会检查SQL语句中的每个表的物理大小,索引的状态,然后选用花费最低的执行路径。   如果你用RBO (RULE BASED OPTIMIZER) , 并且所有的连接条件都有索引对应, 在这种情况下, 基础表就是FROM 子句中列在最后的那个表。   举例:   SELECT A.NAME , B ...
转载来源:IT专家网 作者:Peak Wong 1. 用EXPLAIN PLAN 分析SQL语句   EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句。 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称。   你需要按照从里到外,从上到下的次序解读分析的结果。 EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行。   NESTED LOOP是少数不按照上述规则处理的操作, 正确的执行路径 ...
转载来源:IT专家网 作者:Peak Wong 1. 使用表的别名(Alias)   当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上。这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。   (Column歧义 ...
转载来源:IT专家网 作者:Peak Wong 1. 删除重复记录   最高效的删除重复记录方法 ( 因为使用了ROWID) DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)                    FROM EMP X                    WHERE X.EMP_NO = E.EMP ...
转载来源:IT专家网 作者:Peak Wong ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。 1. WHERE子句中的连接顺序。   ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。   例如:   (低效,执行时间156.3秒)   SELECT …   FROM EMP E   WHERE SAL > 50000   AN ...
转载来源:IT专家网 作者:Peak Wong Oracle sql 性能优化调整   1. 选用适合的ORACLE优化器   ORACLE的优化器共有3种:   a. RULE (基于规则)   b. COST (基于成本)   c. CHOOSE (选择性)   设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。   为了使用基于成本的优化器(CBO, Cost-Based Optimizer ...
摘自:http://blog.703804.com/?action-viewthread-tid-1856267 神州大地,千人蜗居,万人房奴。 望长城内外,大厦高楼,工地上下,人浪滔滔。 祖孙三代,倾尽所有,为凑首付血压高。 须钞票,清银行贷款,分外自豪。 楼价如此虚高,逼无数英雄竞折腰, 昔秦皇汉武,见此技穷,唐宗宋祖,还是没招。 一代天骄,成吉思汗,只好屈身蒙古包。 俱往矣,数天价楼盘,还在今朝!
本文所贴示意代码主要是学习使用。 任务接口: package cs.classloader; /** * 任务类接口 ,任何实现了此接口的类,都可以在服务端简单任务执行器中执行 * */ public interface TaskIntf { void execute(); } 任务实现类: package cs.classloader; public class TaskIntfImp implements TaskIntf { static { System.out.println("我被加载了"); } ...
jforum事务控制是粗粒度控制的,也就是说,对每个请求Service的线程,如果需要获得数据库连接,则 JForumExecutionContext ex = get(); Connection c = ex.conn; if (validate && c == null) { c = DBConnection.getImplementation().getConnection(); try { c.setAutoCommit(!SystemGlobals.getBoolValue(ConfigKeys.DATABA ...
学习自定义类加载器与运行时包: package test; import java.io.InputStream; public class NewClassLoader extends ClassLoader { public MySingleton createNewOne() throws Exception { InputStream is = getClass().getResourceAsStream("MySingletonImp.class"); byte[] b = new byte[is.available()]; i ...
具体见流程图:
Global site tag (gtag.js) - Google Analytics