理解oracle中连接和会话
理解oracle中连接和会话 1. 概念不同:概念不同:
连接是指物理的网络连接。
在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境中进行。
2. 关系是多对多:
一个连接上可以建立0个,1个,2个,多个会话。
Oracle允许存在这样的会话,就是失去了物理连接的会话。
3. 概念应用:概念应用:
oracle的sessions参数决定的是会话数而不是物理连接数。
oracle的临时表中的数据是各会话间隔离的,而与连接概念无关。
jdbc的connection,对oracle是一个会话的概念。
4. 实际应用:
连接池,为了提高数据库交互效率,一般驱动程序都有连接池概念的实现。
Oracle不同的驱动提供两种连接池概念。
一种译为隐式连接缓冲
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@10.1.3.60:1521:orcl");
ods.setUser("NC50_DEV");
ods.setPassword("NC50_DEV");
ods.setConnectionCachingEnabled(true);
java.util.Properties jup = new java.util.Properties();
jup.setProperty("InitialLimit", "1");
jup.setProperty("MinLimit", "1");
jup.setProperty("MaxLimit", "2");
ods.setConnectionCacheProperties(jup);
Connection cx0 = ods.getConnection();
隐式连接缓冲在第一次getconnection()时将根据配置初始化连接,并在每一个连接上建立一个会话。然后从这些会话中返回一个给本次调用。以后如果在本次connection.close()前调用getconnection(),将肯定得到另外一个会话。如果初始时建立的会话不够了,那么将新建物理连接,并在连接上建立一个会话。当然不能超过两个限制:1.MaxLimit【见程序,限制物理连接数】。2.sessions【oracle参数】。每次close()并不关闭实际的会话,而是返回连接缓冲中,供另一个getconnection()使用。所以可以得知,如果一个getconnection()中给某一个会话级临时表插入数据,然后close(),那么之后如果这个会话被重新得到,是可以看到插入的数据的。
一种译为OCI连接池。
OracleOCIConnectionPool ods = new OracleOCIConnectionPool();
String tns = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS="
+ "(PROTOCOL=TCP)(HOST=10.1.3.60)(PORT=1521)))"
+ "(CONNECT_DATA=(SERVICE_NAME=ORCL)))";
ods.setURL("jdbc:oracle:oci:@" + tns);
ods.setUser("NC50_DEV");
ods.setPassword("NC50_DEV");
java.util.Properties jup = new java.
相关文档:
抽象数据类型,让Oracle数据库数据管理更加容易
作者: Victor, 出处:IT专家网, 责任编辑: 包春林,
2009-02-04 10:10
姓名,其实包括两个部分,分别为姓与名。在没有抽象数据类型之前,在数据库设计的时候,往往需要利用两个字段来保存这个姓名内容,如First_name与Last_name等等。这主要是因为在很多时候,前台 ......
Oracle提供了大量索引选项。知道在给定条件下使用哪个选项对于一个应用程序的性能来说非常重要。一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程终止。而如果做出正确的选择,则可以合理使用资源,使那些已经运行了几个小时甚至几天的进程在几分钟得以完成,这样会使您立刻成为一位英雄。这篇文章就将简单的 ......
oracle锁的排队机制:
请求锁定需要排队。如果某个会话请求一个锁定,但是由于其他会话已经锁定了指定记录或对象而无法获得所需的锁定,那么这个会话将会等待。此时,可能多个会话都在等待访问相同记录或对象,在这种情况下,ORACLE会跟踪这些会话请求锁定的顺序。
如果 ......
查看当前数据库归档日志操作模式:
select name,log_mode from v$database;
查看归档日志位置:
show parameter log_archive_dest; 第一个归档位置
show parameter log_archive_duplex_dest; 第二个归档位置
先关闭数据库,然后装载数据库:
shutdown immediate;
startup mount;
修改归档日志操作模式,然后打开数据库 ......