From 852dc63e84b254d9124807abc274f85cb46131e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Sun, 22 Jun 2014 21:01:29 +0200 Subject: [PATCH] =?UTF-8?q?[comptage=5Fupload]=20Am=C3=A9lioration=20de=20?= =?UTF-8?q?la=20requ=C3=AAte=20SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- surveillance/analyse2.py | 59 +++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/surveillance/analyse2.py b/surveillance/analyse2.py index d00a0cdc..8f0b764d 100755 --- a/surveillance/analyse2.py +++ b/surveillance/analyse2.py @@ -30,6 +30,15 @@ def get_stats(args): pgsql.set_session(autocommit=True) curseur = pgsql.cursor(cursor_factory=psycopg2.extras.DictCursor) ip_requete = """ +WITH + machines_sans_doublon +AS + ( + SELECT DISTINCT ON(mac_addr) + * + FROM + machines + ) SELECT SUM(upload) as tot_upload, SUM(download) as tot_download, @@ -51,9 +60,9 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_src + machines_sans_doublon.mac_addr = upload.mac_src WHERE ip_src=%(pg_value)s AND NOT @@ -88,9 +97,9 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_dst + machines_sans_doublon.mac_addr = upload.mac_dst WHERE ip_dst=%(pg_value)s AND NOT @@ -123,6 +132,15 @@ GROUP BY port_ext """ mac_requete = """ +WITH + machines_sans_doublon +AS + ( + SELECT DISTINCT ON(mac_addr) + * + FROM + machines + ) SELECT SUM(upload) as tot_upload, SUM(download) as tot_download, @@ -144,9 +162,9 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_src + machines_sans_doublon.mac_addr = upload.mac_src WHERE mac_src=macaddr%(pg_value)s AND NOT @@ -183,9 +201,9 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_dst + machines_sans_doublon.mac_addr = upload.mac_dst WHERE mac_dst=macaddr%(pg_value)s AND NOT @@ -220,6 +238,15 @@ GROUP BY port_ext """ adh_requete = """ +WITH + machines_sans_doublon +AS + ( + SELECT DISTINCT ON(mac_addr) + * + FROM + machines + ) SELECT SUM(upload) as tot_upload, SUM(download) as tot_download, @@ -241,13 +268,13 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_src + machines_sans_doublon.mac_addr = upload.mac_src WHERE - machines.type=%(pg_filter)s + machines_sans_doublon.type=%(pg_filter)s AND - machines.id=%(pg_value)s + machines_sans_doublon.id=%(pg_value)s AND NOT ip_src <<= inet%(ipv6_local)s AND NOT @@ -282,13 +309,13 @@ FROM ( FROM upload LEFT JOIN - machines + machines_sans_doublon ON - machines.mac_addr = upload.mac_dst + machines_sans_doublon.mac_addr = upload.mac_dst WHERE - machines.type=%(pg_filter)s + machines_sans_doublon.type=%(pg_filter)s AND - machines.id=%(pg_value)s + machines_sans_doublon.id=%(pg_value)s AND NOT ip_src <<= inet%(ipv6_local)s AND NOT