免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6418 | 回复: 8

informix数据库查询数据很慢 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-09 13:55 |显示全部楼层
本帖最后由 y331044508 于 2012-04-09 13:56 编辑

请高手帮忙看看,谢谢。其中CPU time有的时间很长,但不知道怎么回事,还请多指教。

onstat -g cpu

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 5 days 02:13:00 -- 19804032 Kbytes

Thread CPU Info:
tid    name              vp       Last Run           CPU Time     #scheds    status
2      lio vp 0         14lio*   04/04 09:20:42        0.0000          1    IO Idle              
3      pio vp 0         15pio*   04/04 09:20:43        0.1098          2    IO Idle              
4      aio vp 0         16aio*   04/09 11:33:33   204430.0616   52148062    running              
5      msc vp 0         17msc*   04/09 11:33:32      974.6616    4204236    IO Idle              
6      fifo vp 0        18fifo*  04/04 09:20:46        0.1099          2    IO Idle              
7      aio vp 1         19aio*   04/09 11:33:33   159125.3601   22498096    IO Idle

tnmsdb#[/home/informix]onstat -g rea

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 5 days 02:13:23 -- 19804032 Kbytes

Ready threads:
tid     tcb              rstcb            prty status                vp-class       name
2815110 c0000001f4933b28 c0000001ec26abc8 1    ready                  10cpu         sqlexec
2926524 c00000020902ead0 c0000001e6c84388 1    ready                   1cpu         sqlexec
4531729 c00000021973c450 c0000001fd1fee08 1    ready                   3cpu         sqlexec
6641714 c0000002246f4028 c00000020b791da8 1    ready                   8cpu         sqlexec
7279783 c00000022783f658 c0000001e6c808e8 1    ready                   5cpu         sqlexec
7294491 c00000022644c868 c0000001e6c91d48 1    ready                   6cpu         sqlexec
7299960 c000000223c01970 c0000001fd1f8988 1    ready                  10cpu         sqlexec
7389153 c000000229f5e398 c0000001fd1f0388 1    ready                  10cpu         sqlexec
8943289 c00000022f517188 c0000001e6c7b528 1    ready                  10cpu         sqlexec
8948463 c000000228a050d8 c0000001fd1fdd48 1    ready                   4cpu         sqlexec
8978353 c00000022e057238 c00000020b7936c8 1    ready                  10cpu         sqlexec

tnmsdb#[/home/informix]onstat -g wai

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 5 days 02:13:34 -- 19804032 Kbytes

Waiting threads:
tid     tcb              rstcb            prty status                vp-class       name
2       c0000001e803abe8 0                1    IO Idle                14lio*        lio vp 0
3       c0000001e80716c0 0                1    IO Idle                15pio*        pio vp 0
2815102 c000000207b0cb80 c00000020b7811a8 1    cond wait  netnorm      8cpu         sqlexec
2815103 c0000001ea674188 c0000001ef681308 1    cond wait  netnorm      5cpu         sqlexec
2815104 c0000002033300d8 c0000001ef67e928 1    cond wait  netnorm      1cpu         sqlexec
2815109 c0000001f27d26b8 c0000001fd1f2508 1    cond wait  netnorm     12cpu         sqlexec
2815110 c0000001f4933b28 c0000001ec26abc8 1    IO Wait                10cpu         sqlexec
2815173 c00000020a134978 c0000001fd1fe5a8 1    cond wait  netnorm      6cpu         sqlexec
2815182 c0000001e9c00888 c0000001fd1fbbc8 1    cond wait  netnorm      5cpu         sqlexec

tnmsdb#[/home/informix]onstat -g ioq

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 5 days 02:13:49 -- 19804032 Kbytes

AIO I/O queues:
q name/id    len maxlen totalops  dskread dskwrite  dskcopy
fifo   0      0      0        0        0        0        0
drda_dbg   0      0      0        0        0        0        0
sqli_dbg   0      0      0        0        0        0        0
  kio   0      0     66 29549456 26341319  3208137        0
  kio   1      0     65 30971650 27151716  3819934        0
  kio   2      0     65 60294168 56625503  3668665        0
  kio   3      0     65 35834100 31577485  4256615        0
  kio   4      0     65 29532375 27168745  2363630        0
  kio   5      0     47 31878715 28637218  3241497        0
  kio   6      0     50 42210137 38609709  3600428        0

