yunzhongyue 发表于 2006-02-13 09:54

数据库中某表的出现异常,请高手赐教

在数据库a中执行一SQL语句时,总是显示“执行中。。。。。。”然后就停在那,但是以前执行这一SQL是可以的,在同一机器上另一个数据库b上也是可以的,数据库a与b的结构相同,而且检查过SQL所涉及到的表的索引都一样。
请各位指点!谢谢。。。
:em16::em16::em16:

[ 本帖最后由 yunzhongyue 于 2006-2-13 13:27 编辑 ]

ahkai 发表于 2006-02-13 10:53

日志满了吧?

jl8323 发表于 2006-02-13 10:55

回复 1楼 yunzhongyue 的帖子

online.log
onstat .......

yunzhongyue 发表于 2006-02-13 11:48

数据库没有问题的,现在我又发现只是一个表有问题
当执行

SELECT *                     FROM pmn_file WHERE
(pmn20 - pmn50 +pmn55)>0

是没有问题的,可是执行
SELECT UNIQUE pmn01FROM pmn_file WHERE
(pmn20 - pmn50 +pmn55)>0

就一直显示“执行中。。。”好像死机了一样
以前这个SQL是可以执行的啊!

[ 本帖最后由 yunzhongyue 于 2006-2-13 11:55 编辑 ]

ahkai 发表于 2006-02-13 13:46

回复 4楼 yunzhongyue 的帖子

会不会是dbspace的空间不够sort操作?

用onstat -g mgm命令看看是不是在等待什么资源?

Load Control:    (Memory)      (Scans)(Priority)(Max Queries)   (Reinit)
                              Gate 1       Gate 2      Gate 3          Gate 4       Gate 5
(Queue Length)         0            0         0               0                     0

[ 本帖最后由 ahkai 于 2006-2-13 14:02 编辑 ]

yunzhongyue 发表于 2006-02-13 14:39

$ onstat -g mgm

Informix Dynamic Server Version 7.30.UC7   -- On-Line -- Up 7 days 15:41:47 -- 742392 Kbytes

Memory Grant Manager (MGM)
--------------------------

MAX_PDQPRIORITY:100
DS_MAX_QUERIES:    13691
DS_MAX_SCANS:      1048576
DS_TOTAL_MEMORY:   1752544 KB

Queries:   Active   Ready   Maximum
                0         0   13691

Memory:   Total      Free   Quantum
(KB)       1752544   1752544       128

Scans:      Total      Free   Quantum
         1048576   1048576         1

Load Control:    (Memory)      (Scans)(Priority)(Max Queries)   (Reinit)
                   Gate 1       Gate 2      Gate 3         Gate 4   Gate 5
(Queue Length)          0            0         0            0          0

Active Queries:None

Ready Queries:None

Free Resource      Average #      Minimum #
--------------    ---------------   ---------
Memory               0.0 +- 0.0          219068
Scans                0.0 +- 0.0          1048576

Queries            Average #      Maximum #    Total #
--------------    ---------------   ---------    -------
Active               0.0 +- 0.0             0          0
Ready                0.0 +- 0.0             0          0

Resource/Lock Cycle Prevention count:0
各位帮我看看是否有什么不正常的,谢谢,我看不太懂

ahkai 发表于 2006-02-13 14:45

回复 6楼 yunzhongyue 的帖子

Load Control:    (Memory)      (Scans)(Priority)(Max Queries)   (Reinit)
                              Gate 1       Gate 2      Gate 3          Gate 4       Gate 5
(Queue Length)         0            0         0               0                     0

都是0表示没有在等待资源。

ahkai 发表于 2006-02-13 14:52

回复 6楼 yunzhongyue 的帖子

用onstat -g sql看看当前的SQL,选择你执行的SQL的session id。

执行onstat -g sql session_id ,看看有没有ISAM ERROR或SQL ERROR。

eric.xie 发表于 2006-02-13 20:00

原帖由 yunzhongyue 于 2006-2-13 11:48 发表
数据库没有问题的,现在我又发现只是一个表有问题
当执行

SELECT *                     FROM pmn_file WHERE
(pmn20 - pmn50 +pmn55)>0

是没有问题的,可是执行
SELECT UNIQU ...


表格的是数据是不是很多,检查pmn_file的索引,对表格做update statictis个优化,在试试看!

yunzhongyue 发表于 2006-02-14 08:29

原帖由 eric.xie 于 2006-2-13 20:00 发表



表格的是数据是不是很多,检查pmn_file的索引,对表格做update statictis个优化,在试试看!

多谢指点,此表的数据大概有25万条,我怀疑也是索引坏掉了,我把数据库重新启动了一下就OK了。

[ 本帖最后由 yunzhongyue 于 2006-2-14 08:30 编辑 ]
页: [1] 2 3
查看完整版本: 数据库中某表的出现异常,请高手赐教