mirror of
https://github.com/sandronator/finetuning_aufgabe4.git
synced 2026-09-04 08:36:09 +02:00
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from manager import Manager
|
|
from baseStrategy import BaseStrategy
|
|
from nestedInnerLoopStrategy import NestedInnerLoopStrategy
|
|
from sortMergeStrategy import SortMergeStrategy
|
|
from hashJoinStrategy import HashJoinStrategy
|
|
from setup import get_connection
|
|
from repositories.all_queries import queries_postgres
|
|
if __name__ == '__main__':
|
|
join_manager: Manager | None = None
|
|
|
|
|
|
db_post, conn_postsql = get_connection(maria=False)
|
|
queries_explict_no_index_postgresql = queries_postgres["no_index"]
|
|
|
|
|
|
#Test on Postgresql
|
|
#Aufgabe 1
|
|
join_manager = Manager(BaseStrategy(conn_postsql, db_post, queries_postgres["with_index"]))
|
|
#join_manager.setup_db("no-index")
|
|
#join_manager.setQueries(queries_ignore_index) 3 Billionen Einträge durch kreuzprodukt > 10min
|
|
#join_manager.execute()
|
|
join_manager.setup_db("unique-publ")
|
|
join_manager.execute()
|
|
join_manager.setup_db("cl-both")
|
|
join_manager.execute()
|
|
#Aufgabe 2
|
|
join_manager.setStrategy(NestedInnerLoopStrategy(conn_postsql, db_post, queries_postgres["with_index"]))
|
|
join_manager.setup_db("nc-publ")
|
|
join_manager.execute()
|
|
join_manager.setup_db("nc-auth")
|
|
join_manager.execute()
|
|
join_manager.setup_db("nc-both")
|
|
join_manager.execute()
|
|
#Aufgabe 3
|
|
join_manager.setStrategy(SortMergeStrategy(conn_postsql, db_post, queries_postgres["no_index"]))
|
|
join_manager.setup_db("no-index")
|
|
join_manager.execute()
|
|
join_manager.setQueries(queries_postgres["with_index"])
|
|
join_manager.setup_db("nc-both")
|
|
join_manager.execute()
|
|
join_manager.setup_db("cl-both")
|
|
#Aufgabe 4
|
|
join_manager.setStrategy(HashJoinStrategy(conn_postsql, db_post, queries_postgres["no_index"]))
|
|
join_manager.setup_db("no-index")
|
|
join_manager.execute()
|
|
|
|
|
|
|
|
|