oracle
Swearyd7
这个作者很懒,什么都没留下…
展开
-
oracle sql优化
1.绑定变量 不适用在OLAP系统中。 因为在OLAP中,对应某个参数会查询出较大的结果集,这样,oracle会判断这条sql不适用与索引(因为索引查询到的数据时少量的),而进行全表扫描。2.oracle会解析sql语句,以基于cost的标准(11G等较高版本已经基本弃用基于规则的解析)来确定执行计划。3.在较高版本如11G等,已经可以排除一些操作的影响,如 in, unio...2013-09-23 14:29:27 · 216 阅读 · 0 评论 -
H2数据库的使用
1.下载h2的jar,例如h2-1.3.170.jar2.cd到文件的地址3.在命令窗口运行java -classpath h2.jar org.h2.tools.Console -web4.根据运行结果的提示(例如Web Console server running at http://129.184.13.86:8082 (only local connections)),打开浏览...原创 2012-12-13 18:40:10 · 135 阅读 · 0 评论 -
JTA
要理解 JTA 的实现原理首先需要了解其架构:它包括事务管理器(Transaction Manager)和一个或多个支持 XA 协议的资源管理器 ( Resource Manager ) 两部分, 我们可以将资源管理器看做任意类型的持久化数据存储;事务管理器则承担着所有事务参与单元的协调与控制。根据所面向对象的不同,我们可以将 JTA 的事务管理器和资源管理器理解为两个方面:面向开发人员的使用接口...原创 2012-12-05 17:35:33 · 112 阅读 · 0 评论 -
oracle 体系结构
[img][/img]oracle工作原理:1)、在数据库服务器上启动Oracle实例;2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;3)、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;4)、客户端提交事务;5)、服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查...原创 2012-12-03 23:13:07 · 81 阅读 · 0 评论 -
oracle 存储过程实例-4
--错误处理部分。--自定义异常处理CREATE OR REPLACE PROCEDURE stu_proc( --多个用逗号隔开 v_id IN NUMBER) IS --多个用分号隔开 v_max_id NUMBER; v_name VARCHAR2(20); [color=red] myerror EXCEPTION; [/color]B...原创 2012-12-03 23:04:05 · 79 阅读 · 0 评论 -
oracle 存储过程实例-4
--错误处理部分。[code="sql"]--自定义异常处理CREATE OR REPLACE PROCEDURE stu_proc( --多个用逗号隔开 v_id IN NUMBER) IS --多个用分号隔开 v_max_id NUMBER; v_name VARCHAR2(20); v_raise EXCEPTION; BEGIN...原创 2012-12-03 23:02:12 · 118 阅读 · 0 评论 -
oracle 存储过程实例-3
PROCEDURE autoissuereturns (pagenum IN NUMBER, pagesize IN NUMBER) AS businessdate DATE; tinid VARCHAR (50); [color=red]CURSOR vv02cur IS[/color] ...原创 2012-12-03 21:42:53 · 92 阅读 · 0 评论 -
oracle函数 code实例
CREATE OR REPLACE FUNCTION gettaxcycle ([color=red] vv02 IN vv02_accounts_tin%ROWTYPE, returnoption IN NUMBER[/color] ) RETURN NUMBER AS tr12rec ...原创 2012-12-03 21:08:40 · 475 阅读 · 0 评论 -
java利用jdbc更新数据的几种方式比较
[code="java"] public void test(Connection conn) { try { // 最慢的更新方式 Statement st = conn.createStatement(); for (int i = 0; i < 10000; i++) { String sql = "insert into t1(id) value...原创 2012-11-29 14:47:52 · 170 阅读 · 0 评论 -
ORACLE数据快照技术在数据交换中的应用
Oracle数据快照技术在数据交换中的应用 摘要:该文介绍了ORACLE数据快照技术在数据交换中的应用,并且举例说明了如何应用数据快照来实现跨库数据间的同步。 关键词:ORACLE;SNAPSHOT The Snapshot Technology of Oracle in the Data Exchange Application PAN Cheng-bin ...原创 2012-04-18 10:01:12 · 80 阅读 · 0 评论 -
Oracle的TX锁(行级锁、事务锁)
问题:如何使用事务?回答:一共有三步。1、先开启事务。[color=red]•在Oracle中,事务是在上一次事务结束以后,数据“第一次”被修改时自动开启。•在java中,设置连接为手动提交模式开始。代码:connection.setAutoCommit(false)。[/color]2、进行(多次)数据操作(增删改)……3、结束事务: commit、rollback。...原创 2013-06-18 10:04:04 · 242 阅读 · 0 评论 -
oracle 锁 分析
1.分为 tx 和 tm 。即 行级 和 表级其中行级是 X表级是 S X RS RX SRXS:整个表是share的X:整个表是X的RS:表中某些行是share的RX:表中某些行是exclucive的SRX:在某个事务执行的过程中, 先加了S锁, 然后还请求了RX锁2. 加锁过程是先在表上加表级锁再在确定的某一些行上加行级锁...原创 2013-06-18 10:57:23 · 1778 阅读 · 0 评论 -
JAVA完全控制Oracle中BLOB、CLOB说明
网络上很多关于JAVA对Oracle中BLOB、CLOB类型字段的操作说明,有的不够全面,有的不够准确,甚至有的简直就是胡说八道。最近的项目正巧用到了这方面的知识,在这里做个总结。 环境:Database: Oracle 9iApp Server: BEA Weblogic 8.14表结构:CREATE TABLE TESTBLOB (ID Int, NAME Varcha...原创 2012-12-28 17:07:08 · 68 阅读 · 0 评论 -
阅读笔记 SQL
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。对于oracle进行简单树查询(递归查询)DEPTID PAREDEPTID NAMENUMBER NUMBER CHAR (40 Byte)部门id 父部门id(所属部门id) 部门名称通过子节点向根节点追朔.[code="sql"] select * from p...原创 2013-08-14 18:24:53 · 179 阅读 · 0 评论 -
synonym
建立一个同义词可以排除一个对象名字的限制.如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,开发不就方便多了~Oracle中创建同义词语句:create synonym ta...原创 2013-02-07 16:58:25 · 157 阅读 · 0 评论 -
oracle schema
A schema is a collection of database objects (used by a user.).Schema objects are the logical structures that directly refer to the database’s data.A user is a name defined in the database that ca...原创 2013-02-07 16:50:19 · 101 阅读 · 0 评论 -
物化视图的使用分析
1. 在 深入浅出 系列中,作者列举了一个例子来说明。 起因:系统中存在一些需要排序的sql查询,而且某些查询需要扫描多个基表,且这几个基表数据量较大(超百万),而且采用了全表扫描。这样再加上最终的排序就会消耗大量的io等操作。 解决: 建立中间查询的物化视图,并且根据排序字段建立降序索引,且该视图每天更新一次。这样只需从该视图查询排序即可。 又因为排序和索引字段...原创 2013-02-05 17:27:31 · 215 阅读 · 0 评论 -
Oracle编程艺术阅读笔记-2
1. 位图索引。 不适合频繁更新的表。因为更新时会锁定位图索引对应的一系列记录, 这样其他用户就会被阻塞。 他不同于B*索引。因为B*索引和记录是一一对应的。 一条索引只有唯一的记录和他对应。 而一条位图索引,则对应着很多条记录,这点详细可以参照位图索引的结构来分析。 所以更新时B*只会锁定他对应的当前记录,而位图索引则会锁定很多条。2. 函...原创 2013-01-29 10:40:22 · 154 阅读 · 0 评论 -
Oracle:位图索引与死锁-2
[color=red]位图索引被存储为压缩的索引值,其中包含了一个范围内的ROWID,因此ORACLE必须针对一个给定值锁定所有范围内的ROWID,不支持行级别的锁定。 换一种描述方法:使用位图索引时,一个键指向多行(成百上千),如果更新一个位图索引键,会同时将其他行对应位图索引字段进行锁定![/color] 较之B-Tree索引优点: 位图以一种压缩格式存放,因此占用的磁盘...原创 2013-01-28 18:24:48 · 192 阅读 · 0 评论 -
Oracle:位图索引与死锁-1
B 树索引更适合索引动态表的 OLTP 环境,而位图索引更适合在大型静态表上使用复杂查询的数据仓库环境。 bitmap索引特点: 3.Bitmap索引允许键值为空 B*Tree索引由于不记录空值,当基于is null的查询时,会使用全表扫描, 而对位图索引列进行is null查询时,则可以使用索引. 4.Bitmap索引对表记录的高效访问 当使...原创 2013-01-28 18:04:06 · 256 阅读 · 0 评论 -
Oracle编程艺术阅读笔记-1
1. 绑定变量。 不使用会产生的影响: 每次运行都需要oracle来[color=darkred]硬解析[/color],十分影响效率。作者提供的数据时20倍。 因为oracle会将sql硬解析的结果放入sga区域。当有新的硬解析请求时,oracle会串行的执行,并将结果更新进sga。因为sga提供给sql的缓存区域大小是有限的。[color=darkred]如果...原创 2013-01-24 18:48:21 · 109 阅读 · 0 评论 -
dblink
oracle建立dblink易混淆术语介绍:Db_name:对一个数据库(Oracle database)的唯一标识,该数据库为第一章讲到的Oracle database。这种表示对于单个数据库是足够的,但是随着由多个数据库构成的分布式数据库的普及,这种命令数据库的方法给数据库的管理造成一定的负担,因为各个数据库的名字可能一样,造成管理上的混乱。为了解决这种情况,引入了Db_dom...原创 2012-09-24 16:30:18 · 61 阅读 · 0 评论 -
oracle数据库间数据快速 复制
一种利用[color=red]dblink[/color]模式: 1 Create public database link xxxx connect to xxxx identified by xxxxusing 'xxxx'; --select 'drop table '||trim(xxxx)||';' from dt_tabinfo where dw_sysid = '...原创 2012-04-18 09:52:22 · 170 阅读 · 0 评论 -
mysql 时间戳自动更新
-- Table "pnodetail" DDLCREATE TABLE `pnodetail` ( `id` varchar(100) NOT NULL, `flag` varchar(2) DEFAULT NULL, `time` int(11) DEFAULT NULL, `pho` varchar(100) DEFAULT NULL, [color=r...原创 2013-04-09 10:24:29 · 125 阅读 · 0 评论 -
JDBC优化
相比Hibernate、iBatis、DBUtils等,理论上JDBC的性能都超过它们。JDBC提供更底层更精细的数据访问策略,这是Hibernate等框架所不具备的。 在一些高性能的数据操作中,越高级的框架越不适合使用。这里是我在开发中对JDBC使用过程中一些优化经验总结。 1、选择纯Java的JDBC驱动。 2、使用连接池--使用一个“池”来管理JDBC连接,并精...原创 2012-05-16 10:43:25 · 91 阅读 · 0 评论 -
Oracle数据库的锁类型
Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护数据库的内部结构。 DML锁的目的在...原创 2012-05-05 10:56:26 · 124 阅读 · 0 评论 -
外连接 及 无用的外连接
一:左右连接实例。表TEST1: id 20 30 200表TEST2: id 20 30 100表TEST3: id 20 100 200以下语句的查询结果select t1.id a...原创 2012-05-04 14:27:24 · 112 阅读 · 0 评论 -
ORACLE SQL性能优化系列
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各 种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也...原创 2012-05-03 20:44:54 · 105 阅读 · 0 评论 -
数据库优化之我见
a. 数据库配置 包括sga配置:数据缓存,共享池等。 数据缓存可以根据需要来设定缓存策略,比如keep,recyle,defaultcelve。 共享池的库缓存与sql的缓存相关。b. 表结构的设计 主键外键,索引。 纵向拓展:表分区,垂直分库 横向拓展:表分片c. sql优化 访问Table的方式 ...2012-05-03 18:30:29 · 100 阅读 · 0 评论 -
oracle内存管理
SGA数据缓冲 data buffer caheBuffer Cache是SGA区中专门用于存放从数据文件中读取的的数据块拷贝的区域。Oracle进程如果发现需要访问的数据块已经在buffer cache中,就直接读写内存中的相应区域,而无需读取数据文件,从而大大提高性能(要知道,内存的读取效率是磁盘读取效率的14000倍)。Buffer cache对于所有oracle进程都是共享的,即能...原创 2012-05-03 18:15:51 · 78 阅读 · 0 评论 -
全表扫描
全表扫描当[color=red]发生全表扫描[/color](Full Table Scan)时,用户进程读取表的数据块,[color=red]并将他们放在LRU链表的LRU端(和上面不同,不是放在MRU端)。这样做的目的是为了使全表扫描的数据尽快被移出。因为全表扫描一般发生的频率较低,并且全表扫描的数据块大部分在以后都不会被经常使用到。[/color]而如果你希望全表...原创 2012-05-03 14:13:16 · 78 阅读 · 0 评论 -
Oracle取月份,不带前面的0
今天碰到只要取月份和天数,如果月份前面有0要去掉0.比如说2010-01-08 ,需要的结果是1-8. 引出了一系列的sql语句 第一: 利用to_number的函数转换自动截0 select to_number(to_char(sysdate,'mm'))||'-'||to_number(to_char(sysdate,'dd')) from dual; 第二: 利用ltrim函...原创 2012-04-23 17:50:41 · 178 阅读 · 0 评论 -
oracle 死锁与等待
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。死锁的第一种情况:一个用户A访问表A(锁住了表A),然后又访问表B; 另一个用户B访问表B(锁住了表B),然后企图访...原创 2012-01-03 18:47:50 · 88 阅读 · 0 评论 -
索引简介
一、索引简介1、索引相当于目录2、索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率。3、索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散的列上,避免对同一张表创建过多的索引4、索引的使用对用户来说是透明的,由系统来决定什么时候使用索引。5、Oracle支持多种类型的索引,可以按列的多少、索引值是否唯一和索引数据的组...原创 2012-05-16 11:17:39 · 68 阅读 · 0 评论 -
JDBC优化-2
@java方面1.使用Statement对象2.预编译PreparedStatement3.使用PreparedStatement + 批处理为了区分出这三者之间的效率,下面的事例执行过程都是在数据库表t1中插入1万条记录,并记录出所需的时间(此时间与电脑硬件有关)1.使用Statement对象使用范围:当执行相似SQL(结构相同,具体值不同)语句的次数比较少优点:语法...原创 2012-05-16 14:11:15 · 59 阅读 · 0 评论 -
复合索引【复合索引顺序选择问题】
[color=red][b]注意!!!在较高版本的oracle中不存在下述的问题!!![/b][/color]复合索引第一个原则:前缀性(Prefixing)[color=red]复合索引的前缀性是指只有当复合索引的第一个字段出现在SQL语句的谓词条件中时,该索引才会被用到。如复合索引为(ename,job,mgr),只要谓词条件中出现第一个字段ename,就可以用复合索引...原创 2012-05-17 16:41:48 · 941 阅读 · 0 评论 -
oracle 的日期相关函数
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 yyyy four digits 四位年 ...原创 2012-03-13 14:43:28 · 76 阅读 · 0 评论 -
分页查询中 rownum 的应用解析
在查询中,我们可以注意到,类似于“select xx from table where rownum < n”(n>1)这样的查询是有正确含义的,而“select xx from table where rownum = n”这样的查询只在n=1的时候成立,“select xx from table where rownum > n”(n>1)这样的查询只能得到一个空集。另外“select xx ...原创 2012-03-11 20:15:46 · 80 阅读 · 0 评论 -
oracle 阅读笔记-2
1,表连接自然连接:将两个数据源中有[color=red]相同名称的列[/color]进行连接 select * from a[color=red] natural join [/color]b内连接:略外连接:左外连接 略 右外连接 略 完全连接 是一个左连接和右连接的组合。即先执行一个左连接,再执行一个右连接,左后在进行...原创 2012-06-17 22:24:01 · 66 阅读 · 0 评论 -
oracle 阅读笔记-1
1.函数与存储过程[color=red]函数必须有返回值[/color],存储过程有in out参数,不需要返回值。[color=red]函数有确定性函数,关键字为deterministic,使用目的是该函数对于传入的相同的参数,其返回值是确定不变的[/color],例如个税计算等。数据库会使用之前的计算结果,提高效率。[color=red]使用函数的原因是:可以将计算等封装复用。...原创 2012-06-12 21:23:38 · 86 阅读 · 0 评论