- 浏览: 529154 次
- 性别:
- 来自: 广州
博客专栏
-
Mybatis实现原理深入...
浏览量:141145
最新评论
-
qq32933432:
那么问题来了,楼主现在怎样了?目标都达成了吗
2012年年度目标 -
leeahuamsg:
特别好,条理很清晰
原理分析之一:从JDBC到Mybatis -
lgh1992314:
<?xml version="1.0" ...
原理分析之三:初始化(配置文件读取和解析) -
guduyishuai:
context = tomcat.createContext( ...
基于内嵌Tomcat的应用开发 -
showlives:
原理分析之四:一次SQL查询的源码分析
文章列表
1、响应时间
响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。响应时间通常用时间单位来衡量(一般为秒)。
图形中的拐点,表示响应时间突然增加,意 ...
J2EE应用性能调优(目录)
性能调优之零:前言
性能调优之一 :性能参数指标
性能调优之二 :性能调优方法
性能调优之三 :硬件网络层面调优
性能调优之四 :操作系统层面调优
性能调优之五:J2EE容器层面调优
1.查看被锁的表
SELECT A.OWNER 方案名,
A.OBJECT_NAME 表名,
B.XIDUSN 回滚段号,
B.XIDSLOT 槽号,
B.XIDSQN 序列号,
B.SESSION_ID 锁表SESSION_ID,
B.ORACLE_USERNAME 锁表用户名,
decode(D.type,
'XR',
'NULL',
'RS',
' ...
查看数据库的版本
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
如何远程判断Oracle数据库的安装平台
select * from v$version;
查看数据库的创建日期和归档方式
Select Created, Log_Mode, Log_Mode From V$Database;
查看数据库库对象
select owner, object_type, status, count(*) count# from all_objec ...
1.由于SQL执行慢的原因,导致事务时间过长,数据连接池的连接不够用,很多处理线程在等待连接。
2.程序有部分使用了System.out.println()来打印日志信息,不能通过log4j的配置关闭,严重影响系统性能。
3.include.jsp每一次都会去数据库获取用户相关信息,导致每访问一个页面都会查一次数据库。
4.表的某个字段上创建索引,但是索引还是用不上。根据检查传入的绑定变量的值,应该是传入的数据类型是数字,而 该字段是 varchar2 类型,类型不一致,导致索引用不上。
5.HashMap导致很多线程被挂起,CPU占用率持续在99%左右,使用
场景问题
当系统的访问量达到上百万用户时,系统的性能达到了上限,系统已经做了一轮轮优化:
(1)应用集群
(2)程序优化
(3)数据库优化(SQL优化、集群)
(4)数据缓存
(5)网络优化(加大带宽、多个网卡)
(6)操作系统优化
但是,系统到了又一个瓶颈,在怎么优化都没有什么效果了。通过性能跟踪,发现是数据库的数据量太大了(几张表都达到了10亿条数据了),而且随着系统的用户访问数据是不停的往上增加。SQL无论怎么优化,数据操作的时间已经达到了一个极限了。
发现数据库服务器的CPU和IO已经都达到了100%,可见,当前机器的硬件情况已经到 ...
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamW ...
问题场景一:
Web应用中,后台一般都分成几层,最常用的分法有控制层、业务逻辑层、数据持久层和表现层。一般情况下,我们都会把当前用户存放在HttpSession里面。怎么获取到当前用户的信息呢?首先,要获得HttpServletR ...
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的。
准备工作
Mybatis完成一次SQL查询需要使用的代码如下:
String resource = "mybatis.cfg.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
...
1.修改配置开发JMX端口
假设hadoop(hadoop-0.20.0)安装目录用$hadoop_home表示。修改$hadoop_home/conf/hadoop_env.sh配置文件,修改之处如下:
# Extra Java runtime options. Empty by default.
export HADOOP_OPTS="-Djava.rmi.server.hostname=10.132.30.46 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.j ...
1. 基础开发技术平台总览
2. 基础开发框架
2.1 基础核心类库
2.2 持久层技术
2.3 前后台交互技术
2.4 前台展现技术
3. 开发组件
3.1 工作流引擎
3.2 规则引擎
3.3 图表展示组件
4. 应用组件
4.1 门户组件
4.2 数据字典管理组件
4.3 系统参数管理组件
Windows环境下安装
1.下载Hyperic HQ的开源版本4.6(hyperic-hq-installer-4.6-win32.zip),下载地址如下:
http://sourceforge.net/projects/hyperic-hq/files/Hyperic%204.6/Hyperic%204.6-GA/
2.安装
(1)解压hyperic-hq-installer-4.6-win32.zip
(2)执行HQ解压目录中的setup.bat文件,开始安装HQ Server和HQ Agent。
【选择安装HQ Server还是HQ Agent】:这 ...
Hyperic HQ
Hyperic HQ 是一个开源的(General Public License,GPL授权)IT资源监控和管理框架,让用户使用统一的界面来监控和管理各种不同的IT资源。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
功能特点:
(1)集中统一的监控管理界面
(2)自动发现所有软件和硬件资源
(3)监测基础设施的每一层
(4)可扩展,定制,可以用于对业务的监控,自定义UI界面
(5)可以跟踪配置文件,日志文件的变化
(6)警告策略设置,强大的报警功能
资源类型:
操作 ...
静态代理:在程序编译时,代理类的.class文件已经存在了。
动态代理:在程序运行时,运用反射机制动态创建而成。
动态代理目前有两种代理机制:一种是基于JDK的动态代理;另一种是基于CGLib的动态代理。
JDK本身只提供接口的代理,而不支持类的代理。
CGLib本身只支持类的代理,而不支持接口的代理。
JDK动态代理
public interface IForumService {
public void removeTopic(int topicId);
public void removeForum(int forumId);
}
...