Files
m1_bdd_comparaison_perf/main.py
Minh VU 676057fde8 ok
2024-12-11 13:08:46 +01:00

103 lines
3.5 KiB
Python

from MonetDB import *
from PostgreSQL import *
import time
#Monet DB
requeteSelect1MonetDB = """SELECT * FROM flights WHERE "AIRLINE" = 'AA';"""
requeteSelect2MonetDB = """SELECT * FROM flights;"""
requeteSelect3MonetDB = """SELECT * FROM flights WHERE "DAY" > 10;"""
requeteSelect4MonetDB = """SELECT * FROM flights WHERE "DAY" > 30;"""
requeteCreateTable10MonetDB = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10;"""
requeteDeleteMonetDB = """DELETE FROM flights WHERE "DAY" > 10;"""
requeteInsertMonetDB = """INSERT INTO flights SELECT * FROM flights10;"""
requeteDropflight10MonetDB = """DROP TABLE flights10;"""
#Postgre SQL
requeteSelect1PostgreSQL = """SELECT * FROM public.flights WHERE "AIRLINE" = 'AA'"""
requeteSelect2PostgreSQL = """SELECT * FROM public.flights"""
requeteSelect3PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 10"""
requeteSelect4PostgreSQL = """SELECT * FROM public.flights WHERE "DAY" > 30"""
requeteCreateTable10PostgreSQL = """CREATE TABLE flights10 AS SELECT * FROM FLIGHTS WHERE "DAY" > 10"""
requeteDeletePostgreSQL = """DELETE FROM flights WHERE "DAY" > 10"""
requeteInsertPostgreSQL = """INSERT INTO flights SELECT * FROM flights10"""
requeteDropflight10MonetSQL = """DROP TABLE flights10"""
def initMonetDB():
reset_data_monetdb()
time = create_table_monetdb()
print("[MonetDB] create table: time = ", time, "s\n")
time = load_data_monetdb()
print("[MonetDB] load data : time = ", time, "s\n")
def execMonetDB(str):
return requete_monetdb(str)
def runMonetDB():
execForMonetDB(5,[requeteSelect1MonetDB])
execForMonetDB(5,[requeteSelect2MonetDB])
execForMonetDB(5,[requeteSelect3MonetDB])
execForMonetDB(5,[requeteSelect4MonetDB])
execForMonetDB(5,[requeteCreateTable10MonetDB,requeteDeleteMonetDB,requeteInsertMonetDB,requeteDropflight10MonetDB])
#execute n fois les n requêtes
def execForMonetDB(n, tabReq):
t = [0] * len(tabReq)
for i in range(n) :
for j in range(len(tabReq)) :
t[j]+=execMonetDB(tabReq[j])
for j in range(len(tabReq)):
t[j] = t[j]/n
print("[MonetDB] requete (moyenne de",n,") :", tabReq[j] , "\n time = ", t[j], "s\n")
def initPostgreSQL():
reset_database_postgres()
start_time = time.time()
create_tables_postgres()
end_time = time.time()
print("[PostgreSQL] create table: time = ", (end_time - start_time), "s")
start_time = time.time()
create_data_postgres()
end_time = time.time()
print("[PostgreSQL] load data : time = ", (end_time - start_time), "s")
def execPostgreSQL(str):
start_time = time.time()
requete_postgres(str)
end_time = time.time()
return end_time-start_time
def runPostgreSQL():
execForPostgreSQL(5,[requeteSelect1PostgreSQL])
execForPostgreSQL(5,[requeteSelect2PostgreSQL])
execForPostgreSQL(5,[requeteSelect3PostgreSQL])
execForPostgreSQL(5,[requeteSelect4PostgreSQL])
execForPostgreSQL(5,[requeteCreateTable10PostgreSQL,requeteDeletePostgreSQL,requeteInsertPostgreSQL,requeteDropflight10MonetSQL])
# execute n fois les n requêtes
def execForPostgreSQL(n, tabReq):
t = [0] * len(tabReq)
for i in range(n):
for j in range(len(tabReq)):
t[j] += execPostgreSQL(tabReq[j])
for j in range(len(tabReq)):
t[j] = t[j] / n
print("[PostgreSQL] requete (moyenne de", n, ") :", tabReq[j], "\n time = ", t[j], "s\n")
if __name__ == '__main__':
initMonetDB()
runMonetDB()
#initPostgreSQL()
#runPostgreSQL()