Database

遭遇db2频繁报内存不足的OS错误勘误解决方法

星期日, 十月 11th, 2009 | Database, JAVA-and-J2EE | 一条评论

异常信息,因为有数据库的轮循处理,查询比较频繁,加上有高的并发访问,不到2个小时就挂掉了
希望高手求解!(下面是论坛的求助和解决方案,最终还是sql的实参过多,缓存溢出造成)

2009-09-29-19.48.24.000000+480 I34133163H580 LEVEL: Warning
› Continue reading

Tags: , , ,

JDBC事务隔离级别和db2中几个隔离级别行锁等

星期六, 八月 1st, 2009 | Database, JAVA-and-J2EE | 7 Comments

聊记下对应的事务处理问题 ———工作中头疼的事务拆分,降低事务的–文字简介–

JDBC的数据隔离级别设置:
JDBC 数据库隔离级别 数据访问情况
TRANSACTION_READ_UNCOMMITTED ur 就是俗称“脏读”(dirty read),在没有提交数据时能够读到已经更新的数据
TRANSACTION_READ_COMMITTED cs 在一个事务中进行查询时,允许读取提交前的数据,数据提交后,当前查询就可以读取到数据。update数据时候并不锁住表
TRANSACTION_REPEATABLE_READ rs 在一个事务中进行查询时,不允许读取其他事务update的数据,允许读取到其他事务提交的新增数据
TRANSACTION_SERIALIZABLE rr 在一个事务中进行查询时,不允许任何对这个查询表的数据修改。

JDBC事务隔离级别
为了解决与“多个线程请求相同数据”相关的问题,事务之间用锁相互隔开。多数主流的数据库支持不同类型的锁;因此,JDBC API 支持不同类型的事务,它们由 Connection 对象指派或确定。在 JDBC API 中可以获得下列事务级别:
› Continue reading

Tags: , , , ,

db2频现“锁等待”或“911”错误–案例分析之原因及处理方法

星期日, 七月 26th, 2009 | Database, JAVA-and-J2EE | 没有评论

为什么db2频现“锁等待”或“911”错误
—开始以为911不会引发什么严重的问题,然事实上情况要比我想象的严重,不单纯是拆除事务的原因了,要处理对应的信息了,下列的分析对自己有很大帮助,特此摘录,也感谢撰写本文的原作者。
——————以下为摘录——————————————————————————
大家都知道,多个事务同时更新同一个数据行时必定要发生锁等待。虽然这个是造成锁等待或锁超时的原因,但不是全部。有不少同事在开发过程中发现这样的问题:自己只做一个根据主键update语句,就更新一行,且确知没有别人在更新这行,为什么语句迟迟没反应,想死锁了一样。本人通过几次尝试和试验发现了“秘密”。即db2的严重影响并发性能的地方:

1、无索引,relation scan 锁等待;
2、有索引,update时索引不能并发访问,需“串行”独占访问;
3、锁升级,行锁升级为表锁,阻塞其他事务的行级更新。

试验环境:
db2 v8系列或v9.1.4
db2命令行
› Continue reading

Tags: , , ,

db2, oracle和sqlserver,mysql取前几行的各自独自语法

星期六, 五月 16th, 2009 | Database, JAVA-and-J2EE | 2 Comments

常用的四种数据库的取前几行的sql语句如下: 以前比较不熟悉的是db2,现在天天用,也感觉不错了
db2:
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=10 或者 select * from tab fetch first 10 rows only oracle: select * from tab where rownum <=10 sqlserver: select top 10 * from tab mysql: select * from tab limit 10

Tags: , , , ,

DB2错误信息汇总-SQL CODE和SQL State相关

星期一, 四月 13th, 2009 | Database | 2 Comments

项目是采用db2,在执行对应的sql时候总是报写sql的异常信息,网上搜索很是麻烦,就根据前人经验整理备用,图个方便;
操作数据库过程中,遇到许多问题,很多都与SQL CODE和SQL State相关,现在把一个完整的SQLCODE和SQLState错误信息和相关解释作以下说明,一来可以自己参考,对DB2错误自行找出原因
(声明:这是搜集网上的资料得来的,详细出处不记得了)
sqlcode sqlstate 说明
000 00000 SQL语句成功完成
01xxx SQL语句成功完成,但是有警告
+012 01545 未限定的列名被解释为一个有相互关系的引用
+098 01568 动态SQL语句用分号结束
+100 02000 没有找到满足SQL语句的行
+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统
+111 01590 为2型索引设置了SUBPAGES语句
+117 01525 要插入的值的个数不等于被插入表的列数
+162 01514 指定的表空间被置为检查挂起状态
+203 01552 使用非唯一的名字来解决命名的限定列
+204 01532 命名的对象未在DB2中定义
+206 01533 命名的列不在SQL语句中指定的任何表中存在
+218 01537 因为SQL语句引用一个远程对象,不能为该SQL语句执行EXPLAIN
+219 01532 命名的PLAN TABLE不存在
+220 01546 不正确定义PLAN TABLE,检查命名列的定义
› Continue reading

Tags: , , ,

视图简介–基于mysql

星期日, 九月 7th, 2008 | Database | 没有评论

视图的优点:

   1.简单:不关心后面对应的表结构、关联条件和筛选条件,是过滤好的结果集

   2.安全:只能访问被允许的结果集,对表的权限管理并不能限制到某个行某个列,可以通过视图实现

   3.数据独立: 屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;修改列名,可以通过修改视图来解决

视图操作:

› Continue reading

Tags: , ,

Search

文章分类

Links

Meta