ORACLE
文章平均质量分 89
kingsui69
这个作者很懒,什么都没留下…
展开
-
数据库批处理的几种方法
首先,要关闭数据库连接的自动提交。否则就不叫批处理了。 connect.setAutoCommit(false); 然后,判断该数据库是否支持批更新。 DatabaseMetaData dbmData = connect.getMetaData(); //... if (dbmData.supportsBatchUpdates()) { //使用Statement创建批处理 stateme...2008-06-16 21:18:48 · 848 阅读 · 0 评论 -
简单提高ORACLE数据库的查询统计速度
大型数据库系统中往往要用到查询统计,但是对于数据量大的系统,用户在进行复杂的查询统计时往往感到速度很慢,不能满足应用要求,这就要求我们在设计数据库系统时进行合理设置,提高查询统计的速度。本文结合笔者的项目开发经验,阐述具体的设置方法。 我们在开发大型oracle数据库系统时结合项目的特点,本着安全、高效的原则对数据库进行了一些物理设计,从而大大提高了数据库的查询统计速度。总结为如下几点: 1)扩大...2008-03-31 10:19:21 · 426 阅读 · 0 评论 -
深入浅出:数据库设计模式范例
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。 第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一...2008-03-31 10:22:53 · 336 阅读 · 0 评论 -
Oracle的25条基本知识
Oracle 基本知识轻松学: 1.一个表空间只能属于一个数据库。 2.每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)。 3.每个数据库最少有一个表空间(SYSTEM表空间)。 4.建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。 5.每个数据库最少有两个联机日志组,每组最少一个联机日志文件。 6.一个数据文件只能属于一个表空间。 7....2008-03-31 10:33:37 · 82 阅读 · 0 评论 -
“数字公交”项目中的oracle开发技巧
参与进"数字公交"项目已经有一个多月了,我自己负责的模块也基本完成并通过测试,本项目基于oracle的C/S结构,涉及很多数据库方面的操作,有一些经验是以前没有用到的,为了留做它日参考,特记录于此,如果看到此文的读者能够用到,那我更是欣慰. 1.users是用户表,userid是从sequence得到的唯一序号,作为主键,下面的触发器方便每次插入分配唯一的序列,其他表也可以参考于此. CREA...2008-03-31 10:41:18 · 63 阅读 · 0 评论 -
Oracle快速删除重复的记录
做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而且是生产系统。也就是说,不能把所有的记录都删除,而且必须快速的把重复记录删掉。对此,总结了一下删除重复记录的方法,以及每种方法的优缺点。为了陈诉方便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col...2008-03-31 11:33:14 · 130 阅读 · 0 评论 -
Oracle中一个日期查找的误区
经常要在数据中检索近一个月来发生的数据,所以采用如下语句select * from eventtable where eventdate>sysdate-30,当数据量小的时候还看不出来,数据量大一些就会发现上面的语句很慢,但eventdate(日期型字段)上也是有索引的,可为什么会慢呢? 原来是oracle在进行查找的时候不断地去取sysdate这个不断变化的值,而不是我们想象中的一...2008-03-31 11:50:41 · 104 阅读 · 0 评论 -
Oracle SQL语句优化技术分析
操作符优化 IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转...2008-03-31 13:58:49 · 62 阅读 · 0 评论 -
oracle 存储过程的基本语法
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异...2008-04-28 17:54:44 · 72 阅读 · 0 评论 -
oracle-序列(SEQUENCE)
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、 create sequence 你首先要有create sequence或者create any sequence权限, create sequence emp_sequence INCREMENT BY 1 -- 每次加几个 ...2008-04-29 12:50:02 · 212 阅读 · 0 评论 -
oracle中自增长列的生成方案
最近遇到一个项目,将数据库sybase转换为oracle,其中一个问题就是原来数据库中使用了许多自增长列,现在一个目的就是只更换数据库而不修改现有代码。无奈之举,就吸能用序列+触发器的方式来代替原来的自增长列。因为项目中的表将近200个,有些表的记录,日增长量就有几万条,最近为了万无一失,决定为原有自增长列的表,分别建序列和触发器,这样自增长列也就没有跳号的情况。但工作量太大,最后决定...2008-05-18 23:38:11 · 82 阅读 · 0 评论 -
oracle数据库锁的概念
为了确保并发用户在存取同一数据库对象时的正确性(即无丢失修改、可重复读、不读 “脏”数据),数据库中引入了锁机制。基本的锁类型有两种:排它锁(Exclusive locks 记 为X 锁)和共享锁(Share locks记为 S锁)。 排它锁:若事务T对数据D加X锁,则其它任何事务都不能再对D加任何类型的锁, 直至T 释放D 上的X 锁;一般要求在修改数据前要向该数据加排它锁,所以排它锁又称为 写...原创 2008-12-13 10:47:36 · 176 阅读 · 0 评论 -
Oracle数据库系统使用经验六则
1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列。 2.外部联接"+"的用法 外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回.若二者均不带’+’,则...2008-03-30 11:11:38 · 83 阅读 · 0 评论 -
Oracle数据库字段上建立索引
当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。 通常情况下,如果在WHERE子句中不使用诸如UPPER、REPLACE 或SUBSTRD等函数,就不能对指定列建立特定的条件。但如果使用了这些函数,则会出现一个问题:这些函数会阻碍Oracle优化器对列使用索引,因而与采用索引的情况相比较,查询会花费更多的时间。 庆幸的是,如果在使用函...2008-03-30 11:08:13 · 550 阅读 · 0 评论 -
采用过程实现数据库约束完整性
约束的完整性,是数据库所具有的一大特性,但在最近的一个数据库转换项目中,确要通过程序的方式,人为的去实现.有些不太明白设计者的想法.需求是这样的,若省市表中的记录被别的表引用,则不能进行删除操作(表之间未建立任何约束).无奈之举,最后决定用存贮过程的方式去实现,效率会高一些,减少开发量,也有利于日后的维护. CREATE OR REPLACE PROCEDURE p_isCityUse...2008-06-22 15:38:54 · 113 阅读 · 0 评论 -
oracle中时间字段查询
一.TimeStamp类型字段: select calen_id, cdate, day_sign, month_sign, year_sign, week, cur_day from bs_Calendar where cdate >= to_timestamp('2007-11-03 00:00:00.0','yyyy-mm-dd HH24:mi:ss.ff') a...2008-06-22 15:56:50 · 389 阅读 · 0 评论 -
ORACLE 中ROWNUM用法总结!
对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与...2007-12-19 18:09:38 · 78 阅读 · 0 评论 -
基础查询及常用函数
1.sql 语句不区分大小写字;2.oracle9i数据类型;名称含义Char用于描述定长的字符型数据,长度<=2000字节varchar2用于描述变长的字符型数据,长度<=4000字节nchar用来存储Unicode字符集的定长字符型数据,长度<=1000字节nvarchar2用来存储Unicode字符集的变长字符型数据,长度<=1000字节number用来存储整型或者浮...2008-01-08 13:28:08 · 99 阅读 · 0 评论 -
多表查询
1.连接查询./*-- 传统连接方式 --*/select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno /*--natural join 两张表中只有一个同名栏位时行连接 --*/select e.ename,d.dname from dept d ...2008-01-09 17:10:15 · 172 阅读 · 0 评论 -
企业内部查询的SQL语句
1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,--显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。select emp_no ,emp_name ,dept ,isnull(convert(char(10),birthday,120),'日期不详') birthdayfrom employeeorder by dept --2、查找与喻自强在同一个单位的员工姓名、性...2008-03-08 10:58:48 · 999 阅读 · 0 评论 -
oracle分页
Oracle的rownum字段是个比较奇怪的字段。拿一张有26条记录的Test表来举例。 select * from Test where rownum >=1; select * from Test where rownum >=2; select * from Test where rownum <= 10;第一条sql查出了26条记录,第二条sql...原创 2008-10-21 16:09:13 · 162 阅读 · 0 评论 -
oracle日期和时间
Oracle 提供了三个用于存储日期/时间值的数据类型: 表示日期和时间的 DATE 类型。 DATE 字段中存储的值包含有与世纪、年、月、日、小时、分钟和秒相对应的"组成部分"。 日期可以是公元前 4712 年 1 月 1 日到公元 9999 年 12 月 31 日这一范围中的任何一天。 从 Oracle9i 开始提供的 TIMESTAMP 类型是 DATE 类型的有效扩展格式,并且符合 ANS...原创 2008-10-21 17:38:06 · 486 阅读 · 0 评论 -
SQL Server 和 Oracle 常用函数对比
SQLServer和Oracle是大家经常用到的数据库,在此感谢作者总结出这些常用函数以供大家参考。 数学函数 1.绝对值 S:seleCT abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value fro...2008-03-28 11:08:46 · 81 阅读 · 0 评论 -
关于Oracle数据库中的锁机制深入研究
本文通过对Oracle数据库锁机制的研究,首先介绍了Oracle数据库锁的种类,并描述了实际应用中遇到的与锁相关的异常情况,特别对经常遇到的由于等待锁而使事务被挂起的问题进行了定位及解决,并对死锁这一比较严重的现象,提出了相应的解决方法和具体的分析过程。 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取...2008-03-28 11:34:23 · 154 阅读 · 0 评论 -
Oracle中实现搜索分页查询
在构建自定义搜索引擎时,开发人员常遇到的一个问题是实现某种类型的分页功能;也就是说,允许用户提交一个返回很多行数据的查询,但是只显示前20条。在用户点击一个链接时,下20条或者前20条数据会从数据库应用程序中取出。 数据库访问存在的一个问题是来自 Web 站点的请求是无状态的。在等待用户请求下一组数据时,让数据库维护一个游标的效率是非常低的。对 HTML 编写代码让游标位于客户端是可以做到的,但是...2008-03-28 12:32:44 · 108 阅读 · 0 评论 -
Oracle的锁机制归纳总结
锁是防止在两个事务操作同一个数据源(表或行)时交互破坏数据的一种机制。Oracle采用封锁技术保证并发操作的可串行性。Oracle的锁分为两大类:数据锁(也称DML锁)和字典锁。字典锁是Oracle DBMS内部用于对字典表的封锁。字典锁包括语法分析锁和DDL锁,由DBMS在必要的时候自动加锁和释放锁,用户无机控制。 Oracle主要提供了5种数据锁:共享锁(Share Table Lo...原创 2008-12-13 11:29:38 · 111 阅读 · 0 评论