又遇到一个故障

现象:

       1. 主节点仍然是online

      2. dbaccess dbanem -  无法访问

      3. onstat -g ntt 可以看到监听

      4.onmode -P 重启监听无效

      5. onmode -ky关闭数据库无效

      6. onclean -ky关闭数据库

      7. 数据库上有几个 session在是running状态,有IO wait线程

我没有认真分析正在运行的会话,以为应该从会话的建立上入手分析。

后来onstat -g ses0发现

Current SQL statement (19) :
  select sum(studytime) as sum from XXXX where   auditsituation = 1   and
    ( userid = '24cd6e13307747978063498b75247e19' or userid =
    'b729a001bac6432792394e8178d5df76' or userid =
    '99e8881e526b4f0892d91020eceea9fc' or userid =
    '93f10cec13ca453595eec06d07abaec6' or userid =
    '34fa9573a7504f0e916509469b640024' or userid =
    'df9f4c7d52aa4e908abc22c21d3c8efa' or userid =
    '87fb4966fa7f4eb1b2dfdf8d6c15f2ab' or userid =
    '27c4f9e2143b44fa9c65dac8f1471ca2' or userid =
    '7b7bb589a4b8419c82599bb37cd7c368' or userid =
    'e5ac906d14b947508be12b42bba85ed2' or userid 

这个SQL大约有40万行。

明显是这样的SQL耗尽了所有的资源,应该是poll thread的资源。

关键是如何监控poll thread是否已经不能提供服务了呢???

============================================================================================

今日又遇到一个类似的SQL

  select count(*)  from XXX  where  state = ?  and ( cardno
    ='yYm+9X82ZXJwlliYGnmVKucqpvGD+wB9oktwJkgKw6I='  or  cardno
    ='K0WzcJr4JnmFXJWQ0/D+KEkNRLXJU8R/W/8kYGR1jfo='  or  cardno
    ='/c8lUegg42Fhe+jPfrmtTBeVc0rxH5XiMKzrXVFp23A='  or  cardno
    ='hydNLudBFVQy2ZolLL+za/e32h9wWV1f2dVDNj+KHBc='  or  cardno
    ='VcTKHUzF63/wGIbgukLl8vdevxJVsPOpxQJf3/CijXY='  or  cardno
    ='gIt5BVE2uW6LvTq/atK1/0cJxBoTtU5gZsfs/5y7cRc='  or  cardno
    ='n5WuPKx5dJbAM41zJ6iDndLqEFsPDHuIiDJHIxWNoFM='  or  cardno
    ='g0/3jDc3hVfBYfnnN6N5PPt20I97SPnaJP62akQREu4='  or  cardno
    ='Aa+NSqYpMavq1E1fblpYPJqzWWTCwPfM5HtaKpcvL7w='  or  cardno
    ='Eeo/mEBP/mOrhy5DkJeMiUkNRLXJU8R/W/8kYGR1jfo='  or  cardno
    ='Bj0QSz5cRBSqakUhtN4Vol/0gY61W2DqThaZvCf5Q20='  or  cardn

大约有27万+行,我就想知道这么长的SQL是如何生成的呢????

猜你喜欢

转载自blog.csdn.net/David_ifx/article/details/114592233
今日推荐