- 浏览: 31735 次
- 性别:
- 来自: 深圳
最新评论
-
flourish.sun:
赞一下。在学习jforum中,你的帖子很有帮助,显然,偶不是博 ...
jforum事务与ThreadLocal -
lyndon.lin:
谁是作者,真的太厉害啦、
沁园春 . 窝 -
蔚然成风:
牛!!没的别的说的了,厉害啊!
沁园春 . 窝 -
kongxin_520:
一个字:牛!!!
沁园春 . 窝 -
xuehui0423:
terrylrvin 写道准备100口棺材,99口给贪官污吏和 ...
沁园春 . 窝
文章列表
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 ...