运行一个Update语句时,DB2即服务停止

各位好 DB2 8.1 db2 8.1 最近每当运行一个Update 语句时 服务就停止db2diag里没有任何记录各位帮忙诊断下是什么问题造成的【L0】菜刀李 2015-09-11 10:26:54语句也不是很复杂,以前可以正常运行的【L1】太 2015-09-11 10:26:56还用8.1【L0】菜刀李 2015-09-11 10:27:05老...显示全部
各位好 DB2 8.1


db2 8.1 最近每当运行一个Update 语句时 服务就停止

db2diag里没有任何记录

各位帮忙诊断下是什么问题造成的

【L0】菜刀李 2015-09-11 10:26:54

语句也不是很复杂,以前可以正常运行的
【L1】太 2015-09-11 10:26:56

还用8.1

【L0】菜刀李 2015-09-11 10:27:05

老系统了
【L1】太 2015-09-11 10:27:06

升级吧

【L0】菜刀李 2015-09-11 10:27:31

比较老的ERP系统,一直运行着的
【L9】黄 2015-09-11 10:27:51

8版本用的还挺多的
10:29:39
【L0】菜刀李 2015-09-11 10:29:39

比较奇怪的是db2diag里没有日志,服务直接就停了,服务停止后,我关闭db2fmp.exe进程,运行db2start就启动成功了
【L1】太 2015-09-11 10:30:01

这个要去分析  你的的update的表
【L1】太 2015-09-11 10:30:18

hang住了  只有重启
【L1】太 2015-09-11 10:30:33

有多少条目

【L0】菜刀李 2015-09-11 10:31:25

不多,最多100条
10:32:43
【L0】菜刀李 2015-09-11 10:32:43

update EPC_ITEMWHSLOC set ADMINID=USERID where  (ADMINID='' or ADMINID is null) and USERID in(select EMPLID from EPC_EMPL where EMPLCLASS='0112' and DEPTID='0201')

【L0】菜刀李 2015-09-11 10:33:26

EPC_ITEMWHSLOC 这是个视图,好多库存表的一个视图,数据量很大

【L0】菜刀李 2015-09-11 10:33:50

EPC_EMPL 这是人员表,数据量不大

【L0】菜刀李 2015-09-11 10:34:12

select * from EPC_ITEMWHSLOC  where  (ADMINID='' or ADMINID is null) and USERID in(select EMPLID from EPC_EMPL where EMPLCLASS='0112' and DEPTID='0201')

【L0】菜刀李 2015-09-11 10:34:40

出来的数据量不大,而且速度比较快
10:36:01
【L0】菜刀李 2015-09-11 10:36:01

目前,我从程序里把 select 出来的数据集,一条一条的运行update语句,就没问题
【L1】太 2015-09-11 10:36:12

针对数据库对象的大量操作,如反复地删除插入表,存储过程,会引起系统表中数据的频繁改变,在这种情况下,也要考虑对系统表进行REORG操作

【L0】菜刀李 2015-09-11 10:37:22

我不是很熟,我查查REORG的资料
【L9】黄 2015-09-11 10:38:00

@菜刀李 这个问题也可以发到db2中国社区,大家一起探讨下。

www.db2china.net/club/
10:38:28
【L0】菜刀李 2015-09-11 10:38:28

好的,谢谢啊
【L9】黄 2015-09-11 10:38:51


【L9】杨焱 2015-09-11 10:39:03

天天插入相同的历史数据,并且没建主机,索引就会无效吧? REORG也没用?收起
参与22

查看其它 19 个回答leejinli的回答

leejinlileejinli数据库管理员中国航天
我这视图包括几十个基本表,比如 Table1(Col1,Col2),Table2(Col1,Col2) ...Table100(Col1,Col2)
这些表结构一模一样,每个表代表一个仓库
视图如下
create view AAAA as
(
   select * from Table1
  union all
   select * from Table2
  ...
union all
select * from Table100
)
对这个视图进行Update操作时服务即停止
update AAAA set Col1='ABC' where Col2='DEF'

针对事故发生前我进行的操作仔细想了想,最近就增加了几个表,修改了下视图。
我测试了下,把视图中包含的表数量依次减少,发现当视图中包含的表的数量超过80后就出问题
80和80以下没问题
为了测试,创建了90个很简单的表,就包含了一条记录,创建了视图测试了下,确实不能超过80个
问题很奇怪,估计很少人遇到吧
IT其它 · 2015-09-19
浏览1748

回答者

leejinli
数据库管理员中国航天

leejinli 最近回答过的问题

回答状态

  • 发布时间:2015-09-19
  • 关注会员:2 人
  • 回答浏览:1748
  • X社区推广