数据库(Sqlserver 和 Oracle相关)
文章平均质量分 66
cpkf8888
这个作者很懒,什么都没留下…
展开
-
oracle存储过程总结1
=====================================================================oracle存储过程 登陆系统create or replace procedure insert_user_information ( p_user_login_name in varchar2,[color=red][/colo...2009-04-12 17:45:59 · 95 阅读 · 0 评论 -
悲观锁和乐观锁
加锁对并发访问的影响体现在锁的粒度上: 1、悲观锁假定其他用户企图访问或者改变你 正在访问、更改的对象的概率是很高的,因此在悲观锁的环境中,在你开始改变此对象之前就将该对象锁住,并且直到你提交了所作的更改之后才释放锁。 比喻:悲观的爱情:认为爱情分手率是很高的。所以认识了GIRL以后就紧抓不放(锁定),直到结婚以后才允许GIRL与其它BOY讲话。所以GIRL被“锁定”的时间非常长,其它BO...2009-05-10 23:56:23 · 68 阅读 · 0 评论 -
实际项目中是如何进行数据库建模的
其实在实际项目中建模的精华不外乎就是以下几点,但是真正的把它精通的人很少!1、需求分析,找出所涉及的各种信息 2、进行概念数据模型设计 2.1、找实体 2.2、找实体的属性 2.3、找实体之间的关系 (与客户讨论,修改CDM) 3、根据CDM产生PDM,对PDM进行修改。 4、后面需求还有变化,但只在有必要的情况下再修改数据库。 ...2009-05-12 07:26:52 · 329 阅读 · 0 评论 -
Oracle最快删除重复记录
Oracle删除重复记录的最快方法:++++++++++++++++++++++++++++++++++++++++++DELETE FROM EMP EWHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO 这是为什么呢? 1、子查询找出某员工最低的ROWID(肯定只有一个...2009-05-12 07:45:00 · 180 阅读 · 0 评论 -
sql性能分析
规则:select 字句要避免使用*。 使用exists代替in子句;使用not exists代替not in 子句。 使用trucate 代替delete from 表语句。 减少访问数据库 次数。 要使用表的别名。 要尽快使用commit 要学会设计冗余字段 Orac...2009-05-14 07:25:39 · 104 阅读 · 0 评论 -
如何实现网站流量设计
需求:某网站每天都有大量访问,所以需要统计网站流量。表有两个字段,分别是访问时间字段:log_Time,访问IP字段:IP) 问题1:请统计每个小时(0-1,1-2....-24)的访问次数。 问题2:哪个时段访问是最高峰。 select t.*, t.rowid from t_access t --方法:得到要统计的原始信息(假设今天是2008-03-02) select t...2009-05-14 08:08:33 · 222 阅读 · 0 评论 -
OLTP和OLAP的区别
OLTP是联机事务处理OLAP是联机分析处理1.用户和系统的面向性不同A、OLTP是用于面向顾客的,用于事务和查询处理。B、OLAP是用于面向市场的、用于数据分析(要给领导看的) 2、数据内容:A 、OLTP是系统管理当前数据B、OLAP是系统管理大量历史数据,用于汇总和聚集机制 3、数据库设计A、OLTP是采用实体---关系模型ER模型设计的,和面向应...2009-05-16 12:01:25 · 216 阅读 · 0 评论 -
Oracle的光标
光标为了出来sql语句 , Oracle分配一个上下文区域,用于处理所需的信息,而光标就是指向上下问的句柄或指针、用于控制上下文区和控制处理语句时,上下文区发生的事情 一、显示光标(游标) 1、 在PL/SQL中的定义的光标就是显示...2009-05-20 21:07:51 · 154 阅读 · 0 评论 -
使用JDBC插入大量数据的性能测试
使用jdbc向数据库插入100000条记录,分别使用statement,PreparedStatement,及PreparedStatement+批处理3种方式进行测试://1.使用statement插入100000条记录 public void exec(Connection conn){ try { Long beginTime = System.currentTim...2009-05-21 16:18:12 · 177 阅读 · 0 评论 -
Oracel函数
SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE--------- --------- --------- --------...2009-05-24 14:31:36 · 110 阅读 · 0 评论 -
Oracle分区表总结
在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。1.1 分区表PARTITION table在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。1.1.1 分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据(假设每月产生30M的数据),操作如下: 范围分区表:...2009-05-25 16:02:59 · 82 阅读 · 0 评论 -
oracle性能优化------分区技术
数据库性能优化Oracle方面的特性:分区技术分区索引记录表,索引更多。创建索引,也可以分区。分区索引基本原则: 创建表的物理位置 与 创建索引物理位置 一定要不相同!相当于:字典前面索引 字典正文 分别放在两个硬盘上!查资料:索引:一个有顺序的表(表中只有被索引列)索引化表:将表的数据进行索引化(在SQLServer叫做聚...2009-06-02 07:08:39 · 88 阅读 · 0 评论 -
性能优化之--------索引
一,oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差。 下面是一些常见的索引限制问题。 1、使用不等于操作...2009-06-03 20:28:09 · 55 阅读 · 0 评论 -
怎样杀死死锁!
1、 查出是哪个过程被锁!2、查出是哪一个sid,通过sid可以找到session3、查出sid和serial#4、分别杀Oracle和操作系统的进程1.查哪个过程被锁 查V$DB_OBJECT_CACHE视图: SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND CLOCKS!='0'; 2. 查是哪...2009-05-10 21:49:51 · 255 阅读 · 0 评论 -
Oracle 的树形递归查询
一、树型表结构: 节点ID 上级ID 节点名称 二、公式: select 节点ID,节点名称,level from 表 connect by prior 节点ID=上级节点ID start with 上级节点ID=节点值 说明: 1、常见的树形结构为公司组织机构、地区…… 2、求节点ID以上的结构,或以上的结构,将“节点ID=上级节点ID”左右顺序换一下...2009-05-10 18:01:14 · 127 阅读 · 0 评论 -
外键的认识和理解
外键的认识和理解:++++++++++++++++++++++++++++++++++++++++++++++++++++++员工表(工号,姓名)工资表(工号,月份,工资)说明:员工表,又称为“主表”;工资表,又称为“子表”,这表示一个员工有多条工资记录。建立外键以后默认的删除方式:No action1、可以随便删除工资数据吗?回答:可以。如一个人的工资数据录入错误,允许删...2009-05-05 19:18:53 · 73 阅读 · 0 评论 -
oracle存储过程总结2
1 存储子程序 存储子程序是指被命名的PL/SQL块,以编译的形式存储在数据库服务器中,可以在应用程序中进行调用,是PL/SQL程序模块化的一种体现。PL/SQL中的存储子程序包括存储过程和(存储)函数两种。通常,存储过程用于执行特定的操作,不需要返回值;而函数则用于返回特定的数据。在调用时,存储过程可以作为一个独立的表达式被调用,而函数只能作为表达式的一个组成部分被调用。 存储子程序是以...2009-04-13 09:02:47 · 126 阅读 · 0 评论 -
oracle decode 函数技巧
在工作中经常遇到要用decoder函数我这里举两个典型的例子将表:______________________________________|a_name | a_subject | a_score ||张三 | 语文 | 80 ||张三 | 数学 | 70 ||张三 ...2009-04-14 07:47:51 · 120 阅读 · 0 评论 -
java与Oracle相关性能优化总结1
一 、 java相关 性能优化1.java 中的硬代码如何解决:写配置文件2 java应用程序访问数据库的过程(简单描述) A、 加载驱动 B、 建立连接 C、 访问数据库,执行sql D. 关闭连接3.java中 深入理解JDBC 的预编译对象使用预编译对象的优点:A、减少编译次数,提高系统效率: ...2009-04-14 23:30:43 · 446 阅读 · 0 评论 -
Oracle 实现分页
使用三层嵌套正确实现Oracle分页:+++++++++++++++++++++++++++++++++++++++原始记录: select t.*, t.rowid from t_stu t order by t.s_birthday desc 返回: STU_ID S_NAME C_ID S_BIRTHDAY S0002 李四 C01 1989-3-21 S00...2009-04-15 10:29:03 · 365 阅读 · 0 评论 -
JDBC连接数据库大全
标题 常用数据库JDBC连接写法 zlyperson(原作)关键字 JDBC Sybase MySQL SQLServer PostgreSQL Oracle ODBC1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar/Class.forName( "org.gjt.mm.mysql.Drive...2009-04-16 01:00:18 · 72 阅读 · 0 评论 -
Oracle row_number() over()解析函数高效实现分页
在刚出来工作时! 大多数人只知道用rownum 来进行分页,或是sql嵌套来分页 后来觉得效率挺低的。而且rownum是先分配行号,再进行排序! 一句话麻烦! 后来我再对数据库特殊sql的研究之后,觉得我以前的3层嵌套实现分页的效率也是很低的, 直到用了 row_number() over(partition by xx order by xxx desc/asc) 函数之后,才觉得这种方法是...2009-04-17 09:34:21 · 250 阅读 · 0 评论 -
Oracle decode函数处理复杂报表
员工10月考勤总汇表 行号 工号 姓名 迟到 旷工 合 请假 事假 1 100 张三 1 2 7 7 4 2 100 李四 0 0 3 100 王五 3 2 0 0 4 101 杨六 5 1 6 2 2 表格设计一: 方案一 完全按照汇总表来设计: ...2009-04-18 23:19:53 · 269 阅读 · 0 评论 -
ER建模----总结
其实、在工作中,数据库在后台这边全部设计好之后,前台就简单的多了!而且,用有些用工具可以帮助完成前台的实现,但是只有数据库设计这一块是无法用工具帮助完成的!可见数据库在设计中是多么的重要! 一、数据库分析的前提条件 1.掌握关系型数据库理论: 关系DB = 实体 + 关系 = PK + FK 关系 = 一对一(11) + 一对多(1...2009-04-27 08:49:15 · 173 阅读 · 0 评论 -
什么是数据仓库
我们都知道,利用多种不同的企业数据库提取数据进行业务决策是一件复杂的工作。而数据仓库的主要优点就是可以将这些不同的数据整合在一个中央存储环境中,并提供给用户必须的OLAP(Online Analytical Processing,联机分析处理)工具来检索与业务有关的数据。 当你听到数据仓库(data warehousing)这个词的时候会想到什么呢?也许是一个满是货架的房间,而货架上按一定次...2009-05-04 00:55:15 · 75 阅读 · 0 评论 -
rownum总结
对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以下符号(=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明假设某个表 t1(c1...2009-05-04 16:58:56 · 69 阅读 · 0 评论 -
Oracle sql性能优化总结
选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理。 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。当ORACLE处理多个表时, 会运用排序及合并的方式连接它们。首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派...2009-05-04 23:11:34 · 62 阅读 · 0 评论 -
导入导出1000万条数据
如何导入导出大数据量(1000万条)的表(如t_employee)+++++++++++++++++++++++步骤:1、从数据库1中导出数据2、使用delete删除数据2中相同表的所有数据。3、导入。思考:以上步骤对吗?分析:错误有2。1、不应该使用delete删除大量数据。2、在数据导入时,数据库系统将会同时维护索引。所以效率会很低。正确的做法是:1、从数据库1中导出2、删除数据库2中对应表中...2009-05-05 19:07:04 · 1760 阅读 · 0 评论 -
oracle异常处理
:变量名类似Pst 中 sql 的 ?分支java if(..){ }else if(..){ }else{ }oracle:if(..)then--beginend ifcase...end case;loop...end loop;if ... then ...elsif .. then..else --好的编程习惯一定要有else..end if;如...2009-06-28 20:35:12 · 132 阅读 · 0 评论