aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-05-16 01:59:26 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-05-16 01:59:26 -0400
commited184b194b6cc14e20256db17896a2c7386dcab1 (patch)
treeffe2ea0cbf84c166ee85bb0614c320ef75b0e95d /MediaBrowser.Server.Implementations
parent6d0e37ef3f97cc5edf7a609e46851093616f2da3 (diff)
parent0e50dc0080f2f8e9d9e1b6523a297e96e2d63224 (diff)
Merge branch 'beta'
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs13
-rw-r--r--MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs3
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs38
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncRepository.cs4
4 files changed, 37 insertions, 21 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index 99ab07648..9251ccb9e 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -1385,6 +1385,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, User user)
{
+ if (user == null || (query.IsInProgress ?? false))
+ {
+ return new QueryResult<BaseItem>();
+ }
+
var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders()
.SelectMany(i => i.Locations)
.Distinct(StringComparer.OrdinalIgnoreCase)
@@ -1413,13 +1418,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return new QueryResult<BaseItem>();
}
- if (user != null && !(query.IsInProgress ?? false))
+ if (_services.Count == 1)
{
- var initialResult = GetEmbyRecordings(query, user);
- if (initialResult.TotalRecordCount > 0)
- {
- return initialResult;
- }
+ return GetEmbyRecordings(query, user);
}
await RefreshRecordings(cancellationToken).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs b/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs
index cecf03ddf..10e8c5699 100644
--- a/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs
+++ b/MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs
@@ -41,7 +41,8 @@ namespace MediaBrowser.Server.Implementations.Notifications
string[] queries = {
"create table if not exists Notifications (Id GUID NOT NULL, UserId GUID NOT NULL, Date DATETIME NOT NULL, Name TEXT NOT NULL, Description TEXT, Url TEXT, Level TEXT NOT NULL, IsRead BOOLEAN NOT NULL, Category TEXT NOT NULL, RelatedId TEXT, PRIMARY KEY (Id, UserId))",
- "create index if not exists idx_Notifications on Notifications(Id, UserId)",
+ "create index if not exists idx_Notifications1 on Notifications(Id)",
+ "create index if not exists idx_Notifications2 on Notifications(UserId)",
//pragmas
"pragma temp_store = memory",
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 8f7119b4a..e04c87917 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -1643,9 +1643,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
{
- //Logger.Debug("GetItemList query time: {0}ms. Query: {1}",
- // Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
- // cmd.CommandText);
+ LogQueryTime("GetItemList", cmd, now);
while (reader.Read())
{
@@ -1659,6 +1657,26 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
}
+ private void LogQueryTime(string methodName, IDbCommand cmd, DateTime startDate)
+ {
+ var elapsed = (DateTime.UtcNow - startDate).TotalMilliseconds;
+
+ if (elapsed >= 500)
+ {
+ Logger.Debug("{2} query time (slow): {0}ms. Query: {1}",
+ Convert.ToInt32(elapsed),
+ cmd.CommandText,
+ methodName);
+ }
+ else
+ {
+ //Logger.Debug("{2} query time: {0}ms. Query: {1}",
+ // Convert.ToInt32(elapsed),
+ // cmd.CommandText,
+ // methodName);
+ }
+ }
+
public QueryResult<BaseItem> GetItems(InternalItemsQuery query)
{
if (query == null)
@@ -1728,9 +1746,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
- //Logger.Debug("GetItems query time: {0}ms. Query: {1}",
- // Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
- // cmd.CommandText);
+ LogQueryTime("GetItems", cmd, now);
while (reader.Read())
{
@@ -1878,9 +1894,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
{
- //Logger.Debug("GetItemIdsList query time: {0}ms. Query: {1}",
- // Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
- // cmd.CommandText);
+ LogQueryTime("GetItemIdsList", cmd, now);
while (reader.Read())
{
@@ -2036,9 +2050,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
- //Logger.Debug("GetItemIds query time: {0}ms. Query: {1}",
- // Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
- // cmd.CommandText);
+ LogQueryTime("GetItemIds", cmd, now);
while (reader.Read())
{
@@ -2562,8 +2574,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
clause += " OR ";
}
clause += "Album=@AlbumName" + index;
- index++;
cmd.Parameters.Add(cmd, "@AlbumName" + index, DbType.String).Value = name;
+ index++;
}
clause += ")";
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
index 6d31663b9..739d1ab6e 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
@@ -49,9 +49,11 @@ namespace MediaBrowser.Server.Implementations.Sync
"create table if not exists SyncJobs (Id GUID PRIMARY KEY, TargetId TEXT NOT NULL, Name TEXT NOT NULL, Profile TEXT, Quality TEXT, Bitrate INT, Status TEXT NOT NULL, Progress FLOAT, UserId TEXT NOT NULL, ItemIds TEXT NOT NULL, Category TEXT, ParentId TEXT, UnwatchedOnly BIT, ItemLimit INT, SyncNewContent BIT, DateCreated DateTime, DateLastModified DateTime, ItemCount int)",
"create index if not exists idx_SyncJobs on SyncJobs(Id)",
+ "create index if not exists idx_SyncJobs1 on SyncJobs(TargetId)",
"create table if not exists SyncJobItems (Id GUID PRIMARY KEY, ItemId TEXT, ItemName TEXT, MediaSourceId TEXT, JobId TEXT, TemporaryPath TEXT, OutputPath TEXT, Status TEXT, TargetId TEXT, DateCreated DateTime, Progress FLOAT, AdditionalFiles TEXT, MediaSource TEXT, IsMarkedForRemoval BIT, JobItemIndex INT, ItemDateModifiedTicks BIGINT)",
- "create index if not exists idx_SyncJobItems on SyncJobs(Id)",
+ "create index if not exists idx_SyncJobItems1 on SyncJobItems(Id)",
+ "create index if not exists idx_SyncJobItems2 on SyncJobItems(TargetId)",
//pragmas
"pragma temp_store = memory",