mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-25 10:16:11 +00:00
Attempt to reduce the number of calls to execute and fetchone.
Profiling has shown that there are many calls to sqlite3.execute and fetchone which takes a signicant amount of time. A simple way of reducing these is to swap the 2-stage init of table row data into a unified add. Applying this to add_set and add_country yielded these results: Before changes ``` 281784 7.054 0.000 7.054 0.000 {method 'execute' of 'sqlite3.Cursor' objects} 127443 1.114 0.000 1.114 0.000 {method 'fetchone' of 'sqlite3.Cursor' objects} ``` After changes ``` 281714 7.492 0.000 7.492 0.000 {method 'execute' of 'sqlite3.Cursor' objects} 127373 1.217 0.000 1.217 0.000 {method 'fetchone' of 'sqlite3.Cursor' objects} ``` Note: The total time of fetchone has actually increased. I am hoping this was an abnormality on my machine and the actual reduction in the number of calls will permantly reduce this total time.
This commit is contained in:
parent
0e4458fa75
commit
0a69894320
2 changed files with 8 additions and 32 deletions
|
@ -37,16 +37,6 @@ class Movies(Kodi):
|
||||||
|
|
||||||
return self.cursor.fetchone()[0] + 1
|
return self.cursor.fetchone()[0] + 1
|
||||||
|
|
||||||
def create_entry_set(self):
|
|
||||||
self.cursor.execute(QU.create_set)
|
|
||||||
|
|
||||||
return self.cursor.fetchone()[0] + 1
|
|
||||||
|
|
||||||
def create_entry_country(self):
|
|
||||||
self.cursor.execute(QU.create_country)
|
|
||||||
|
|
||||||
return self.cursor.fetchone()[0] + 1
|
|
||||||
|
|
||||||
def get(self, *args):
|
def get(self, *args):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -114,11 +104,8 @@ class Movies(Kodi):
|
||||||
self.cursor.execute(QU.update_country, (self.get_country(country),) + args)
|
self.cursor.execute(QU.update_country, (self.get_country(country),) + args)
|
||||||
|
|
||||||
def add_country(self, *args):
|
def add_country(self, *args):
|
||||||
|
self.cursor.execute(QU.add_country, args)
|
||||||
country_id = self.create_entry_country()
|
return self.cursor.lastrowid
|
||||||
self.cursor.execute(QU.add_country, (country_id,) + args)
|
|
||||||
|
|
||||||
return country_id
|
|
||||||
|
|
||||||
def get_country(self, *args):
|
def get_country(self, *args):
|
||||||
|
|
||||||
|
@ -130,11 +117,8 @@ class Movies(Kodi):
|
||||||
return self.add_country(*args)
|
return self.add_country(*args)
|
||||||
|
|
||||||
def add_boxset(self, *args):
|
def add_boxset(self, *args):
|
||||||
|
self.cursor.execute(QU.add_set, args)
|
||||||
set_id = self.create_entry_set()
|
return self.cursor.lastrowid
|
||||||
self.cursor.execute(QU.add_set, (set_id,) + args)
|
|
||||||
|
|
||||||
return set_id
|
|
||||||
|
|
||||||
def update_boxset(self, *args):
|
def update_boxset(self, *args):
|
||||||
self.cursor.execute(QU.update_set, args)
|
self.cursor.execute(QU.update_set, args)
|
||||||
|
|
|
@ -44,14 +44,6 @@ create_movie = """
|
||||||
SELECT coalesce(max(idMovie), 0)
|
SELECT coalesce(max(idMovie), 0)
|
||||||
FROM movie
|
FROM movie
|
||||||
"""
|
"""
|
||||||
create_set = """
|
|
||||||
SELECT coalesce(max(idSet), 0)
|
|
||||||
FROM sets
|
|
||||||
"""
|
|
||||||
create_country = """
|
|
||||||
SELECT coalesce(max(country_id), 0)
|
|
||||||
FROM country
|
|
||||||
"""
|
|
||||||
create_musicvideo = """
|
create_musicvideo = """
|
||||||
SELECT coalesce(max(idMVideo), 0)
|
SELECT coalesce(max(idMVideo), 0)
|
||||||
FROM musicvideo
|
FROM musicvideo
|
||||||
|
@ -319,12 +311,12 @@ add_unique_id_movie_obj = ["{Unique}", "{MovieId}", "movie", "{UniqueId}", "{Pro
|
||||||
add_unique_id_tvshow_obj = ["{Unique}", "{ShowId}", "tvshow", "{UniqueId}", "{ProviderName}"]
|
add_unique_id_tvshow_obj = ["{Unique}", "{ShowId}", "tvshow", "{UniqueId}", "{ProviderName}"]
|
||||||
add_unique_id_episode_obj = ["{Unique}", "{EpisodeId}", "episode", "{UniqueId}", "{ProviderName}"]
|
add_unique_id_episode_obj = ["{Unique}", "{EpisodeId}", "episode", "{UniqueId}", "{ProviderName}"]
|
||||||
add_country = """
|
add_country = """
|
||||||
INSERT INTO country(country_id, name)
|
INSERT INTO country(name)
|
||||||
VALUES (?, ?)
|
VALUES (?)
|
||||||
"""
|
"""
|
||||||
add_set = """
|
add_set = """
|
||||||
INSERT INTO sets(idSet, strSet, strOverview)
|
INSERT INTO sets(strSet, strOverview)
|
||||||
VALUES (?, ?, ?)
|
VALUES (?, ?)
|
||||||
"""
|
"""
|
||||||
add_set_obj = ["{Title}", "{Overview}"]
|
add_set_obj = ["{Title}", "{Overview}"]
|
||||||
add_musicvideo = """
|
add_musicvideo = """
|
||||||
|
|
Loading…
Reference in a new issue