![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Database
文章平均质量分 61
lovingprince
关注大型WEB系统架构的高可用性、高性能处理
展开
-
oracle decode函数的用法
该函数可以接受可变的参数,具体参数情况如下:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:if ( 条件=值1 ) return(翻译值1)else if( 条件=值2) return(翻译值2) ......else if( 条件=值n ) return(翻译值n)else return(缺省值)end if原创 2007-02-08 18:40:00 · 6300 阅读 · 0 评论 -
多数据库分页原理介绍
大型web运用中我们都知道会采用多数据库的方式来存储大量数据,这个过程中我们就会采用对数据的垂直划分或者水平划分来组织数据。当然web查询就会涉及到分页,如果采用的水平划分数据,那么查询分页的数据就可能分布在不同的数据库中,那么这个时候我们如何来分页呢? 其实原理很简单,比如,我要查询第11页的数据,这里每页数据是20条,那么第11页数据的记录位置就在201开始到210的位置结束。假设原创 2008-07-07 14:41:00 · 2655 阅读 · 1 评论 -
各类JDBC数据库连接方式
转自:jdbc链接数据库大全1、链接Sqlserver2000 驱动类 com.microsoft.jdbc.sqlserver.SQLServerDriver 连接字符串 jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs (pubs为数据库名,localhost为主机地址,若数据库在远程则为IP地址) 2、链接mys转载 2008-10-31 11:32:00 · 2078 阅读 · 4 评论 -
写有效的历史数据迁移sql
转自:http://rdc.taobao.com/blog/dba/html/124_oracle_data_transfer.html作者:丁原对于高并发oltp系统,生产库可能只需保留当前几个月的数据,之前的数据要全部迁移到历史库中。那么,如何处理这样的需求,如何写合适的历史迁移程序呢?1.常规写法begin --迁移数据 insert into tb_users selec转载 2008-11-06 17:00:00 · 1499 阅读 · 0 评论 -
RAC的负载均衡
转自:http://rdc.taobao.com/blog/dba/html/216_rac_load_balance.html作者:流云转注: 这些都出自于淘宝DBA团队之手,供大家分享下RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。客户端的负载均衡配置相对简单,转载 2008-11-10 10:18:00 · 2014 阅读 · 0 评论 -
怎样看懂Oracle的执行计划
尽量用鸟语描述了,翻译成中文反而容易误解。一、什么是执行计划An explain plan is a representation of the access path that is taken when a query is executed within Oracle.二、如何访问数据At the physical level Oracle reads blo转载 2009-01-16 16:32:00 · 3134 阅读 · 2 评论 -
Oracle执行计划的相关概念
本文介绍了ORACLE执行计划的一些基本概念,供学习应用。一.相关的概念Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期转载 2009-01-16 16:33:00 · 1072 阅读 · 1 评论 -
oracle SQL 星期 算法
美国人把周日当成一周的开始周六当成周结束,而我们常常需要将周一当成一周的开始,周日当成一周结束。在SQL操作中可能会遇到这类计算,例如,统计上周一到上周日的订单数量。 计算方法如下:方法: 充分利用trunc函数和next_day函数:next_day(date,day) :给出日期date和星期x(周日 x=1 周一 x=2 周二 x=3 ...周六=7)之后计算下一个星期的日期。t原创 2008-12-03 17:15:00 · 2027 阅读 · 0 评论 -
小心:防止数据库数据写覆盖
常常在项目中见到这样的DML语句:UPDATE table1 set column1=2 where id=12345 这么简单的语句,有什么稀奇的地方呢?我来模拟一个场景,用户A在页面上查询到这条ID=12345的记录,他看到column1的值是1,他想更新到2 。于是他点击了更新,同时用户B也看到了这条记录,他看到这条记录的column1的值也是1,他想更新到3,于是他也点击更新。这个时候原创 2008-12-15 11:15:00 · 2593 阅读 · 2 评论 -
ORA-01791:not a SELECTed expression
问题出现的原因: There is an incorrect ORDER BY item. The query is a SELECT DISTINCT query with an ORDER BY clause. In this context, all ORDER BY items must be constants, SELECT list expressions,原创 2009-03-06 16:11:00 · 3811 阅读 · 2 评论 -
PL/SQL Developer 导入导出csv文件
PL/SQL Developer 可以导入或者导出CSV文件。 导入CSV文件步骤: 1、选择tools->text importer.... 2、选择第二个Data to oracle选项卡,然后选择Open Data file....,选择要导入的csv文件,确定 3、选择对应的owner和table,将字段一一对应,最后点击下方的导入,数据即导入到了选定的table中了原创 2009-03-11 13:32:00 · 39800 阅读 · 4 评论 -
减少oracle sql回表次数 提高SQL查询性能
要写出高效的SQL,那么必须必须得清楚SQL执行路径,介绍如何提高SQL性能的文章很多,这里不再赘述,本人来谈谈如何从 减少SQL回表次数 来提高查询性能,因为回表将导致扫描更多的数据块。 我们大家都知道,数据库表中数据存储都是以块为单位,称为数据块;表中每行数据都有唯一的地址标志ROWID。 举个例子: select a from test_db where b=5原创 2009-04-16 17:09:00 · 5586 阅读 · 2 评论 -
oracle 分区概念介绍
Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。 而且,因为在 SQL 语句中分区是完全透明的,所以该功能几乎可应用于任何应用程序。 分区功能的优势 分区功能通过改善可管理性、性能和可用转载 2009-05-04 15:22:00 · 5166 阅读 · 0 评论 -
Jboss as 基本设置
Step one: download JBoss Application Server , e.g. jboss-4.2.2.GA Step two: extract jboss-4.2.2.GA.zip to a local dir say ${JBOSS_HOME} Step three: config - 注:以下配置对应的jboss版本为4.2.2.GA,部署的应用类型为ear转载 2009-09-03 18:42:00 · 1815 阅读 · 4 评论 -
日常工作常用工具集
日常开发工作用到很多工具,这里将平日使用到的一部分必要的工具集子集列举一下,便于各位参考。 1. 开发编辑器:Eclipse->http://www.eclipse.org/ 插件查找地址:http://www.open-open.com 1)Easy Explorer 打开在eclipse中选定文件所在的目录 2)Implementor原创 2010-04-18 15:19:00 · 2625 阅读 · 1 评论 -
Python 数据库接口模块
转自:http://wiki.woodpecker.org.cn/moin/DatabaseModules专用数据库连接模块MySQLMySQL -- 最流行的开源数据库MySQL-Python -- MySQL 的 Python 接口http://dustman.net/andy/python/python-and-mysql --转载 2011-12-14 17:21:32 · 6088 阅读 · 1 评论 -
Socket代理转发小记
本地转发代码forward.py#!/usr/bin/env pythonimport osimport socketimport selectimport SocketServerimport sysimport paramikodef verbose(s): print sclass ForwardServer (SocketServer.Thr原创 2011-12-16 12:01:37 · 5476 阅读 · 0 评论 -
DBUnit 2.4.9+ 支持数据库唯一键扩展
由于DBUnit在做refresh或者delete操作时是根据数据库的connection获取到meta信息,然后通过meta信息来确定主键列,最后根据这些列构造where条件,进行更新或者删除处理,但是如果表没有定义主键,只定义了唯一键,DBUnit无法处理,而目前我所遇到的就有这种情况,所以我对DBUnit进行了扩展,支持oracle和mysql的唯一键处理,但是要注意唯一键的键值如果有nul原创 2012-10-17 14:39:02 · 2482 阅读 · 0 评论 -
sql查询满足任意几个条件的查询方法
满足5个条件中任意四个条件都可以的实现方法。一、使用case when实现select * from 表名 where (case when 条件1 then 1 else 0 end+ case when 条件2 then 1 else 0 end+ case when 条件3 then 1 else 0 end+ case when 条件4 then 1 else 0 end+ cas原创 2008-06-25 11:50:00 · 10514 阅读 · 1 评论 -
Oracle中表的连接及其调整(1)
只有对这些问题有了清晰的理解后,我们才能针对特定的查询需求选择合适的连接方式,开发出健壮的数据库应用程序。选择合适的表连接方法对SQL语句运行的性能有着至关重要的影响。下面我们就Oracle常用的一些连接方法及适用情景做一个简单的介绍。一、嵌套循环连接(Nested Loop) 嵌套循环连接的工作方式是这样的: 1、Oracle首先选择一张表作为连接的驱动表,这张表也称为外转载 2008-06-20 14:23:00 · 1070 阅读 · 0 评论 -
Oracle中表的连接及其调整(2)
二、排序合并连接(Sort Merge) 排序合并连接的方法非常简单。在排序合并连接中是没有驱动表的概念的,两个互相连接的表按连接列的值先排序,排序完后形成的结果集再互相进行合并连接提取符合条件的记录。相比嵌套循环连接,排序合并连接比较适用于返回大数据量的结果。以下为排序合并连接的例子: Roby转载 2008-06-20 14:24:00 · 1137 阅读 · 0 评论 -
数据库表设计关于"主键"选择乱谈
现在做项目总离不开主流的关系数据库, 当然也就免不了对数据库表的设计,这里如何对数据库进行设计当然还轮不到我这个半斤八两的人在这里高谈阔论,我只想谈谈我对数据库主键选择的一些看法. 一些比较老一点的设计师都有一个习惯,那就是喜欢把业务上唯一的字段或复合字段作为数据库表的主键,所谓业务主键,打个比方,数据库表有姓名,性别 ,年龄 ,电话,四个字段,在这里,假设姓名是唯一的,那么,原创 2007-03-15 13:20:00 · 1814 阅读 · 0 评论 -
将需要两次查询的不相干的查询通过一条查询语句返回结果
将需要两次查询的不相干的查询通过一条查询语句返回结果,这往往在统计查询中非常有用,因为统计需要显示很多统计数据,涉及到的表比较多,所以如果能一条语句返回所有结果,对于WEB分页的处理也很方便.下面介绍几种方法:1.使用全外连接(full outer join). 处理方法是,先分别按照需要得到查询结果A,B等,然后使用 select * from A full outer join B原创 2007-03-17 10:30:00 · 1648 阅读 · 0 评论 -
SQLSERVER,ORACLE,MYSQL高效分页查询
如果查询结果需要分页,从效率上讲,下面的效率应该比较高(粉红色表示需要根据实际情况填充的地方)三类数据库中进行分页查询的高效率方法(目前来看):Oracle: SELECT * FROM ( SELECT MY_TABLE.*,ROWNUM AS MY_ROWNUM FROM ( /** 括号里写实际的需要查询的SQ原创 2007-03-18 15:10:00 · 4443 阅读 · 4 评论 -
ORACLE数据库触发器
ORACLE 触发器其实是PL/SQL块,它类似于存储过程和函数,不过有一点不同的是,触发器是隐式调用的,并不能接收参数. ORACLE触发器有三种类型,分别是:DML触发器, 替代触发器和系统触发器. 下面对这三种类型一一进行讲述 1.DML触发器 顾名思义,DML触发器是由DML语句触发的.例如数据库的INSERT/UPDATE/DELETE操作都可以触发该类型的触发器. 它们原创 2007-03-24 15:53:00 · 1905 阅读 · 0 评论 -
保持业务数据同步
平时数据库处理时,总要接触关于数据同步修改的问题,有时候我们需要在业务处理时保证业务数据同步(一般这种情况都包含统计字段,也就是说需要根据前面的值算出后面的值的字段),例如,两个人同时查询出1条记录后,先后对其加1,保存入数据库中,这样就可能造成保存问题,因此,需要对该数据进行同步。这里有3种方法可以采用:1.增加一个版本字段,查询时得到该字段,修改后增加1,以后其他的修改需要进行比较,如果不原创 2007-05-18 17:21:00 · 1663 阅读 · 0 评论 -
ibatis动态mapped Statement 配置详解
动态 Mapped Statement 直接使用 JDBC 一个非常普遍的问题是动态 SQL。使用参数值、参数本身和数据列都是动态的 SQL,通常非常困难。典型的解决方法是,使用一系列 if-else 条件语句和一连串讨厌的字符串连接。对于这个问题,SQL Map API使用和 mapped statement非常相似的结构,提供了较为优雅的方法。这里是一个简单的例子: cacheModel="原创 2007-08-23 11:10:00 · 8308 阅读 · 1 评论 -
自动化单元测试
自动化单元测试中,对数据库应用的测试个人认为是比较困难一点的,网上看到一位网友的blog,其中谈到了如何在单元测试中保持数据库环境的清洁,他的办法很好,那就是在测试代码中引入事务处理,这样的话,测试结束将事务回滚而不是提交就可以很简单的保持数据库的清洁,真的不错,呵呵。不过我想不明白的一个问题就是:如果我本身的数据库访问代码中就已经包含了事务处理的代码,那么如果在测试代码中再引入事务的话,是不是原创 2007-06-05 14:58:00 · 1116 阅读 · 0 评论 -
orcale分析函数(一)
分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明. 今天我主要给大家介绍一下以下几个函数的使用方法 1. 自动汇总函数rollup,转载 2007-09-17 10:50:00 · 1240 阅读 · 0 评论 -
orcale分析函数(二)
分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date转载 2007-09-17 10:52:00 · 1015 阅读 · 0 评论 -
数据库树结构 oracle的专用方法
树结构和它的专用函数SYS_CONNECT_BY_PATH简单的树型结构关于树的普通应用学习了下这个函数, 用ORGINDUSTRIES的表做了个测试:正常的树型结构select lpad( ,6*(level-1))||industry,indlevel,indid,pindidfrom ORGINDUSTRIESstart with indid=1connect by pindid=p转载 2007-11-26 10:03:00 · 1616 阅读 · 2 评论 -
数据库设计中的14个技巧
下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多转载 2007-12-06 13:19:00 · 1249 阅读 · 0 评论 -
ORACLE的优化器
优化器有时也被称为查询优化器,这是因为查询是影响数据库性能最主要的部分,不要以为只有SELECT语句是查询。实际上,带有任何WHERE条件的DML(INSERT、UPDATE、DELETE)语句中都包含查询要求,在后面的文章中,当说到查询时,不一定只是指SELECT语句,也有可能指DML语句中的查询部分。优化器是所有关系数据库引擎中的最神秘、最富挑战性的部件之一,从性能的角度看也是最重要的部分,它转载 2007-12-07 16:43:00 · 811 阅读 · 0 评论 -
ORACLE的执行计划
背景知识: 为了更好的进行下面的内容我们必须了解一些概念性的术语:共享sql语句 为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中。这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共转载 2007-12-07 16:48:00 · 944 阅读 · 0 评论 -
oracle rownum终极讲解
oracle中rownum伪字段用得比较频繁,特别是分页之中,但是由于它的一些特殊性很多人可能并不理解它的实际行为,网络上有很多文章介绍这个 rownum的用法,但是很多都讲得非常模糊,或者就是不太全面,大家看起来也非常痛苦,在这里我将给大家全面讲解一下,希望对大家有所帮助: 首先我们来认识几点rownum的特殊性: 第一、rownum是在记录输出的原创 2008-07-09 15:16:00 · 2873 阅读 · 3 评论 -
ORA-01795异常的原因以及解决办法
早上上班发现oracle一异常,错误提示:SQLException:ORA-01795:maximumnumberofexpressionsinalistis1000错误原因:在SELECT查询语句时,WHERE中的某一个条件采用IN的方式,但是由于数据过多则产生错误,oracle中in列表不能超过1000。 解决办法: 1、采用多个in ,原来in (1......1005)原创 2008-07-31 10:04:00 · 6743 阅读 · 0 评论 -
ORACLE SQL 索引(值得研读)
ORACLE SQL TUNING一.优化器模式 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须定期更新统计信息,以保证数据库中的对象统计信息(object statistics)的准确性. 如果数据库的转载 2008-06-06 17:37:00 · 1656 阅读 · 0 评论 -
Python连接mysql提示old (insecure) passwords is not supported
Authentication with old (insecure) passwords is not supported. For more information, lookup Password Hashing in the latest MySQL manual如上所示,如果一旦出现这个问题,主要是因为客户端用了新的密码版本,而服务器却使用了老的密码版本,需要设置一下服务器的密原创 2013-08-06 20:08:36 · 4402 阅读 · 1 评论