plus de requete

This commit is contained in:
trochas
2024-12-11 14:08:45 +01:00
parent 676057fde8
commit 11fa027f8c
3 changed files with 39 additions and 14 deletions

View File

@@ -130,6 +130,7 @@ def reset_data_monetdb():
cursor.execute("DROP TABLE IF EXISTS airlines") cursor.execute("DROP TABLE IF EXISTS airlines")
cursor.execute("DROP TABLE IF EXISTS airports") cursor.execute("DROP TABLE IF EXISTS airports")
cursor.execute("DROP TABLE IF EXISTS flights") cursor.execute("DROP TABLE IF EXISTS flights")
cursor.execute("DROP TABLE IF EXISTS flights10")
conn.commit() conn.commit()
end_time = time.time() end_time = time.time()
cursor.close() cursor.close()

View File

@@ -114,7 +114,7 @@ def reset_database_postgres():
try: try:
with connect_postgres() as conn: with connect_postgres() as conn:
with conn.cursor() as cursor: with conn.cursor() as cursor:
cursor.execute('DROP TABLE IF EXISTS flights,airlines,airports') cursor.execute('DROP TABLE IF EXISTS flights,airlines,airports,flights10')
conn.commit() conn.commit()
cursor.close() cursor.close()
conn.close() conn.close()

50
main.py
View File

