فهرست منبع

Run SQLite query planner optimization at shutdown/restart

Fernando Fernández 4 سال پیش
والد
کامیت
69baa9c467
1فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  1. 10 0
      Jellyfin.Server/Program.cs

+ 10 - 0
Jellyfin.Server/Program.cs

@@ -12,10 +12,12 @@ using System.Threading.Tasks;
 using CommandLine;
 using CommandLine;
 using Emby.Server.Implementations;
 using Emby.Server.Implementations;
 using Emby.Server.Implementations.IO;
 using Emby.Server.Implementations.IO;
+using Jellyfin.Server.Implementations;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Extensions;
 using MediaBrowser.Controller.Extensions;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Hosting;
+using Microsoft.EntityFrameworkCore;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection.Extensions;
 using Microsoft.Extensions.DependencyInjection.Extensions;
@@ -221,6 +223,14 @@ namespace Jellyfin.Server
             finally
             finally
             {
             {
                 appHost.Dispose();
                 appHost.Dispose();
+                _logger.LogInformation("Running query planner optimizations in the database... This might take a while");
+
+                // Run after disposing the application
+                using var context = new JellyfinDbProvider(appHost.ServiceProvider, appPaths).CreateContext();
+                if (context.Database.IsSqlite())
+                {
+                    context.Database.ExecuteSqlRaw("PRAGMA optimize");
+                }
             }
             }
 
 
             if (_restartOnShutdown)
             if (_restartOnShutdown)