Join event_suppress instead of not exists

XMLWordPrintable

    • S25-W50/51/52/01
    • 1

          AND NOT EXISTS (
              SELECT 1
              FROM event_suppress es
              WHERE es.eventid = e.eventid
          )
      
      SELECT DISTINCT
          e.eventid,
          e.objectid,
          e.clock,
          e.ns,
          e.name,
          e.severity,
          es1.cause_eventid
      FROM
          functions f
          JOIN items i ON f.itemid = i.itemid
          JOIN host_hgset hh ON i.hostid = hh.hostid
          JOIN permission p ON hh.hgsetid = p.hgsetid
          JOIN events e ON e.objectid = f.triggerid
          LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
      WHERE
          e.source = 0
          AND e.object = 0
          AND p.ugsetid = 1
          AND NOT EXISTS (
              SELECT 1
              FROM functions f1
              JOIN items i1 ON f1.itemid = i1.itemid
              JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
              LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
                  AND p1.ugsetid = 1
              WHERE f.triggerid = f1.triggerid
                AND i.itemid != f1.itemid
                AND p1.hgsetid IS NULL
          )
          AND NOT EXISTS (
              SELECT 1
              FROM event_suppress es
              WHERE es.eventid = e.eventid
          )
          AND NOT EXISTS (
              SELECT 1
              FROM event_symptom es
              WHERE es.eventid = e.eventid
          )
          AND EXISTS (
              SELECT 1
              FROM event_tag
              WHERE e.eventid = event_tag.eventid
                AND event_tag.tag = 'foo'
                AND event_tag.value = 'bar'
          )
          AND e.clock >= 1760360197
          AND e.clock <= 1762952197
          AND e.value = 1
      ORDER BY e.eventid DESC
      LIMIT 45001;
      
      

      Perhaps would be better like this:

      SELECT DISTINCT
          e.eventid,
          e.objectid,
          e.clock,
          e.ns,
          e.name,
          e.severity,
          es1.cause_eventid
      FROM
          functions f
          JOIN items i ON f.itemid = i.itemid
          JOIN host_hgset hh ON i.hostid = hh.hostid
          JOIN permission p ON hh.hgsetid = p.hgsetid
          JOIN events e ON e.objectid = f.triggerid
          LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
          LEFT JOIN event_suppress es ON e.eventid = es.eventid
      WHERE
          e.source = 0
          AND e.object = 0
          AND p.ugsetid = 1
          AND NOT EXISTS (
              SELECT 1
              FROM functions f1
              JOIN items i1 ON f1.itemid = i1.itemid
              JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
              LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
                  AND p1.ugsetid = 1
              WHERE f.triggerid = f1.triggerid
                AND i.itemid != f1.itemid
                AND p1.hgsetid IS NULL
          )
          AND es.eventid is null
          AND es1.eventid is null
          AND EXISTS (
              SELECT 1
              FROM event_tag
              WHERE e.eventid = event_tag.eventid
                AND event_tag.tag = 'foo'
                AND event_tag.value = 'bar'
          )
          AND e.clock >= 1760360197
          AND e.clock <= 1762952197
          AND e.value = 1
      ORDER BY e.eventid DESC
      LIMIT 45001;
      

            Assignee:
            Alexander Vladishev
            Reporter:
            Vladislavs Sokurenko
            Team C
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - Not Specified
                Not Specified
                Logged:
                Time Spent - 4h
                4h