db2
文章平均质量分 72
njhart2003
DBA
展开
-
sql优化1:分页查询
sql优化1:分页查询测试环境:192.168.0.209上的wzgltest数据库工具:db2命令行样表:PROJECT_MATERIALD:/>db2 select count(*) from PROJECT_MATERIAL with ur1----------- 1148372 1 条记录已选择。场景: 分页显示该表的所有内容,每页显示10行记录。===========原创 2008-07-23 13:58:00 · 1445 阅读 · 0 评论 -
911错不一定是死锁,怎么区分死锁和超时
大家在开发、测试过程中,常见到程序报911这样的错,查看一下帮助:d:/>db2 ? sql0911nSQL0911N因为死锁或超时,所以当前事务已回滚。原因码为 ""。解释:当前工作单元涉及到未解决的对使用对象的争用,因此不得不回滚。原因码如下: 2 由于死锁而导致事务已回滚。 68 由于锁定超时而导致事务已回滚。 72 因为存在与事务中所涉及的 DB2 Data Lin原创 2008-07-23 14:22:00 · 4564 阅读 · 0 评论 -
关于标识列(自增列)的对比试验、使用示例
试验环境: 建表t1、t2分别含有不同类型的标识列id,对比不同点D:/>db2 connect to test user cwgladm using cwglpass 数据库连接信息 数据库服务器 = DB2/NT 8.2.9 SQL 授权标识 = CWGLADM 本地数据库别名 = TESTD:/>db2 select ch原创 2008-07-23 14:16:00 · 2987 阅读 · 0 评论 -
sql事件监视器运用案例
在209上建立sql语句事件监视器,监视sql语句的执行情况。D:/>db2 create event monitor sql ^More? for statements ^ -- 指定监视器的内容More? where AUTH_ID=WZGLADM ^ -- 指定监视原创 2008-07-23 14:14:00 · 797 阅读 · 0 评论 -
sql调优3:调整db2的优化器级别
db2缺省的优化器级别为5,级别越高优化程度越高,大多数情况下为应用程序绑定时指定高级别的优化器会提高性能,但有时因机器硬件或内存分配不合适,高级别的优化会消耗更多的资源,有时会优化报错。本人碰到过几次因优化器不能正常工作反而使sql的性能急剧下降的案例。先转载一下关于db2优化器的官方资料:优化级别 n=0,1,2,3,5,7,9可以在编译 SQL 查询时指定下列其中一个优化器级别: 0原创 2008-07-23 14:21:00 · 4092 阅读 · 0 评论 -
查看执行计划 db2expln 使用说明
单个语句:d:/>db2expln -d wz20901 -u wzgladm wzglpass -t -q "update MAT_MATERIAL set GATHERPLAN_ID=null where GATHERPLAN_ID =2005178 or GATHERPLAN_ID=32 "DB2 Universal Database Version 8.1, 5622-044 (原创 2008-07-23 14:06:00 · 6392 阅读 · 0 评论 -
查看锁等待情况 db2pd 使用说明
1、查看锁等待情况 db2pd -db [ dbname ] -locks 主要关注Sts列,其中W代表Waitingd:/>db2pd -d test -locksDatabase Partition 0 -- Database TEST -- Active -- Up 0 days 00:02:21 -- Date 2008-06-24 16:11:26Locks:A原创 2008-07-23 14:04:00 · 6235 阅读 · 0 评论 -
死锁监视器db2detaildeadlock使用说明
1、死锁事件监控器是db2每个数据库缺省建立的监视器,写文件的形式,存放路径在db2event目录下,如:windows:F:/>cd F:/DB2_WZGL/NODE0000/SQL00001/DB2EVENT/db2detaildeadlockF:/>db2 set event monitor db2detaildeadlock state=0DB20000I SQL 命令成功完成。F原创 2008-07-23 14:03:00 · 5978 阅读 · 0 评论 -
备忘:同一服务器如何进入不同的db2实例,即如何切换实例?
UNIX: 直接切换实例用户,su - instxxx# su - inst14$ db2 get instance The current database manager instance is: inst14$$ exit# su - inst15$ db2 get instance The current database manager instance is: inst15$原创 2008-07-23 14:02:00 · 2410 阅读 · 0 评论 -
案例分析2:为什么db2频现“锁等待”或“911”错误
为什么db2频现“锁等待”或“911”错误 大家都知道,多个事务同时更新同一个数据行时必定要发生锁等待。虽然这个是造成锁等待或锁超时的原因,但不是全部。有不少同事在开发过程中发现这样的问题:自己只做一个根据主键update语句,就更新一行,且确知没有别人在更新这行,为什么语句迟迟没反应,想死锁了一样。本人通过几次尝试和试验发现了“秘密”。即db2的严重影响并发性能的地方:1、无索引,r原创 2008-07-23 14:00:00 · 4158 阅读 · 0 评论 -
试验:db2 导入数据选项 " replace " 会保留没被覆盖的数据吗?
思想:建一个表,插入部分数据,导出后,再插入不同的数据,导入加“replace”选项,观察db2move、import导入数据后的结果,过程比较简单,上代码:1、建表、插入数据:d:/>db2 connect to test user cwgladm using cwglpass 数据库连接信息 数据库服务器 = DB2/NT 8.2.9 SQL 授权标识原创 2008-07-23 13:52:00 · 2873 阅读 · 0 评论 -
db2逻辑备份数据库案例export_data
适应场景: 1、 全库备份,可能有多个schema,可能用于跨平台恢复数据 2、 表里含有标识列 3、 大字段的大小不超过32K(超过的在db2move导出文件里会被截断,丢失数据?-- 待证实。)文件结构:export_data --|-- db2move # 文件夹,存放导出的数据文件 |-- ddl原创 2008-07-23 14:19:00 · 1974 阅读 · 0 评论 -
db2监视表空间使用情况、中断数据库连接进程的脚本示例
1、显示当前数据库表空间的使用情况WINDOWS: d:/>for /f "skip=2 tokens=1,3" %a in (db2 list tablespaces show detail) do @if %a==名称 (echo %a = %b) else (@if %a==总计页数 (echo %a = %b) else (@if %a==高水位标记(页) (ech原创 2008-07-23 14:13:00 · 1734 阅读 · 1 评论 -
sql优化2:db2关于 in (常量...)优化建议
我们在设计程序里,经常碰到需要态组装sql条件的情况,例如,下面是从后台抓取的sql:update MAT_REQPLAN set GATHERFLAG=1 where 1=1and REQPLAN_ID in (select distinct REQPLAN_ID from MAT_MATERIAL where MATERIAL_ID in (0,2原创 2008-07-23 14:08:00 · 3276 阅读 · 0 评论 -
sql调优4:修改sql,去视图
场景: 新物资系统中发现有不少sql使用了视图,从语句上来看,可读性稍好些,但性能很差,经加适当索引后,语句的性能有改观,但仍然存在表扫描的情况。笔者尝试去掉视图后,发现执行计划改善,性能提高。修改前的语句:with temp as( select * from ( select MATERIAL_ID, rownumber() over () as rn原创 2008-07-23 14:23:00 · 1049 阅读 · 1 评论