[comptage_upload] Amélioration de la requête SQL

This commit is contained in:
Pierre-Elliott Bécue 2014-06-22 21:01:29 +02:00
parent aa63141c63
commit 852dc63e84

View file

@ -30,6 +30,15 @@ def get_stats(args):
pgsql.set_session(autocommit=True) pgsql.set_session(autocommit=True)
curseur = pgsql.cursor(cursor_factory=psycopg2.extras.DictCursor) curseur = pgsql.cursor(cursor_factory=psycopg2.extras.DictCursor)
ip_requete = """ ip_requete = """
WITH
machines_sans_doublon
AS
(
SELECT DISTINCT ON(mac_addr)
*
FROM
machines
)
SELECT SELECT
SUM(upload) as tot_upload, SUM(upload) as tot_upload,
SUM(download) as tot_download, SUM(download) as tot_download,
@ -51,9 +60,9 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_src machines_sans_doublon.mac_addr = upload.mac_src
WHERE WHERE
ip_src=%(pg_value)s ip_src=%(pg_value)s
AND NOT AND NOT
@ -88,9 +97,9 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_dst machines_sans_doublon.mac_addr = upload.mac_dst
WHERE WHERE
ip_dst=%(pg_value)s ip_dst=%(pg_value)s
AND NOT AND NOT
@ -123,6 +132,15 @@ GROUP BY
port_ext port_ext
""" """
mac_requete = """ mac_requete = """
WITH
machines_sans_doublon
AS
(
SELECT DISTINCT ON(mac_addr)
*
FROM
machines
)
SELECT SELECT
SUM(upload) as tot_upload, SUM(upload) as tot_upload,
SUM(download) as tot_download, SUM(download) as tot_download,
@ -144,9 +162,9 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_src machines_sans_doublon.mac_addr = upload.mac_src
WHERE WHERE
mac_src=macaddr%(pg_value)s mac_src=macaddr%(pg_value)s
AND NOT AND NOT
@ -183,9 +201,9 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_dst machines_sans_doublon.mac_addr = upload.mac_dst
WHERE WHERE
mac_dst=macaddr%(pg_value)s mac_dst=macaddr%(pg_value)s
AND NOT AND NOT
@ -220,6 +238,15 @@ GROUP BY
port_ext port_ext
""" """
adh_requete = """ adh_requete = """
WITH
machines_sans_doublon
AS
(
SELECT DISTINCT ON(mac_addr)
*
FROM
machines
)
SELECT SELECT
SUM(upload) as tot_upload, SUM(upload) as tot_upload,
SUM(download) as tot_download, SUM(download) as tot_download,
@ -241,13 +268,13 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_src machines_sans_doublon.mac_addr = upload.mac_src
WHERE WHERE
machines.type=%(pg_filter)s machines_sans_doublon.type=%(pg_filter)s
AND AND
machines.id=%(pg_value)s machines_sans_doublon.id=%(pg_value)s
AND NOT AND NOT
ip_src <<= inet%(ipv6_local)s ip_src <<= inet%(ipv6_local)s
AND NOT AND NOT
@ -282,13 +309,13 @@ FROM (
FROM FROM
upload upload
LEFT JOIN LEFT JOIN
machines machines_sans_doublon
ON ON
machines.mac_addr = upload.mac_dst machines_sans_doublon.mac_addr = upload.mac_dst
WHERE WHERE
machines.type=%(pg_filter)s machines_sans_doublon.type=%(pg_filter)s
AND AND
machines.id=%(pg_value)s machines_sans_doublon.id=%(pg_value)s
AND NOT AND NOT
ip_src <<= inet%(ipv6_local)s ip_src <<= inet%(ipv6_local)s
AND NOT AND NOT