文章分类 -  DB

摘要:源:http://kb.cnblogs.com/page/138526/英文原文: 11 Important Database designing rules 简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中... 阅读全文
posted @ 2014-11-07 14:16 roilat 阅读(134) 评论(0) 推荐(0)
摘要:当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。1、... 阅读全文
posted @ 2014-08-29 11:42 roilat 阅读(244) 评论(0) 推荐(0)
摘要:11、查询oracle的连接数 2select count(*) from v$session; 32、查询oracle的并发连接数 4select count(*) from v$session where status='ACTIVE'; 53、查看不同用户的连接数 6select userna... 阅读全文
posted @ 2014-05-30 16:06 roilat 阅读(158) 评论(0) 推荐(0)
摘要:oracle 大批量数据更新源:http://www.cnblogs.com/andy-wcl/p/3271910.html现场如下:有表A(ID,CODE,C....C1,C2,C3),300W数据。C1,C2,C3是空的B(ID,CODE,C.....C1,C2,C3),1万数据现在要将A表中的... 阅读全文
posted @ 2014-05-08 12:08 roilat 阅读(355) 评论(0) 推荐(0)
摘要:来源:http://www.poluoluo.com/jzxy/201004/81981.html页面还有一些其它oracle相关的文章。Oracle提供了方便的树形查询功能,也就是connect by 语句。树形结构是很常见的,比如组织机构树,产品目录树等。本文不讲述connect by 如何使用,只是提出在使用树形查询时需要考虑的一个有关于性能方面的问题。 这里提到的问题,主要是Oracle优化器在评估connect by 语句的cardinality时,存在的缺陷,下面将举例说明。 在这个例子中所使用的表,是一个真实的生产系统中的表,BSS_ORG: Code highlightin.. 阅读全文
posted @ 2014-04-09 00:16 roilat 阅读(168) 评论(0) 推荐(0)
摘要:create table yyy like xxx1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:INSERT INTO SELECT语句复制表数据 --1.创建测试表 create TABLE Table1 ( a varchar(10), ... 阅读全文
posted @ 2014-03-20 17:04 roilat 阅读(141) 评论(0) 推荐(0)
摘要:SARG(Searchable Arguments)的定义:用于限制搜索的一个操作,因为它通常是指一个特定的匹配,一个值得范围内的匹配或者两个以上条件的AND连接。目录1形式2问题▪ 通配符▪ 全表扫描▪ 非操作符▪ IN 相当与OR▪ exists 和 in 的执行效率▪ 用函数和通配符效率3函数▪ 数据▪ union比or▪ 避免select▪ count不比count慢▪ 排序效率最高▪ 高效的TOP1形式编辑如下:列名 操作符 或 操作符列名列名可以出现在操作符的一边,而常数或变量出现在操作符的另一边。如:Name=’张三’价格>500050005000 如果一个表达式不能满足S 阅读全文
posted @ 2014-03-12 09:46 roilat 阅读(220) 评论(0) 推荐(0)
摘要:mysql sql长度限制解决今天发现了一个错误:Could not execute JDBC batch update最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置, 也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败。于是把mysql的配置文件(my-large.ini)中的max_allowed_packet = 6M变大,问题就解决了。mysql启动的四种方式mysql的四种启动方式:1、mysqld启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root客户端连接:mysql 阅读全文
posted @ 2014-03-10 15:16 roilat 阅读(256) 评论(0) 推荐(0)
摘要:数据行所占的最小空间是多少呢? 先来看看下面这张经典数据行结构图(引自Inside Sql Server)因为可变长度类型的列会有额外的空间开销,所以不考虑可变长度的字段。 现在计算一下除去实际数据后每个数据行所需要占用的空间: 状态位A占一个字节,状态位B占1个字节,用于标识固定字段长度的占2个字节,标识固定列数量的占去2个字节,NULL位图至少占用1个字节。 这样算下来:1+1+2+2+1=7。 也就是在不考虑实际数据的情况下一个数据行最少要占用7个字节。如果实际数据长度为1,那么每一行所占用的空间就为8个字节。真的是这样吗? 现在做个实验验证一下,在下文中如果没有特殊的说明,所有的叙.. 阅读全文
posted @ 2014-03-10 14:05 roilat 阅读(273) 评论(0) 推荐(0)
摘要:mysql大数据高并发处理一、数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。所以在考虑整个系统的流程的时候,我们必须要考虑,在高并发大数据量的访问情况下,我们的系统会不会出现极端的情况。(例如:对 阅读全文
posted @ 2014-03-10 10:39 roilat 阅读(192) 评论(0) 推荐(0)
摘要:SQL Server正常情况下可以通过添加删除将其卸载,但有时可能会出现一些不可遇见的原因,导致其不能自动卸载,就需要手工卸载,在手工卸载前要注意做好数据的备份工作,以便于以后做还原,卸载SQL Server包括两个方面:第一,程序文件和数据文件的卸载。如果SQL Server是默认安装,程序文件和数据文件在同一路径下,如下: 找到后将整个Microsoft SQL Server文件夹全部删除掉。 若不是在同一路径下,程序文件路径如下: 将整个Microsoft SQL Server文件夹删除掉,再找到相对应的数据文件夹MSSQL进行删除第二,注册表信息的删除。【开始】->【运行】-&g 阅读全文
posted @ 2014-03-05 14:43 roilat 阅读(218) 评论(0) 推荐(0)
摘要:条件:已经装有ps/sql,目前尚不清楚如果没有安装orcle能否装pl/sql;到oracle的安装路径下:%安装目录%/network/admin/;修改目录下的listener.ora和tnsnames.ora两个文件。listener文件大致如下:# listener.ora Network Configuration File: F:\app\hpadmin\oradata\network\admin\listener.ora# Generated by Oracle configuration tools.LISTENER1 = (DESCRIPTION_LIST = (D... 阅读全文
posted @ 2014-02-17 14:39 roilat 阅读(642) 评论(0) 推荐(0)
摘要:数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最 阅读全文
posted @ 2014-01-23 14:51 roilat 阅读(133) 评论(0) 推荐(0)
摘要:第一大类:整数数据bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte. int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1. smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1 tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1 第二大类:精确数值数据numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化. decimal:和numeric差不多第三大类:近似浮点数值数据float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1 阅读全文
posted @ 2014-01-23 14:48 roilat 阅读(172) 评论(0) 推荐(0)
摘要:定义数据库字符串,最长允许255TEXT和BLOB没有长度限制,可变长的数据1.blob是二进制大对象,可以容纳可变量数量的数据,其中blob分为4中类型:TINYBLOB,BLOB,mediumblob和LongBlob,他们容纳的长度是不同的.Text同样也分为四种类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT2.blob被视为二进制字符串,Text被视为非二进制字符串;blob列没有字符集,并且排序和比较基于列值字节的数值值。TEXT列有一个字符集,并且根据字符集的校对规则对值进行排序和比较。在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在 阅读全文
posted @ 2014-01-23 14:45 roilat 阅读(410) 评论(0) 推荐(0)
摘要:java技术JDBCOracleSQLF#从网上看到这篇文章,转过来做为学习用设有表: createtableblobimg(idintprimarykey,contentsblob); 一、BLOB入库的专用访问: 1)最常见于Oracle的JDBC示例中 一般是先通过select...forupdate锁定blob列,然后写入blob值,然后提交。要用到特定的OracleBLOB类。Java代码 Class.forName("oracle.jdbc.driver.OracleDriver");Connectioncon=DriverManager.getConnecti 阅读全文
posted @ 2014-01-20 10:29 roilat 阅读(258) 评论(0) 推荐(0)
摘要:OracleSQLdeveloper还是比较好的工具, 我连过mysql的,你用同样的方法应该可以练到db2和mssql的 启动OracleSQLdeveloper在tools->preference...打开preference窗口后datebase->ThirdpartyJDBCdriver.找到你的异构数据库需要的driver的包,添加进去 这时newdatabase的时候,会出现你的数据库类型的名字,比如我加的mysql就出来mysql, 默认的只有oracle和access(这个就是最原始的odbc驱动). 阅读全文
posted @ 2014-01-16 14:13 roilat 阅读(137) 评论(0) 推荐(0)
摘要:这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一些深入总结,虽然这一些知识并没有用到,但是了解其实现原理还是很有必要的,因为知道了原理,你也能把它实现出来。在上一节事务的编程模型里面,主要说明了三种编程模型,一般情况下,我们都接触的是单一资源的事务,也就是单独对一个数据库进行操作。如果需要跨多个资源保证事务一致性举个例子:在ATM机取钱的时候,需要对用户的账户进行扣款处理,然后发送一条消息给消息服务器(假设消息服务器是用JMS实现的),由消息服务器异步通过短信通知用户。如果用户取款失败,那么消息服务器不应该发送短信给用户。如何保证 用户帐务扣款 和 消息服务器的消息保持一致性 阅读全文
posted @ 2014-01-16 11:57 roilat 阅读(206) 评论(0) 推荐(0)
摘要:我当时报的错是:ORA-00904: "ID": 标识符无效在网上找到了解决方案,并将方案复制到此,以做备案。建表时列名用双引号引着(用Navicat工具建表默认是加上双引号的),java连接时就会报错ORA-00904: 标识符无效;把双引去掉就不会报错了原:CREATE TABLE ”my_test“( “id” NUMBER(10,0) NOT NULL ENABLE, ”name“ VARCHAR2(20 CHAR) NOT NULL ENABLE, “password” VARCHAR2(10 CHAR) NOT NULL ENABLE, PRIMARY KEY 阅读全文
posted @ 2014-01-08 09:10 roilat 阅读(12543) 评论(0) 推荐(0)
摘要:对需要解决的问题的描述: 把一个enum类型的字段持久化到数据库中,写入到数据库中的值为Integer类型,且有特定的含义: 我们知道,如果我们某一个pojo对象的某个属性为enum类型的话,在持久化的时候可能会出现如下两种情况: 1、数据库中enum_col的类型为(oracle:number或者sql server:numeric) @Column(name="enum_col") public MyEnum getCol(){ return this.col; } 此种情况下,存到数据库中的数据时col.ordinal()所返回的int数值 2、数据库中enum_co 阅读全文
posted @ 2014-01-07 15:28 roilat 阅读(346) 评论(0) 推荐(0)