Ad Widget

Collapse

Using temporary SQL запросы от Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mschedrin
    Senior Member
    • Jun 2009
    • 179

    #1

    Using temporary SQL запросы от Zabbix

    Некоторый sql запросы от заббикса очень сильно напрягают мой mysql севрер. Например:
    Code:
    SELECT  DISTINCT  t.* FROM triggers t,functions f,items i,hosts_groups hg,rights r,users_groups ug WHERE ((t.triggerid  BETWEEN 000000000000000 AND 099999999999999)) AND f.triggerid=t.triggerid AND f.itemid=i.itemid AND hg.hostid=i.hostid AND r.id=hg.groupid  AND r.groupid=ug.usrgrpid AND ug.userid=7 AND r.permission>=2 AND NOT EXISTS(  SELECT ff.triggerid  FROM functions ff, items ii  WHERE ff.triggerid=t.triggerid  AND ff.itemid=ii.itemid  AND EXISTS(  SELECT hgg.groupid  FROM hosts_groups hgg, rights rr, users_groups gg  WHERE hgg.hostid=ii.hostid  AND rr.id=hgg.groupid  AND rr.groupid=gg.usrgrpid  AND gg.userid=7 AND rr.permission<2)) AND t.lastchange>1284539815 AND  (t.priority IN (0,1,2,3,4,5))  AND  (t.value IN (1,0))  ORDER BY t.lastchange DESC LIMIT 15 OFFSET 0;
    Explain:
    Code:
    +----+--------------------+-------+--------+-------------------------------+----------------+---------+-------------------------+-------+---------------------------------------+
    | id | select_type        | table | type   | possible_keys                 | key            | key_len | ref                     | rows  | Extra                                 |
    +----+--------------------+-------+--------+-------------------------------+----------------+---------+-------------------------+-------+---------------------------------------+
    |  1 | PRIMARY            | t     | range  | PRIMARY,triggers_2            | PRIMARY        | 8       | NULL                    | 40263 | Using where; Using temporary; Using fi 
    |  1 | PRIMARY            | f     | ref    | functions_1,functions_2       | functions_1    | 8       | zabbix.t.triggerid      |     1 | Distinct                               
    |  1 | PRIMARY            | i     | eq_ref | PRIMARY,items_1               | PRIMARY        | 8       | zabbix.f.itemid         |     1 | Distinct                               
    |  1 | PRIMARY            | hg    | ref    | hosts_groups_1,hosts_groups_2 | hosts_groups_1 | 8       | zabbix.i.hostid         |     1 | Using index; Distinct                  
    |  1 | PRIMARY            | r     | ref    | rights_1,rights_2             | rights_2       | 9       | zabbix.hg.groupid       |     1 | Using where; Distinct                  
    |  1 | PRIMARY            | ug    | ref    | users_groups_1                | users_groups_1 | 16      | zabbix.r.groupid,const  |     1 | Using index; Distinct                  
    |  2 | DEPENDENT SUBQUERY | ff    | ref    | functions_1,functions_2       | functions_1    | 8       | zabbix.t.triggerid      |     1 |                                        
    |  2 | DEPENDENT SUBQUERY | ii    | eq_ref | PRIMARY                       | PRIMARY        | 8       | zabbix.ff.itemid        |     1 | Using where                            
    |  3 | DEPENDENT SUBQUERY | hgg   | ref    | hosts_groups_1,hosts_groups_2 | hosts_groups_1 | 8       | zabbix.ii.hostid        |     1 | Using index                            
    |  3 | DEPENDENT SUBQUERY | rr    | ref    | rights_1,rights_2             | rights_2       | 9       | zabbix.hgg.groupid      |     1 | Using where                            
    |  3 | DEPENDENT SUBQUERY | gg    | ref    | users_groups_1                | users_groups_1 | 16      | zabbix.rr.groupid,const |     1 | Using index                            
    +----+--------------------+-------+--------+-------------------------------+----------------+---------+-------------------------+-------+---------------------------------------+
    11 rows in set (0.00 sec)
    Напрягает using temporary и using filesort. Насколько я понимаю, это означает, что запрос создает временную табличку на диске. Конкретно этот запрос выполняется более 5 секунд - что слишком долго.
    Как считаете можно ли считать такие запросы багами и открывать по ним тикеты? На мой взгляд это ненормально.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Попробуйте открыть case, и увидите, что из этого получится. У меня этот запрос выполнился на 2 сек быстрее.

    Comment

    • mschedrin
      Senior Member
      • Jun 2009
      • 179

      #3
      Я так понимаю что больше никого данная проблема не волнует?

      Comment

      • ugh
        Senior Member
        • Jun 2009
        • 296

        #4
        ищите по форуму, похожие проблемы уже всплавали

        Comment

        • mschedrin
          Senior Member
          • Jun 2009
          • 179

          #5
          Проблемы всплывали, но только не решались, это то что я видел.
          Если не сложно, подскажите по какому слову искать чтобы найти решенные проблемы?

          Comment

          • ugh
            Senior Member
            • Jun 2009
            • 296

            #6
            хех... прошу пардону
            "похожие проблемы"... с вами и обсуждали оказывается

            Comment

            • mschedrin
              Senior Member
              • Jun 2009
              • 179

              #7
              В общем открою сегодня баг

              Comment

              Working...