@@ -5,8 +5,13 @@ import time
#Monet DB #Monet DB
requeteSelect1MonetDB = """SELECT * FROM flights WHERE "AIRLINE" = 'AA';""" requeteSelect1MonetDB = """SELECT * FROM flights WHERE "AIRLINE" = 'AA';"""
requeteSelect2MonetDB = """SELECT * FROM flights;""" requeteSelect2MonetDB = """SELECT * FROM flights;"""
requeteSelect3MonetDB = """SELECT * FROM flights WHERE "DAY" > 10;""" requeteSelect5MonetDB = """SELECT * FROM flights WHERE "DAY" > 5;"""
requeteSelect4MonetDB = """SELECT * FROM flights WHERE "DAY" > 30;""" requeteSelect10MonetDB = """SELECT * FROM flights WHERE "DAY" > 10;"""
requeteSelect15MonetDB = """SELECT * FROM flights WHERE "DAY" > 15;"""
requeteSelect20MonetDB = """SELECT * FROM flights WHERE "DAY" > 20;"""
requeteSelect25MonetDB = """SELECT * FROM flights WHERE "DAY" > 25;"""
requeteSelect30MonetDB = """SELECT * FROM flights WHERE "DAY" > 30;"""
requeteCreateTable10MonetDB = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10;""" requeteCreateTable10MonetDB = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10;"""
requeteDeleteMonetDB = """DELETE FROM flights WHERE "DAY" > 10;""" requeteDeleteMonetDB = """DELETE FROM flights WHERE "DAY" > 10;"""
@@ -17,13 +22,17 @@ requeteDropflight10MonetDB = """DROP TABLE flights10;"""
#Postgre SQL #Postgre SQL
requeteSelect1PostgreSQL = """SELECT * FROM public.flights WHERE "AIRLINE" = 'AA'""" requeteSelect1PostgreSQL = """SELECT * FROM public.flights WHERE "AIRLINE" = 'AA'"""
requeteSelect2PostgreSQL = """SELECT * FROM public.flights""" requeteSelect2PostgreSQL = """SELECT * FROM public.flights"""
requeteSelect3PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 10""" requeteSelect5PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 5"""
requeteSelect4PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 30""" requeteSelect10PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 10"""
requeteSelect15PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 15"""
requeteSelect20PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 20"""
requeteSelect25PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 25"""
requeteSelect30PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 30"""
requeteCreateTable10PostgreSQL = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10""" requeteCreateTable10PostgreSQL = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10"""
requeteDeletePostgreSQL = """DELETE FROM flights WHERE "DAY" > 10""" requeteDeletePostgreSQL = """DELETE FROM flights WHERE "DAY" > 10"""
requeteInsertPostgreSQL = """INSERT INTO flights SELECT * FROM flights10""" requeteInsertPostgreSQL = """INSERT INTO flights SELECT * FROM flights10"""
requeteDropflight10MonetSQL = """DROP TABLE flights10""" requeteDropflight10PostgreSQL = """DROP TABLE flights10"""
def initMonetDB(): def initMonetDB():
reset_data_monetdb() reset_data_monetdb()
@@ -40,8 +49,12 @@ def execMonetDB(str):
def runMonetDB(): def runMonetDB():
execForMonetDB(5,[requeteSelect1MonetDB]) execForMonetDB(5,[requeteSelect1MonetDB])
execForMonetDB(5,[requeteSelect2MonetDB]) execForMonetDB(5,[requeteSelect2MonetDB])
execForMonetDB(5,[requeteSelect3MonetDB]) execForMonetDB(5,[requeteSelect5MonetDB])
execForMonetDB(5,[requeteSelect4MonetDB]) execForMonetDB(5,[requeteSelect10MonetDB])
execForMonetDB(5,[requeteSelect15MonetDB])
execForMonetDB(5,[requeteSelect20MonetDB])
execForMonetDB(5,[requeteSelect25MonetDB])
execForMonetDB(5,[requeteSelect30MonetDB])
execForMonetDB(5,[requeteCreateTable10MonetDB,requeteDeleteMonetDB,requeteInsertMonetDB,requeteDropflight10MonetDB]) execForMonetDB(5,[requeteCreateTable10MonetDB,requeteDeleteMonetDB,requeteInsertMonetDB,requeteDropflight10MonetDB])
@@ -49,8 +62,10 @@ def runMonetDB():
def execForMonetDB(n, tabReq): def execForMonetDB(n, tabReq):
t = [0] * len(tabReq) t = [0] * len(tabReq)
for i in range(n) : for i in range(n) :
print(i+1,"/",n)
for j in range(len(tabReq)) : for j in range(len(tabReq)) :
t[j]+=execMonetDB(tabReq[j]) t[j]+=execMonetDB(tabReq[j])
print("calcul en cours...")
for j in range(len(tabReq)): for j in range(len(tabReq)):
t[j] = t[j]/n t[j] = t[j]/n
@@ -61,12 +76,12 @@ def initPostgreSQL():
start_time = time.time() start_time = time.time()
create_tables_postgres() create_tables_postgres()
end_time = time.time() end_time = time.time()
print("[PostgreSQL] create table: time = ", (end_time - start_time), "s") print("[PostgreSQL] create table: time = ", (end_time - start_time), "s\n")
start_time = time.time() start_time = time.time()
create_data_postgres() create_data_postgres()
end_time = time.time() end_time = time.time()
print("[PostgreSQL] load data : time = ", (end_time - start_time), "s") print("[PostgreSQL] load data : time = ", (end_time - start_time), "s\n")
def execPostgreSQL(str): def execPostgreSQL(str):
start_time = time.time() start_time = time.time()
@@ -76,17 +91,26 @@ def execPostgreSQL(str):
def runPostgreSQL(): def runPostgreSQL():
execForPostgreSQL(5,[requeteSelect1PostgreSQL]) execForPostgreSQL(5,[requeteSelect1PostgreSQL])
execForPostgreSQL(5,[requeteSelect2PostgreSQL]) execForPostgreSQL(3,[requeteSelect2PostgreSQL])
execForPostgreSQL(5,[requeteSelect3PostgreSQL]) execForPostgreSQL(2,[requeteSelect5PostgreSQL])
execForPostgreSQL(5,[requeteSelect4PostgreSQL]) execForPostgreSQL(3,[requeteSelect10PostgreSQL])
execForPostgreSQL(5,[requeteCreateTable10PostgreSQL,requeteDeletePostgreSQL,requeteInsertPostgreSQL,requeteDropflight10MonetSQL]) execForPostgreSQL(3,[requeteSelect15PostgreSQL])
execForPostgreSQL(4,[requeteSelect20PostgreSQL])
execForPostgreSQL(4,[requeteSelect25PostgreSQL])
execForPostgreSQL(5,[requeteSelect30PostgreSQL])
execForPostgreSQL(3,[requeteCreateTable10PostgreSQL,requeteDeletePostgreSQL,requeteInsertPostgreSQL,requeteDropflight10PostgreSQL])
# execute n fois les n requêtes # execute n fois les n requêtes
def execForPostgreSQL(n, tabReq): def execForPostgreSQL(n, tabReq):
t = [0] * len(tabReq) t = [0] * len(tabReq)
for i in range(n): for i in range(n):
print(i+1,"/",n)
for j in range(len(tabReq)): for j in range(len(tabReq)):
t[j] += execPostgreSQL(tabReq[j]) t[j] += execPostgreSQL(tabReq[j])
print("calcul en cours...")
for j in range(len(tabReq)): for j in range(len(tabReq)):
t[j] = t[j] / n t[j] = t[j] / n