From 39baf2a9bef8144d7777bc20f6c0fcbc8f4e2f57 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 13 Nov 2017 08:53:25 -0500 Subject: [PATCH] index tuning script --- src/Sql/dbo/Tables/OrganizationUser.sql | 6 +++ .../DbScripts/2017-11-13_IndexTuning.sql | 42 +++++++++++++++++++ util/Setup/Setup.csproj | 1 + 3 files changed, 49 insertions(+) create mode 100644 util/Setup/DbScripts/2017-11-13_IndexTuning.sql diff --git a/src/Sql/dbo/Tables/OrganizationUser.sql b/src/Sql/dbo/Tables/OrganizationUser.sql index 5f43fe3410..bc7bd327c3 100644 --- a/src/Sql/dbo/Tables/OrganizationUser.sql +++ b/src/Sql/dbo/Tables/OrganizationUser.sql @@ -15,3 +15,9 @@ CONSTRAINT [FK_OrganizationUser_User] FOREIGN KEY ([UserId]) REFERENCES [dbo].[User] ([Id]) ); + +GO +CREATE NONCLUSTERED INDEX [IX_OrganizationUser_UserIdOrganizationIdStatus] + ON [dbo].[OrganizationUser]([UserId] ASC, [OrganizationId] ASC, [Status] ASC) + INCLUDE ([AccessAll]); + diff --git a/util/Setup/DbScripts/2017-11-13_IndexTuning.sql b/util/Setup/DbScripts/2017-11-13_IndexTuning.sql new file mode 100644 index 0000000000..f33dcf0386 --- /dev/null +++ b/util/Setup/DbScripts/2017-11-13_IndexTuning.sql @@ -0,0 +1,42 @@ +IF EXISTS ( + SELECT * FROM sys.indexes WHERE [Name]='IX_Cipher_UserId_Type' + AND object_id = OBJECT_ID('[dbo].[Cipher]') +) +BEGIN + DROP INDEX [IX_Cipher_UserId_Type] ON [dbo].[Cipher] +END +GO + +IF NOT EXISTS ( + SELECT * FROM sys.indexes WHERE [Name]='IX_Cipher_UserId_Type_IncludeAll' + AND object_id = OBJECT_ID('[dbo].[Cipher]') +) +BEGIN + CREATE NONCLUSTERED INDEX [IX_Cipher_UserId_Type_IncludeAll] + ON [dbo].[Cipher]([UserId] ASC, [Type] ASC) + INCLUDE ([OrganizationId], [Data], [Favorites], [Folders], [Attachments], [CreationDate], [RevisionDate]) +END +GO + +IF NOT EXISTS ( + SELECT * FROM sys.indexes WHERE [Name] = 'IX_Folder_UserId_IncludeAll' + AND object_id = OBJECT_ID('[dbo].[Folder]') +) +BEGIN + CREATE NONCLUSTERED INDEX [IX_Folder_UserId_IncludeAll] + ON [dbo].[Folder]([UserId] ASC) + INCLUDE ([Name], [CreationDate], [RevisionDate]) +END +GO + +IF NOT EXISTS ( + SELECT * FROM sys.indexes WHERE [Name] = 'IX_OrganizationUser_UserIdOrganizationIdStatus' + AND object_id = OBJECT_ID('[dbo].[OrganizationUser]') +) +BEGIN + CREATE NONCLUSTERED INDEX [IX_OrganizationUser_UserIdOrganizationIdStatus] + ON [dbo].[OrganizationUser]([UserId] ASC,[OrganizationId] ASC,[Status] ASC) + INCLUDE ([AccessAll]) +END +GO + diff --git a/util/Setup/Setup.csproj b/util/Setup/Setup.csproj index c15bfe2da6..db5c2b7634 100644 --- a/util/Setup/Setup.csproj +++ b/util/Setup/Setup.csproj @@ -8,6 +8,7 @@ +