DBCP__C3P0和_PROXOOL比较_oracle9i_v2.0
- 格式:pdf
- 大小:128.72 KB
- 文档页数:8
[转]Oracle版本区别及版本选择!本⽂主要介绍的是版本的区别,从Oracle数据库的相关产品,从Oracle2.0开始(没有1.0)到Oracle7.3.4皆只是⽐较简单的相关Oracle版本号,以Oracle8开头,就出现数据库产品特性标识符,如Oracle8i和9i。
这个i是Internet的缩写,表⽰该产品全⾯⽀持Internet应⽤,简单⼀点说,就是融⼊了JAVA技术和对JAVA的⽀持.从Oracle10称为10g,这个g是Grid的缩写,表⽰⽀持"⽹格运算",简单⼀点说,就是更好地⽀持集群和多点应⽤,到⽬前为⽌,最新版的是Oracle11g,⽽Oracle还有⼀个产品,称为Oracle11i,全称是Oracle Applications 11i,这⾥的i是Intelligence的缩写,表⽰电⼦商务智能软件,它不是数据库产品,⽽是⼀整套电⼦商务套件,是⼀套全⾯的商务应⽤软件,主要包括以下功能模块:.财务管理--Oracle财务管理系统(Financials).⼈⼒资源管理--Oracle⼈⼒资源管理系统(Human Resources Management System).商务智能--Oracle电⼦商务智能(E-Business Intelligence)是⼀套⽤于报表编制和分析的应⽤程序.物流管理--Oracle物流管理系统(Logistics).维护管理--Oracle企业资产管理(Enterprise Asset Management)、Oracle综合维护、维修和⼤修管理系统(Maintenance,Repair,and Overhaul).制造管理--Oracle制造管理系统(Manufacturing).市场营销管理--Oracle市场营销管理系统(Marketing).订单履⾏管理--Oracle订单履⾏管理系统(Order Fulfillment).产品⽣命周期管理--Oracle产品⽣命周期管理系统(Product Lifecycle Management).采购管理--Oracle采购管理系统(Procurement).项⽬管理--Oracle项⽬管理系统(Projects).销售管理--Oracle销售管理系统(Sales).供应链计划--Oracle供应链计划系统(Supply Chain Planning)Oracle 10g分为4个Oracle版本,分别是:1.Oracle Database Standard Edition One,最基本的商业版本,包括基本的数据库功能。
c3p0,DBPC,Druid三大连接池的区别性能【面试+工作】先来点实用的:<!-- 配置dbcp数据源 --><bean id="dataSource2" destroy-method="close"class="mons.dbcp.BasicDataSource"><property name="driverClassName"value="${jdbc.driverClassName}"/><property name="url"value="${jdbc.url}"/><property name="username"value="${ername}"/><property name="password"value="${jdbc.password}"/><!-- 池启动时创建的连接数量 --><property name="initialSize"value="5"/><!-- 同一时间可以从池分配的最多连接数量。
设置为0时表示无限制。
--><property name="maxActive"value="30"/><!-- 池里不会被释放的最多空闲连接数量。
设置为0时表示无限制。
--><property name="maxIdle"value="20"/><!-- 在不新建连接的条件下,池中保持空闲的最少连接数。
Oracle 9iORACLE9i数据库技术Oracle数据库效劳器的最新版本Oracle 9i是Oracle数据库效劳器家族中的新一代旗舰产品。
ORACLE数据库产品具备许多技术特性。
1-先进性ORACLE公司成立以来,在数据库领域始终处于技术领先地位。
通过自身产品在技术的不断创新和对信息技术开展方向的敏锐洞察,始终领导数据库产品的开展。
不管在哪个时期,都具有技术优势。
为了实现事务处理的高性能,Oracle 9i的多线程的、多效劳器的体系结构能够协调处理上万条并发用户请求。
单个请求均被放入队列,并由最少量的效劳器进程处理。
Oracle 9i的可伸缩的,可靠的体系结构推出了无法匹敌的任务关键系统所需的可伸缩性、可用性以及高性能。
Oracle 9i和Oracle 9i Real Application Server能充分利用所有的硬件系统资源,从单处理器,并行多处理器,集群系统(cluster)到大规模并行处理器(MPP)系统。
Oracle支持行级封锁技术来解决写/写冲突,并支持数据多版本来解决读/写冲突。
行级封锁因为占用的系统资源最少,能最大限度地提高系统的吞吐量。
数据多版本(读一致性快照)防止了读锁,使系统对锁的管理因锁种类的减少而大大简化。
Oracle杜绝锁升级,防止死锁的发生。
并且,Oracle有专门的后台进程监控和解决死锁,一旦出现死锁,自动解除死锁。
Oracle9i 的一个功能,是能够将业务数据和索引进行分区。
经分区的数据和索引具有以下优点:缩短对长时间运行的查询的响应时间;分区减少了磁盘I/O 操作减少对并发查询的响应时间;I/O 操作在每个分区上同时进行索引维护更加轻松,因为可进行分区级创立和重构操作可以重建分区上的索引,而不影响在其他分区上的查询可以更改每个本地索引的存储参数,而与其他分区无关对于民政部民政公用政务平台系统,需要存贮大量的资料、档案和各地的业务数据,同时,还需要同协作机构进行数据交换,而Oracle9i支持最大为512Peta bytes的数据库(1 Petabytes = 1000TB =1000,000GB),较好地支持大型存储设备的管理操作,整个管理过程对用户是完全透明的。
数据库连接池参数数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。
数据库连接池正是针对这个问题提出来的。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。
无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。
连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素: 1. 最轻连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。
2. 最小连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
3. 最轻连接数与最小连接数差距最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。
不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
连接池基本的思想就是在系统初始化的时候,将数据库相连接做为对象存储在内存中,当用户须要出访数据库时,并非创建一个代莱相连接,而是从连接池中抽出一个已创建的空闲相连接对象。
采用完后,用户也并非将相连接停用,而是将相连接摆回去连接池中,以供下一个命令出访采用。
而相连接的创建、断裂都由连接池自身去管理。
同时,还可以通过设置连接池的参数去掌控连接池中的起始连接数、相连接的上时上限数以及每个相连接的最小采用次数、最小空闲时间等等。
也可以通过其自身的管理机制去监控数据库相连接的数量、采用情况等。
ORACLE9i数据库名、实例名、服务名之间的关系Yuechaotian 2007-08-31 Oracle中存在着这些容易混淆的名称:数据库名实例名ORACLE_SID服务名域名全局数据库名在oracle7/8/9i/10g中都有数据库名和实例名,在9i和10g中又引进了三个新的数据库标识类参数:数据库域名(db_domain)、全局数据库名(global_dbname)和数据库服务名(service_names)。
下面介绍一下这些名称的关系:1.数据库名用于区分一个数据库的内部标识,在安装数据库、创建新数据库、创建控制文件、修改数据库结构、利用RMAN备份时都需要使用数据库名。
存在于(但不仅限于)以下地方:(1)以二进制方式存储在控制文件中。
(2)Pfile/spfile中:db_name(3)数据库物理结构文件目录中D:\oracle\oradata\db_name\*.*D:\oracle\admin\db_name\*.*查询方法:select name from v$database;2.实例名用于和操作系统进行联系。
在操作系统中要取得与数据库之间的交互必须使用实例名。
例如,要和某一个数据库服务器连接,则必须知道其数据库实例名,知道数据库名是没用的。
在安装/创建数据库后,实例名允许修改的。
存在于(但不仅限于)以下地方:(1)Windows nt/2000注册表中(oracle_sid)(2)pfile/spfile中:instance_name(3)数据库参数文件名中:init<oracle_sid>.ora查询方法:select instance_name from v$instance;与数据库名的关系:一般是一一对应的,RAC中除外。
3.ORACLE_SID细心的朋友可以发现,2.3中有个问题:2中讲的是instance_name,但2.3存储的却是oracle_sid。
SpringBoot如何统计、监控SQL运⾏情况?写得太好了。
来源:/post/70625069231945810291 基本概念Druid 是Java语⾔中最好的数据库连接池。
虽然 HikariCP 的速度稍快,但是,Druid能够提供强⼤的监控和扩展功能,也是阿⾥巴巴的开源项⽬。
Druid是阿⾥巴巴开发的号称为监控⽽⽣的数据库连接池,在功能、性能、扩展性⽅⾯,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource 等等等,秒杀⼀切。
Druid 可以很好的监控 DB 池连接和 SQL 的执⾏情况,天⽣就是针对监控⽽⽣的 DB 连接池。
Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate中已经介绍 Spring Boot 2.x 默认使⽤ Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源。
⽽Druid已经在阿⾥巴巴部署了超过600个应⽤,经过好⼏年⽣产环境⼤规模部署的严苛考验!stat:Druid内置提供⼀个StatFilter,⽤于统计监控信息。
wall:Druid防御SQL注⼊攻击的WallFilter就是通过Druid的SQL Parser分析。
Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,⽐如说分库分表、审计等。
log4j2:这个就是⽇志记录的功能,可以把sql语句打印到log4j2 供排查问题。
2 添加依赖pom.xml<!-- 阿⾥巴巴的druid数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.23</version></dependency><!-- mysql8 驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--使⽤ log4j2 记录⽇志--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!--mybatis,引⼊了 SpringBoot的 JDBC 模块,所以,默认是使⽤ hikari 作为数据源--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version><exclusions><!-- 排除默认的 HikariCP 数据源 --><exclusion><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></exclusion></exclusions></dependency>3 配置相关属性配置Druid数据源(连接池):如同以前 c3p0、dbcp 数据源可以设置数据源连接初始化⼤⼩、最⼤连接数、等待时间、最⼩连接数等⼀样,Druid 数据源同理可以进⾏设置;配置 Druid web 监控 filter(WebStatFilter):这个过滤器的作⽤就是统计 web 应⽤请求中所有的数据库信息,⽐如发出的 sql 语句,sql 执⾏的时间、请求次数、请求的 url 地址、以及seesion 监控、数据库表的访问次数等等。
Oracle的各个版本之间的区别一、Oracle 9i比8i多了哪些新特性?1、并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。
2、9i可以在线修改内核参数和内存分配,8i不行。
数据文件和表空间管理,8i手工管理,9i自动管理。
3、9i比8i增强了对ANSI SQL99的支持。
4、9i比8i增强了故障后的快速恢复(Fast-start)。
5、8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务.二、Oracle 10g比9i多的新特性?1. 10g支持网格计算,即多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)2.10g容易安装,且安装速度比9i少了一半3.新增基于浏览器的企业管理器(Enterprise Manager)。
4.支持自动管理(Automatic Management)增删硬盘不再需要操作系统管理员设置的镜像、负载均衡物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。
5.内存自动化,根据需要自动分配和释放系统内存。
6.SQL性能调整自动化。
7.快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。
8.数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15--45倍.9.精细审计(Fine-Grained Auditing),记录一切对敏感数据的操作10.存储数据的表空间(Tablespace)跨平台复制,极大的提高数据仓库加载速度。
Spring资料总结目录--------------------1.什么是spring2.Spring有什么特点?3.Spring的有哪些模块?各个模块的作用?4.控制反转(IOC)和依赖注入(DI)的区别?5.BeanFacotry对象的作用(IOC容器的作用)?6.使用FileSystemXmlApplicationContext,ClassPathXmlApplicationContext加载ApplicationContext.xml文件代码?7.BeanFactory跟ApplicationContext区别?8.依赖注入的四种方式(set,构造器,接口,注解)?9.Bean组件的作用域范围(singleton,prototype,request,session,globalsession)?10.Bean组件装配方式(byName,bType,constructor,default)?11.Bean组件的生命周期?12.在Web环境中怎么加载applicationContext.xml文件(Servlet监听器)?在web如何获取应用上下文WebApplicationContext?13.Spring对DAO模块支持?有什么优点?14.Spring的DAO模板增删查改数据代码?15.Spring对ORM模块的支持?有什么优点?16.Spring整合Hibernate模块的增删查改数据代码?17.Spring整合Ibatis模块的增删查改数据代码?18.Spring整合Mybatis模块的增删查改数据代码?19.Spring的全局事务(JTA)和局部事务(JDBC)的区别?20.Spring事务实现的方式有哪些,优缺点?21.编程式事务的特点?声明式事务的特点?22.事务7大传播属性?指定事务策略的格式代码?23.在Spring中事务管理器的实现方式有哪些?24.在Spring中事务管理器的实现方式有哪些?25.AOP的概念(切面,连接点,通知[顾问],切入点,[引入,关注点],目标对象,代理对象,织入目标)26.AOP在Spring中的作用?27.AOP中的通知有哪些?各有什么特点(前置型,后置型,环绕型,最终型,异常);28.AOP的特点和优缺点?29.AOP三种代理方式(动态代理,CGLIB代理,代理工厂bean)30.Execution配置的通用切入点的示例?31.在项目组,你们是如何使用AOP的?32.说说你对IOC的理解33.如何在Spring中使用JNDI的数据源?34.Spring如何整合Struts1.x?35.Spring如何整合Struts2.x?36.Spring如何整合Hibernate?37.Spring如何整合IBatis?38.Spring如何整合MyBatis?39.Spring的JDBC跟传统的JDBC的区别?41.Spring有哪些核心类?42.SpringMVC的工作机制?43.Hibernate中update和saveOrUpdate的区别?44.SpringMVC有哪些核心类,作用?45.SpringMVC数据如何校验,错误信息在页面如何呈现?46.SpringMVC注解标签有哪些?47.SpringMVC的特点(优点)?48.SpringMVC有哪些控制器组件?49.SpringMVC如何处理上传文件?如何使用ajax异步请求?50.Spring在视图中的标签有哪些?51.SpringAOP的注解标签有哪些?52.Spring如何配置连接池?53.连接池DBCP,C3P0,PROXOOL三个的区别---------------------------1.什么是Spring?答:Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP aspect oriene program)的容器框架.它的主要目的是简化企业开发;Spring的设计思想是,单例模式和工厂模式;2.Spring有什么特点?答:轻量级,低侵入的设计Spring的DI机制降低了业务对象替换的复杂性Spring不依赖于web容器,独立于各种应用服务器,Write Once,Run Anywhere(一次编译到处运行)高度开放性:Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部,它的架构仍然是内在稳定的3.Spring的有哪些模块?各个模块的作用?答:Spring Core:Spring的基石,提供了Spring的最主要的核心机制:控制反转和依赖注入Spring Context:提供了Spring的上下文信息,如:国际化,验证等Spring Web支持:简化了处理多部分请求Spring MVC框架支持:一个全功能的构建Web应用程序的MVC实现,MVC容纳了大量视图技术,其中包括JSP、Velocity等。
proxool简单使用首先从 http://下载proxool-0.9.0RC2.zip解压后,把proxool-0.9.0RC2.jar放到工程的lib文件夹里面。
proxool是一个非常强大的连接池工具包,我觉得相比dbcp、c3p0这两个连接池包都要好用,我用loadrunner测试过,这三个连接池的从性能上排名如下:proxool>c3p0>dbcp,特别是dbcp在大并发的情况下总是出现各种异常。
详细关于dbcp的介绍请参考dbcp 用户指南,dbcp实现参考。
下面是实现proxool的几种方式:JDBC连接方法:首先建一个proxool的配置文件proxool.xmlproxool.xml 代码xml 代码1.xml version="1.0" encoding="UTF-8"?>2.3.4.5.<something-else-entirely>6.<proxool>7.8.<alias>DBPoolalias>9.10.<driver-url>jdbc:oracle:thin:@192.168.0.40:1521:drcomdriver-url>11.12.<driver-class>oracle.jdbc.driver.OracleDriverdriver-class>13.<driver-properties>14.<property name="user" value="drcom"/>15.<property name="password" value="drcom"/>16.driver-properties>17.18.<house-keeping-sleep-time>90000house-keeping-sleep-time>19.20.<maximum-new-connections>150maximum-new-connections>21.22.<prototype-count>3prototype-count>23.24.<maximum-connection-count>100maximum-connection-count>25.26.<minimum-connection-count>3minimum-connection-count>27.proxool>28.something-else-entirely>再在web.xml中进行配置,其中的ServletConfigurator是装载WEB-INF目录下的proxool.xml,并设置为T omcat启动时就加载。
DBCP ,C3P0和 PROXOOL 三种常用开源数据库连接池的性能比较
——基于Oracle 9i
版本:V2.0
日期:2009-9-28
作者:孙欢欢(shh-cc@)
1.测试环境:
1.1 操作系统:windows xp sp3
1.2 数据库:oracle 9i
1.3 web服务器:Tomcat 6.0.20
1.4测试工具:jakarta-jmeter-
2.
3.4
2.测试条件:
dbcp , c3p0 , proxool的
initialSize="10"
maxldle="15"
minIdle="5"
其余参数为默认值;
3. jmeter测试设置及结果
3.1 在3秒内模拟30个线程,循环5次
3.1.1 dbcp
3.1.2c3p0
3.1.3 proxool
3.2 在3秒内模拟60个线程,循环5次
3.2.1 dbcp
3.2.2 C3p0
3.2.3proxool
3.3. 在6秒内模拟60个线程,循环5次
3.3.2 c3p0
3.3.3 Proxool
3.4 6秒内模拟120个进程循环5次
3.4.1 dbcp
3.4.3 proxool
3.5 10秒模拟120个进程循环5次3.5.1 dbcp
3.5.2 c3p0
3.5.3 proxool
3.6 10秒模拟150个进程循环5次3.6.1 dbcp
3.6.2 c3p0
3.6.3 proxool
3.7 10秒模拟200个进程循环5次
3.7.1 dbcp
3.7.2 c3p0
3.7.3 proxool
4.测试结果分析:
(1)相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试
参数(Average,median,90%Line)进行比较发现:dbcp<=c3p0<proxool这一趋势
(2)不同情况下的同一数据库连接池测试:通过观察Average,median,90%Line三个参数发
现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:dbcp>=c3p0>proxool
5. 测试结论
通过对三种数据库连接池的性能测试发现,dbcp和c3p0 能够更好的支持高并发,但是在稳定性方面,c3p0略逊于DBCP。
注:(个人认为此原因可能是由于tamcat与dbcp同属Apache旗下的缘故,dbcp可能针对tamcat 采取了优化。
也许在其他服务器下会得出截然相反的结果。
)。