tnmsdb#[/home/informix]onstat -g seg

IBM Informix Dynamic Server Version 11.50.FC6     -- On-Line -- Up 5 days 02:13:59 -- 19804032 Kbytes

Segment Summary:
id         key        addr             size             ovhd     class blkused  blkfree
7208964    52564801   c000000001208000 7990767616       94079440 R     1950869  2      
327687     52564802   c0000001dd69f000 12288000000      144001944 V     311138   2688862
262152     52564803   c0000004b9d72000 561152           7848     M     136      1      
Total:     -          -                20279328768      -        -     2262143  2688865
图片.jpg

log.rar

21.93 KB, 下载次数: 6

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2012-04-09 14:12 |显示全部楼层
这些信息对查询很慢这个问题的判断没有什么实际意义~~

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-09 14:29 |显示全部楼层
回复 2# liaosnet


那需要看那些东西。。。系统IO吗?

tnmsdb#[/home/informix]sar -d 1 100

HP-UX tnmsdb B.11.23 U 9000/800    04/09/12

11:49:58   device   %busy   avque   r+w/s  blks/s  avwait  avserv
11:49:59   c0t6d0    0.97    0.50       1       2    0.00    7.21
           c6t0d1   98.06    0.52    1889   28439    0.17    3.18
           c6t0d6   92.23    1.78     370    2183    1.18    4.79
11:50:00   c6t0d1  100.00    0.53    1545   23576    0.06    2.99
           c6t0d6   96.97    2.73     391    2145    3.12    6.57
11:50:01   c0t6d0   25.74    0.50      41     370    0.00    6.58
           c3t6d0   16.83    0.50      26     311    0.00    6.62
           c6t0d1   97.03    0.65     700   11008    1.13    8.82
          c12t0d4    0.99    0.50       3     129    0.00    0.69
           c6t0d6   96.04    2.25     137     796   18.04   28.15
11:50:02   c0t6d0    5.05    0.50      10     103    0.00    9.55
           c3t6d0    4.04    0.50       6      87    0.00   11.81
           c6t0d1  100.00    0.86     119    2216    3.90   62.59
          c12t0d5    1.01    0.50       1       2    0.00    5.74
           c6t0d6  100.00    5.47      60     622   97.66   90.32
           c6t0d5    1.01    0.50       1       2    0.00    9.67
           c8t0d5    1.01    0.50       1       2    0.00    8.15
          c10t0d5    1.01    0.50       1       2    0.00   11.76
11:50:03   c0t6d0    1.01    0.50       2      20    0.00    5.55
           c6t0d1  100.00    0.60     676    9766    0.55    9.29
           c6t0d6  100.00    1.62     220    1119    1.39   11.46
11:50:04   c0t6d0    1.98    0.50       4      51    0.00   12.11
   

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2012-04-09 15:32 |显示全部楼层
IO繁忙,CPU忙。。
你的数据库查询没建索引的吗??

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-09 15:36 |显示全部楼层
回复 4# liaosnet


    索引是有的,没索引系统早就完蛋了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-09 15:37 |显示全部楼层
informix 使用什么命令可以查询到那个SQL正在进行全表扫描查询

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2012-04-09 16:38 |显示全部楼层
在忙的时候,直接输出onstat -g ses 0 和onstat -g ath  onstat -g act onstat -g glo 和top信息。。。
对着查忙的CPU上跑的是什么SQL

论坛徽章:
0
发表于 2012-04-11 15:42 |显示全部楼层
可以抓一下select sqx_sessionid,sqx_estcost,sqx_sqlstatement from sysmaster:syssqexplain order by sqx_estcost desc

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-04-18 10:54 |显示全部楼层
多谢各位的热心帮助,最后我使用以下方式总于找到出问题的SQL;

select sqx_sessionid,sqx_estcost,sqx_seqscan,sqx_sqlstatement
from sysmaster:syssqexplain order by sqx_estcost desc;

多执行几次,找到了那条执行成本最高的SQL,然后查看了这个SQL的执行计划,发现里面有个字段没有创建索引;
索引加上后效果明显改变了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP