From f0487aaee238b1c007fe4dc668fcacfed0119685 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 3 Aug 2019 09:48:05 +0300 Subject: [PATCH 01/53] Bugfix and new functionality --- Forms/AboutBox.cs | 21 ++++++++++---- Forms/ErrorBox.cs | 14 ++++----- Forms/MainBox.Designer.cs | 49 ++++++++++++++++++++++++++++++++ Forms/MainBox.cs | 11 +++++-- Forms/MainBox.resx | 3 ++ Forms/SettingsBox.Designer.cs | 35 +++++++++++++++++++++++ Forms/SettingsBox.cs | 2 ++ Forms/SettingsBox.resx | 3 ++ Properties/AssemblyInfo.cs | 4 +-- Properties/Resources.Designer.cs | 9 ++++++ Properties/Resources.resx | 3 ++ README.md | 2 +- Server/Index.cs | 5 ++-- Server/Query.cs | 20 ++++++++----- Server/QueryEngine.cs | 42 +++++++++++++++++---------- Settings/Options.cs | 8 ++++++ 16 files changed, 189 insertions(+), 42 deletions(-) diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index f43901f..47816d3 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -1,5 +1,6 @@ using DevExpress.Utils; using DevExpress.XtraEditors; +using System; using System.Diagnostics; using System.Reflection; using System.Windows.Forms; @@ -7,7 +8,7 @@ namespace SQLIndexManager { public partial class AboutBox : XtraForm { - const string Mail = "sergey.syrovatchenko@gmail.com"; + const string _mail = "sergey.syrovatchenko@gmail.com"; public AboutBox() { InitializeComponent(); @@ -17,7 +18,7 @@ public AboutBox() { var product = (AssemblyProductAttribute)assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; var copyright = (AssemblyCopyrightAttribute)assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; - labelMail.Text = Mail; + labelMail.Text = _mail; labelProductName.Text = title.Title; labelProductDescription.Text = product.Product; labelCopyright.Text = copyright.Copyright; @@ -25,15 +26,25 @@ public AboutBox() { } private void labelMail_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - Process.Start($"mailto:{Mail}"); + RunHyperlink($"mailto:{_mail}"); } private void Copyright_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - Process.Start("www.linkedin.com/in/sergeysyrovatchenko"); + RunHyperlink("www.linkedin.com/in/sergeysyrovatchenko"); } private void GitHub_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - Process.Start("www.github.com/sergeysyrovatchenko/SQLIndexManager"); + RunHyperlink("www.github.com/sergeysyrovatchenko/SQLIndexManager"); + } + + private void RunHyperlink(string hyperlink) { + try { + Process.Start(hyperlink); + } + catch (Exception ex) { + Output.Current.Add($"Error: {ex.Source}", ex.Message); + XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); + } } #region Override Methods diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 4ce46b0..94cfaf2 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -10,13 +10,13 @@ public ErrorBox(Exception ex) { InitializeComponent(); edError.Text = - @"Application has encountered an unexpected error" + - @"\r\nPlease send error detail to sergey.syrovatchenko@gmail.com" + - $@"\r\nBuild: {AssemblyVersion}" + - $@"\r\nOS: {Environment.OSVersion}" + - $@"\r\n\r\n{ex.Message}" + - $@"\r\n{ex.Source}" + - $@"\r\n{ex.StackTrace}"; + "Application has encountered an unexpected error" + + "\r\nPlease send error detail to sergey.syrovatchenko@gmail.com" + + $"\r\nBuild: {AssemblyVersion}" + + $"\r\nOS: {Environment.OSVersion}" + + $"\r\n\r\n{ex.Message}" + + $"\r\n{ex.Source}" + + $"\r\n{ex.StackTrace}"; } private static string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString(); diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index d6bae55..bdd06e7 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -55,7 +55,10 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule5 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule6 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar6 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainBox)); + DevExpress.XtraGrid.Columns.GridColumn PageSpaceUsed; this.popupIndexOperation = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); this.gridControl1 = new DevExpress.XtraGrid.GridControl(); @@ -129,6 +132,7 @@ private void InitializeComponent() { TotalLookups = new DevExpress.XtraGrid.Columns.GridColumn(); IndexColumns = new DevExpress.XtraGrid.Columns.GridColumn(); IncludedColumns = new DevExpress.XtraGrid.Columns.GridColumn(); + PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit(); @@ -712,6 +716,7 @@ private void InitializeComponent() { IndexName, IndexType, PartitionNumber, + PageSpaceUsed, Fragmentation, PagesCount, SavedSpace, @@ -857,11 +862,37 @@ private void InitializeComponent() { formatConditionRuleDataBar5.PredefinedName = null; formatConditionRuleDataBar5.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule5.Rule = formatConditionRuleDataBar5; + gridFormatRule6.Column = PageSpaceUsed; + gridFormatRule6.ColumnApplyTo = PageSpaceUsed; + gridFormatRule6.Name = "PageSpaceUsed"; + formatConditionRuleDataBar6.AllowNegativeAxis = false; + formatConditionRuleDataBar6.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(125)))), ((int)(((byte)(212))))); + formatConditionRuleDataBar6.Appearance.BackColor2 = System.Drawing.Color.Transparent; + formatConditionRuleDataBar6.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar6.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar6.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar6.DrawAxis = false; + formatConditionRuleDataBar6.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar6.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar6.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + formatConditionRuleDataBar6.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar6.PredefinedName = null; + formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule6.Rule = formatConditionRuleDataBar6; this.gridView1.FormatRules.Add(gridFormatRule1); this.gridView1.FormatRules.Add(gridFormatRule2); this.gridView1.FormatRules.Add(gridFormatRule3); this.gridView1.FormatRules.Add(gridFormatRule4); this.gridView1.FormatRules.Add(gridFormatRule5); + this.gridView1.FormatRules.Add(gridFormatRule6); this.gridView1.GridControl = this.gridControl1; this.gridView1.Name = "gridView1"; this.gridView1.OptionsCustomization.AllowGroup = false; @@ -1362,6 +1393,24 @@ private void InitializeComponent() { // this.repositoryItemMemoEdit1.Name = "repositoryItemMemoEdit1"; // + // PageSpaceUsed + // + PageSpaceUsed.Caption = "Page Space Used"; + PageSpaceUsed.FieldName = "PageSpaceUsed"; + PageSpaceUsed.MaxWidth = 103; + PageSpaceUsed.MinWidth = 103; + PageSpaceUsed.Name = "PageSpaceUsed"; + PageSpaceUsed.OptionsColumn.AllowEdit = false; + PageSpaceUsed.OptionsColumn.AllowFocus = false; + PageSpaceUsed.OptionsColumn.AllowSize = false; + PageSpaceUsed.OptionsFilter.AllowAutoFilter = false; + PageSpaceUsed.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + PageSpaceUsed.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + PageSpaceUsed.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + PageSpaceUsed.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; + PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; + PageSpaceUsed.Width = 103; + // // MainBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 8ae06bc..eda80e7 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -678,7 +678,9 @@ private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { Resources.IndexName, Resources.IndexType, Resources.IndexColumns, - Resources.IncludedColumns + Resources.IncludedColumns, + Resources.TotalWrites, + Resources.TotalReads }; if (columns.Contains(e.Column.FieldName)) { @@ -706,8 +708,11 @@ private void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventAr break; case "Fragmentation": - double value = Convert.ToDouble(e.Value); - e.DisplayText = string.Format(value - Math.Truncate(value) < 0.1 || value > 99.9 ? "{0:n0} %" : "{0:n1} %", value); + case "PageSpaceUsed": + if (e.Value != null) { + double value = Convert.ToDouble(e.Value); + e.DisplayText = string.Format(value - Math.Truncate(value) < 0.1 || value > 99.9 ? "{0:n0} %" : "{0:n1} %", value); + } break; case "Compression": diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 4a17778..5cb0cb5 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -207,6 +207,9 @@ False + + False + 775, 7 diff --git a/Forms/SettingsBox.Designer.cs b/Forms/SettingsBox.Designer.cs index 6853e36..d9dbf57 100644 --- a/Forms/SettingsBox.Designer.cs +++ b/Forms/SettingsBox.Designer.cs @@ -48,6 +48,7 @@ private void InitializeComponent() { System.Windows.Forms.PictureBox pictureBox1; System.Windows.Forms.PictureBox pictureBox3; System.Windows.Forms.PictureBox pictureBox4; + DevExpress.XtraEditors.LabelControl labelControl9; this.labelControl3 = new DevExpress.XtraEditors.LabelControl(); this.labelControl4 = new DevExpress.XtraEditors.LabelControl(); this.labelRebuild = new DevExpress.XtraEditors.LabelControl(); @@ -85,6 +86,7 @@ private void InitializeComponent() { this.boxIncludeObject = new DevExpress.XtraEditors.TokenEdit(); this.groupControl4 = new DevExpress.XtraEditors.GroupControl(); this.groupControl5 = new DevExpress.XtraEditors.GroupControl(); + this.boxScanMode = new DevExpress.XtraEditors.ComboBoxEdit(); gb1 = new DevExpress.XtraEditors.GroupControl(); labelControl1 = new DevExpress.XtraEditors.LabelControl(); labelSortInTempDb = new DevExpress.XtraEditors.LabelControl(); @@ -109,6 +111,7 @@ private void InitializeComponent() { pictureBox1 = new System.Windows.Forms.PictureBox(); pictureBox3 = new System.Windows.Forms.PictureBox(); pictureBox4 = new System.Windows.Forms.PictureBox(); + labelControl9 = new DevExpress.XtraEditors.LabelControl(); ((System.ComponentModel.ISupportInitialize)(gb1)).BeginInit(); gb1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxThreshold)).BeginInit(); @@ -158,10 +161,13 @@ private void InitializeComponent() { this.groupControl4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).BeginInit(); this.groupControl5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).BeginInit(); this.SuspendLayout(); // // gb1 // + gb1.Controls.Add(labelControl9); + gb1.Controls.Add(this.boxScanMode); gb1.Controls.Add(this.labelControl3); gb1.Controls.Add(this.labelControl4); gb1.Controls.Add(this.labelRebuild); @@ -1004,6 +1010,33 @@ private void InitializeComponent() { this.groupControl5.TabIndex = 19; this.groupControl5.Text = "Object Filter (schema.table OR table OR %pattern%)"; // + // boxScanMode + // + this.boxScanMode.EditValue = "LIMITED"; + this.boxScanMode.Location = new System.Drawing.Point(287, 22); + this.boxScanMode.Name = "boxScanMode"; + this.boxScanMode.Properties.AllowFocused = false; + this.boxScanMode.Properties.Appearance.Options.UseTextOptions = true; + this.boxScanMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxScanMode.Properties.AutoComplete = false; + this.boxScanMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxScanMode.Properties.Items.AddRange(new object[] { + "LIMITED", + "SAMPLED", + "DETAILED"}); + this.boxScanMode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxScanMode.Size = new System.Drawing.Size(88, 20); + this.boxScanMode.TabIndex = 24; + // + // labelControl9 + // + labelControl9.Location = new System.Drawing.Point(243, 25); + labelControl9.Name = "labelControl9"; + labelControl9.Size = new System.Drawing.Size(38, 13); + labelControl9.TabIndex = 25; + labelControl9.Text = "SCAN ="; + // // SettingsBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1083,6 +1116,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).EndInit(); this.groupControl5.ResumeLayout(false); this.groupControl5.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).EndInit(); this.ResumeLayout(false); } @@ -1126,5 +1160,6 @@ private void InitializeComponent() { private DevExpress.XtraEditors.GroupControl groupControl5; private DevExpress.XtraEditors.LabelControl labelControl5; private DevExpress.XtraEditors.ComboBoxEdit boxNoRecompute; + private DevExpress.XtraEditors.ComboBoxEdit boxScanMode; } } \ No newline at end of file diff --git a/Forms/SettingsBox.cs b/Forms/SettingsBox.cs index ed6954e..07a36d9 100644 --- a/Forms/SettingsBox.cs +++ b/Forms/SettingsBox.cs @@ -29,6 +29,7 @@ private void UpdateControls(Options o) { boxDataCompression.EditValue = o.DataCompression; boxNoRecompute.EditValue = o.NoRecompute; boxFillFactor.EditValue = o.FillFactor; + boxScanMode.EditValue = o.ScanMode; boxScanHeap.Checked = o.ScanHeap; boxScanClusteredIndex.Checked = o.ScanClusteredIndex; @@ -65,6 +66,7 @@ public Options GetSettings() { DataCompression = (string)boxDataCompression.EditValue, NoRecompute = (string)boxNoRecompute.EditValue, FillFactor = (int)boxFillFactor.Value, + ScanMode = (string)boxScanMode.EditValue, ScanHeap = boxScanHeap.Checked, ScanClusteredIndex = boxScanClusteredIndex.Checked, diff --git a/Forms/SettingsBox.resx b/Forms/SettingsBox.resx index b83db92..e391c09 100644 --- a/Forms/SettingsBox.resx +++ b/Forms/SettingsBox.resx @@ -120,6 +120,9 @@ False + + False + False diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 5ddf5c2..a6f677e 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.46")] -[assembly: AssemblyFileVersion("1.0.0.46")] +[assembly: AssemblyVersion("1.0.0.47")] +[assembly: AssemblyFileVersion("1.0.0.47")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index cecf426..d82217c 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -423,6 +423,15 @@ internal static string PagesCountBefore { } } + /// + /// Looks up a localized string similar to PageSpaceUsed. + /// + internal static string PageSpaceUsed { + get { + return ResourceManager.GetString("PageSpaceUsed", resourceCulture); + } + } + /// /// Looks up a localized string similar to PartitionNumber. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index ab33378..28c7c5d 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -277,4 +277,7 @@ FixType + + PageSpaceUsed + \ No newline at end of file diff --git a/README.md b/README.md index f8fdc4b..21271b0 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ You can download .zip file with the latest build of the master branch from [Rele ![SQL Index Manager](https://habrastorage.org/webt/bw/6n/ma/bw6nmab-z9tlc5q1rud1rmdjj34.png) ![SQL Index Manager](https://habrastorage.org/webt/vj/vi/ts/vjvits-lmjukoi35ra_3bjt8pdq.png) -![SQL Index Manager](https://habrastorage.org/webt/xa/dj/if/xadjifj1s0eecjl5pldsnh5phsi.png) +![SQL Index Manager](https://habrastorage.org/webt/ep/e6/cv/epe6cveesa22v3yvbatf7iwhfry.png) ## Command Line diff --git a/Server/Index.cs b/Server/Index.cs index 4b3cc95..1df5e7c 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -13,6 +13,7 @@ public class Index { public IndexType IndexType { get; set; } public double? Fragmentation { get; set; } + public double? PageSpaceUsed { get; set; } public long PagesCount { get; set; } public long? PagesCountBefore { get; set; } public long UnusedPagesCount { get; set; } @@ -115,7 +116,7 @@ public string GetQuery() { ? "" : $"DATA_COMPRESSION = {Settings.Options.DataCompression}, " ) + - (Settings.Options.NoRecompute == Options.DEFAULT && !IsPartitioned + (Settings.Options.NoRecompute == Options.DEFAULT ? "" : $"STATISTICS_NORECOMPUTE = {Settings.Options.NoRecompute}, " ) + @@ -147,7 +148,7 @@ public string GetQuery() { $"ON [{schemaName}].[{objectName}] REBUILD PARTITION = {partition}\n " + $"WITH (SORT_IN_TEMPDB = {(Settings.Options.SortInTempDb ? Options.ON : Options.OFF)}, " + $"ONLINE = {onlineRebuild}, " + - (Settings.Options.NoRecompute == Options.DEFAULT && !IsPartitioned + (Settings.Options.NoRecompute == Options.DEFAULT ? "" : $"STATISTICS_NORECOMPUTE = {Settings.Options.NoRecompute}, " ) + diff --git a/Server/Query.cs b/Server/Query.cs index 1541faf..b7857f5 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -115,6 +115,7 @@ ObjectID INT NOT NULL , IndexID INT NOT NULL , PartitionNumber INT NOT NULL , Fragmentation FLOAT NOT NULL + , PageSpaceUsed FLOAT NULL , PRIMARY KEY (ObjectID, IndexID, PartitionNumber) ) {2} @@ -250,6 +251,7 @@ SELECT i.ObjectID , u.LastUsage , i.DataCompression , f.Fragmentation + , f.PageSpaceUsed , IndexStats = STATS_DATE(i.ObjectID, i.IndexID) , IsLobLegacy = ISNULL(lob.IsLobLegacy, 0) , IsLob = ISNULL(lob.IsLob, 0) @@ -470,12 +472,13 @@ OPEN cur WHILE @@FETCH_STATUS = 0 BEGIN - INSERT INTO #Fragmentation (ObjectID, IndexID, PartitionNumber, Fragmentation) + INSERT INTO #Fragmentation (ObjectID, IndexID, PartitionNumber, Fragmentation, PageSpaceUsed) SELECT @ObjectID , @IndexID , @PartitionNumber , [avg_fragmentation_in_percent] - FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber, 'LIMITED') r + , [avg_page_space_used_in_percent] + FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber, @ScanMode) r WHERE [index_level] = 0 AND [alloc_unit_type_desc] = 'IN_ROW_DATA' @@ -487,13 +490,14 @@ CLOSE cur DEALLOCATE cur"; public const string Index2012Plus = @" -INSERT INTO #Fragmentation (ObjectID, IndexID, PartitionNumber, Fragmentation) +INSERT INTO #Fragmentation (ObjectID, IndexID, PartitionNumber, Fragmentation, PageSpaceUsed) SELECT i.ObjectID , i.IndexID , i.PartitionNumber , r.[avg_fragmentation_in_percent] + , r.[avg_page_space_used_in_percent] FROM #Indexes i -CROSS APPLY sys.dm_db_index_physical_stats(@DBID, i.ObjectID, i.IndexID, i.PartitionNumber, 'LIMITED') r +CROSS APPLY sys.dm_db_index_physical_stats(@DBID, i.ObjectID, i.IndexID, i.PartitionNumber, @ScanMode) r WHERE i.PagesCount <= @PreDescribeSize AND r.[index_level] = 0 AND r.[alloc_unit_type_desc] = 'IN_ROW_DATA' @@ -520,8 +524,9 @@ AND PagesCount BETWEEN @MinIndexSize AND @MaxIndexSize DECLARE @DBID INT SET @DBID = DB_ID() -SELECT [avg_fragmentation_in_percent] -FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber, 'LIMITED') +SELECT Fragmentation = [avg_fragmentation_in_percent] + , PageSpaceUsed = [avg_page_space_used_in_percent] +FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber, @ScanMode) WHERE [index_level] = 0 AND [alloc_unit_type_desc] = 'IN_ROW_DATA' "; @@ -649,12 +654,13 @@ FROM sys.partitions WITH(NOLOCK) AND [partition_number] = {2} SELECT Fragmentation = [avg_fragmentation_in_percent] + , PageSpaceUsed = [avg_page_space_used_in_percent] , PagesCount = ISNULL(@ReservedPageCount, 0) , UnusedPagesCount = ISNULL(CASE WHEN ABS(@ReservedPageCount - @UnusedPagesCount) > 32 THEN @ReservedPageCount - @UnusedPagesCount END, 0) , RowsCount = ISNULL(@RowsCount, 0) , IndexStats = STATS_DATE({0}, {1}) , DataCompression = @Compression -FROM sys.dm_db_index_physical_stats(@DBID, {0}, {1}, {2}, 'LIMITED') +FROM sys.dm_db_index_physical_stats(@DBID, {0}, {1}, {2}, '{3}') WHERE [index_level] = 0 AND [alloc_unit_type_desc] = 'IN_ROW_DATA' "; diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index de7f627..d1d0f6b 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -125,10 +125,11 @@ public static List GetIndexes(SqlConnection connection) { SqlCommand cmd = new SqlCommand(query, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); - cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@PreDescribeSize", SqlDbType.BigInt) { Value = Settings.Options.PreDescribeSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@ScanMode", SqlDbType.NVarChar, 100) { Value = Settings.Options.ScanMode }); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet data = new DataSet(); @@ -186,6 +187,7 @@ public static List GetIndexes(SqlConnection connection) { LastUsage = _.Field(Resources.LastUsage), DataCompression = (DataCompression)_.Field(Resources.DataCompression), Fragmentation = _.Field(Resources.Fragmentation), + PageSpaceUsed = _.Field(Resources.PageSpaceUsed), IsAllowReorganize = _.Field(Resources.IsAllowPageLocks) && indexType != IndexType.Heap, IsAllowOnlineRebuild = isOnlineRebuild, IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable && !_.Field(Resources.IsSparse), @@ -197,20 +199,19 @@ public static List GetIndexes(SqlConnection connection) { } } - if (Settings.Options.ScanMissingIndex) { + if (Settings.Options.ScanMissingIndex && !(Settings.ServerInfo.IsAzure && connection.Database == Resources.DatamaseMaster)) { SqlCommand cmd = new SqlCommand(Query.MissingIndex, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); - cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet data = new DataSet(); adapter.Fill(data); foreach (DataRow _ in data.Tables[0].AsEnumerable()) { - double fragmentation = _.Field(Resources.Fragmentation); string indexCols = _.Field(Resources.IndexColumns); string objName = _.Field(Resources.ObjectName); string indexName = $"IX_{Guid.NewGuid().ToString().Truncate(5)}_{objName}_{indexCols}" @@ -235,7 +236,7 @@ public static List GetIndexes(SqlConnection connection) { TotalScans = _.Field(Resources.TotalScans), LastUsage = _.Field(Resources.LastUsage), DataCompression = DataCompression.None, - Fragmentation = fragmentation, + Fragmentation = _.Field(Resources.Fragmentation), IndexColumns = indexCols, IncludedColumns = _.Field(Resources.IncludedColumns) }; @@ -253,17 +254,27 @@ public static void GetIndexFragmentation(SqlConnection connection, Index index) cmd.Parameters.Add(new SqlParameter("@ObjectID", SqlDbType.Int) { Value = index.ObjectId }); cmd.Parameters.Add(new SqlParameter("@IndexID", SqlDbType.Int) { Value = index.IndexId }); cmd.Parameters.Add(new SqlParameter("@PartitionNumber", SqlDbType.Int) { Value = index.PartitionNumber }); + cmd.Parameters.Add(new SqlParameter("@ScanMode", SqlDbType.NVarChar, 100) { Value = Settings.Options.ScanMode }); - index.Fragmentation = (double?)cmd.ExecuteScalar(); + SqlDataAdapter adapter = new SqlDataAdapter(cmd); + DataSet data = new DataSet(); + adapter.Fill(data); + + if (data.Tables.Count == 1 && data.Tables[0].Rows.Count == 1) { + DataRow row = data.Tables[0].Rows[0]; + + index.Fragmentation = row.Field(Resources.Fragmentation); + index.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); + } } public static void GetColumnstoreFragmentation(SqlConnection connection, Index index, List indexes) { SqlCommand cmd = new SqlCommand(Query.ColumnstoreIndexFragmentation, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@ObjectID", SqlDbType.Int) { Value = index.ObjectId }); - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); - cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@ObjectID", SqlDbType.Int) { Value = index.ObjectId }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet data = new DataSet(); @@ -287,7 +298,7 @@ public static void GetColumnstoreFragmentation(SqlConnection connection, Index i public static string FixIndex(SqlConnection connection, Index index) { string sqlInfo = string.Format(index.IsColumnstore ? Query.AfterFixColumnstoreIndex : Query.AfterFixIndex, - index.ObjectId, index.IndexId, index.PartitionNumber); + index.ObjectId, index.IndexId, index.PartitionNumber, Settings.Options.ScanMode); string query = index.GetQuery(); string sql = index.FixType == IndexOp.Disable @@ -322,6 +333,7 @@ public static string FixIndex(SqlConnection connection, Index index) { index.PagesCountBefore = index.PagesCount - row.Field(Resources.PagesCount); index.Fragmentation = row.Field(Resources.Fragmentation); + index.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); index.PagesCount = row.Field(Resources.PagesCount); index.UnusedPagesCount = row.Field(Resources.UnusedPagesCount); index.RowsCount = row.Field(Resources.RowsCount); diff --git a/Settings/Options.cs b/Settings/Options.cs index 9ee2f01..65be9e1 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -10,6 +10,7 @@ public class Options { public const string NONE = "NONE"; public const string ON = "ON"; public const string OFF = "OFF"; + public const string LIMITED = "LIMITED"; private int _reorganizeThreshold = 15; private int _rebuildThreshold = 30; @@ -25,6 +26,7 @@ public class Options { private string _abortAfterWait = NONE; private string _dataCompression = DEFAULT; private string _noRecompute = DEFAULT; + private string _scanMode = LIMITED; private List _includeSchemas = new List(); private List _excludeSchemas = new List(); private List _includeObject = new List(); @@ -174,6 +176,12 @@ public string AbortAfterWait { set => _abortAfterWait = (value == NONE || value == "SELF" || value == "BLOCKERS") ? value : _abortAfterWait; } + [XmlAttribute] + public string ScanMode { + get => _scanMode; + set => _scanMode = (value == LIMITED || value == "SAMPLED" || value == "DETAILED") ? value : _scanMode; + } + private void UpdateThreshold(int reorganize, int rebuild) { _reorganizeThreshold = reorganize.IsBetween(0, 99) ? reorganize : _reorganizeThreshold; _rebuildThreshold = rebuild.IsBetween(1, 100) ? rebuild : _rebuildThreshold; From d8043211384cb0af54d7b882a8c528cbe31b2209 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 3 Aug 2019 11:48:22 +0300 Subject: [PATCH 02/53] Fix issue with missing indexes scan for in-memory databases --- Server/Query.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server/Query.cs b/Server/Query.cs index b7857f5..af0524d 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -332,7 +332,7 @@ AND p.[index_id] IN (0, 1) GROUP BY p.[object_id] SELECT *, FileGroupName = ( - SELECT f.[name] + SELECT TOP(1) f.[name] FROM sys.filegroups f WITH(NOLOCK) WHERE f.[is_default] = 1 ) From 3cd708da79d3711cd8748bb06197b171c6a150a5 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 31 Aug 2019 11:18:43 +0300 Subject: [PATCH 03/53] Statistics maintenance, new options and bugfix --- Common/AES.cs | 2 + Common/Output.cs | 4 + Common/ThreadWorker.cs | 2 + Common/Utils.cs | 30 +- Console/CmdArgument.cs | 2 + Console/CmdParser.cs | 2 + Console/CmdWorker.cs | 29 +- Console/NativeMethods.cs | 2 + Forms/AboutBox.cs | 4 +- Forms/ConnectionBox.cs | 33 +- Forms/DatabaseBox.Designer.cs | 843 ++++++++++----------- Forms/DatabaseBox.cs | 24 +- Forms/ErrorBox.cs | 2 + Forms/MainBox.Designer.cs | 294 ++++--- Forms/MainBox.cs | 270 +++---- Forms/MainBox.resx | 59 +- Forms/NetworkBox.cs | 4 +- Forms/SettingsBox.Designer.cs | 557 +++++++------- Forms/SettingsBox.cs | 49 +- Forms/SettingsBox.resx | 14 +- Program.cs | 4 +- Properties/AssemblyInfo.cs | 6 +- README.md | 16 +- SQLIndexManager.csproj | 29 +- Server/Connection.cs | 3 +- Server/ConnectionList.cs | 2 + Server/Database.cs | 2 + Server/Host.cs | 7 +- Server/Index.cs | 194 +++-- Server/Query.cs | 18 +- Server/QueryEngine.cs | 187 +++-- Server/ServerInfo.cs | 64 +- Settings/GlobalSettings.cs | 2 + Settings/Options.cs | 119 +-- Settings/Settings.cs | 6 +- Types/AbortAfterWait.cs | 9 + Types/AuthTypes.cs | 4 +- Types/DataCompression.cs | 24 +- Types/FixOp.cs | 8 - Types/IndexOp.cs | 40 +- Types/IndexType.cs | 27 +- Types/NoRecompute.cs | 9 + Types/ScanMode.cs | 9 + Server/Server.cs => Types/ServerVersion.cs | 2 +- Types/WarningType.cs | 6 +- 45 files changed, 1648 insertions(+), 1375 deletions(-) create mode 100644 Types/AbortAfterWait.cs delete mode 100644 Types/FixOp.cs create mode 100644 Types/NoRecompute.cs create mode 100644 Types/ScanMode.cs rename Server/Server.cs => Types/ServerVersion.cs (88%) diff --git a/Common/AES.cs b/Common/AES.cs index 82583ee..27a8640 100644 --- a/Common/AES.cs +++ b/Common/AES.cs @@ -6,6 +6,7 @@ namespace SQLIndexManager { internal class AES { + private static readonly byte[] Key1 = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; private static readonly byte[] Key2 = Encoding.UTF8.GetBytes("_SQLIndexManager"); @@ -43,6 +44,7 @@ internal static string Decrypt(string content) { } } } + } } \ No newline at end of file diff --git a/Common/Output.cs b/Common/Output.cs index eaf886a..23bf22d 100644 --- a/Common/Output.cs +++ b/Common/Output.cs @@ -8,12 +8,15 @@ namespace SQLIndexManager { public class OutputEvent { + public DateTime DateTime { get; set; } public string Message { get; set; } public DateTime? Duration { get; set; } + } public class Output { + private static Output _log; private readonly List _events; private BarStaticItem _control; @@ -81,6 +84,7 @@ public void Add(string message, string message2 = null, long? elapsedMillisecond } catch { } } + } } \ No newline at end of file diff --git a/Common/ThreadWorker.cs b/Common/ThreadWorker.cs index 0cbd450..26f9ae3 100644 --- a/Common/ThreadWorker.cs +++ b/Common/ThreadWorker.cs @@ -4,6 +4,7 @@ namespace SQLIndexManager { public class ThreadWorker : BackgroundWorker { + private Thread _workerThread; protected override void OnDoWork(DoWorkEventArgs e) { @@ -24,6 +25,7 @@ public void Abort() { _workerThread = null; } } + } } \ No newline at end of file diff --git a/Common/Utils.cs b/Common/Utils.cs index 2eadec0..14c3611 100644 --- a/Common/Utils.cs +++ b/Common/Utils.cs @@ -7,11 +7,35 @@ namespace SQLIndexManager { public static class Utils { - public static string ToDescription(this Enum value) { + public static string Description(this Enum value) { var da = (DescriptionAttribute[])(value.GetType().GetField(value.ToString())).GetCustomAttributes(typeof(DescriptionAttribute), false); return da.Length > 0 ? da[0].Description : value.ToString(); } + public static T ToEnum(this object value) { + return (T)Enum.Parse(typeof(T), value.ToString(), true); + } + + public static T GetValueFromDescription(string description) { + var type = typeof(T); + if (!type.IsEnum) throw new InvalidOperationException(); + foreach (var field in type.GetFields()) { + if (Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) is DescriptionAttribute attribute) { + if (attribute.Description == description) + return (T)field.GetValue(null); + } + else { + if (field.Name == description) + return (T)field.GetValue(null); + } + } + return default(T); + } + + public static string OnOff(this bool value) { + return value ? "ON" : "OFF"; + } + public static bool IsBetween(this int value, int minimum, int maximum) { return value >= minimum && value <= maximum; } @@ -42,8 +66,7 @@ public static List RemoveInvalidTokens(this List value) { } public static string ToQuota(this string value) { - return value?.Replace("[", "[[") - .Replace("]", "]]"); + return $"[{value?.Replace("[", "[[").Replace("]", "]]")}]"; } public static string Truncate(this string value, int maxLength) { @@ -86,6 +109,7 @@ public static string FormatMbSize(this int val) { return $"{ (value.ToString(value - Math.Truncate(value) == 0 ? "N0" : "N2")) } {dimension}"; } + } } \ No newline at end of file diff --git a/Console/CmdArgument.cs b/Console/CmdArgument.cs index b6f25b4..541a4aa 100644 --- a/Console/CmdArgument.cs +++ b/Console/CmdArgument.cs @@ -3,8 +3,10 @@ namespace SQLIndexManager { public class CmdArgument { + public string Argument; public readonly List Params = new List(); + } } diff --git a/Console/CmdParser.cs b/Console/CmdParser.cs index a5366fe..23e4ed7 100644 --- a/Console/CmdParser.cs +++ b/Console/CmdParser.cs @@ -3,6 +3,7 @@ namespace SQLIndexManager { public static class CmdParser { + public static List Parse(string[] argumets) { List newArguments = new List(); @@ -20,6 +21,7 @@ public static List Parse(string[] argumets) { return newArguments; } + } } diff --git a/Console/CmdWorker.cs b/Console/CmdWorker.cs index 9b315f6..361a6f6 100644 --- a/Console/CmdWorker.cs +++ b/Console/CmdWorker.cs @@ -8,6 +8,7 @@ namespace SQLIndexManager { public class CmdWorker { + public CmdWorker(List args) { Host host = new Host(); Settings.Options.IgnorePermissions = false; @@ -18,7 +19,7 @@ public CmdWorker(List args) { case "connection": SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(cmd.Params[0]); host.Server = sb.DataSource; - host.AuthType = sb.IntegratedSecurity ? AuthTypes.Windows : AuthTypes.SqlServer; + host.AuthType = sb.IntegratedSecurity ? AuthTypes.WINDOWS : AuthTypes.SQLSERVER; host.User = sb.UserID; if (!string.IsNullOrEmpty(sb.InitialCatalog)) { host.Databases.Add(sb.InitialCatalog); @@ -47,6 +48,10 @@ public CmdWorker(List args) { Settings.Options.Online = true; break; + case "missingindex": + Settings.Options.ScanMissingIndex = true; + break; + case "ignoreheap": Settings.Options.ScanHeap = false; break; @@ -66,11 +71,11 @@ public CmdWorker(List args) { break; case "rebuildthreshold": - Settings.Options.RebuildThreshold = Convert.ToInt32(cmd.Params[0]); + Settings.Options.SecondThreshold = Convert.ToInt32(cmd.Params[0]); break; case "reorganizethreshold": - Settings.Options.ReorganizeThreshold = Convert.ToInt32(cmd.Params[0]); + Settings.Options.FirstThreshold = Convert.ToInt32(cmd.Params[0]); break; case "minindexsize": @@ -105,7 +110,7 @@ public CmdWorker(List args) { } } - if (host.ServerInfo.MajorVersion < Server.Sql2008) + if (host.ServerInfo.MajorVersion < ServerVersion.Sql2008) throw new ArgumentException(Resources.MinVersionMessage); else Settings.ActiveHost = host; @@ -160,7 +165,7 @@ public int FixIndexes() { connection = connectionList.Get(database); if (connection == null) break; - if (index.IndexType == IndexType.ColumnstoreClustered || index.IndexType == IndexType.ColumnstoreNonClustered) { + if (index.IndexType == IndexType.CLUSTERED_COLUMNSTORE || index.IndexType == IndexType.NONCLUSTERED_COLUMNSTORE) { if (!clid.Exists(_ => _ == index.ObjectId)) { watch = Stopwatch.StartNew(); QueryEngine.GetColumnstoreFragmentation(connection, index, idx); @@ -184,7 +189,7 @@ public int FixIndexes() { scanIndex.AddRange(idx); } - var fixIndex = scanIndex.Where(_ => _.Fragmentation >= Settings.Options.ReorganizeThreshold + var fixIndex = scanIndex.Where(_ => _.Fragmentation >= Settings.Options.FirstThreshold && _.PagesCount >= Settings.Options.MinIndexSize.PageSize() && _.PagesCount <= Settings.Options.MaxIndexSize.PageSize()).ToList(); @@ -196,12 +201,14 @@ public int FixIndexes() { Output.Current.Add("Fix..."); foreach (Index ix in fixIndex) { - if (ix.Fragmentation < Settings.Options.RebuildThreshold && ix.IsAllowReorganize) - ix.FixType = IndexOp.Reorganize; + if (ix.IndexType == IndexType.MISSING_INDEX) + ix.FixType = IndexOp.CREATE_INDEX; + else if (ix.Fragmentation < Settings.Options.SecondThreshold && ix.IsAllowReorganize) + ix.FixType = IndexOp.REORGANIZE; else if (Settings.Options.Online && ix.IsAllowOnlineRebuild) - ix.FixType = IndexOp.RebuildOnline; + ix.FixType = IndexOp.REBUILD_ONLINE; else - ix.FixType = IndexOp.Rebuild; + ix.FixType = IndexOp.REBUILD; watch = Stopwatch.StartNew(); SqlConnection connection = connectionList.Get(ix.DatabaseName); @@ -227,5 +234,7 @@ public int FixIndexes() { return 0; } + } + } \ No newline at end of file diff --git a/Console/NativeMethods.cs b/Console/NativeMethods.cs index c479272..d79441a 100644 --- a/Console/NativeMethods.cs +++ b/Console/NativeMethods.cs @@ -3,6 +3,7 @@ namespace SQLIndexManager { public static class NativeMethods { + [DllImport("kernel32.dll")] public static extern bool AllocConsole(); @@ -11,6 +12,7 @@ public static class NativeMethods { [DllImport("kernel32.dll")] public static extern uint GetLastError(); + } } diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 47816d3..84a1516 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -8,7 +8,8 @@ namespace SQLIndexManager { public partial class AboutBox : XtraForm { - const string _mail = "sergey.syrovatchenko@gmail.com"; + + private const string _mail = "sergey.syrovatchenko@gmail.com"; public AboutBox() { InitializeComponent(); @@ -60,6 +61,7 @@ protected override bool ProcessDialogKey(Keys keyData) { #endregion + } } diff --git a/Forms/ConnectionBox.cs b/Forms/ConnectionBox.cs index 1c2f138..3f9e20d 100644 --- a/Forms/ConnectionBox.cs +++ b/Forms/ConnectionBox.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.ComponentModel; -using System.Data; using System.Data.SqlClient; using System.Linq; using System.Windows.Forms; @@ -12,6 +11,7 @@ namespace SQLIndexManager { public partial class ConnectionBox : XtraForm { + public ConnectionBox() { InitializeComponent(); @@ -90,7 +90,7 @@ private void CheckConnection(object sender, RunWorkerCompletedEventArgs e) { } } - if (_serverInfo.MajorVersion < Server.Sql2008) { + if (_serverInfo.MajorVersion < ServerVersion.Sql2008) { XtraMessageBox.Show(Resources.MinVersionMessage, "", MessageBoxButtons.OK, MessageBoxIcon.Warning); boxServer.Focus(); } @@ -104,28 +104,28 @@ private void CheckConnection(object sender, RunWorkerCompletedEventArgs e) { #region Properties private string _server { - get { return boxServer.Text; } - set { boxServer.Text = value; } + get => boxServer.Text; + set => boxServer.Text = value; } private AuthTypes _authType { - get { return (AuthTypes)boxAuthType.SelectedIndex; } - set { boxAuthType.SelectedIndex = (int)value; } + get => (AuthTypes)boxAuthType.SelectedIndex; + set => boxAuthType.SelectedIndex = (int)value; } private string _user { - get { return boxUser.Text; } - set { boxUser.Text = value; } + get => boxUser.Text; + set => boxUser.Text = value; } private string _password { - get { return boxPassword.Text; } - set { boxPassword.Text = value; } + get => boxPassword.Text; + set => boxPassword.Text = value; } private bool _savePassword { - get { return boxSavePassword.Checked; } - set { boxSavePassword.Checked = value; } + get => boxSavePassword.Checked; + set => boxSavePassword.Checked = value; } private List _databases; @@ -176,7 +176,7 @@ private void BoxServerSelectionChanged(object sender, EventArgs e) { } private void BoxAuthTypeSelectionChanged(object sender, EventArgs e) { - bool sqlAuth = (_authType == AuthTypes.SqlServer); + bool sqlAuth = (_authType == AuthTypes.SQLSERVER); boxUser.Enabled = boxPassword.Enabled = boxSavePassword.Enabled = sqlAuth; @@ -192,7 +192,7 @@ private void BoxAuthTypeSelectionChanged(object sender, EventArgs e) { private void UpdateControlUsage(bool enabled) { - foreach(Control c in this.Controls) { + foreach(Control c in Controls) { c.Enabled = enabled; } @@ -202,13 +202,13 @@ private void UpdateControlUsage(bool enabled) { if (enabled) { boxUser.Enabled = boxPassword.Enabled = - boxSavePassword.Enabled = (_authType == AuthTypes.SqlServer); + boxSavePassword.Enabled = (_authType == AuthTypes.SQLSERVER); } } private void EditValueChanged(object sender, EventArgs e) { buttonOK.Enabled = - !string.IsNullOrEmpty(_server) && !(string.IsNullOrEmpty(_user) && _authType == AuthTypes.SqlServer); + !string.IsNullOrEmpty(_server) && !(string.IsNullOrEmpty(_user) && _authType == AuthTypes.SQLSERVER); } #endregion @@ -230,6 +230,7 @@ protected override bool ProcessDialogKey(Keys keyData) { } #endregion + } } diff --git a/Forms/DatabaseBox.Designer.cs b/Forms/DatabaseBox.Designer.cs index b3ca7df..3c8b0ea 100644 --- a/Forms/DatabaseBox.Designer.cs +++ b/Forms/DatabaseBox.Designer.cs @@ -24,173 +24,171 @@ protected override void Dispose(bool disposing) { /// the contents of this method with the code editor. /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule3 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - this.colDataSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDatabase = new DevExpress.XtraGrid.Columns.GridColumn(); - this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); - this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); - this.searchControl1 = new DevExpress.XtraEditors.SearchControl(); - this.grid = new DevExpress.XtraGrid.GridControl(); - this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.colRecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); - this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); - this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); - this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); - this.searchControl1item = new DevExpress.XtraLayout.LayoutControlItem(); - this.griditem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonRefreshitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonOKitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); - this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); - ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); - this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.griditem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); - this.SuspendLayout(); - // - // colDataSize - // - this.colDataSize.Caption = "Data Size"; - this.colDataSize.FieldName = "DataSize"; - this.colDataSize.MaxWidth = 110; - this.colDataSize.MinWidth = 110; - this.colDataSize.Name = "colDataSize"; - this.colDataSize.Visible = true; - this.colDataSize.VisibleIndex = 4; - this.colDataSize.Width = 110; - // - // colDataFreeSize - // - this.colDataFreeSize.Caption = "Free Size"; - this.colDataFreeSize.FieldName = "DataFreeSize"; - this.colDataFreeSize.MaxWidth = 100; - this.colDataFreeSize.MinWidth = 100; - this.colDataFreeSize.Name = "colDataFreeSize"; - this.colDataFreeSize.Visible = true; - this.colDataFreeSize.VisibleIndex = 5; - this.colDataFreeSize.Width = 100; - // - // colLogSize - // - this.colLogSize.Caption = "Log Size"; - this.colLogSize.FieldName = "LogSize"; - this.colLogSize.MaxWidth = 110; - this.colLogSize.MinWidth = 110; - this.colLogSize.Name = "colLogSize"; - this.colLogSize.Visible = true; - this.colLogSize.VisibleIndex = 6; - this.colLogSize.Width = 110; - // - // colLogFreeSize - // - this.colLogFreeSize.Caption = "Free Size"; - this.colLogFreeSize.FieldName = "LogFreeSize"; - this.colLogFreeSize.MaxWidth = 100; - this.colLogFreeSize.MinWidth = 100; - this.colLogFreeSize.Name = "colLogFreeSize"; - this.colLogFreeSize.Visible = true; - this.colLogFreeSize.VisibleIndex = 7; - this.colLogFreeSize.Width = 100; - // - // colDatabase - // - this.colDatabase.Caption = "Database"; - this.colDatabase.FieldName = "DatabaseName"; - this.colDatabase.Name = "colDatabase"; - this.colDatabase.Visible = true; - this.colDatabase.VisibleIndex = 1; - this.colDatabase.Width = 241; - // - // buttonCancel - // - this.buttonCancel.AllowFocus = false; - this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(864, 366); - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(76, 22); - this.buttonCancel.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonCancel.TabIndex = 3; - this.buttonCancel.Text = "Cancel"; - // - // DatabaseBoxlayoutControl1ConvertedLayout - // - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.searchControl1); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.grid); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonRefresh); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonOK); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonCancel); - this.DatabaseBoxlayoutControl1ConvertedLayout.Dock = System.Windows.Forms.DockStyle.Fill; - this.DatabaseBoxlayoutControl1ConvertedLayout.Location = new System.Drawing.Point(0, 0); - this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; - this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); - this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; - this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(952, 400); - this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; - // - // searchControl1 - // - this.searchControl1.Client = this.grid; - this.searchControl1.Location = new System.Drawing.Point(87, 367); - this.searchControl1.Name = "searchControl1"; - this.searchControl1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule3 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + this.colDataSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colDataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colDatabase = new DevExpress.XtraGrid.Columns.GridColumn(); + this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); + this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); + this.searchControl1 = new DevExpress.XtraEditors.SearchControl(); + this.grid = new DevExpress.XtraGrid.GridControl(); + this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.colRecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); + this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); + this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); + this.searchControl1item = new DevExpress.XtraLayout.LayoutControlItem(); + this.griditem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonRefreshitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonOKitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); + ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); + this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.griditem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + this.SuspendLayout(); + // + // colDataSize + // + this.colDataSize.Caption = "Data Size"; + this.colDataSize.FieldName = "DataSize"; + this.colDataSize.MaxWidth = 110; + this.colDataSize.MinWidth = 110; + this.colDataSize.Name = "colDataSize"; + this.colDataSize.Visible = true; + this.colDataSize.VisibleIndex = 4; + this.colDataSize.Width = 110; + // + // colDataFreeSize + // + this.colDataFreeSize.Caption = "Free Size"; + this.colDataFreeSize.FieldName = "DataFreeSize"; + this.colDataFreeSize.MaxWidth = 100; + this.colDataFreeSize.MinWidth = 100; + this.colDataFreeSize.Name = "colDataFreeSize"; + this.colDataFreeSize.Visible = true; + this.colDataFreeSize.VisibleIndex = 5; + this.colDataFreeSize.Width = 100; + // + // colLogSize + // + this.colLogSize.Caption = "Log Size"; + this.colLogSize.FieldName = "LogSize"; + this.colLogSize.MaxWidth = 110; + this.colLogSize.MinWidth = 110; + this.colLogSize.Name = "colLogSize"; + this.colLogSize.Visible = true; + this.colLogSize.VisibleIndex = 6; + this.colLogSize.Width = 110; + // + // colLogFreeSize + // + this.colLogFreeSize.Caption = "Free Size"; + this.colLogFreeSize.FieldName = "LogFreeSize"; + this.colLogFreeSize.MaxWidth = 100; + this.colLogFreeSize.MinWidth = 100; + this.colLogFreeSize.Name = "colLogFreeSize"; + this.colLogFreeSize.Visible = true; + this.colLogFreeSize.VisibleIndex = 7; + this.colLogFreeSize.Width = 100; + // + // colDatabase + // + this.colDatabase.Caption = "Database"; + this.colDatabase.FieldName = "DatabaseName"; + this.colDatabase.Name = "colDatabase"; + this.colDatabase.Visible = true; + this.colDatabase.VisibleIndex = 1; + this.colDatabase.Width = 241; + // + // buttonCancel + // + this.buttonCancel.AllowFocus = false; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(864, 366); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(76, 22); + this.buttonCancel.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonCancel.TabIndex = 3; + this.buttonCancel.Text = "Cancel"; + // + // DatabaseBoxlayoutControl1ConvertedLayout + // + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.searchControl1); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.grid); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonRefresh); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonOK); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonCancel); + this.DatabaseBoxlayoutControl1ConvertedLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.DatabaseBoxlayoutControl1ConvertedLayout.Location = new System.Drawing.Point(0, 0); + this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; + this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); + this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; + this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(952, 400); + this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; + // + // searchControl1 + // + this.searchControl1.Client = this.grid; + this.searchControl1.Location = new System.Drawing.Point(87, 367); + this.searchControl1.Name = "searchControl1"; + this.searchControl1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton()}); - this.searchControl1.Properties.Client = this.grid; - this.searchControl1.Size = new System.Drawing.Size(219, 20); - this.searchControl1.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.searchControl1.TabIndex = 4; - // - // grid - // - this.grid.Font = new System.Drawing.Font("Tahoma", 9F); - this.grid.Location = new System.Drawing.Point(12, 7); - this.grid.MainView = this.view; - this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); - this.grid.Name = "grid"; - this.grid.Size = new System.Drawing.Size(928, 353); - this.grid.TabIndex = 0; - this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { + this.searchControl1.Properties.Client = this.grid; + this.searchControl1.Size = new System.Drawing.Size(219, 20); + this.searchControl1.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.searchControl1.TabIndex = 4; + // + // grid + // + this.grid.Font = new System.Drawing.Font("Tahoma", 9F); + this.grid.Location = new System.Drawing.Point(12, 7); + this.grid.MainView = this.view; + this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); + this.grid.Name = "grid"; + this.grid.Size = new System.Drawing.Size(928, 353); + this.grid.TabIndex = 0; + this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { this.view}); - // - // view - // - this.view.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.view.Appearance.EvenRow.Options.UseBackColor = true; - this.view.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.view.Appearance.FocusedRow.Options.UseBackColor = true; - this.view.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.view.Appearance.HeaderPanel.Options.UseFont = true; - this.view.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; - this.view.Appearance.HideSelectionRow.Options.UseBackColor = true; - this.view.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; - this.view.Appearance.OddRow.Options.UseBackColor = true; - this.view.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.view.Appearance.Row.Options.UseFont = true; - this.view.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.view.Appearance.SelectedRow.Options.UseBackColor = true; - this.view.ColumnPanelRowHeight = 26; - this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + // + // view + // + this.view.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.view.Appearance.EvenRow.Options.UseBackColor = true; + this.view.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.HeaderPanel.Options.UseFont = true; + this.view.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; + this.view.Appearance.HideSelectionRow.Options.UseBackColor = true; + this.view.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; + this.view.Appearance.OddRow.Options.UseBackColor = true; + this.view.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.Row.Options.UseFont = true; + this.view.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; + this.view.Appearance.SelectedRow.Options.UseBackColor = true; + this.view.ColumnPanelRowHeight = 26; + this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { this.colDatabase, this.colRecoveryModel, this.colLogReuseWait, @@ -198,294 +196,281 @@ private void InitializeComponent() { this.colDataFreeSize, this.colLogSize, this.colLogFreeSize}); - this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - gridFormatRule1.Column = this.colDataSize; - gridFormatRule1.ColumnApplyTo = this.colDataSize; - gridFormatRule1.Name = "DataSize"; - formatConditionRuleDataBar1.AllowNegativeAxis = false; - formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.Transparent; - formatConditionRuleDataBar1.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar1.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar1.DrawAxis = false; - formatConditionRuleDataBar1.Maximum = new decimal(new int[] { - 100, - 0, - 0, - 0}); - formatConditionRuleDataBar1.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; - formatConditionRuleDataBar1.Minimum = new decimal(new int[] { + this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; + gridFormatRule1.Column = this.colDataSize; + gridFormatRule1.ColumnApplyTo = this.colDataSize; + gridFormatRule1.Name = "DataSize"; + formatConditionRuleDataBar1.AllowNegativeAxis = false; + formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); + formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar1.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar1.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar1.DrawAxis = false; + formatConditionRuleDataBar1.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar1.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar1.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar1.PredefinedName = null; - formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule1.Rule = formatConditionRuleDataBar1; - gridFormatRule2.Column = this.colDataFreeSize; - gridFormatRule2.ColumnApplyTo = this.colDataFreeSize; - gridFormatRule2.Name = "DataFreeSize"; - formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(201)))), ((int)(((byte)(255))))); - formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.Transparent; - formatConditionRuleDataBar2.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar2.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar2.DrawAxis = false; - formatConditionRuleDataBar2.Maximum = new decimal(new int[] { - 100, - 0, - 0, - 0}); - formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar2.Minimum = new decimal(new int[] { + formatConditionRuleDataBar1.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar1.PredefinedName = null; + formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule1.Rule = formatConditionRuleDataBar1; + gridFormatRule2.Column = this.colDataFreeSize; + gridFormatRule2.ColumnApplyTo = this.colDataFreeSize; + gridFormatRule2.Name = "DataFreeSize"; + formatConditionRuleDataBar2.AllowNegativeAxis = false; + formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); + formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar2.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar2.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar2.DrawAxis = false; + formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar2.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar2.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar2.PredefinedName = null; - gridFormatRule2.Rule = formatConditionRuleDataBar2; - gridFormatRule3.Column = this.colLogSize; - gridFormatRule3.ColumnApplyTo = this.colLogSize; - gridFormatRule3.Name = "LogSize"; - formatConditionRuleDataBar3.AllowNegativeAxis = false; - formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.Transparent; - formatConditionRuleDataBar3.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar3.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar3.DrawAxis = false; - formatConditionRuleDataBar3.Maximum = new decimal(new int[] { - 100, - 0, - 0, - 0}); - formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; - formatConditionRuleDataBar3.Minimum = new decimal(new int[] { + formatConditionRuleDataBar2.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar2.PredefinedName = null; + formatConditionRuleDataBar2.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule2.Rule = formatConditionRuleDataBar2; + gridFormatRule3.Column = this.colLogSize; + gridFormatRule3.ColumnApplyTo = this.colLogSize; + gridFormatRule3.Name = "LogSize"; + formatConditionRuleDataBar3.AllowNegativeAxis = false; + formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar3.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar3.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar3.DrawAxis = false; + formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar3.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar3.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar3.PredefinedName = null; - formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule3.Rule = formatConditionRuleDataBar3; - gridFormatRule4.Column = this.colLogFreeSize; - gridFormatRule4.ColumnApplyTo = this.colLogFreeSize; - gridFormatRule4.Name = "LogFreeSize"; - formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(122)))), ((int)(((byte)(224)))), ((int)(((byte)(212))))); - formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.Transparent; - formatConditionRuleDataBar4.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar4.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar4.DrawAxis = false; - formatConditionRuleDataBar4.Maximum = new decimal(new int[] { - 100, - 0, - 0, - 0}); - formatConditionRuleDataBar4.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar4.Minimum = new decimal(new int[] { + formatConditionRuleDataBar3.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar3.PredefinedName = null; + formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule3.Rule = formatConditionRuleDataBar3; + gridFormatRule4.Column = this.colLogFreeSize; + gridFormatRule4.ColumnApplyTo = this.colLogFreeSize; + gridFormatRule4.Name = "LogFreeSize"; + formatConditionRuleDataBar4.AllowNegativeAxis = false; + formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar4.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar4.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar4.DrawAxis = false; + formatConditionRuleDataBar4.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar4.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar4.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar4.PredefinedName = null; - gridFormatRule4.Rule = formatConditionRuleDataBar4; - this.view.FormatRules.Add(gridFormatRule1); - this.view.FormatRules.Add(gridFormatRule2); - this.view.FormatRules.Add(gridFormatRule3); - this.view.FormatRules.Add(gridFormatRule4); - this.view.GridControl = this.grid; - this.view.Name = "view"; - this.view.OptionsBehavior.Editable = false; - this.view.OptionsCustomization.AllowColumnMoving = false; - this.view.OptionsCustomization.AllowColumnResizing = false; - this.view.OptionsCustomization.AllowFilter = false; - this.view.OptionsCustomization.AllowGroup = false; - this.view.OptionsCustomization.AllowQuickHideColumns = false; - this.view.OptionsFilter.AllowFilterEditor = false; - this.view.OptionsFind.AllowFindPanel = false; - this.view.OptionsFind.FindFilterColumns = "DatabaseName"; - this.view.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; - this.view.OptionsFind.FindNullPrompt = ""; - this.view.OptionsFind.ShowClearButton = false; - this.view.OptionsFind.ShowCloseButton = false; - this.view.OptionsFind.ShowFindButton = false; - this.view.OptionsMenu.EnableColumnMenu = false; - this.view.OptionsSelection.CheckBoxSelectorColumnWidth = 35; - this.view.OptionsSelection.EnableAppearanceFocusedCell = false; - this.view.OptionsSelection.MultiSelect = true; - this.view.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; - this.view.OptionsView.EnableAppearanceEvenRow = true; - this.view.OptionsView.EnableAppearanceOddRow = true; - this.view.OptionsView.ShowGroupPanel = false; - this.view.OptionsView.ShowIndicator = false; - this.view.RowHeight = 24; - this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { + formatConditionRuleDataBar4.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar4.PredefinedName = null; + formatConditionRuleDataBar4.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule4.Rule = formatConditionRuleDataBar4; + this.view.FormatRules.Add(gridFormatRule1); + this.view.FormatRules.Add(gridFormatRule2); + this.view.FormatRules.Add(gridFormatRule3); + this.view.FormatRules.Add(gridFormatRule4); + this.view.GridControl = this.grid; + this.view.Name = "view"; + this.view.OptionsBehavior.Editable = false; + this.view.OptionsCustomization.AllowColumnMoving = false; + this.view.OptionsCustomization.AllowColumnResizing = false; + this.view.OptionsCustomization.AllowFilter = false; + this.view.OptionsCustomization.AllowGroup = false; + this.view.OptionsCustomization.AllowQuickHideColumns = false; + this.view.OptionsFilter.AllowFilterEditor = false; + this.view.OptionsFind.AllowFindPanel = false; + this.view.OptionsFind.FindFilterColumns = "DatabaseName"; + this.view.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; + this.view.OptionsFind.FindNullPrompt = ""; + this.view.OptionsFind.ShowClearButton = false; + this.view.OptionsFind.ShowCloseButton = false; + this.view.OptionsFind.ShowFindButton = false; + this.view.OptionsMenu.EnableColumnMenu = false; + this.view.OptionsSelection.CheckBoxSelectorColumnWidth = 35; + this.view.OptionsSelection.EnableAppearanceFocusedCell = false; + this.view.OptionsSelection.EnableAppearanceFocusedRow = false; + this.view.OptionsSelection.EnableAppearanceHideSelection = false; + this.view.OptionsSelection.MultiSelect = true; + this.view.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; + this.view.OptionsSelection.UseIndicatorForSelection = false; + this.view.OptionsView.EnableAppearanceEvenRow = true; + this.view.OptionsView.EnableAppearanceOddRow = true; + this.view.OptionsView.ShowGroupPanel = false; + this.view.OptionsView.ShowIndicator = false; + this.view.RowHeight = 24; + this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.colDataSize, DevExpress.Data.ColumnSortOrder.Descending)}); - this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); - this.view.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridCustomColumnDisplayText); - this.view.DoubleClick += new System.EventHandler(this.GridDoubleClick); - // - // colRecoveryModel - // - this.colRecoveryModel.Caption = "Recovery Model"; - this.colRecoveryModel.FieldName = "RecoveryModel"; - this.colRecoveryModel.MaxWidth = 105; - this.colRecoveryModel.MinWidth = 105; - this.colRecoveryModel.Name = "colRecoveryModel"; - this.colRecoveryModel.Visible = true; - this.colRecoveryModel.VisibleIndex = 2; - this.colRecoveryModel.Width = 105; - // - // colLogReuseWait - // - this.colLogReuseWait.Caption = "Log Reuse Wait"; - this.colLogReuseWait.FieldName = "LogReuseWait"; - this.colLogReuseWait.MaxWidth = 130; - this.colLogReuseWait.MinWidth = 130; - this.colLogReuseWait.Name = "colLogReuseWait"; - this.colLogReuseWait.Visible = true; - this.colLogReuseWait.VisibleIndex = 3; - this.colLogReuseWait.Width = 130; - // - // buttonRefresh - // - this.buttonRefresh.AllowFocus = false; - this.buttonRefresh.Location = new System.Drawing.Point(12, 366); - this.buttonRefresh.Name = "buttonRefresh"; - this.buttonRefresh.Size = new System.Drawing.Size(71, 22); - this.buttonRefresh.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonRefresh.TabIndex = 1; - this.buttonRefresh.Text = "Refresh"; - this.buttonRefresh.Click += new System.EventHandler(this.ButtonRefreshClick); - // - // buttonOK - // - this.buttonOK.AllowFocus = false; - this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Enabled = false; - this.buttonOK.Location = new System.Drawing.Point(784, 366); - this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(76, 22); - this.buttonOK.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonOK.TabIndex = 2; - this.buttonOK.Text = "OK"; - // - // layoutControl - // - this.layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; - this.layoutControl.GroupBordersVisible = false; - this.layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); + this.view.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridCustomColumnDisplayText); + this.view.DoubleClick += new System.EventHandler(this.GridDoubleClick); + // + // colRecoveryModel + // + this.colRecoveryModel.Caption = "Recovery Model"; + this.colRecoveryModel.FieldName = "RecoveryModel"; + this.colRecoveryModel.MaxWidth = 105; + this.colRecoveryModel.MinWidth = 105; + this.colRecoveryModel.Name = "colRecoveryModel"; + this.colRecoveryModel.Visible = true; + this.colRecoveryModel.VisibleIndex = 2; + this.colRecoveryModel.Width = 105; + // + // colLogReuseWait + // + this.colLogReuseWait.Caption = "Log Reuse Wait"; + this.colLogReuseWait.FieldName = "LogReuseWait"; + this.colLogReuseWait.MaxWidth = 130; + this.colLogReuseWait.MinWidth = 130; + this.colLogReuseWait.Name = "colLogReuseWait"; + this.colLogReuseWait.Visible = true; + this.colLogReuseWait.VisibleIndex = 3; + this.colLogReuseWait.Width = 130; + // + // buttonRefresh + // + this.buttonRefresh.AllowFocus = false; + this.buttonRefresh.Location = new System.Drawing.Point(12, 366); + this.buttonRefresh.Name = "buttonRefresh"; + this.buttonRefresh.Size = new System.Drawing.Size(71, 22); + this.buttonRefresh.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonRefresh.TabIndex = 1; + this.buttonRefresh.Text = "Refresh"; + this.buttonRefresh.Click += new System.EventHandler(this.ButtonRefreshClick); + // + // buttonOK + // + this.buttonOK.AllowFocus = false; + this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOK.Enabled = false; + this.buttonOK.Location = new System.Drawing.Point(784, 366); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(76, 22); + this.buttonOK.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonOK.TabIndex = 2; + this.buttonOK.Text = "OK"; + // + // layoutControl + // + this.layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControl.GroupBordersVisible = false; + this.layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { this.searchControl1item, this.griditem, this.buttonRefreshitem, this.buttonOKitem, this.buttonCancelitem, this.emptySpaceItem1}); - this.layoutControl.Name = "Root"; - this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); - this.layoutControl.Size = new System.Drawing.Size(952, 400); - this.layoutControl.TextVisible = false; - // - // searchControl1item - // - this.searchControl1item.Control = this.searchControl1; - this.searchControl1item.Location = new System.Drawing.Point(75, 359); - this.searchControl1item.MaxSize = new System.Drawing.Size(223, 26); - this.searchControl1item.MinSize = new System.Drawing.Size(223, 26); - this.searchControl1item.Name = "searchControl1item"; - this.searchControl1item.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 3, 2); - this.searchControl1item.Size = new System.Drawing.Size(223, 26); - this.searchControl1item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.searchControl1item.TextSize = new System.Drawing.Size(0, 0); - this.searchControl1item.TextVisible = false; - // - // griditem - // - this.griditem.Control = this.grid; - this.griditem.Location = new System.Drawing.Point(0, 0); - this.griditem.Name = "griditem"; - this.griditem.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 4); - this.griditem.Size = new System.Drawing.Size(932, 359); - this.griditem.TextSize = new System.Drawing.Size(0, 0); - this.griditem.TextVisible = false; - // - // buttonRefreshitem - // - this.buttonRefreshitem.Control = this.buttonRefresh; - this.buttonRefreshitem.Location = new System.Drawing.Point(0, 359); - this.buttonRefreshitem.MaxSize = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.MinSize = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.Name = "buttonRefreshitem"; - this.buttonRefreshitem.Size = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonRefreshitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonRefreshitem.TextVisible = false; - // - // buttonOKitem - // - this.buttonOKitem.Control = this.buttonOK; - this.buttonOKitem.Location = new System.Drawing.Point(772, 359); - this.buttonOKitem.MaxSize = new System.Drawing.Size(80, 26); - this.buttonOKitem.MinSize = new System.Drawing.Size(80, 26); - this.buttonOKitem.Name = "buttonOKitem"; - this.buttonOKitem.Size = new System.Drawing.Size(80, 26); - this.buttonOKitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonOKitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonOKitem.TextVisible = false; - // - // buttonCancelitem - // - this.buttonCancelitem.Control = this.buttonCancel; - this.buttonCancelitem.Location = new System.Drawing.Point(852, 359); - this.buttonCancelitem.MaxSize = new System.Drawing.Size(80, 26); - this.buttonCancelitem.MinSize = new System.Drawing.Size(80, 26); - this.buttonCancelitem.Name = "buttonCancelitem"; - this.buttonCancelitem.Size = new System.Drawing.Size(80, 26); - this.buttonCancelitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonCancelitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonCancelitem.TextVisible = false; - // - // emptySpaceItem1 - // - this.emptySpaceItem1.AllowHotTrack = false; - this.emptySpaceItem1.Location = new System.Drawing.Point(298, 359); - this.emptySpaceItem1.Name = "emptySpaceItem1"; - this.emptySpaceItem1.Size = new System.Drawing.Size(474, 26); - this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); - // - // DatabaseBox - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(952, 400); - this.Controls.Add(this.DatabaseBoxlayoutControl1ConvertedLayout); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(868, 439); - this.Name = "DatabaseBox"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Select Databases"; - ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).EndInit(); - this.DatabaseBoxlayoutControl1ConvertedLayout.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.griditem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); - this.ResumeLayout(false); + this.layoutControl.Name = "Root"; + this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); + this.layoutControl.Size = new System.Drawing.Size(952, 400); + this.layoutControl.TextVisible = false; + // + // searchControl1item + // + this.searchControl1item.Control = this.searchControl1; + this.searchControl1item.Location = new System.Drawing.Point(75, 359); + this.searchControl1item.MaxSize = new System.Drawing.Size(223, 26); + this.searchControl1item.MinSize = new System.Drawing.Size(223, 26); + this.searchControl1item.Name = "searchControl1item"; + this.searchControl1item.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 3, 2); + this.searchControl1item.Size = new System.Drawing.Size(223, 26); + this.searchControl1item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.searchControl1item.TextSize = new System.Drawing.Size(0, 0); + this.searchControl1item.TextVisible = false; + // + // griditem + // + this.griditem.Control = this.grid; + this.griditem.Location = new System.Drawing.Point(0, 0); + this.griditem.Name = "griditem"; + this.griditem.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 4); + this.griditem.Size = new System.Drawing.Size(932, 359); + this.griditem.TextSize = new System.Drawing.Size(0, 0); + this.griditem.TextVisible = false; + // + // buttonRefreshitem + // + this.buttonRefreshitem.Control = this.buttonRefresh; + this.buttonRefreshitem.Location = new System.Drawing.Point(0, 359); + this.buttonRefreshitem.MaxSize = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.MinSize = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.Name = "buttonRefreshitem"; + this.buttonRefreshitem.Size = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonRefreshitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonRefreshitem.TextVisible = false; + // + // buttonOKitem + // + this.buttonOKitem.Control = this.buttonOK; + this.buttonOKitem.Location = new System.Drawing.Point(772, 359); + this.buttonOKitem.MaxSize = new System.Drawing.Size(80, 26); + this.buttonOKitem.MinSize = new System.Drawing.Size(80, 26); + this.buttonOKitem.Name = "buttonOKitem"; + this.buttonOKitem.Size = new System.Drawing.Size(80, 26); + this.buttonOKitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonOKitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonOKitem.TextVisible = false; + // + // buttonCancelitem + // + this.buttonCancelitem.Control = this.buttonCancel; + this.buttonCancelitem.Location = new System.Drawing.Point(852, 359); + this.buttonCancelitem.MaxSize = new System.Drawing.Size(80, 26); + this.buttonCancelitem.MinSize = new System.Drawing.Size(80, 26); + this.buttonCancelitem.Name = "buttonCancelitem"; + this.buttonCancelitem.Size = new System.Drawing.Size(80, 26); + this.buttonCancelitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonCancelitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonCancelitem.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(298, 359); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(474, 26); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // DatabaseBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(952, 400); + this.Controls.Add(this.DatabaseBoxlayoutControl1ConvertedLayout); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(868, 432); + this.Name = "DatabaseBox"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Select Databases"; + ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).EndInit(); + this.DatabaseBoxlayoutControl1ConvertedLayout.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.griditem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + this.ResumeLayout(false); } diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 75a00c9..1778995 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -11,11 +11,11 @@ using System.Drawing; using System.Linq; using System.Windows.Forms; -using SQLIndexManager.Properties; namespace SQLIndexManager { public partial class DatabaseBox : XtraForm { + public DatabaseBox() { InitializeComponent(); @@ -47,9 +47,13 @@ public List GetDatabases() { private void RefreshDatabases(bool scanUsedSpace) { grid.DataSource = null; buttonOK.Enabled = false; + + colDataSize.Visible = colLogSize.Visible = !Settings.ServerInfo.IsAzure + && Settings.ServerInfo.IsSysAdmin; + colDataFreeSize.Visible = colLogFreeSize.Visible = scanUsedSpace - && !Settings.ServerInfo.IsAzure - && Settings.ServerInfo.IsSysAdmin; + && !Settings.ServerInfo.IsAzure + && Settings.ServerInfo.IsSysAdmin; Stopwatch ts = Stopwatch.StartNew(); @@ -59,17 +63,14 @@ private void RefreshDatabases(bool scanUsedSpace) { connection.Open(); List dbs = QueryEngine.GetDatabases(connection, scanUsedSpace); + var max = dbs.Max(_ => Math.Max(_.DataSize, _.LogSize)); + foreach (var rule in view.FormatRules) { + ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; + } + grid.DataSource = dbs; Output.Current.Add($"Refresh {dbs.Count} databases", null, ts.ElapsedMilliseconds); - if (scanUsedSpace) { - var ruleDataFreeSize = view.FormatRules[Resources.DataFreeSize].RuleCast(); - var ruleLogFreeSize = view.FormatRules[Resources.LogFreeSize].RuleCast(); - - ruleDataFreeSize.Maximum = dbs.Max(_ => _.DataSize); - ruleLogFreeSize.Maximum = dbs.Max(_ => _.LogSize); - } - foreach (string db in Settings.ActiveHost.Databases) { int index = view.LocateByValue(colDatabase.FieldName, db); view.SelectRow(index); @@ -140,6 +141,7 @@ private void GridDoubleClick(object sender, EventArgs e) { } #endregion + } } diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 94cfaf2..b6f7597 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -6,6 +6,7 @@ namespace SQLIndexManager { public partial class ErrorBox : XtraForm { + public ErrorBox(Exception ex) { InitializeComponent(); @@ -33,6 +34,7 @@ protected override bool ProcessDialogKey(Keys keyData) { } #endregion + } } diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index bdd06e7..ceeec4e 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -46,20 +46,27 @@ private void InitializeComponent() { DevExpress.XtraGrid.Columns.GridColumn IndexColumns; DevExpress.XtraGrid.Columns.GridColumn IncludedColumns; DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraEditors.FormatConditionRuleIconSet formatConditionRuleIconSet1 = new DevExpress.XtraEditors.FormatConditionRuleIconSet(); + DevExpress.XtraEditors.FormatConditionIconSet formatConditionIconSet1 = new DevExpress.XtraEditors.FormatConditionIconSet(); + DevExpress.XtraEditors.FormatConditionIconSetIcon formatConditionIconSetIcon1 = new DevExpress.XtraEditors.FormatConditionIconSetIcon(); + DevExpress.XtraEditors.FormatConditionIconSetIcon formatConditionIconSetIcon2 = new DevExpress.XtraEditors.FormatConditionIconSetIcon(); + DevExpress.XtraEditors.FormatConditionIconSetIcon formatConditionIconSetIcon3 = new DevExpress.XtraEditors.FormatConditionIconSetIcon(); DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule3 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule5 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule6 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule7 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar6 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainBox)); - DevExpress.XtraGrid.Columns.GridColumn PageSpaceUsed; this.popupIndexOperation = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); + this.Warning = new DevExpress.XtraGrid.Columns.GridColumn(); + this.PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); this.gridControl1 = new DevExpress.XtraGrid.GridControl(); this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(); @@ -80,11 +87,12 @@ private void InitializeComponent() { this.buttonCopyFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonSaveFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonOptions = new DevExpress.XtraBars.BarButtonItem(); - this.popupMenu1 = new DevExpress.XtraBars.PopupMenu(this.components); + this.popupExport = new DevExpress.XtraBars.PopupMenu(this.components); this.buttonExportExcel = new DevExpress.XtraBars.BarButtonItem(); this.buttonExportCSV = new DevExpress.XtraBars.BarButtonItem(); this.buttonExportText = new DevExpress.XtraBars.BarButtonItem(); this.buttonExportHtml = new DevExpress.XtraBars.BarButtonItem(); + this.buttonRestoreDefaultLayout = new DevExpress.XtraBars.BarButtonItem(); this.buttonAbout = new DevExpress.XtraBars.BarButtonItem(); this.buttonRefreshIndex = new DevExpress.XtraBars.BarButtonItem(); this.buttonDatabases = new DevExpress.XtraBars.BarButtonItem(); @@ -92,7 +100,6 @@ private void InitializeComponent() { this.boxSearchControl = new DevExpress.XtraEditors.Repository.RepositoryItemSearchControl(); this.labelSeparator = new DevExpress.XtraBars.BarStaticItem(); this.toolTipController = new DevExpress.Utils.ToolTipController(this.components); - this.popupExport = new DevExpress.XtraBars.PopupMenu(this.components); this.taskbar = new DevExpress.Utils.Taskbar.TaskbarAssistant(); this.imageCollection = new DevExpress.Utils.ImageCollection(this.components); this.buttonFind = new DevExpress.XtraBars.BarButtonItem(); @@ -102,6 +109,8 @@ private void InitializeComponent() { this.colDuration = new DevExpress.XtraGrid.Columns.GridColumn(); this.colMessage = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemMemoEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); + this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); + this.labelError = new DevExpress.XtraBars.BarStaticItem(); Fragmentation = new DevExpress.XtraGrid.Columns.GridColumn(); PagesCount = new DevExpress.XtraGrid.Columns.GridColumn(); RowsCount = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -132,16 +141,14 @@ private void InitializeComponent() { TotalLookups = new DevExpress.XtraGrid.Columns.GridColumn(); IndexColumns = new DevExpress.XtraGrid.Columns.GridColumn(); IncludedColumns = new DevExpress.XtraGrid.Columns.GridColumn(); - PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupMenu1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); this.splitContainer.SuspendLayout(); @@ -196,8 +203,6 @@ private void InitializeComponent() { // RowsCount // RowsCount.Caption = "Rows"; - RowsCount.DisplayFormat.FormatString = "N0"; - RowsCount.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; RowsCount.FieldName = "RowsCount"; RowsCount.MaxWidth = 100; RowsCount.MinWidth = 100; @@ -217,7 +222,7 @@ private void InitializeComponent() { // SchemaName.Caption = "Schema"; SchemaName.FieldName = "SchemaName"; - SchemaName.MaxWidth = 200; + SchemaName.MaxWidth = 250; SchemaName.MinWidth = 60; SchemaName.Name = "SchemaName"; SchemaName.OptionsColumn.AllowEdit = false; @@ -233,7 +238,7 @@ private void InitializeComponent() { // ObjectName.Caption = "Object"; ObjectName.FieldName = "ObjectName"; - ObjectName.MaxWidth = 350; + ObjectName.MaxWidth = 700; ObjectName.MinWidth = 120; ObjectName.Name = "ObjectName"; ObjectName.OptionsColumn.AllowEdit = false; @@ -249,7 +254,7 @@ private void InitializeComponent() { // FileGroupName.Caption = "File Group"; FileGroupName.FieldName = "FileGroupName"; - FileGroupName.MaxWidth = 150; + FileGroupName.MaxWidth = 200; FileGroupName.MinWidth = 78; FileGroupName.Name = "FileGroupName"; FileGroupName.OptionsColumn.AllowEdit = false; @@ -263,7 +268,7 @@ private void InitializeComponent() { // IndexName.Caption = "Index"; IndexName.FieldName = "IndexName"; - IndexName.MaxWidth = 400; + IndexName.MaxWidth = 800; IndexName.MinWidth = 150; IndexName.Name = "IndexName"; IndexName.OptionsColumn.AllowEdit = false; @@ -279,7 +284,7 @@ private void InitializeComponent() { // IndexType.Caption = "Type"; IndexType.FieldName = "IndexType"; - IndexType.MaxWidth = 200; + IndexType.MaxWidth = 250; IndexType.MinWidth = 80; IndexType.Name = "IndexType"; IndexType.OptionsColumn.AllowEdit = false; @@ -385,7 +390,7 @@ private void InitializeComponent() { FixType.Caption = "Fix"; FixType.ColumnEdit = this.popupIndexOperation; FixType.FieldName = "FixType"; - FixType.MaxWidth = 200; + FixType.MaxWidth = 220; FixType.MinWidth = 90; FixType.Name = "FixType"; FixType.OptionsColumn.AllowIncrementalSearch = false; @@ -393,7 +398,7 @@ private void InitializeComponent() { FixType.OptionsColumn.ShowInCustomizationForm = false; FixType.OptionsColumn.ShowInExpressionEditor = false; FixType.OptionsColumn.TabStop = false; - FixType.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + FixType.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; FixType.Visible = true; FixType.VisibleIndex = 1; FixType.Width = 90; @@ -484,7 +489,7 @@ private void InitializeComponent() { // DatabaseName.Caption = "Database"; DatabaseName.FieldName = "DatabaseName"; - DatabaseName.MaxWidth = 200; + DatabaseName.MaxWidth = 250; DatabaseName.MinWidth = 100; DatabaseName.Name = "DatabaseName"; DatabaseName.OptionsColumn.AllowEdit = false; @@ -494,7 +499,7 @@ private void InitializeComponent() { DatabaseName.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; DatabaseName.Visible = true; DatabaseName.VisibleIndex = 2; - DatabaseName.Width = 110; + DatabaseName.Width = 100; // // SavedSpace // @@ -648,7 +653,7 @@ private void InitializeComponent() { // IndexColumns.Caption = "Index Columns"; IndexColumns.FieldName = "IndexColumns"; - IndexColumns.MaxWidth = 600; + IndexColumns.MaxWidth = 1000; IndexColumns.MinWidth = 150; IndexColumns.Name = "IndexColumns"; IndexColumns.OptionsColumn.AllowEdit = false; @@ -660,7 +665,7 @@ private void InitializeComponent() { // IncludedColumns.Caption = "Included Columns"; IncludedColumns.FieldName = "IncludedColumns"; - IncludedColumns.MaxWidth = 600; + IncludedColumns.MaxWidth = 1000; IncludedColumns.MinWidth = 150; IncludedColumns.Name = "IncludedColumns"; IncludedColumns.OptionsColumn.AllowEdit = false; @@ -668,6 +673,39 @@ private void InitializeComponent() { IncludedColumns.OptionsFilter.AllowFilter = false; IncludedColumns.Width = 150; // + // Warning + // + this.Warning.AppearanceCell.Options.UseTextOptions = true; + this.Warning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.Warning.Caption = "Warning"; + this.Warning.FieldName = "Error"; + this.Warning.MaxWidth = 90; + this.Warning.MinWidth = 90; + this.Warning.Name = "Warning"; + this.Warning.OptionsColumn.AllowEdit = false; + this.Warning.OptionsColumn.AllowFocus = false; + this.Warning.OptionsColumn.AllowSize = false; + this.Warning.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + this.Warning.Width = 90; + // + // PageSpaceUsed + // + this.PageSpaceUsed.Caption = "Page Space Used"; + this.PageSpaceUsed.FieldName = "PageSpaceUsed"; + this.PageSpaceUsed.MaxWidth = 103; + this.PageSpaceUsed.MinWidth = 103; + this.PageSpaceUsed.Name = "PageSpaceUsed"; + this.PageSpaceUsed.OptionsColumn.AllowEdit = false; + this.PageSpaceUsed.OptionsColumn.AllowFocus = false; + this.PageSpaceUsed.OptionsColumn.AllowSize = false; + this.PageSpaceUsed.OptionsFilter.AllowAutoFilter = false; + this.PageSpaceUsed.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + this.PageSpaceUsed.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + this.PageSpaceUsed.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + this.PageSpaceUsed.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; + this.PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; + this.PageSpaceUsed.Width = 103; + // // repositoryItemHypertextLabel1 // this.repositoryItemHypertextLabel1.Name = "repositoryItemHypertextLabel1"; @@ -702,7 +740,7 @@ private void InitializeComponent() { this.gridView1.Appearance.OddRow.Options.UseBackColor = true; this.gridView1.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); this.gridView1.Appearance.Row.Options.UseFont = true; - this.gridView1.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.gridView1.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; this.gridView1.Appearance.SelectedRow.Options.UseBackColor = true; this.gridView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; this.gridView1.ColumnPanelRowHeight = 26; @@ -716,7 +754,7 @@ private void InitializeComponent() { IndexName, IndexType, PartitionNumber, - PageSpaceUsed, + this.PageSpaceUsed, Fragmentation, PagesCount, SavedSpace, @@ -737,15 +775,49 @@ private void InitializeComponent() { TotalScans, TotalLookups, IndexColumns, - IncludedColumns}); + IncludedColumns, + this.Warning, + this.Error}); this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - gridFormatRule1.Column = Fragmentation; - gridFormatRule1.ColumnApplyTo = Fragmentation; - gridFormatRule1.Name = "Fragmentation"; + gridFormatRule1.Column = this.Warning; + gridFormatRule1.ColumnApplyTo = IndexName; + gridFormatRule1.Name = "Warning"; + formatConditionIconSet1.CategoryName = "Symbols"; + formatConditionIconSetIcon1.PredefinedName = "Flags3_1.png"; + formatConditionIconSetIcon1.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + formatConditionIconSetIcon1.ValueComparison = DevExpress.XtraEditors.FormatConditionComparisonType.GreaterOrEqual; + formatConditionIconSetIcon2.PredefinedName = "Flags3_2.png"; + formatConditionIconSetIcon2.Value = new decimal(new int[] { + 2, + 0, + 0, + 0}); + formatConditionIconSetIcon2.ValueComparison = DevExpress.XtraEditors.FormatConditionComparisonType.GreaterOrEqual; + formatConditionIconSetIcon3.PredefinedName = "Flags3_3.png"; + formatConditionIconSetIcon3.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + formatConditionIconSetIcon3.ValueComparison = DevExpress.XtraEditors.FormatConditionComparisonType.GreaterOrEqual; + formatConditionIconSet1.Icons.Add(formatConditionIconSetIcon1); + formatConditionIconSet1.Icons.Add(formatConditionIconSetIcon2); + formatConditionIconSet1.Icons.Add(formatConditionIconSetIcon3); + formatConditionIconSet1.Name = "Flags3"; + formatConditionIconSet1.ValueType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleIconSet1.IconSet = formatConditionIconSet1; + gridFormatRule1.Rule = formatConditionRuleIconSet1; + gridFormatRule2.Column = Fragmentation; + gridFormatRule2.ColumnApplyTo = Fragmentation; + gridFormatRule2.Name = "Fragmentation"; formatConditionRuleDataBar1.AllowNegativeAxis = false; formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(121)))), ((int)(((byte)(121))))); - formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(188)))), ((int)(((byte)(188))))); + formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(121)))), ((int)(((byte)(121))))); formatConditionRuleDataBar1.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar1.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar1.DrawAxis = false; @@ -763,16 +835,17 @@ private void InitializeComponent() { formatConditionRuleDataBar1.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar1.PredefinedName = null; formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule1.Rule = formatConditionRuleDataBar1; - gridFormatRule2.Column = PagesCount; - gridFormatRule2.ColumnApplyTo = PagesCount; - gridFormatRule2.Name = "PagesCount"; + gridFormatRule2.Rule = formatConditionRuleDataBar1; + gridFormatRule3.Column = PagesCount; + gridFormatRule3.ColumnApplyTo = PagesCount; + gridFormatRule3.Name = "PagesCount"; formatConditionRuleDataBar2.AllowNegativeAxis = false; formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); + formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); formatConditionRuleDataBar2.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar2.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar2.DrawAxis = false; formatConditionRuleDataBar2.Maximum = new decimal(new int[] { 100, 0, @@ -787,14 +860,14 @@ private void InitializeComponent() { formatConditionRuleDataBar2.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar2.PredefinedName = null; formatConditionRuleDataBar2.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule2.Rule = formatConditionRuleDataBar2; - gridFormatRule3.Column = UnusedPagesCount; - gridFormatRule3.ColumnApplyTo = UnusedPagesCount; - gridFormatRule3.Name = "UnusedPagesCount"; + gridFormatRule3.Rule = formatConditionRuleDataBar2; + gridFormatRule4.Column = UnusedPagesCount; + gridFormatRule4.ColumnApplyTo = UnusedPagesCount; + gridFormatRule4.Name = "UnusedPagesCount"; formatConditionRuleDataBar3.AllowNegativeAxis = false; formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); formatConditionRuleDataBar3.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar3.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar3.DrawAxis = false; @@ -812,14 +885,14 @@ private void InitializeComponent() { formatConditionRuleDataBar3.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar3.PredefinedName = null; formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule3.Rule = formatConditionRuleDataBar3; - gridFormatRule4.Column = RowsCount; - gridFormatRule4.ColumnApplyTo = RowsCount; - gridFormatRule4.Name = "RowsCount"; + gridFormatRule4.Rule = formatConditionRuleDataBar3; + gridFormatRule5.Column = RowsCount; + gridFormatRule5.ColumnApplyTo = RowsCount; + gridFormatRule5.Name = "RowsCount"; formatConditionRuleDataBar4.AllowNegativeAxis = false; formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); - formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(237)))), ((int)(((byte)(179))))); + formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); formatConditionRuleDataBar4.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar4.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar4.DrawAxis = false; @@ -837,13 +910,14 @@ private void InitializeComponent() { formatConditionRuleDataBar4.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar4.PredefinedName = null; formatConditionRuleDataBar4.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule4.Rule = formatConditionRuleDataBar4; - gridFormatRule5.Column = SavedSpace; - gridFormatRule5.ColumnApplyTo = SavedSpace; - gridFormatRule5.Name = "SavedSpace"; + gridFormatRule5.Rule = formatConditionRuleDataBar4; + gridFormatRule6.Column = SavedSpace; + gridFormatRule6.ColumnApplyTo = SavedSpace; + gridFormatRule6.Name = "SavedSpace"; + formatConditionRuleDataBar5.AllowNegativeAxis = false; formatConditionRuleDataBar5.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar5.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar5.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar5.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar5.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); formatConditionRuleDataBar5.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar5.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar5.DrawAxis = false; @@ -861,14 +935,14 @@ private void InitializeComponent() { formatConditionRuleDataBar5.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar5.PredefinedName = null; formatConditionRuleDataBar5.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule5.Rule = formatConditionRuleDataBar5; - gridFormatRule6.Column = PageSpaceUsed; - gridFormatRule6.ColumnApplyTo = PageSpaceUsed; - gridFormatRule6.Name = "PageSpaceUsed"; + gridFormatRule6.Rule = formatConditionRuleDataBar5; + gridFormatRule7.Column = this.PageSpaceUsed; + gridFormatRule7.ColumnApplyTo = this.PageSpaceUsed; + gridFormatRule7.Name = "PageSpaceUsed"; formatConditionRuleDataBar6.AllowNegativeAxis = false; formatConditionRuleDataBar6.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(125)))), ((int)(((byte)(212))))); - formatConditionRuleDataBar6.Appearance.BackColor2 = System.Drawing.Color.Transparent; - formatConditionRuleDataBar6.Appearance.BorderColor = System.Drawing.Color.Transparent; + formatConditionRuleDataBar6.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(205)))), ((int)(((byte)(165)))), ((int)(((byte)(238))))); + formatConditionRuleDataBar6.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(125)))), ((int)(((byte)(212))))); formatConditionRuleDataBar6.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar6.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar6.DrawAxis = false; @@ -886,13 +960,14 @@ private void InitializeComponent() { formatConditionRuleDataBar6.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar6.PredefinedName = null; formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule6.Rule = formatConditionRuleDataBar6; + gridFormatRule7.Rule = formatConditionRuleDataBar6; this.gridView1.FormatRules.Add(gridFormatRule1); this.gridView1.FormatRules.Add(gridFormatRule2); this.gridView1.FormatRules.Add(gridFormatRule3); this.gridView1.FormatRules.Add(gridFormatRule4); this.gridView1.FormatRules.Add(gridFormatRule5); this.gridView1.FormatRules.Add(gridFormatRule6); + this.gridView1.FormatRules.Add(gridFormatRule7); this.gridView1.GridControl = this.gridControl1; this.gridView1.Name = "gridView1"; this.gridView1.OptionsCustomization.AllowGroup = false; @@ -912,6 +987,8 @@ private void InitializeComponent() { this.gridView1.OptionsMenu.ShowAutoFilterRowItem = false; this.gridView1.OptionsSelection.CheckBoxSelectorColumnWidth = 35; this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; + this.gridView1.OptionsSelection.EnableAppearanceFocusedRow = false; + this.gridView1.OptionsSelection.EnableAppearanceHideSelection = false; this.gridView1.OptionsSelection.MultiSelect = true; this.gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; this.gridView1.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True; @@ -925,7 +1002,6 @@ private void InitializeComponent() { this.gridView1.OptionsView.ShowIndicator = false; this.gridView1.RowHeight = 24; this.gridView1.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); - this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); this.gridView1.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); this.gridView1.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); this.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); @@ -965,6 +1041,7 @@ private void InitializeComponent() { // this.statusBar.ItemLinks.Add(this.labelDatabase); this.statusBar.ItemLinks.Add(this.labelIndex); + this.statusBar.ItemLinks.Add(this.labelError); this.statusBar.ItemLinks.Add(this.buttonStopScan); this.statusBar.ItemLinks.Add(this.buttonStopFix); this.statusBar.ItemLinks.Add(this.buttonLog); @@ -984,6 +1061,7 @@ private void InitializeComponent() { this.labelDatabase.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelDatabase.ImageOptions.Image"))); this.labelDatabase.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelDatabase.ImageOptions.LargeImage"))); this.labelDatabase.Name = "labelDatabase"; + this.labelDatabase.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelDatabase.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // labelIndex @@ -994,6 +1072,7 @@ private void InitializeComponent() { this.labelIndex.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndex.ImageOptions.Image"))); this.labelIndex.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndex.ImageOptions.LargeImage"))); this.labelIndex.Name = "labelIndex"; + this.labelIndex.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelIndex.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // buttonStopScan @@ -1033,6 +1112,7 @@ private void InitializeComponent() { this.labelServerInfo.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.Image"))); this.labelServerInfo.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.LargeImage"))); this.labelServerInfo.Name = "labelServerInfo"; + this.labelServerInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelServerInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // labelInfo @@ -1068,9 +1148,11 @@ private void InitializeComponent() { this.buttonExportCSV, this.buttonExportText, this.buttonLog, - this.buttonExportHtml}); + this.buttonExportHtml, + this.buttonRestoreDefaultLayout, + this.labelError}); this.ribbonControl1.Location = new System.Drawing.Point(0, 0); - this.ribbonControl1.MaxItemId = 28; + this.ribbonControl1.MaxItemId = 30; this.ribbonControl1.Name = "ribbonControl1"; this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonNewConnection); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonDatabases); @@ -1147,7 +1229,7 @@ private void InitializeComponent() { // this.buttonOptions.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.DropDown; this.buttonOptions.Caption = "Settings"; - this.buttonOptions.DropDownControl = this.popupMenu1; + this.buttonOptions.DropDownControl = this.popupExport; this.buttonOptions.Id = 16; this.buttonOptions.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonOptions.ImageOptions.Image"))); this.buttonOptions.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonOptions.ImageOptions.LargeImage"))); @@ -1155,14 +1237,15 @@ private void InitializeComponent() { this.buttonOptions.Name = "buttonOptions"; this.buttonOptions.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonOptionsClick); // - // popupMenu1 + // popupExport // - this.popupMenu1.ItemLinks.Add(this.buttonExportExcel); - this.popupMenu1.ItemLinks.Add(this.buttonExportCSV); - this.popupMenu1.ItemLinks.Add(this.buttonExportText); - this.popupMenu1.ItemLinks.Add(this.buttonExportHtml); - this.popupMenu1.Name = "popupMenu1"; - this.popupMenu1.Ribbon = this.ribbonControl1; + this.popupExport.ItemLinks.Add(this.buttonExportExcel); + this.popupExport.ItemLinks.Add(this.buttonExportCSV); + this.popupExport.ItemLinks.Add(this.buttonExportText); + this.popupExport.ItemLinks.Add(this.buttonExportHtml); + this.popupExport.ItemLinks.Add(this.buttonRestoreDefaultLayout, true); + this.popupExport.Name = "popupExport"; + this.popupExport.Ribbon = this.ribbonControl1; // // buttonExportExcel // @@ -1200,6 +1283,15 @@ private void InitializeComponent() { this.buttonExportHtml.Name = "buttonExportHtml"; this.buttonExportHtml.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ExportHtml); // + // buttonRestoreDefaultLayout + // + this.buttonRestoreDefaultLayout.Caption = "Restore Layout"; + this.buttonRestoreDefaultLayout.Id = 28; + this.buttonRestoreDefaultLayout.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barButtonItem1.ImageOptions.Image"))); + this.buttonRestoreDefaultLayout.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barButtonItem1.ImageOptions.LargeImage"))); + this.buttonRestoreDefaultLayout.Name = "buttonRestoreDefaultLayout"; + this.buttonRestoreDefaultLayout.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.RestoreDefaultLayout); + // // buttonAbout // this.buttonAbout.Caption = "About"; @@ -1259,15 +1351,6 @@ private void InitializeComponent() { // this.toolTipController.Active = false; // - // popupExport - // - this.popupExport.ItemLinks.Add(this.buttonExportExcel); - this.popupExport.ItemLinks.Add(this.buttonExportCSV); - this.popupExport.ItemLinks.Add(this.buttonExportText); - this.popupExport.ItemLinks.Add(this.buttonExportHtml); - this.popupExport.Name = "popupExport"; - this.popupExport.Ribbon = this.ribbonControl1; - // // taskbar // this.taskbar.ParentControl = this; @@ -1393,23 +1476,27 @@ private void InitializeComponent() { // this.repositoryItemMemoEdit1.Name = "repositoryItemMemoEdit1"; // - // PageSpaceUsed + // Error + // + this.Error.Caption = "Error Message"; + this.Error.FieldName = "Error"; + this.Error.MaxWidth = 300; + this.Error.MinWidth = 120; + this.Error.Name = "Error"; + this.Error.OptionsColumn.AllowEdit = false; + this.Error.OptionsColumn.AllowFocus = false; + this.Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; + this.Error.Width = 120; // - PageSpaceUsed.Caption = "Page Space Used"; - PageSpaceUsed.FieldName = "PageSpaceUsed"; - PageSpaceUsed.MaxWidth = 103; - PageSpaceUsed.MinWidth = 103; - PageSpaceUsed.Name = "PageSpaceUsed"; - PageSpaceUsed.OptionsColumn.AllowEdit = false; - PageSpaceUsed.OptionsColumn.AllowFocus = false; - PageSpaceUsed.OptionsColumn.AllowSize = false; - PageSpaceUsed.OptionsFilter.AllowAutoFilter = false; - PageSpaceUsed.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; - PageSpaceUsed.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; - PageSpaceUsed.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; - PageSpaceUsed.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; - PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; - PageSpaceUsed.Width = 103; + // labelError + // + this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelError.Caption = "0"; + this.labelError.Id = 29; + this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barStaticItem1.ImageOptions.Image"))); + this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barStaticItem1.ImageOptions.LargeImage"))); + this.labelError.Name = "labelError"; + this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // MainBox // @@ -1435,9 +1522,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupMenu1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); this.splitContainer.ResumeLayout(false); @@ -1493,6 +1579,10 @@ private void InitializeComponent() { private DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit repositoryItemMemoEdit1; private PopupMenu popupFix; private BarButtonItem buttonExportHtml; - private PopupMenu popupMenu1; + private DevExpress.XtraGrid.Columns.GridColumn PageSpaceUsed; + private DevExpress.XtraGrid.Columns.GridColumn Warning; + private BarButtonItem buttonRestoreDefaultLayout; + private DevExpress.XtraGrid.Columns.GridColumn Error; + private BarStaticItem labelError; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index eda80e7..6e6485f 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -18,7 +18,6 @@ using System.Data.SqlClient; using System.Diagnostics; using System.Drawing; -using System.Drawing.Drawing2D; using System.IO; using System.Linq; using System.Text; @@ -49,7 +48,8 @@ private void UpdateActiveHost(Host host) { labelServerInfo.Visibility = labelDatabase.Visibility = - labelIndex.Visibility = (host == null) ? BarItemVisibility.Never : BarItemVisibility.Always; + labelError.Visibility = + labelIndex.Visibility = (host == null) ? BarItemVisibility.Never : BarItemVisibility.Always; if (host == null) { ShowConnectionBox(); @@ -67,7 +67,15 @@ private void MainBox_FormClosing(object sender, FormClosingEventArgs e) { SaveLayout(); } + Stream defaultLayout = new MemoryStream(); + private void RestoreLayout() { + try { + gridView1.SaveLayoutToStream(defaultLayout); + defaultLayout.Seek(0, SeekOrigin.Begin); + } + catch { } + if (File.Exists(Settings.LayoutFileName)) { try { string layout = AES.Decrypt(File.ReadAllText(Settings.LayoutFileName)); @@ -83,6 +91,18 @@ private void RestoreLayout() { } } + private void RestoreDefaultLayout(object sender, ItemClickEventArgs e) { + try { + gridView1.RestoreLayoutFromStream(defaultLayout); + defaultLayout.Seek(0, SeekOrigin.Begin); + + Output.Current.Add($"Default grid layout restored"); + } + catch { + Output.Current.Add("Failed to restore default layout"); + } + } + private void SaveLayout() { gridView1.Columns["Progress"].Visible = false; gridView1.Columns["Duration"].Visible = false; @@ -112,8 +132,10 @@ private void SaveLayout() { private readonly List _scanIndexes = new List(); private BackgroundWorker _workerScan; private Stopwatch _scanDuration = new Stopwatch(); + private int _errors; private void ScanIndexStart(object sender, DoWorkEventArgs e) { + _errors = 0; using (ConnectionList connectionList = new ConnectionList(Settings.ActiveHost)) { foreach (var database in Settings.ActiveHost.Databases) { List idx = new List(); @@ -136,6 +158,7 @@ private void ScanIndexStart(object sender, DoWorkEventArgs e) { break; } catch (SqlException ex) { + _errors++; if (!ex.Message.Contains("timeout")) { Output.Current.Add($"Error: {ex.Source}", ex.Message); XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -170,7 +193,7 @@ private void ScanIndexStart(object sender, DoWorkEventArgs e) { connection = connectionList.Get(database); if (connection == null) break; - if (index.IndexType == IndexType.ColumnstoreClustered || index.IndexType == IndexType.ColumnstoreNonClustered) { + if (index.IndexType == IndexType.CLUSTERED_COLUMNSTORE || index.IndexType == IndexType.NONCLUSTERED_COLUMNSTORE) { if (!clid.Exists(_ => _ == index.ObjectId)) { Output.Current.AddCaption(index.ToString()); opw = Stopwatch.StartNew(); @@ -193,6 +216,7 @@ private void ScanIndexStart(object sender, DoWorkEventArgs e) { } } catch (Exception ex) { + _errors++; Output.Current.Add($"Failed: {index}", ex.Message); } } @@ -206,24 +230,26 @@ private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { taskbar.ProgressMode = TaskbarButtonProgressMode.NoProgress; _scanDuration.Stop(); - buttonDatabases.Enabled = - buttonRefreshIndex.Enabled = - buttonNewConnection.Enabled = - buttonOptions.Enabled = true; + buttonOptions.Enabled = + buttonDatabases.Enabled = + buttonRefreshIndex.Enabled = + buttonNewConnection.Enabled = + buttonRestoreDefaultLayout.Enabled = true; buttonStopScan.Visibility = BarItemVisibility.Never; - List indexes = _scanIndexes.Where(_ => _.Fragmentation >= Settings.Options.ReorganizeThreshold + List indexes = _scanIndexes.Where(_ => _.Fragmentation >= Settings.Options.FirstThreshold && _.PagesCount >= Settings.Options.MinIndexSize.PageSize() && _.PagesCount <= Settings.Options.MaxIndexSize.PageSize()) .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) .ThenByDescending(_ => _.PagesCount).ToList(); - UpdateFixType(indexes); - FindDublicateIndexes(indexes); - FindUnusedIndexes(indexes); + QueryEngine.UpdateFixType(indexes); + QueryEngine.FindDublicateIndexes(indexes); + QueryEngine.FindUnusedIndexes(indexes); labelIndex.Caption = indexes.Count.ToString(); + labelError.Caption = _errors.ToString(); Output.Current.Add($"Processed: {_scanIndexes.Count}. Fragmented: {indexes.Count}", null, _scanDuration.ElapsedMilliseconds); gridView1.CustomDrawEmptyForeground += CustomDrawEmptyForeground; @@ -243,69 +269,6 @@ private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { } } - private void FindUnusedIndexes(List indexes) { - foreach(Index ix in indexes.Where( - _ => !_.IsPartitioned - && _.Warning == null - && _.TotalWrites > 50000 - && (_.TotalReads ?? 0) < _.TotalWrites / 10 - && (_.IndexType == IndexType.Clustered || _.IndexType == IndexType.NonClustered))) { - ix.Warning = WarningType.Low; - } - } - - private void FindDublicateIndexes(List indexes) { - var data = indexes.Where(_ => !_.IsPartitioned - && _.Warning == null - && (_.IndexType == IndexType.Clustered || _.IndexType == IndexType.NonClustered)) - .GroupBy(_ => new { _.DatabaseName, _.ObjectId }) - .Select(_ => new { _.Key.DatabaseName, _.Key.ObjectId, Indexes = _.ToList() }) - .Where(_ => _.Indexes.Count > 1); - - foreach (var item in data) { - foreach (Index a in item.Indexes) { - if (a.Warning != null) continue; - foreach (Index b in item.Indexes) { - if (a != b && b.Warning == null && a.IndexColumns == b.IndexColumns && a.IncludedColumns.Sort() == b.IncludedColumns.Sort()) - a.Warning = b.Warning = WarningType.High; - } - } - - foreach (Index a in item.Indexes) { - foreach (Index b in item.Indexes) { - if (a != b && b.Warning == null) { - int len = Math.Min(a.IndexColumns.Length, b.IndexColumns.Length); - if (a.IndexColumns == b.IndexColumns || a.IndexColumns.Left(len) == b.IndexColumns.Left(len)) - b.Warning = WarningType.Middle; - } - } - } - } - } - - private void UpdateFixType (List indexes) { - foreach (Index ix in indexes) { - if (ix.IndexType == IndexType.MissingIndex) - ix.FixType = IndexOp.CreateIndex; - else if (ix.Fragmentation < Settings.Options.RebuildThreshold && ix.IsAllowReorganize) - ix.FixType = IndexOp.Reorganize; - else if (Settings.Options.Online && ix.IsAllowOnlineRebuild) - ix.FixType = IndexOp.RebuildOnline; - else if (!ix.IsColumnstore && ix.IsAllowCompression) { - if (Settings.Options.DataCompression == DataCompression.None.ToDescription() && ix.DataCompression != DataCompression.None) - ix.FixType = IndexOp.RebuildNone; - else if (Settings.Options.DataCompression == DataCompression.Row.ToDescription()) - ix.FixType = IndexOp.RebuildRow; - else if (Settings.Options.DataCompression == DataCompression.Page.ToDescription()) - ix.FixType = IndexOp.RebuildPage; - else - ix.FixType = IndexOp.Rebuild; - } - else - ix.FixType = IndexOp.Rebuild; - } - } - private void RefreshIndexes() { if (_workerFix != null && _workerFix.IsBusy) return; @@ -313,7 +276,8 @@ private void RefreshIndexes() { gridControl1.DataSource = null; labelDatabase.Caption = Settings.ActiveHost.Databases.Count.ToString(); - labelIndex.Caption = @"0"; + labelIndex.Caption = + labelError.Caption = @"0"; RestoreSortRules(); @@ -324,10 +288,11 @@ private void RefreshIndexes() { gridView1.Columns[Resources.Duration].Visible = false; gridView1.Columns[Resources.PagesCountBefore].Visible = false; - buttonDatabases.Enabled = - buttonRefreshIndex.Enabled = - buttonNewConnection.Enabled = - buttonOptions.Enabled = false; + buttonFix.Enabled = + buttonOptions.Enabled = + buttonDatabases.Enabled = + buttonRefreshIndex.Enabled = + buttonNewConnection.Enabled = false; buttonStopScan.Visibility = BarItemVisibility.Always; taskbar.ProgressMode = TaskbarButtonProgressMode.Indeterminate; @@ -350,11 +315,12 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { _totalDuration = 0; - buttonDatabases.Enabled = - buttonRefreshIndex.Enabled = - buttonNewConnection.Enabled = - buttonFix.Enabled = - buttonOptions.Enabled = false; + buttonFix.Enabled = + buttonDatabases.Enabled = + buttonRefreshIndex.Enabled = + buttonNewConnection.Enabled = + buttonOptions.Enabled = + buttonRestoreDefaultLayout.Enabled = false; buttonStopFix.Visibility = BarItemVisibility.Always; @@ -443,10 +409,9 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { _totalDuration += watch.ElapsedMilliseconds; item.Duration = (new DateTime(0)).AddMilliseconds(watch.ElapsedMilliseconds); - if (string.IsNullOrEmpty(item.Error)) { - Output.Current.Add(item.ToString(), sql, watch.ElapsedMilliseconds); - } - else { + Output.Current.Add(item.ToString(), sql, watch.ElapsedMilliseconds); + + if (!string.IsNullOrEmpty(item.Error)) { Output.Current.Add(item.ToString(), item.Error); item.Progress = imageCollection.Images[3]; } @@ -467,6 +432,7 @@ private void FixIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonOptions.Enabled = true; buttonFix.Enabled = false; + labelError.Caption = ((List)gridView1.DataSource).Count(_ => _.Error != null).ToString(); buttonStopFix.Visibility = BarItemVisibility.Never; @@ -515,7 +481,7 @@ private string GetFixChanges() { var groupList = fix.GroupBy(u => u.DatabaseName).Select(grp => grp.ToList()).ToList(); foreach (var group in groupList) { - sb.AppendLine($"USE [{group[0].DatabaseName.ToQuota()}]\nGO\n"); + sb.AppendLine($"USE {group[0].DatabaseName.ToQuota()}\nGO\n"); foreach (Index i in group.OrderBy(_ => _.SchemaName) .ThenBy(_ => _.ObjectName) @@ -546,57 +512,65 @@ private void FixedOpPopup(object sender, EventArgs e) { Index row = (Index)gridView1.GetFocusedRow(); if (row == null) return; - List i = new List { IndexOp.Rebuild }; + List i = new List(); - if (row.IsColumnstore) { - i.Add(row.DataCompression == DataCompression.ColumnstoreArchive - ? IndexOp.RebuildColumnstore - : IndexOp.RebuildColumnstoreArchive); + if (row.IndexType == IndexType.MISSING_INDEX) { + i.Add(IndexOp.CREATE_INDEX); + } + else if (row.IsColumnstore) { + i.Add(IndexOp.REBUILD); - i.Add(IndexOp.Reorganize); + i.Add(row.DataCompression == DataCompression.COLUMNSTORE_ARCHIVE + ? IndexOp.REBUILD_COLUMNSTORE + : IndexOp.REBUILD_COLUMNSTORE_ARCHIVE); - if (Settings.ServerInfo.MajorVersion >= Server.Sql2016) - i.Add(IndexOp.ReorganizeCompressAllRowGroup); + i.Add(IndexOp.REORGANIZE); + + if (Settings.ServerInfo.MajorVersion >= ServerVersion.Sql2016) + i.Add(IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS); } else { + i.Add(IndexOp.REBUILD); + if (row.IsAllowCompression) { - if (row.DataCompression == DataCompression.None) { - i.Add(IndexOp.RebuildRow); - i.Add(IndexOp.RebuildPage); + if (row.DataCompression == DataCompression.NONE) { + i.Add(IndexOp.REBUILD_ROW); + i.Add(IndexOp.REBUILD_PAGE); } else { - i.Add(IndexOp.RebuildNone); - i.Add(row.DataCompression == DataCompression.Page - ? IndexOp.RebuildRow - : IndexOp.RebuildPage); + i.Add(IndexOp.REBUILD_NONE); + i.Add(row.DataCompression == DataCompression.PAGE + ? IndexOp.REBUILD_ROW + : IndexOp.REBUILD_PAGE); } } if (row.IsAllowOnlineRebuild) - i.Add(IndexOp.RebuildOnline); - - if (row.FillFactor > 0 && row.FillFactor < 100) - i.Add(IndexOp.RebuildFillFactorZero); + i.Add(IndexOp.REBUILD_ONLINE); if (row.IsAllowReorganize) - i.Add(IndexOp.Reorganize); + i.Add(IndexOp.REORGANIZE); if (!row.IsPartitioned) { - if (row.IndexType == IndexType.Clustered || row.IndexType == IndexType.NonClustered) { - i.Add(IndexOp.UpdateStatsFull); - i.Add(IndexOp.UpdateStatsSample); - i.Add(IndexOp.UpdateStatsResample); + if (row.IndexType == IndexType.CLUSTERED || row.IndexType == IndexType.NONCLUSTERED) { + i.Add(IndexOp.UPDATE_STATISTICS_FULL); + i.Add(IndexOp.UPDATE_STATISTICS_RESAMPLE); + i.Add(IndexOp.UPDATE_STATISTICS_SAMPLE); } - if (row.IndexType == IndexType.NonClustered) { - i.Add(IndexOp.Disable); - i.Add(IndexOp.Drop); + if (row.IndexType == IndexType.NONCLUSTERED) { + i.Add(IndexOp.DISABLE_INDEX); + i.Add(IndexOp.DROP_INDEX); + } + + if (row.IndexType == IndexType.HEAP) { + i.Add(IndexOp.DROP_TABLE); } } } obj.Properties.DropDownRows = i.Count; - obj.Properties.DataSource = i.Select(_ => new { Fix = _, Name = _.ToDescription() }); + obj.Properties.DataSource = i.Select(_ => new { Fix = _, Name = _.Description() }); } private void GridDoubleClick(object sender, EventArgs e) { @@ -669,62 +643,28 @@ private void GridRowCellClick(object sender, RowCellClickEventArgs e) { } } - private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { - GridView view = sender as GridView; - string[] columns = { - Resources.DatabaseName, - Resources.ObjectName, - Resources.SchemaName, - Resources.IndexName, - Resources.IndexType, - Resources.IndexColumns, - Resources.IncludedColumns, - Resources.TotalWrites, - Resources.TotalReads - }; - - if (columns.Contains(e.Column.FieldName)) { - Index index = (Index)view.GetRow(e.RowHandle); - if (index.Warning == null) return; - - e.Appearance.GradientMode = LinearGradientMode.Vertical; - - if (index.Warning == WarningType.Low) - e.Appearance.BackColor2 = Color.FromArgb(182, 255, 145); - else if (index.Warning == WarningType.Middle) - e.Appearance.BackColor2 = Color.FromArgb(255, 250, 156); - else if (index.Warning == WarningType.High) - e.Appearance.BackColor2 = Color.FromArgb(255, 187, 186); - } - } - private void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { switch (e.Column.FieldName) { case "PagesCount": case "PagesCountBefore": case "UnusedPagesCount": if (e.Value != null) - e.DisplayText = (Convert.ToDecimal(e.Value) * 8).FormatSize(); + e.DisplayText = (Convert.ToDecimal(e.Value) * 8).FormatSize() + " "; break; case "Fragmentation": case "PageSpaceUsed": if (e.Value != null) { - double value = Convert.ToDouble(e.Value); - e.DisplayText = string.Format(value - Math.Truncate(value) < 0.1 || value > 99.9 ? "{0:n0} %" : "{0:n1} %", value); + e.DisplayText = $"{e.Value:n1} % "; } break; - case "Compression": - e.DisplayText = ((DataCompression)e.Value).ToDescription(); - break; - - case "IndexType": - e.DisplayText = ((IndexType)e.Value).ToDescription(); + case "RowsCount": + e.DisplayText = $"{e.Value:n0} "; break; case "FixType": - e.DisplayText = ((IndexOp)e.Value).ToDescription(); + e.DisplayText = ((IndexOp)e.Value).Description(); break; } } @@ -733,15 +673,27 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { if (e.MenuType == GridMenuType.Column) { string[] columns = { GridLocalizer.Active.GetLocalizedString(GridStringId.MenuColumnGroup), - GridLocalizer.Active.GetLocalizedString(GridStringId.MenuGroupPanelShow), - GridLocalizer.Active.GetLocalizedString(GridStringId.MenuColumnBestFit), - GridLocalizer.Active.GetLocalizedString(GridStringId.MenuColumnBestFitAllColumns) + GridLocalizer.Active.GetLocalizedString(GridStringId.MenuGroupPanelShow) }; foreach (DXMenuItem item in e.Menu.Items) { if (columns.Contains(item.Caption)) item.Visible = false; } + + if (e.HitInfo.Column.Caption == @"Selection") + return; + + string colName = (e.HitInfo.Column.Fixed == FixedStyle.None) ? "Freeze column" : "Unfreeze column"; + e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle) { Tag = e.HitInfo.Column.FieldName }); + } + } + + private void ChangeFixedColumnStyle(object sender, EventArgs e) { + DXMenuItem mi = (DXMenuItem)sender; + GridColumn col = gridView1.Columns[mi.Tag.ToString()]; + if (col != null) { + col.Fixed = (col.Fixed == FixedStyle.Left) ? FixedStyle.None : FixedStyle.Left; } } diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 5cb0cb5..0d2670b 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -207,9 +207,6 @@ False - - False - 775, 7 @@ -253,6 +250,32 @@ Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEXRFWHRUaXRsZQBCdWc7UmVw + b3J0O7GwFz0AAADmSURBVDhPnZEhDgIxEEUXsx61J0ChgOwNsGgEEsU1SLgCWE5AgkMQwjEwYFeBxZCU + +c2f0pbSbBBvZzr/z98mLYwxlst8HDMQumTImUP3cgFnoU/QB3qbgJdwIugD/SuAIUZFqQ+ewT3lAa7x + xKnQE648gxtn0MT62YkDrEFoWH10Bs/PALClMQU06wsCJsvDyDM9vT7GadhxAZ6hFcfFzNYggLeo1ZSh + 1hsHAQJqxT5HpTt+gKKvkMO+AogDdHnNmmLD6p7SfhiiQkfY8+yDGTT9UTJAb1MKK2FH0Jf0OW8Q8B+m + eAMPClrQB44otAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEXRFWHRUaXRsZQBCdWc7UmVw + b3J0O7GwFz0AAAHOSURBVFhHxZYxTsNAEEVTIBJBwz24Bm2g4QbcgDvQAB1IVLkDlLR0QLoUcAXoQAIh + gWT+t2aj2d1v7NjGKZ5iv50/M3ESKaOiKNaKlEMi5fPRXh074Mrd85rO10SoOURK1cCxCR5A4Ryv7wHP + fO0SNYdIqRo4jgEHpgsQnvnaJWoOkVI1cMxB1QKPzkWoOURKC5VNhf8IZ4JPkPYKZ5EPSMniEBR+7Qv4 + jyCFZ2mvcBb5gJTEBad2Pwan4Nu8gmdnYGyZqXnc6jlSkhA0DsFt4v6CtcwsXdo/ICUC0fY9wF5ylpQs + NvpYohxO1CwpQwBsgFegGjeBWfZYbQFioQOgGq8Ce8gZJBMo7vOzTyl/UZ7ohgVJ4D+IlkgXiArBS+La + 8AaiN+ZnVi0Qvrk/znUherp+ZtUCvCbvzrWFTyD0K52fWbmA3S+ca8vCetUvEGCxvc5CqAMz3zNFSsIA + OLEmXWAPOYNIyQDo8ydZfqnVrEyw0AKqURfkEplgkQuRfXCduCbcAGa9y+ZlgkUuUG4NtsCduSawdhsw + 659mNi8TFsoCuJ4A/tup+0d0DiZ1/QKZ8IGKs11wAZ7Al8HrS8CzKGO55gsMjZRDIuVwFKNfUcI4nBvN + fbMAAAAASUVORK5CYII= @@ -439,8 +462,8 @@ zcQBFTLbyB0AAAAASUVORK5CYII= - - 943, 7 + + 506, 16 @@ -524,6 +547,29 @@ 3FpOqRkKPOGE2TAB+/TVcko9FUpg9gsEUgjJVwhoj9mSJMClnNG+gfZdYLNsRsQKNOuDwd4NRmobp7/H NZ8AdgZ8dzmt/p8I+PrI6wR8ceZeIxAK8oMCIbFmP1wgFAY7eQUS+AyBGHILtED9kId2EHgfZnEFnSLT 2mhFPI4AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAEdyaWQ7Q3VzdG9taXo7T3B0aW9u + cztTZXR0aW5ncx9Lwu8AAADKSURBVDhPzZMxCgIxEEUXLCzEu3iRwIJgpZUHUZacyEK2FnvvYqWgxv+H + TJwNcUHSWDwmzP55yW7YJoRQReO9DzWIwHX93vJL708ENaiA1VLqTQu9cQGOKVeFegY3sAUzvULmUlib + +kB7lIA1eAD5Djan4RILhE9td1xhPcF6A16UmE0+u2VID+ELuIMloIQnEAGq5FI4QwV8Zw49Y1VcPMUh + hdlQjGAOeOd2OEnA6L9wBTsrjkMDid01rXMQtAwkxYFvUBBrlPTuDd2QVs5xgNpsAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAEdyaWQ7Q3VzdG9taXo7T3B0aW9u + cztTZXR0aW5ncx9Lwu8AAAF6SURBVFhH7ZUxbsJAEEVJInEdClJyhdwgZ4jEDaLgtEi5DT0tBV3OQuX8 + v+xfTezRrrJZOykoHjvMeOZ/1l6z6Pv+T3GTc+Im5yR8dF3Xz83IwNPb4dVjqtrNwM3AyMDceAa4ekxS + +58GlLRMVVOcErWDamuKU6J2UG1NcUo0YgWWBn7fgiP4dq1ngKtHtoZzvRhwBpe47sEGhJpE2ae4pYGH + uJ4A8+ITPIOyASUtpRoHG+7i6pnY2D7FKZETydRWGGwNWIYm9qYPyzVOiYxIrrbEYN5rilGUO6BdINbA + 2fRhucYpUQkN8IGjQDCx694fkX9hHPPiwuvV6xng6pGraQckop24Bx8xJ4o7YAdbcjU+AzxqVijHGrDv + 5BpQ0lKobTGQ55xPuSfoEUxohgbVGjhyGOA5/7EJokG1BjgsDALcCd4O+yYcCluCiTTol/Bdz3d++i/g + 3CjiiYv16Fe1BAJFE25jKyBQNOE2tgICRRNuYysgUDBxWH8BXQfNHm/2EeEAAAAASUVORK5CYII= @@ -630,9 +676,6 @@ 629, 1 - - 506, 16 - 163, 17 diff --git a/Forms/NetworkBox.cs b/Forms/NetworkBox.cs index f1d117b..c14d56c 100644 --- a/Forms/NetworkBox.cs +++ b/Forms/NetworkBox.cs @@ -9,7 +9,8 @@ namespace SQLIndexManager { public partial class NetworkBox : XtraForm { - readonly CancellationTokenSource _cancel = new CancellationTokenSource(500); + + private readonly CancellationTokenSource _cancel = new CancellationTokenSource(500); public NetworkBox() { InitializeComponent(); @@ -87,6 +88,7 @@ protected override bool ProcessDialogKey(Keys keyData) { } #endregion + } } diff --git a/Forms/SettingsBox.Designer.cs b/Forms/SettingsBox.Designer.cs index d9dbf57..c6f9b85 100644 --- a/Forms/SettingsBox.Designer.cs +++ b/Forms/SettingsBox.Designer.cs @@ -24,8 +24,7 @@ protected override void Dispose(bool disposing) { /// the contents of this method with the code editor. /// private void InitializeComponent() { - DevExpress.XtraEditors.GroupControl gb1; - DevExpress.XtraEditors.LabelControl labelControl1; + DevExpress.XtraEditors.LabelControl labelControl9; DevExpress.XtraEditors.LabelControl labelSortInTempDb; DevExpress.XtraEditors.LabelControl labelLobCompaction; DevExpress.XtraEditors.LabelControl labelMaxDop; @@ -39,7 +38,8 @@ private void InitializeComponent() { DevExpress.XtraEditors.GroupControl db3; DevExpress.XtraEditors.GroupControl groupControl3; DevExpress.XtraEditors.LabelControl labelControl7; - DevExpress.XtraEditors.LabelControl labelControl10; + DevExpress.XtraEditors.LabelControl labelControl13; + DevExpress.XtraEditors.LabelControl labelControl15; DevExpress.XtraEditors.LabelControl labelControl8; DevExpress.XtraEditors.LabelControl labelAbortAfterWait; DevExpress.XtraEditors.LabelControl labelMaxDuration; @@ -48,31 +48,32 @@ private void InitializeComponent() { System.Windows.Forms.PictureBox pictureBox1; System.Windows.Forms.PictureBox pictureBox3; System.Windows.Forms.PictureBox pictureBox4; - DevExpress.XtraEditors.LabelControl labelControl9; - this.labelControl3 = new DevExpress.XtraEditors.LabelControl(); - this.labelControl4 = new DevExpress.XtraEditors.LabelControl(); - this.labelRebuild = new DevExpress.XtraEditors.LabelControl(); - this.boxThreshold = new DevExpress.XtraEditors.RangeTrackBarControl(); - this.labelReorganize = new DevExpress.XtraEditors.LabelControl(); + DevExpress.XtraEditors.LabelControl labelPadIndex; + this.boxSecondThreshold = new DevExpress.XtraEditors.ComboBoxEdit(); + this.boxFirstThreshold = new DevExpress.XtraEditors.ComboBoxEdit(); + this.labelFirstThreshold = new DevExpress.XtraEditors.LabelControl(); + this.labelSecondThreshold = new DevExpress.XtraEditors.LabelControl(); this.labelControl5 = new DevExpress.XtraEditors.LabelControl(); this.boxMinIndexSize = new DevExpress.XtraEditors.RangeTrackBarControl(); this.boxMaxIndexSize = new DevExpress.XtraEditors.TrackBarControl(); + this.boxThreshold = new DevExpress.XtraEditors.RangeTrackBarControl(); this.labelSize = new DevExpress.XtraEditors.LabelControl(); this.boxConnectionTimeout = new DevExpress.XtraEditors.SpinEdit(); this.boxCommandTimeout = new DevExpress.XtraEditors.SpinEdit(); + this.boxIgnorePermissions = new DevExpress.XtraEditors.CheckEdit(); this.boxScanMissingIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxScanNonClusteredIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxScanClusteredIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxScanClusteredColumnstore = new DevExpress.XtraEditors.CheckEdit(); this.boxScanNonClusteredColumnstore = new DevExpress.XtraEditors.CheckEdit(); + this.boxIgnoreReadOnlyFL = new DevExpress.XtraEditors.CheckEdit(); this.boxScanHeap = new DevExpress.XtraEditors.CheckEdit(); this.boxNoRecompute = new DevExpress.XtraEditors.ComboBoxEdit(); - this.boxIgnorePermissions = new DevExpress.XtraEditors.CheckEdit(); - this.boxIgnoreReadOnlyFL = new DevExpress.XtraEditors.CheckEdit(); + this.boxStatsSamplePercent = new DevExpress.XtraEditors.SpinEdit(); + this.boxScanMode = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxLobCompaction = new DevExpress.XtraEditors.CheckEdit(); this.boxDataCompression = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxSortInTempDb = new DevExpress.XtraEditors.CheckEdit(); - this.boxStatsSamplePercent = new DevExpress.XtraEditors.SpinEdit(); this.boxFillFactor = new DevExpress.XtraEditors.SpinEdit(); this.boxMaxDuration = new DevExpress.XtraEditors.SpinEdit(); this.boxAbortAfterWait = new DevExpress.XtraEditors.ComboBoxEdit(); @@ -86,9 +87,8 @@ private void InitializeComponent() { this.boxIncludeObject = new DevExpress.XtraEditors.TokenEdit(); this.groupControl4 = new DevExpress.XtraEditors.GroupControl(); this.groupControl5 = new DevExpress.XtraEditors.GroupControl(); - this.boxScanMode = new DevExpress.XtraEditors.ComboBoxEdit(); - gb1 = new DevExpress.XtraEditors.GroupControl(); - labelControl1 = new DevExpress.XtraEditors.LabelControl(); + this.boxPadIndex = new DevExpress.XtraEditors.CheckEdit(); + labelControl9 = new DevExpress.XtraEditors.LabelControl(); labelSortInTempDb = new DevExpress.XtraEditors.LabelControl(); labelLobCompaction = new DevExpress.XtraEditors.LabelControl(); labelMaxDop = new DevExpress.XtraEditors.LabelControl(); @@ -102,7 +102,8 @@ private void InitializeComponent() { db3 = new DevExpress.XtraEditors.GroupControl(); groupControl3 = new DevExpress.XtraEditors.GroupControl(); labelControl7 = new DevExpress.XtraEditors.LabelControl(); - labelControl10 = new DevExpress.XtraEditors.LabelControl(); + labelControl13 = new DevExpress.XtraEditors.LabelControl(); + labelControl15 = new DevExpress.XtraEditors.LabelControl(); labelControl8 = new DevExpress.XtraEditors.LabelControl(); labelAbortAfterWait = new DevExpress.XtraEditors.LabelControl(); labelMaxDuration = new DevExpress.XtraEditors.LabelControl(); @@ -111,38 +112,39 @@ private void InitializeComponent() { pictureBox1 = new System.Windows.Forms.PictureBox(); pictureBox3 = new System.Windows.Forms.PictureBox(); pictureBox4 = new System.Windows.Forms.PictureBox(); - labelControl9 = new DevExpress.XtraEditors.LabelControl(); - ((System.ComponentModel.ISupportInitialize)(gb1)).BeginInit(); - gb1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxThreshold)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxThreshold.Properties)).BeginInit(); + labelPadIndex = new DevExpress.XtraEditors.LabelControl(); ((System.ComponentModel.ISupportInitialize)(groupControl1)).BeginInit(); groupControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxSecondThreshold.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxFirstThreshold.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxIndexSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxIndexSize.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxThreshold)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxThreshold.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(groupControl2)).BeginInit(); groupControl2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxConnectionTimeout.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxCommandTimeout.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(db3)).BeginInit(); db3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMissingIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanClusteredIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanClusteredColumnstore.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredColumnstore.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreReadOnlyFL.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanHeap.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(groupControl3)).BeginInit(); groupControl3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreReadOnlyFL.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxLobCompaction.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxDataCompression.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSortInTempDb.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxFillFactor.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxDuration.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxAbortAfterWait.Properties)).BeginInit(); @@ -161,84 +163,20 @@ private void InitializeComponent() { this.groupControl4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).BeginInit(); this.groupControl5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).BeginInit(); this.SuspendLayout(); // - // gb1 - // - gb1.Controls.Add(labelControl9); - gb1.Controls.Add(this.boxScanMode); - gb1.Controls.Add(this.labelControl3); - gb1.Controls.Add(this.labelControl4); - gb1.Controls.Add(this.labelRebuild); - gb1.Controls.Add(this.boxThreshold); - gb1.Controls.Add(this.labelReorganize); - gb1.Location = new System.Drawing.Point(11, 91); - gb1.Name = "gb1"; - gb1.Size = new System.Drawing.Size(388, 110); - gb1.TabIndex = 2; - gb1.Text = "Fragmentation"; - // - // labelControl3 - // - this.labelControl3.Location = new System.Drawing.Point(13, 52); - this.labelControl3.Name = "labelControl3"; - this.labelControl3.Size = new System.Drawing.Size(42, 13); - this.labelControl3.TabIndex = 10; - this.labelControl3.Text = "REBUILD"; - // - // labelControl4 - // - this.labelControl4.Location = new System.Drawing.Point(13, 28); - this.labelControl4.Name = "labelControl4"; - this.labelControl4.Size = new System.Drawing.Size(65, 13); - this.labelControl4.TabIndex = 9; - this.labelControl4.Text = "REORGANIZE"; - // - // labelRebuild - // - this.labelRebuild.Location = new System.Drawing.Point(96, 52); - this.labelRebuild.Name = "labelRebuild"; - this.labelRebuild.Size = new System.Drawing.Size(25, 13); - this.labelRebuild.TabIndex = 8; - this.labelRebuild.Text = "Label"; - // - // boxThreshold - // - this.boxThreshold.EditValue = new DevExpress.XtraEditors.Repository.TrackBarRange(1, 1); - this.boxThreshold.Location = new System.Drawing.Point(6, 82); - this.boxThreshold.Name = "boxThreshold"; - this.boxThreshold.Properties.AllowFocused = false; - this.boxThreshold.Properties.HighlightSelectedRange = false; - this.boxThreshold.Properties.Maximum = 100; - this.boxThreshold.Properties.TickFrequency = 10; - this.boxThreshold.Properties.TickStyle = System.Windows.Forms.TickStyle.None; - this.boxThreshold.Properties.ValueToolTipFormatString = ""; - this.boxThreshold.Size = new System.Drawing.Size(377, 45); - this.boxThreshold.TabIndex = 7; - this.boxThreshold.Value = new DevExpress.XtraEditors.Repository.TrackBarRange(1, 1); - this.boxThreshold.ValueChanged += new System.EventHandler(this.ThresholdValueChanged); - this.boxThreshold.EditValueChanged += new System.EventHandler(this.TrackBarEditValueChanged); - // - // labelReorganize - // - this.labelReorganize.Location = new System.Drawing.Point(96, 28); - this.labelReorganize.Name = "labelReorganize"; - this.labelReorganize.Size = new System.Drawing.Size(25, 13); - this.labelReorganize.TabIndex = 3; - this.labelReorganize.Text = "Label"; - // - // labelControl1 + // labelControl9 // - labelControl1.Location = new System.Drawing.Point(14, 25); - labelControl1.Name = "labelControl1"; - labelControl1.Size = new System.Drawing.Size(152, 13); - labelControl1.TabIndex = 13; - labelControl1.Text = "STATISTIC SAMPLE PERCENT ="; + labelControl9.Location = new System.Drawing.Point(14, 25); + labelControl9.Name = "labelControl9"; + labelControl9.Size = new System.Drawing.Size(165, 13); + labelControl9.TabIndex = 25; + labelControl9.Text = "FRAGMENTATION_SCAN_MODE ="; // // labelSortInTempDb // - labelSortInTempDb.Location = new System.Drawing.Point(14, 191); + labelSortInTempDb.Location = new System.Drawing.Point(14, 163); labelSortInTempDb.Name = "labelSortInTempDb"; labelSortInTempDb.Size = new System.Drawing.Size(118, 13); labelSortInTempDb.TabIndex = 10; @@ -246,7 +184,7 @@ private void InitializeComponent() { // // labelLobCompaction // - labelLobCompaction.Location = new System.Drawing.Point(14, 165); + labelLobCompaction.Location = new System.Drawing.Point(14, 137); labelLobCompaction.Name = "labelLobCompaction"; labelLobCompaction.Size = new System.Drawing.Size(122, 13); labelLobCompaction.TabIndex = 8; @@ -254,7 +192,7 @@ private void InitializeComponent() { // // labelMaxDop // - labelMaxDop.Location = new System.Drawing.Point(14, 137); + labelMaxDop.Location = new System.Drawing.Point(14, 109); labelMaxDop.Name = "labelMaxDop"; labelMaxDop.Size = new System.Drawing.Size(56, 13); labelMaxDop.TabIndex = 7; @@ -262,7 +200,7 @@ private void InitializeComponent() { // // labelOnline // - labelOnline.Location = new System.Drawing.Point(14, 218); + labelOnline.Location = new System.Drawing.Point(14, 215); labelOnline.Name = "labelOnline"; labelOnline.Size = new System.Drawing.Size(66, 13); labelOnline.TabIndex = 11; @@ -272,7 +210,7 @@ private void InitializeComponent() { // buttonCancel.AllowFocus = false; buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - buttonCancel.Location = new System.Drawing.Point(620, 498); + buttonCancel.Location = new System.Drawing.Point(629, 481); buttonCancel.Name = "buttonCancel"; buttonCancel.Size = new System.Drawing.Size(75, 23); buttonCancel.TabIndex = 0; @@ -282,7 +220,7 @@ private void InitializeComponent() { // buttonRestore // buttonRestore.AllowFocus = false; - buttonRestore.Location = new System.Drawing.Point(12, 498); + buttonRestore.Location = new System.Drawing.Point(12, 481); buttonRestore.Name = "buttonRestore"; buttonRestore.Size = new System.Drawing.Size(75, 23); buttonRestore.TabIndex = 0; @@ -292,23 +230,74 @@ private void InitializeComponent() { // // groupControl1 // + groupControl1.Controls.Add(this.boxSecondThreshold); + groupControl1.Controls.Add(this.boxFirstThreshold); + groupControl1.Controls.Add(this.labelFirstThreshold); + groupControl1.Controls.Add(this.labelSecondThreshold); groupControl1.Controls.Add(this.labelControl5); groupControl1.Controls.Add(this.boxMinIndexSize); groupControl1.Controls.Add(this.boxMaxIndexSize); + groupControl1.Controls.Add(this.boxThreshold); groupControl1.Controls.Add(this.labelSize); - groupControl1.Location = new System.Drawing.Point(12, 5); + groupControl1.Location = new System.Drawing.Point(12, 4); groupControl1.Name = "groupControl1"; - groupControl1.Size = new System.Drawing.Size(387, 80); + groupControl1.Size = new System.Drawing.Size(396, 176); groupControl1.TabIndex = 8; - groupControl1.Text = "Index Size"; + groupControl1.Text = "Filters"; + // + // boxSecondThreshold + // + this.boxSecondThreshold.EditValue = ""; + this.boxSecondThreshold.Location = new System.Drawing.Point(13, 112); + this.boxSecondThreshold.Name = "boxSecondThreshold"; + this.boxSecondThreshold.Properties.AllowFocused = false; + this.boxSecondThreshold.Properties.Appearance.Options.UseTextOptions = true; + this.boxSecondThreshold.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxSecondThreshold.Properties.AutoComplete = false; + this.boxSecondThreshold.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxSecondThreshold.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxSecondThreshold.Size = new System.Drawing.Size(185, 20); + this.boxSecondThreshold.TabIndex = 31; + // + // boxFirstThreshold + // + this.boxFirstThreshold.EditValue = ""; + this.boxFirstThreshold.Location = new System.Drawing.Point(13, 86); + this.boxFirstThreshold.Name = "boxFirstThreshold"; + this.boxFirstThreshold.Properties.AllowFocused = false; + this.boxFirstThreshold.Properties.Appearance.Options.UseTextOptions = true; + this.boxFirstThreshold.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxFirstThreshold.Properties.AutoComplete = false; + this.boxFirstThreshold.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxFirstThreshold.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxFirstThreshold.Size = new System.Drawing.Size(185, 20); + this.boxFirstThreshold.TabIndex = 30; + // + // labelFirstThreshold + // + this.labelFirstThreshold.Location = new System.Drawing.Point(211, 89); + this.labelFirstThreshold.Name = "labelFirstThreshold"; + this.labelFirstThreshold.Size = new System.Drawing.Size(25, 13); + this.labelFirstThreshold.TabIndex = 3; + this.labelFirstThreshold.Text = "Label"; + // + // labelSecondThreshold + // + this.labelSecondThreshold.Location = new System.Drawing.Point(211, 115); + this.labelSecondThreshold.Name = "labelSecondThreshold"; + this.labelSecondThreshold.Size = new System.Drawing.Size(25, 13); + this.labelSecondThreshold.TabIndex = 8; + this.labelSecondThreshold.Text = "Label"; // // labelControl5 // this.labelControl5.Location = new System.Drawing.Point(13, 28); this.labelControl5.Name = "labelControl5"; - this.labelControl5.Size = new System.Drawing.Size(59, 13); + this.labelControl5.Size = new System.Drawing.Size(63, 13); this.labelControl5.TabIndex = 10; - this.labelControl5.Text = "FILTER SIZE"; + this.labelControl5.Text = "OBJECT SIZE"; // // boxMinIndexSize // @@ -340,14 +329,31 @@ private void InitializeComponent() { this.boxMaxIndexSize.Properties.Minimum = 512; this.boxMaxIndexSize.Properties.TickFrequency = 128; this.boxMaxIndexSize.Properties.TickStyle = System.Windows.Forms.TickStyle.None; - this.boxMaxIndexSize.Size = new System.Drawing.Size(204, 45); + this.boxMaxIndexSize.Size = new System.Drawing.Size(207, 45); this.boxMaxIndexSize.TabIndex = 9; this.boxMaxIndexSize.Value = 512; this.boxMaxIndexSize.ValueChanged += new System.EventHandler(this.IndexSizeValueChanged); // + // boxThreshold + // + this.boxThreshold.EditValue = new DevExpress.XtraEditors.Repository.TrackBarRange(1, 1); + this.boxThreshold.Location = new System.Drawing.Point(6, 143); + this.boxThreshold.Name = "boxThreshold"; + this.boxThreshold.Properties.AllowFocused = false; + this.boxThreshold.Properties.HighlightSelectedRange = false; + this.boxThreshold.Properties.Maximum = 100; + this.boxThreshold.Properties.TickFrequency = 10; + this.boxThreshold.Properties.TickStyle = System.Windows.Forms.TickStyle.None; + this.boxThreshold.Properties.ValueToolTipFormatString = ""; + this.boxThreshold.Size = new System.Drawing.Size(379, 45); + this.boxThreshold.TabIndex = 7; + this.boxThreshold.Value = new DevExpress.XtraEditors.Repository.TrackBarRange(1, 1); + this.boxThreshold.ValueChanged += new System.EventHandler(this.ThresholdValueChanged); + this.boxThreshold.EditValueChanged += new System.EventHandler(this.TrackBarEditValueChanged); + // // labelSize // - this.labelSize.Location = new System.Drawing.Point(96, 28); + this.labelSize.Location = new System.Drawing.Point(110, 28); this.labelSize.Name = "labelSize"; this.labelSize.Size = new System.Drawing.Size(25, 13); this.labelSize.TabIndex = 3; @@ -359,9 +365,9 @@ private void InitializeComponent() { groupControl2.Controls.Add(this.boxConnectionTimeout); groupControl2.Controls.Add(labelControl6); groupControl2.Controls.Add(this.boxCommandTimeout); - groupControl2.Location = new System.Drawing.Point(405, 5); + groupControl2.Location = new System.Drawing.Point(414, 394); groupControl2.Name = "groupControl2"; - groupControl2.Size = new System.Drawing.Size(290, 80); + groupControl2.Size = new System.Drawing.Size(290, 81); groupControl2.TabIndex = 14; groupControl2.Text = "Timeout"; // @@ -380,7 +386,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxConnectionTimeout.Location = new System.Drawing.Point(202, 22); + this.boxConnectionTimeout.Location = new System.Drawing.Point(189, 22); this.boxConnectionTimeout.Name = "boxConnectionTimeout"; this.boxConnectionTimeout.Properties.AllowFocused = false; this.boxConnectionTimeout.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -404,7 +410,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxConnectionTimeout.Size = new System.Drawing.Size(75, 20); + this.boxConnectionTimeout.Size = new System.Drawing.Size(88, 20); this.boxConnectionTimeout.TabIndex = 12; this.boxConnectionTimeout.TabStop = false; // @@ -423,7 +429,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxCommandTimeout.Location = new System.Drawing.Point(202, 50); + this.boxCommandTimeout.Location = new System.Drawing.Point(189, 50); this.boxCommandTimeout.Name = "boxCommandTimeout"; this.boxCommandTimeout.Properties.AllowFocused = false; this.boxCommandTimeout.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -447,53 +453,65 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxCommandTimeout.Size = new System.Drawing.Size(75, 20); + this.boxCommandTimeout.Size = new System.Drawing.Size(88, 20); this.boxCommandTimeout.TabIndex = 6; this.boxCommandTimeout.TabStop = false; // // db3 // + db3.Controls.Add(this.boxIgnorePermissions); db3.Controls.Add(this.boxScanMissingIndex); db3.Controls.Add(this.boxScanNonClusteredIndex); db3.Controls.Add(this.boxScanClusteredIndex); db3.Controls.Add(this.boxScanClusteredColumnstore); db3.Controls.Add(this.boxScanNonClusteredColumnstore); + db3.Controls.Add(this.boxIgnoreReadOnlyFL); db3.Controls.Add(this.boxScanHeap); - db3.Location = new System.Drawing.Point(12, 207); + db3.Location = new System.Drawing.Point(12, 187); db3.Name = "db3"; - db3.Size = new System.Drawing.Size(387, 111); + db3.Size = new System.Drawing.Size(396, 114); db3.TabIndex = 16; db3.Text = "Object Scan"; // + // boxIgnorePermissions + // + this.boxIgnorePermissions.Location = new System.Drawing.Point(211, 84); + this.boxIgnorePermissions.Name = "boxIgnorePermissions"; + this.boxIgnorePermissions.Properties.AllowFocused = false; + this.boxIgnorePermissions.Properties.Caption = "IGNORE OBJECT PERMISSIONS"; + this.boxIgnorePermissions.Size = new System.Drawing.Size(170, 19); + this.boxIgnorePermissions.TabIndex = 11; + this.boxIgnorePermissions.TabStop = false; + // // boxScanMissingIndex // - this.boxScanMissingIndex.Location = new System.Drawing.Point(13, 82); + this.boxScanMissingIndex.Location = new System.Drawing.Point(287, 25); this.boxScanMissingIndex.Name = "boxScanMissingIndex"; this.boxScanMissingIndex.Properties.AllowFocused = false; this.boxScanMissingIndex.Properties.Caption = "MISSING INDEX"; - this.boxScanMissingIndex.Size = new System.Drawing.Size(100, 19); + this.boxScanMissingIndex.Size = new System.Drawing.Size(97, 19); this.boxScanMissingIndex.TabIndex = 14; this.boxScanMissingIndex.TabStop = false; this.boxScanMissingIndex.CheckedChanged += new System.EventHandler(this.IndexTypeCheckedChanged); // // boxScanNonClusteredIndex // - this.boxScanNonClusteredIndex.Location = new System.Drawing.Point(232, 26); + this.boxScanNonClusteredIndex.Location = new System.Drawing.Point(166, 25); this.boxScanNonClusteredIndex.Name = "boxScanNonClusteredIndex"; this.boxScanNonClusteredIndex.Properties.AllowFocused = false; - this.boxScanNonClusteredIndex.Properties.Caption = "NON-CLUSTERED B-TREE"; - this.boxScanNonClusteredIndex.Size = new System.Drawing.Size(144, 19); + this.boxScanNonClusteredIndex.Properties.Caption = "NON-CLUSTERED"; + this.boxScanNonClusteredIndex.Size = new System.Drawing.Size(105, 19); this.boxScanNonClusteredIndex.TabIndex = 5; this.boxScanNonClusteredIndex.TabStop = false; this.boxScanNonClusteredIndex.CheckedChanged += new System.EventHandler(this.IndexTypeCheckedChanged); // // boxScanClusteredIndex // - this.boxScanClusteredIndex.Location = new System.Drawing.Point(89, 26); + this.boxScanClusteredIndex.Location = new System.Drawing.Point(72, 25); this.boxScanClusteredIndex.Name = "boxScanClusteredIndex"; this.boxScanClusteredIndex.Properties.AllowFocused = false; - this.boxScanClusteredIndex.Properties.Caption = "CLUSTERED B-TREE"; - this.boxScanClusteredIndex.Size = new System.Drawing.Size(127, 19); + this.boxScanClusteredIndex.Properties.Caption = "CLUSTERED"; + this.boxScanClusteredIndex.Size = new System.Drawing.Size(83, 19); this.boxScanClusteredIndex.TabIndex = 4; this.boxScanClusteredIndex.TabStop = false; this.boxScanClusteredIndex.CheckedChanged += new System.EventHandler(this.IndexTypeCheckedChanged); @@ -511,7 +529,7 @@ private void InitializeComponent() { // // boxScanNonClusteredColumnstore // - this.boxScanNonClusteredColumnstore.Location = new System.Drawing.Point(191, 54); + this.boxScanNonClusteredColumnstore.Location = new System.Drawing.Point(202, 54); this.boxScanNonClusteredColumnstore.Name = "boxScanNonClusteredColumnstore"; this.boxScanNonClusteredColumnstore.Properties.AllowFocused = false; this.boxScanNonClusteredColumnstore.Properties.Caption = "NON-CLUSTERED COLUMNSTORE"; @@ -520,9 +538,19 @@ private void InitializeComponent() { this.boxScanNonClusteredColumnstore.TabStop = false; this.boxScanNonClusteredColumnstore.CheckedChanged += new System.EventHandler(this.IndexTypeCheckedChanged); // + // boxIgnoreReadOnlyFL + // + this.boxIgnoreReadOnlyFL.Location = new System.Drawing.Point(13, 83); + this.boxIgnoreReadOnlyFL.Name = "boxIgnoreReadOnlyFL"; + this.boxIgnoreReadOnlyFL.Properties.AllowFocused = false; + this.boxIgnoreReadOnlyFL.Properties.Caption = "IGNORE READ-ONLY FILEGROUPS"; + this.boxIgnoreReadOnlyFL.Size = new System.Drawing.Size(185, 19); + this.boxIgnoreReadOnlyFL.TabIndex = 10; + this.boxIgnoreReadOnlyFL.TabStop = false; + // // boxScanHeap // - this.boxScanHeap.Location = new System.Drawing.Point(13, 26); + this.boxScanHeap.Location = new System.Drawing.Point(13, 25); this.boxScanHeap.Name = "boxScanHeap"; this.boxScanHeap.Properties.AllowFocused = false; this.boxScanHeap.Properties.Caption = "HEAP"; @@ -533,18 +561,20 @@ private void InitializeComponent() { // // groupControl3 // + groupControl3.Controls.Add(labelPadIndex); + groupControl3.Controls.Add(this.boxPadIndex); groupControl3.Controls.Add(this.boxNoRecompute); - groupControl3.Controls.Add(this.boxIgnorePermissions); groupControl3.Controls.Add(labelControl7); - groupControl3.Controls.Add(this.boxIgnoreReadOnlyFL); + groupControl3.Controls.Add(labelControl13); + groupControl3.Controls.Add(labelControl15); + groupControl3.Controls.Add(labelControl9); + groupControl3.Controls.Add(this.boxStatsSamplePercent); + groupControl3.Controls.Add(this.boxScanMode); groupControl3.Controls.Add(labelSortInTempDb); groupControl3.Controls.Add(this.boxLobCompaction); - groupControl3.Controls.Add(labelControl1); groupControl3.Controls.Add(labelLobCompaction); groupControl3.Controls.Add(this.boxDataCompression); groupControl3.Controls.Add(this.boxSortInTempDb); - groupControl3.Controls.Add(this.boxStatsSamplePercent); - groupControl3.Controls.Add(labelControl10); groupControl3.Controls.Add(labelControl8); groupControl3.Controls.Add(this.boxFillFactor); groupControl3.Controls.Add(this.boxMaxDuration); @@ -557,16 +587,16 @@ private void InitializeComponent() { groupControl3.Controls.Add(labelWaitAtLowPriority); groupControl3.Controls.Add(labelOnline); groupControl3.Controls.Add(this.boxOnline); - groupControl3.Location = new System.Drawing.Point(405, 91); + groupControl3.Location = new System.Drawing.Point(414, 4); groupControl3.Name = "groupControl3"; - groupControl3.Size = new System.Drawing.Size(290, 399); + groupControl3.Size = new System.Drawing.Size(290, 384); groupControl3.TabIndex = 17; - groupControl3.Text = "Index Maintenance"; + groupControl3.Text = "Indexes"; // // boxNoRecompute // - this.boxNoRecompute.EditValue = "DEFAULT"; - this.boxNoRecompute.Location = new System.Drawing.Point(202, 50); + this.boxNoRecompute.EditValue = ""; + this.boxNoRecompute.Location = new System.Drawing.Point(189, 354); this.boxNoRecompute.Name = "boxNoRecompute"; this.boxNoRecompute.Properties.AllowFocused = false; this.boxNoRecompute.Properties.Appearance.Options.UseTextOptions = true; @@ -574,81 +604,33 @@ private void InitializeComponent() { this.boxNoRecompute.Properties.AutoComplete = false; this.boxNoRecompute.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); - this.boxNoRecompute.Properties.Items.AddRange(new object[] { - "DEFAULT", - "ON", - "OFF"}); this.boxNoRecompute.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; - this.boxNoRecompute.Size = new System.Drawing.Size(75, 20); + this.boxNoRecompute.Size = new System.Drawing.Size(88, 20); this.boxNoRecompute.TabIndex = 23; // - // boxIgnorePermissions - // - this.boxIgnorePermissions.Location = new System.Drawing.Point(14, 344); - this.boxIgnorePermissions.Name = "boxIgnorePermissions"; - this.boxIgnorePermissions.Properties.AllowFocused = false; - this.boxIgnorePermissions.Properties.Caption = "Ignore object permissions for maintenance"; - this.boxIgnorePermissions.Size = new System.Drawing.Size(237, 19); - this.boxIgnorePermissions.TabIndex = 11; - this.boxIgnorePermissions.TabStop = false; - // // labelControl7 // - labelControl7.Location = new System.Drawing.Point(14, 81); + labelControl7.Location = new System.Drawing.Point(14, 53); labelControl7.Name = "labelControl7"; labelControl7.Size = new System.Drawing.Size(120, 13); labelControl7.TabIndex = 22; labelControl7.Text = "DATA_COMPRESSION = "; // - // boxIgnoreReadOnlyFL + // labelControl13 // - this.boxIgnoreReadOnlyFL.Location = new System.Drawing.Point(14, 369); - this.boxIgnoreReadOnlyFL.Name = "boxIgnoreReadOnlyFL"; - this.boxIgnoreReadOnlyFL.Properties.AllowFocused = false; - this.boxIgnoreReadOnlyFL.Properties.Caption = "Ignore read-only filegroups"; - this.boxIgnoreReadOnlyFL.Size = new System.Drawing.Size(160, 19); - this.boxIgnoreReadOnlyFL.TabIndex = 10; - this.boxIgnoreReadOnlyFL.TabStop = false; + labelControl13.Location = new System.Drawing.Point(14, 328); + labelControl13.Name = "labelControl13"; + labelControl13.Size = new System.Drawing.Size(164, 13); + labelControl13.TabIndex = 13; + labelControl13.Text = "STATISTICS_SAMPLE_PERCENT ="; // - // boxLobCompaction - // - this.boxLobCompaction.Location = new System.Drawing.Point(227, 163); - this.boxLobCompaction.Name = "boxLobCompaction"; - this.boxLobCompaction.Properties.AllowFocused = false; - this.boxLobCompaction.Properties.Caption = ""; - this.boxLobCompaction.Size = new System.Drawing.Size(19, 19); - this.boxLobCompaction.TabIndex = 9; - this.boxLobCompaction.TabStop = false; - // - // boxDataCompression - // - this.boxDataCompression.EditValue = "DEFAULT"; - this.boxDataCompression.Location = new System.Drawing.Point(202, 78); - this.boxDataCompression.Name = "boxDataCompression"; - this.boxDataCompression.Properties.AllowFocused = false; - this.boxDataCompression.Properties.Appearance.Options.UseTextOptions = true; - this.boxDataCompression.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.boxDataCompression.Properties.AutoComplete = false; - this.boxDataCompression.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { - new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); - this.boxDataCompression.Properties.Items.AddRange(new object[] { - "DEFAULT", - "NONE", - "ROW", - "PAGE"}); - this.boxDataCompression.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; - this.boxDataCompression.Size = new System.Drawing.Size(75, 20); - this.boxDataCompression.TabIndex = 21; - // - // boxSortInTempDb + // labelControl15 // - this.boxSortInTempDb.Location = new System.Drawing.Point(227, 189); - this.boxSortInTempDb.Name = "boxSortInTempDb"; - this.boxSortInTempDb.Properties.AllowFocused = false; - this.boxSortInTempDb.Properties.Caption = ""; - this.boxSortInTempDb.Size = new System.Drawing.Size(19, 19); - this.boxSortInTempDb.TabIndex = 0; - this.boxSortInTempDb.TabStop = false; + labelControl15.Location = new System.Drawing.Point(14, 356); + labelControl15.Name = "labelControl15"; + labelControl15.Size = new System.Drawing.Size(151, 13); + labelControl15.TabIndex = 20; + labelControl15.Text = "STATISTICS_NORECOMPUTE ="; // // boxStatsSamplePercent // @@ -657,7 +639,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxStatsSamplePercent.Location = new System.Drawing.Point(202, 22); + this.boxStatsSamplePercent.Location = new System.Drawing.Point(189, 325); this.boxStatsSamplePercent.Name = "boxStatsSamplePercent"; this.boxStatsSamplePercent.Properties.AllowFocused = false; this.boxStatsSamplePercent.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -681,21 +663,63 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxStatsSamplePercent.Size = new System.Drawing.Size(75, 20); + this.boxStatsSamplePercent.Size = new System.Drawing.Size(88, 20); this.boxStatsSamplePercent.TabIndex = 12; this.boxStatsSamplePercent.TabStop = false; // - // labelControl10 + // boxScanMode + // + this.boxScanMode.EditValue = ""; + this.boxScanMode.Location = new System.Drawing.Point(189, 22); + this.boxScanMode.Name = "boxScanMode"; + this.boxScanMode.Properties.AllowFocused = false; + this.boxScanMode.Properties.Appearance.Options.UseTextOptions = true; + this.boxScanMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxScanMode.Properties.AutoComplete = false; + this.boxScanMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxScanMode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxScanMode.Size = new System.Drawing.Size(88, 20); + this.boxScanMode.TabIndex = 24; + // + // boxLobCompaction // - labelControl10.Location = new System.Drawing.Point(14, 53); - labelControl10.Name = "labelControl10"; - labelControl10.Size = new System.Drawing.Size(151, 13); - labelControl10.TabIndex = 20; - labelControl10.Text = "STATISTICS_NORECOMPUTE ="; + this.boxLobCompaction.Location = new System.Drawing.Point(221, 135); + this.boxLobCompaction.Name = "boxLobCompaction"; + this.boxLobCompaction.Properties.AllowFocused = false; + this.boxLobCompaction.Properties.Caption = ""; + this.boxLobCompaction.Size = new System.Drawing.Size(19, 19); + this.boxLobCompaction.TabIndex = 9; + this.boxLobCompaction.TabStop = false; + // + // boxDataCompression + // + this.boxDataCompression.EditValue = ""; + this.boxDataCompression.Location = new System.Drawing.Point(189, 50); + this.boxDataCompression.Name = "boxDataCompression"; + this.boxDataCompression.Properties.AllowFocused = false; + this.boxDataCompression.Properties.Appearance.Options.UseTextOptions = true; + this.boxDataCompression.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxDataCompression.Properties.AutoComplete = false; + this.boxDataCompression.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxDataCompression.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxDataCompression.Size = new System.Drawing.Size(88, 20); + this.boxDataCompression.TabIndex = 21; + // + // boxSortInTempDb + // + this.boxSortInTempDb.Location = new System.Drawing.Point(221, 160); + this.boxSortInTempDb.Name = "boxSortInTempDb"; + this.boxSortInTempDb.Properties.AllowFocused = false; + this.boxSortInTempDb.Properties.Caption = ""; + this.boxSortInTempDb.Size = new System.Drawing.Size(19, 19); + this.boxSortInTempDb.TabIndex = 0; + this.boxSortInTempDb.TabStop = false; // // labelControl8 // - labelControl8.Location = new System.Drawing.Point(14, 109); + labelControl8.Location = new System.Drawing.Point(14, 81); labelControl8.Name = "labelControl8"; labelControl8.Size = new System.Drawing.Size(72, 13); labelControl8.TabIndex = 19; @@ -708,7 +732,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxFillFactor.Location = new System.Drawing.Point(202, 106); + this.boxFillFactor.Location = new System.Drawing.Point(189, 78); this.boxFillFactor.Name = "boxFillFactor"; this.boxFillFactor.Properties.AllowFocused = false; this.boxFillFactor.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -727,7 +751,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxFillFactor.Size = new System.Drawing.Size(75, 20); + this.boxFillFactor.Size = new System.Drawing.Size(88, 20); this.boxFillFactor.TabIndex = 18; this.boxFillFactor.TabStop = false; // @@ -738,7 +762,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDuration.Location = new System.Drawing.Point(202, 272); + this.boxMaxDuration.Location = new System.Drawing.Point(189, 269); this.boxMaxDuration.Name = "boxMaxDuration"; this.boxMaxDuration.Properties.AllowFocused = false; this.boxMaxDuration.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -762,14 +786,14 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDuration.Size = new System.Drawing.Size(75, 20); + this.boxMaxDuration.Size = new System.Drawing.Size(88, 20); this.boxMaxDuration.TabIndex = 17; this.boxMaxDuration.TabStop = false; // // boxAbortAfterWait // - this.boxAbortAfterWait.EditValue = "NONE"; - this.boxAbortAfterWait.Location = new System.Drawing.Point(202, 300); + this.boxAbortAfterWait.EditValue = ""; + this.boxAbortAfterWait.Location = new System.Drawing.Point(189, 297); this.boxAbortAfterWait.Name = "boxAbortAfterWait"; this.boxAbortAfterWait.Properties.AllowFocused = false; this.boxAbortAfterWait.Properties.Appearance.Options.UseTextOptions = true; @@ -777,17 +801,13 @@ private void InitializeComponent() { this.boxAbortAfterWait.Properties.AutoComplete = false; this.boxAbortAfterWait.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); - this.boxAbortAfterWait.Properties.Items.AddRange(new object[] { - "NONE", - "SELF", - "BLOCKERS"}); this.boxAbortAfterWait.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; - this.boxAbortAfterWait.Size = new System.Drawing.Size(75, 20); + this.boxAbortAfterWait.Size = new System.Drawing.Size(88, 20); this.boxAbortAfterWait.TabIndex = 16; // // labelAbortAfterWait // - labelAbortAfterWait.Location = new System.Drawing.Point(35, 303); + labelAbortAfterWait.Location = new System.Drawing.Point(35, 300); labelAbortAfterWait.Name = "labelAbortAfterWait"; labelAbortAfterWait.Size = new System.Drawing.Size(119, 13); labelAbortAfterWait.TabIndex = 15; @@ -800,7 +820,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDod.Location = new System.Drawing.Point(202, 134); + this.boxMaxDod.Location = new System.Drawing.Point(189, 106); this.boxMaxDod.Name = "boxMaxDod"; this.boxMaxDod.Properties.AllowFocused = false; this.boxMaxDod.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -819,13 +839,13 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDod.Size = new System.Drawing.Size(75, 20); + this.boxMaxDod.Size = new System.Drawing.Size(88, 20); this.boxMaxDod.TabIndex = 6; this.boxMaxDod.TabStop = false; // // labelMaxDuration // - labelMaxDuration.Location = new System.Drawing.Point(35, 275); + labelMaxDuration.Location = new System.Drawing.Point(35, 272); labelMaxDuration.Name = "labelMaxDuration"; labelMaxDuration.Size = new System.Drawing.Size(94, 13); labelMaxDuration.TabIndex = 14; @@ -833,7 +853,7 @@ private void InitializeComponent() { // // boxWaitAtLowPriority // - this.boxWaitAtLowPriority.Location = new System.Drawing.Point(227, 244); + this.boxWaitAtLowPriority.Location = new System.Drawing.Point(221, 239); this.boxWaitAtLowPriority.Name = "boxWaitAtLowPriority"; this.boxWaitAtLowPriority.Properties.AllowFocused = false; this.boxWaitAtLowPriority.Properties.Caption = ""; @@ -843,7 +863,7 @@ private void InitializeComponent() { // // labelWaitAtLowPriority // - labelWaitAtLowPriority.Location = new System.Drawing.Point(35, 246); + labelWaitAtLowPriority.Location = new System.Drawing.Point(35, 243); labelWaitAtLowPriority.Name = "labelWaitAtLowPriority"; labelWaitAtLowPriority.Size = new System.Drawing.Size(129, 13); labelWaitAtLowPriority.TabIndex = 12; @@ -851,7 +871,7 @@ private void InitializeComponent() { // // boxOnline // - this.boxOnline.Location = new System.Drawing.Point(227, 216); + this.boxOnline.Location = new System.Drawing.Point(221, 212); this.boxOnline.Name = "boxOnline"; this.boxOnline.Properties.AllowFocused = false; this.boxOnline.Properties.Caption = ""; @@ -915,12 +935,12 @@ private void InitializeComponent() { " "}); this.boxIncludeSchemas.Properties.ShowDropDown = false; this.boxIncludeSchemas.Properties.ValidateToken += new DevExpress.XtraEditors.TokenEditValidateTokenEventHandler(this.TokenValidate); - this.boxIncludeSchemas.Size = new System.Drawing.Size(335, 20); + this.boxIncludeSchemas.Size = new System.Drawing.Size(343, 20); this.boxIncludeSchemas.TabIndex = 13; // // boxExcludeObject // - this.boxExcludeObject.Location = new System.Drawing.Point(39, 49); + this.boxExcludeObject.Location = new System.Drawing.Point(39, 50); this.boxExcludeObject.Name = "boxExcludeObject"; this.boxExcludeObject.Properties.AutoHeightMode = DevExpress.XtraEditors.TokenEditAutoHeightMode.RestrictedExpand; this.boxExcludeObject.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual; @@ -934,7 +954,7 @@ private void InitializeComponent() { " "}); this.boxExcludeObject.Properties.ShowDropDown = false; this.boxExcludeObject.Properties.ValidateToken += new DevExpress.XtraEditors.TokenEditValidateTokenEventHandler(this.TokenValidate); - this.boxExcludeObject.Size = new System.Drawing.Size(335, 20); + this.boxExcludeObject.Size = new System.Drawing.Size(343, 20); this.boxExcludeObject.TabIndex = 8; // // boxExcludeSchemas @@ -953,14 +973,14 @@ private void InitializeComponent() { " "}); this.boxExcludeSchemas.Properties.ShowDropDown = false; this.boxExcludeSchemas.Properties.ValidateToken += new DevExpress.XtraEditors.TokenEditValidateTokenEventHandler(this.TokenValidate); - this.boxExcludeSchemas.Size = new System.Drawing.Size(335, 20); + this.boxExcludeSchemas.Size = new System.Drawing.Size(343, 20); this.boxExcludeSchemas.TabIndex = 7; // // buttonOK // this.buttonOK.AllowFocus = false; this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Location = new System.Drawing.Point(539, 498); + this.buttonOK.Location = new System.Drawing.Point(548, 481); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 1; @@ -983,7 +1003,7 @@ private void InitializeComponent() { " "}); this.boxIncludeObject.Properties.ShowDropDown = false; this.boxIncludeObject.Properties.ValidateToken += new DevExpress.XtraEditors.TokenEditValidateTokenEventHandler(this.TokenValidate); - this.boxIncludeObject.Size = new System.Drawing.Size(335, 20); + this.boxIncludeObject.Size = new System.Drawing.Size(343, 20); this.boxIncludeObject.TabIndex = 15; // // groupControl4 @@ -992,9 +1012,9 @@ private void InitializeComponent() { this.groupControl4.Controls.Add(pictureBox1); this.groupControl4.Controls.Add(this.boxExcludeSchemas); this.groupControl4.Controls.Add(this.boxIncludeSchemas); - this.groupControl4.Location = new System.Drawing.Point(12, 324); + this.groupControl4.Location = new System.Drawing.Point(12, 307); this.groupControl4.Name = "groupControl4"; - this.groupControl4.Size = new System.Drawing.Size(387, 80); + this.groupControl4.Size = new System.Drawing.Size(396, 81); this.groupControl4.TabIndex = 18; this.groupControl4.Text = "Schema Filter"; // @@ -1004,44 +1024,35 @@ private void InitializeComponent() { this.groupControl5.Controls.Add(pictureBox4); this.groupControl5.Controls.Add(this.boxIncludeObject); this.groupControl5.Controls.Add(this.boxExcludeObject); - this.groupControl5.Location = new System.Drawing.Point(12, 410); + this.groupControl5.Location = new System.Drawing.Point(12, 394); this.groupControl5.Name = "groupControl5"; - this.groupControl5.Size = new System.Drawing.Size(387, 80); + this.groupControl5.Size = new System.Drawing.Size(396, 81); this.groupControl5.TabIndex = 19; this.groupControl5.Text = "Object Filter (schema.table OR table OR %pattern%)"; // - // boxScanMode + // labelPadIndex // - this.boxScanMode.EditValue = "LIMITED"; - this.boxScanMode.Location = new System.Drawing.Point(287, 22); - this.boxScanMode.Name = "boxScanMode"; - this.boxScanMode.Properties.AllowFocused = false; - this.boxScanMode.Properties.Appearance.Options.UseTextOptions = true; - this.boxScanMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.boxScanMode.Properties.AutoComplete = false; - this.boxScanMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { - new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); - this.boxScanMode.Properties.Items.AddRange(new object[] { - "LIMITED", - "SAMPLED", - "DETAILED"}); - this.boxScanMode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; - this.boxScanMode.Size = new System.Drawing.Size(88, 20); - this.boxScanMode.TabIndex = 24; + labelPadIndex.Location = new System.Drawing.Point(14, 189); + labelPadIndex.Name = "labelPadIndex"; + labelPadIndex.Size = new System.Drawing.Size(85, 13); + labelPadIndex.TabIndex = 27; + labelPadIndex.Text = "PAD_INDEX = ON"; // - // labelControl9 + // boxPadIndex // - labelControl9.Location = new System.Drawing.Point(243, 25); - labelControl9.Name = "labelControl9"; - labelControl9.Size = new System.Drawing.Size(38, 13); - labelControl9.TabIndex = 25; - labelControl9.Text = "SCAN ="; + this.boxPadIndex.Location = new System.Drawing.Point(221, 186); + this.boxPadIndex.Name = "boxPadIndex"; + this.boxPadIndex.Properties.AllowFocused = false; + this.boxPadIndex.Properties.Caption = ""; + this.boxPadIndex.Size = new System.Drawing.Size(19, 19); + this.boxPadIndex.TabIndex = 26; + this.boxPadIndex.TabStop = false; // // SettingsBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(707, 531); + this.ClientSize = new System.Drawing.Size(715, 514); this.Controls.Add(this.groupControl5); this.Controls.Add(this.groupControl4); this.Controls.Add(groupControl3); @@ -1049,7 +1060,6 @@ private void InitializeComponent() { this.Controls.Add(groupControl2); this.Controls.Add(groupControl1); this.Controls.Add(buttonRestore); - this.Controls.Add(gb1); this.Controls.Add(buttonCancel); this.Controls.Add(this.buttonOK); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; @@ -1061,18 +1071,17 @@ private void InitializeComponent() { this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Settings"; - ((System.ComponentModel.ISupportInitialize)(gb1)).EndInit(); - gb1.ResumeLayout(false); - gb1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxThreshold.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxThreshold)).EndInit(); ((System.ComponentModel.ISupportInitialize)(groupControl1)).EndInit(); groupControl1.ResumeLayout(false); groupControl1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxSecondThreshold.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxFirstThreshold.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxIndexSize.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxIndexSize)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxThreshold.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxThreshold)).EndInit(); ((System.ComponentModel.ISupportInitialize)(groupControl2)).EndInit(); groupControl2.ResumeLayout(false); groupControl2.PerformLayout(); @@ -1080,22 +1089,23 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.boxCommandTimeout.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(db3)).EndInit(); db3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMissingIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanClusteredIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanClusteredColumnstore.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredColumnstore.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreReadOnlyFL.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanHeap.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(groupControl3)).EndInit(); groupControl3.ResumeLayout(false); groupControl3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreReadOnlyFL.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxLobCompaction.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxDataCompression.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSortInTempDb.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxFillFactor.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMaxDuration.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxAbortAfterWait.Properties)).EndInit(); @@ -1116,7 +1126,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).EndInit(); this.groupControl5.ResumeLayout(false); this.groupControl5.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).EndInit(); this.ResumeLayout(false); } @@ -1124,9 +1134,9 @@ private void InitializeComponent() { #endregion private DevExpress.XtraEditors.CheckEdit boxOnline; - private DevExpress.XtraEditors.LabelControl labelReorganize; + private DevExpress.XtraEditors.LabelControl labelFirstThreshold; private DevExpress.XtraEditors.RangeTrackBarControl boxThreshold; - private DevExpress.XtraEditors.LabelControl labelRebuild; + private DevExpress.XtraEditors.LabelControl labelSecondThreshold; private DevExpress.XtraEditors.SpinEdit boxMaxDod; private DevExpress.XtraEditors.CheckEdit boxLobCompaction; private DevExpress.XtraEditors.SpinEdit boxStatsSamplePercent; @@ -1135,8 +1145,6 @@ private void InitializeComponent() { private DevExpress.XtraEditors.RangeTrackBarControl boxMinIndexSize; private DevExpress.XtraEditors.SpinEdit boxConnectionTimeout; private DevExpress.XtraEditors.SpinEdit boxCommandTimeout; - private DevExpress.XtraEditors.LabelControl labelControl3; - private DevExpress.XtraEditors.LabelControl labelControl4; private DevExpress.XtraEditors.CheckEdit boxSortInTempDb; private DevExpress.XtraEditors.SpinEdit boxMaxDuration; private DevExpress.XtraEditors.ComboBoxEdit boxAbortAfterWait; @@ -1161,5 +1169,8 @@ private void InitializeComponent() { private DevExpress.XtraEditors.LabelControl labelControl5; private DevExpress.XtraEditors.ComboBoxEdit boxNoRecompute; private DevExpress.XtraEditors.ComboBoxEdit boxScanMode; + private DevExpress.XtraEditors.ComboBoxEdit boxFirstThreshold; + private DevExpress.XtraEditors.ComboBoxEdit boxSecondThreshold; + private DevExpress.XtraEditors.CheckEdit boxPadIndex; } } \ No newline at end of file diff --git a/Forms/SettingsBox.cs b/Forms/SettingsBox.cs index 07a36d9..d56aa69 100644 --- a/Forms/SettingsBox.cs +++ b/Forms/SettingsBox.cs @@ -7,16 +7,43 @@ namespace SQLIndexManager { public partial class SettingsBox : XtraForm { + public SettingsBox() { InitializeComponent(); + + object[] indexOps = { + IndexOp.REBUILD.Description(), + IndexOp.REORGANIZE.Description(), + IndexOp.UPDATE_STATISTICS_FULL.Description(), + IndexOp.UPDATE_STATISTICS_RESAMPLE.Description(), + IndexOp.UPDATE_STATISTICS_SAMPLE.Description(), + }; + + object[] dataCompression = { + DataCompression.DEFAULT, + DataCompression.NONE, + DataCompression.ROW, + DataCompression.PAGE + }; + + boxFirstThreshold.Properties.Items.AddRange(indexOps); + boxSecondThreshold.Properties.Items.AddRange(indexOps); + boxDataCompression.Properties.Items.AddRange(dataCompression); + boxAbortAfterWait.Properties.Items.AddRange(Enum.GetNames(typeof(AbortAfterWait))); + boxNoRecompute.Properties.Items.AddRange(Enum.GetNames(typeof(NoRecompute))); + boxScanMode.Properties.Items.AddRange(Enum.GetNames(typeof(ScanMode))); + UpdateControls(Settings.Options); } private void UpdateControls(Options o) { - boxThreshold.Value = new TrackBarRange(o.ReorganizeThreshold, o.RebuildThreshold); + boxFirstThreshold.EditValue = o.FirstOperation.Description(); + boxSecondThreshold.EditValue = o.SecondOperation.Description(); + boxThreshold.Value = new TrackBarRange(o.FirstThreshold, o.SecondThreshold); boxMinIndexSize.Value = new TrackBarRange(o.MinIndexSize, o.PreDescribeSize); boxMaxIndexSize.Value = o.MaxIndexSize; boxOnline.Checked = o.Online; + boxPadIndex.Checked = o.PadIndex; boxSortInTempDb.Checked = o.SortInTempDb; boxLobCompaction.Checked = o.LobCompaction; boxMaxDod.Value = o.MaxDop; @@ -48,13 +75,16 @@ private void UpdateControls(Options o) { public Options GetSettings() { return new Options { - ReorganizeThreshold = boxThreshold.Value.Minimum, - RebuildThreshold = boxThreshold.Value.Maximum, + FirstOperation = Utils.GetValueFromDescription((string)boxFirstThreshold.EditValue), + SecondOperation = Utils.GetValueFromDescription((string)boxSecondThreshold.EditValue), + FirstThreshold = boxThreshold.Value.Minimum, + SecondThreshold = boxThreshold.Value.Maximum, MinIndexSize = boxMinIndexSize.Value.Minimum, PreDescribeSize = boxMinIndexSize.Value.Maximum, MaxIndexSize = boxMaxIndexSize.Value, MaxDop = (int)boxMaxDod.Value, Online = boxOnline.Checked, + PadIndex = boxPadIndex.Checked, SortInTempDb = boxSortInTempDb.Checked, LobCompaction = boxLobCompaction.Checked, SampleStatsPercent = (int)boxStatsSamplePercent.Value, @@ -62,11 +92,11 @@ public Options GetSettings() { CommandTimeout = (int)boxCommandTimeout.Value, WaitAtLowPriority = boxWaitAtLowPriority.Checked, MaxDuration = (int)boxMaxDuration.Value, - AbortAfterWait = (string)boxAbortAfterWait.EditValue, - DataCompression = (string)boxDataCompression.EditValue, - NoRecompute = (string)boxNoRecompute.EditValue, + AbortAfterWait = boxAbortAfterWait.EditValue.ToEnum(), + DataCompression = boxDataCompression.EditValue.ToEnum(), + NoRecompute = boxNoRecompute.EditValue.ToEnum(), FillFactor = (int)boxFillFactor.Value, - ScanMode = (string)boxScanMode.EditValue, + ScanMode = boxScanMode.EditValue.ToEnum(), ScanHeap = boxScanHeap.Checked, ScanClusteredIndex = boxScanClusteredIndex.Checked, @@ -96,8 +126,8 @@ private void IndexSizeValueChanged(object sender, EventArgs e) { } private void ThresholdValueChanged(object sender, EventArgs e) { - labelReorganize.Text = $@">= {boxThreshold.Value.Minimum}% AND < {boxThreshold.Value.Maximum }%"; - labelRebuild.Text = $@">= {boxThreshold.Value.Maximum}%"; + labelFirstThreshold.Text = $@">= {boxThreshold.Value.Minimum}% AND < {boxThreshold.Value.Maximum }%"; + labelSecondThreshold.Text = $@">= {boxThreshold.Value.Maximum}%"; } private void TrackBarEditValueChanged(object sender, EventArgs e) { @@ -148,6 +178,7 @@ protected override bool ProcessDialogKey(Keys keyData) { } #endregion + } } diff --git a/Forms/SettingsBox.resx b/Forms/SettingsBox.resx index e391c09..17e71a0 100644 --- a/Forms/SettingsBox.resx +++ b/Forms/SettingsBox.resx @@ -117,15 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - False - False - - False - False @@ -162,10 +156,16 @@ False + + False + False - + + False + + False diff --git a/Program.cs b/Program.cs index 4e7b3dd..18045fd 100644 --- a/Program.cs +++ b/Program.cs @@ -9,6 +9,7 @@ namespace SQLIndexManager { static class Program { + [STAThread] static void Main(string[] args) { CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); @@ -66,6 +67,7 @@ private static void AttachConsole() { else Console.OutputEncoding = (Encoding)Console.OutputEncoding.Clone(); } + } -} +} \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index a6f677e..853d33d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -3,9 +3,9 @@ [assembly: AssemblyTitle("SQL Index Manager")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Sergey Syrovatchenko")] -[assembly: AssemblyProduct("Analyze and fix index fragmentation for SQL Server / Azure")] +[assembly: AssemblyProduct("Free GUI Tool for Index Maintenance on SQL Server and Azure")] [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.47")] -[assembly: AssemblyFileVersion("1.0.0.47")] +[assembly: AssemblyVersion("1.0.0.51")] +[assembly: AssemblyFileVersion("1.0.0.51")] diff --git a/README.md b/README.md index 21271b0..1f23ff1 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ You can do maintenance through the UI, or generate a T-SQL script to run in SSMS * Command-line automation * Automatic T-SQL script generation * Columnstore maintenance support +* Statistics maintenance * Collecting missing indexes * Detect duplicate indexes * Drop or disable unused indexes @@ -26,20 +27,15 @@ You can do maintenance through the UI, or generate a T-SQL script to run in SSMS You can download .zip file with the latest build of the master branch from [Releases](https://github.com/sergeysyrovatchenko/SQLIndexManager/releases) -## Future Plans - -* Improvements in command-line automation -* Statistics maintenance - ## Topics [SQL Index Manager – Free GUI Tool for Index Maintenance on SQL Server and Azure](https://www.codeproject.com/Articles/5162340/SQL-Index-Manager-Free-GUI-Tool-for-Index-Maintena) ## Screenshots -![SQL Index Manager](https://habrastorage.org/webt/bw/6n/ma/bw6nmab-z9tlc5q1rud1rmdjj34.png) -![SQL Index Manager](https://habrastorage.org/webt/vj/vi/ts/vjvits-lmjukoi35ra_3bjt8pdq.png) -![SQL Index Manager](https://habrastorage.org/webt/ep/e6/cv/epe6cveesa22v3yvbatf7iwhfry.png) +![SQL Index Manager](https://habrastorage.org/webt/jw/8s/vk/jw8svkqqg0ybvtdgt1cdoiulxsm.png) +![SQL Index Manager](https://habrastorage.org/webt/9d/gm/uf/9dgmufdo4-bnbhqrx7c8jcs5358.png) +![SQL Index Manager](https://habrastorage.org/webt/3x/iz/4n/3xiz4nf8-wneuchgmovaceynny0.png) ## Command Line @@ -75,6 +71,10 @@ This switch is used to ignore any columnstore indexes during maintenance This switch is used to ignore any b-tree indexes during maintenance +**/missingindex** + +Including missing indexes into regular maintenance + **/maxdop 8** Configure the max degree of parallelism during maintenance. Overrides server option diff --git a/SQLIndexManager.csproj b/SQLIndexManager.csproj index c59d1f8..907f990 100644 --- a/SQLIndexManager.csproj +++ b/SQLIndexManager.csproj @@ -1,5 +1,5 @@  - + Debug x86 @@ -42,29 +42,36 @@ Images\icon.ico - + + False Libs\DevExpress.Data.v17.2.dll - + + False Libs\DevExpress.Images.v17.2.dll - + + False Libs\DevExpress.Printing.v17.2.Core.dll False Libs\DevExpress.Sparkline.v17.2.Core.dll - + + False Libs\DevExpress.Utils.v17.2.dll - + + False Libs\DevExpress.XtraBars.v17.2.dll - + + False Libs\DevExpress.XtraEditors.v17.2.dll - + + False Libs\DevExpress.XtraGrid.v17.2.dll @@ -127,7 +134,7 @@ - + @@ -155,11 +162,13 @@ ConnectionBox.cs - + + + ErrorBox.cs diff --git a/Server/Connection.cs b/Server/Connection.cs index dede6df..c2a64db 100644 --- a/Server/Connection.cs +++ b/Server/Connection.cs @@ -13,7 +13,7 @@ private static string GetConnectionString(Host host, string database) { InitialCatalog = database ?? "master" }; - if (host.AuthType == AuthTypes.Windows) { + if (host.AuthType == AuthTypes.WINDOWS) { builder.IntegratedSecurity = true; } else { @@ -28,6 +28,7 @@ public static SqlConnection Create(Host host, string database = null) { string connectionString = GetConnectionString(host, database); return new SqlConnection(connectionString); } + } } diff --git a/Server/ConnectionList.cs b/Server/ConnectionList.cs index e1c3943..6f50dc0 100644 --- a/Server/ConnectionList.cs +++ b/Server/ConnectionList.cs @@ -74,5 +74,7 @@ protected virtual void Dispose(bool disposing) { ~ConnectionList() { Dispose(false); } + } + } diff --git a/Server/Database.cs b/Server/Database.cs index b9f51b8..b84a35e 100644 --- a/Server/Database.cs +++ b/Server/Database.cs @@ -1,6 +1,7 @@ namespace SQLIndexManager { public class Database { + public string DatabaseName { get; set; } public string RecoveryModel { get; set; } public string LogReuseWait { get; set; } @@ -8,6 +9,7 @@ public class Database { public long DataFreeSize { get; set; } public long LogSize { get; set; } public long LogFreeSize { get; set; } + } } \ No newline at end of file diff --git a/Server/Host.cs b/Server/Host.cs index 648c4ba..77d62ff 100644 --- a/Server/Host.cs +++ b/Server/Host.cs @@ -32,13 +32,14 @@ public class Host { public ServerInfo ServerInfo; public Host() { - AuthType = AuthTypes.Windows; + AuthType = AuthTypes.WINDOWS; Databases = new List(); } public override string ToString() { - return $"{Server} | {ServerInfo.Version}"; + return $"{Server} | {ServerInfo}"; } + } -} +} \ No newline at end of file diff --git a/Server/Index.cs b/Server/Index.cs index 1df5e7c..6df7fc7 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -4,6 +4,7 @@ namespace SQLIndexManager { public class Index { + public string DatabaseName { get; set; } public int ObjectId { get; set; } public int IndexId { get; set; } @@ -42,7 +43,7 @@ public class Index { public bool IsAllowReorganize { get; set; } public bool IsAllowOnlineRebuild { get; set; } public bool IsAllowCompression { get; set; } - public bool IsColumnstore => (IndexType == IndexType.ColumnstoreClustered || IndexType == IndexType.ColumnstoreNonClustered); + public bool IsColumnstore => (IndexType == IndexType.CLUSTERED_COLUMNSTORE || IndexType == IndexType.NONCLUSTERED_COLUMNSTORE); public string Error { get; set; } public Image Progress { get; set; } @@ -54,137 +55,115 @@ public class Index { public string GetQuery() { string sql = string.Empty; string indexName = IndexName.ToQuota(); - string schemaName = SchemaName.ToQuota(); - string objectName = ObjectName.ToQuota(); + string objectName = $"{SchemaName.ToQuota()}.{ObjectName.ToQuota()}"; + string fullIndexName = $"{indexName} ON {objectName}"; string partition = IsPartitioned ? PartitionNumber.ToString() : "ALL"; - DataCompression compression = DataCompression; if (IsColumnstore) { - if (FixType == IndexOp.RebuildColumnstore) - compression = DataCompression.Columnstore; - - if (FixType == IndexOp.RebuildColumnstoreArchive) - compression = DataCompression.ColumnstoreArchive; - switch (FixType) { - case IndexOp.Rebuild: - case IndexOp.RebuildColumnstore: - case IndexOp.RebuildColumnstoreArchive: - sql = $"ALTER INDEX [{indexName}]\n " + - $"ON [{schemaName}].[{objectName}] REBUILD PARTITION = {partition}\n " + - $"WITH (DATA_COMPRESSION = {compression.ToDescription()}, MAXDOP = {Settings.Options.MaxDop});"; + case IndexOp.REBUILD: + case IndexOp.REBUILD_COLUMNSTORE: + case IndexOp.REBUILD_COLUMNSTORE_ARCHIVE: + DataCompression compression = (FixType == IndexOp.REBUILD_COLUMNSTORE) ? DataCompression.COLUMNSTORE : DataCompression.COLUMNSTORE_ARCHIVE; + sql = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}\n " + + $"WITH (DATA_COMPRESSION = {(FixType == IndexOp.REBUILD ? DataCompression : compression)}, MAXDOP = {Settings.Options.MaxDop});"; break; - case IndexOp.Reorganize: - sql = $"ALTER INDEX [{indexName}]\n " + - $"ON [{schemaName}].[{objectName}] REORGANIZE PARTITION = {partition};"; - break; - - case IndexOp.ReorganizeCompressAllRowGroup: - sql = $"ALTER INDEX [{indexName}]\n " + - $"ON [{schemaName}].[{objectName}] REORGANIZE PARTITION = {partition}\n " + - "WITH (COMPRESS_ALL_ROW_GROUPS = ON);"; + case IndexOp.REORGANIZE: + case IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS: + sql = $"ALTER INDEX {fullIndexName} REORGANIZE PARTITION = {partition}" + + $"{(FixType == IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS ? "\n WITH (COMPRESS_ALL_ROW_GROUPS = ON)" : "")};"; break; } + } else { - if (FixType == IndexOp.RebuildPage) - compression = DataCompression.Page; - else if (FixType == IndexOp.RebuildRow) - compression = DataCompression.Row; - else if (FixType == IndexOp.RebuildNone) - compression = DataCompression.None; - switch (FixType) { - case IndexOp.CreateIndex: - bool isCreateOnline = Settings.ServerInfo.MajorVersion > Server.Sql2008 - && Settings.ServerInfo.IsOnlineRebuildAvailable - && Settings.Options.Online; - - sql = $"CREATE NONCLUSTERED INDEX [{indexName}]\n" + - $"ON [{schemaName}].[{objectName}] ({IndexColumns})\n" + - (string.IsNullOrEmpty(IncludedColumns) ? "" : $"INCLUDE({IncludedColumns})\n") + - $"WITH (SORT_IN_TEMPDB = {(Settings.Options.SortInTempDb ? Options.ON : Options.OFF)}, " + - $"ONLINE = {(isCreateOnline ? Options.ON : Options.OFF)}, " + - (Settings.Options.FillFactor.IsBetween(1, 100) - ? $"FILLFACTOR = {Settings.Options.FillFactor}, " - : "" - ) + - (Settings.Options.DataCompression == Options.DEFAULT - ? "" - : $"DATA_COMPRESSION = {Settings.Options.DataCompression}, " - ) + - (Settings.Options.NoRecompute == Options.DEFAULT - ? "" - : $"STATISTICS_NORECOMPUTE = {Settings.Options.NoRecompute}, " - ) + + case IndexOp.REBUILD: + case IndexOp.REBUILD_ROW: + case IndexOp.REBUILD_PAGE: + case IndexOp.REBUILD_NONE: + case IndexOp.REBUILD_ONLINE: + case IndexOp.CREATE_INDEX: + + DataCompression compression; + if (FixType == IndexOp.REBUILD_PAGE) + compression = DataCompression.PAGE; + else if (FixType == IndexOp.REBUILD_ROW) + compression = DataCompression.ROW; + else if (FixType == IndexOp.REBUILD_NONE) + compression = DataCompression.NONE; + else if (Settings.Options.DataCompression != DataCompression.DEFAULT) + compression = Settings.Options.DataCompression; + else + compression = DataCompression; + + string onlineRebuild = "OFF"; + if (FixType == IndexOp.REBUILD_ONLINE || (Settings.Options.Online && IsAllowOnlineRebuild)) { + if (Settings.Options.WaitAtLowPriority && Settings.ServerInfo.MajorVersion >= ServerVersion.Sql2014) + onlineRebuild = "ON (" + + $"WAIT_AT_LOW_PRIORITY (MAX_DURATION = {Settings.Options.MaxDuration} MINUTES, " + + $"ABORT_AFTER_WAIT = {Settings.Options.AbortAfterWait}))"; + else + onlineRebuild = "ON"; + } + + string sqlHeader; + if (IndexType == IndexType.MISSING_INDEX) + sqlHeader = $"CREATE NONCLUSTERED INDEX {fullIndexName}\n ({IndexColumns})\n " + + (string.IsNullOrEmpty(IncludedColumns) ? "" : $"INCLUDE ({IncludedColumns})\n "); + else if (IndexType == IndexType.HEAP) + sqlHeader = $"ALTER TABLE {objectName} REBUILD PARTITION = {partition}\n "; + else + sqlHeader = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}\n "; + + sql = sqlHeader + + $"WITH (" + + (IndexType == IndexType.HEAP + ? "" + : $"SORT_IN_TEMPDB = {Settings.Options.SortInTempDb.OnOff()}, ") + + (IsPartitioned || IndexType == IndexType.HEAP + ? "" + : $"PAD_INDEX = {Settings.Options.PadIndex.OnOff()}, ") + + (IsPartitioned || Settings.Options.FillFactor == 0 + ? "" + : $"FILLFACTOR = {Settings.Options.FillFactor}, ") + + (IsPartitioned || Settings.Options.NoRecompute == NoRecompute.DEFAULT || IndexType == IndexType.HEAP + ? "" + : $"STATISTICS_NORECOMPUTE = {Settings.Options.NoRecompute}, ") + + (!IsAllowCompression + ? "" + : $"DATA_COMPRESSION = {compression}, ") + + $"ONLINE = {onlineRebuild}, " + $"MAXDOP = {Settings.Options.MaxDop});"; break; - case IndexOp.Rebuild: - case IndexOp.RebuildPage: - case IndexOp.RebuildRow: - case IndexOp.RebuildNone: - case IndexOp.RebuildOnline: - case IndexOp.RebuildFillFactorZero: - if (IndexType == IndexType.Heap) { - sql = $"ALTER TABLE [{schemaName}].[{objectName}] REBUILD PARTITION = {partition}\n " + - $"WITH (DATA_COMPRESSION = {compression.ToDescription()}, MAXDOP = {Settings.Options.MaxDop});"; - } - else { - string onlineRebuild = "OFF"; - if (FixType == IndexOp.RebuildOnline) { - if (Settings.Options.WaitAtLowPriority && Settings.ServerInfo.MajorVersion >= Server.Sql2014) - onlineRebuild = $"ON (" + - $"WAIT_AT_LOW_PRIORITY(MAX_DURATION = {Settings.Options.MaxDuration} MINUTES, " + - $"ABORT_AFTER_WAIT = {Settings.Options.AbortAfterWait}))"; - else - onlineRebuild = Options.ON; - } - - sql = $"ALTER INDEX [{indexName}]\n " + - $"ON [{schemaName}].[{objectName}] REBUILD PARTITION = {partition}\n " + - $"WITH (SORT_IN_TEMPDB = {(Settings.Options.SortInTempDb ? Options.ON : Options.OFF)}, " + - $"ONLINE = {onlineRebuild}, " + - (Settings.Options.NoRecompute == Options.DEFAULT - ? "" - : $"STATISTICS_NORECOMPUTE = {Settings.Options.NoRecompute}, " - ) + - (FixType == IndexOp.RebuildFillFactorZero - ? "FILLFACTOR = 100, " - : (Settings.Options.FillFactor.IsBetween(1, 100) - ? $"FILLFACTOR = {Settings.Options.FillFactor}, " - : "" - ) - ) + - $"DATA_COMPRESSION = {compression.ToDescription()}, " + - $"MAXDOP = {Settings.Options.MaxDop});"; - } + case IndexOp.REORGANIZE: + sql = $"ALTER INDEX {fullIndexName} REORGANIZE PARTITION = {partition}\n " + + $"WITH (LOB_COMPACTION = {Settings.Options.LobCompaction.OnOff()});"; break; - case IndexOp.Reorganize: - sql = $"ALTER INDEX [{indexName}]\n " + - $"ON [{schemaName}].[{objectName}] REORGANIZE PARTITION = {partition}\n " + - $"WITH (LOB_COMPACTION = {(Settings.Options.LobCompaction ? Options.ON : Options.OFF)});"; + case IndexOp.DISABLE_INDEX: + sql = $"ALTER INDEX {fullIndexName} DISABLE;"; break; - case IndexOp.Disable: - sql = $"ALTER INDEX [{indexName}] ON [{schemaName}].[{objectName}] DISABLE;"; + case IndexOp.DROP_INDEX: + sql = $"DROP INDEX {fullIndexName};"; break; - case IndexOp.Drop: - sql = $"DROP INDEX [{indexName}] ON [{schemaName}].[{objectName}];"; + case IndexOp.DROP_TABLE: + sql = $"DROP TABLE {objectName};"; break; - case IndexOp.UpdateStatsSample: - case IndexOp.UpdateStatsResample: - case IndexOp.UpdateStatsFull: - sql = $"UPDATE STATISTICS [{schemaName}].[{objectName}] [{indexName}]\n " + ( - FixType == IndexOp.UpdateStatsSample + case IndexOp.UPDATE_STATISTICS_SAMPLE: + case IndexOp.UPDATE_STATISTICS_RESAMPLE: + case IndexOp.UPDATE_STATISTICS_FULL: + sql = $"UPDATE STATISTICS {objectName} {indexName}\n " + ( + FixType == IndexOp.UPDATE_STATISTICS_SAMPLE ? $"WITH SAMPLE {Settings.Options.SampleStatsPercent} PERCENT;" - : (FixType == IndexOp.UpdateStatsFull ? "WITH FULLSCAN;" : "WITH RESAMPLE;") + : (FixType == IndexOp.UPDATE_STATISTICS_FULL ? "WITH FULLSCAN;" : "WITH RESAMPLE;") ); break; } @@ -199,6 +178,7 @@ public override string ToString() { $"| {(string.IsNullOrEmpty(IndexName) ? "Heap" : $"{IndexName}")} {(IsPartitioned ? "[ " + PartitionNumber + " ] " : string.Empty)}" + $"| {(Convert.ToDecimal(PagesCount) * 8).FormatSize()}".Replace("'", string.Empty); } + } } diff --git a/Server/Query.cs b/Server/Query.cs index af0524d..495e4e9 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -271,7 +271,7 @@ JOIN sys.schemas s WITH(NOLOCK) ON s.[schema_id] = o.[schema_id] LEFT JOIN #Sparse p ON p.ObjectID = i.ObjectID LEFT JOIN #Fragmentation f ON f.ObjectID = i.ObjectID AND f.IndexID = i.IndexID AND f.PartitionNumber = i.PartitionNumber LEFT JOIN ({4}) u ON i.ObjectID = u.ObjectID AND i.IndexID = u.IndexID -LEFT JOIN #Lob lob ON lob.ObjectID = i.ObjectID AND lob.IndexID = i.IndexID +LEFT JOIN #Lob lob ON lob.ObjectID = i.ObjectID AND (lob.IndexID = i.IndexID OR (i.IndexID IN (0, 1) AND lob.IndexID = 0)) LEFT JOIN sys.destination_data_spaces dds WITH(NOLOCK) ON i.DataSpaceID = dds.[partition_scheme_id] AND i.PartitionNumber = dds.[destination_id] JOIN sys.filegroups fg WITH(NOLOCK) ON ISNULL(dds.[data_space_id], i.DataSpaceID) = fg.[data_space_id] {5} WHERE o.[type] IN ('V', 'U') @@ -319,7 +319,7 @@ DROP TABLE #AllocationUnits , PagesCount = SUM(t.[total_pages]) , IndexStats = STATS_DATE(p.[object_id], 1) INTO #AllocationUnits -FROM sys.partitions p +FROM sys.partitions p WITH(NOLOCK) JOIN ( SELECT [container_id] , [total_pages] = SUM([total_pages]) @@ -331,11 +331,7 @@ WHERE p.[object_id] IN (SELECT DISTINCT i.ObjectID FROM #Indexes i) AND p.[index_id] IN (0, 1) GROUP BY p.[object_id] -SELECT *, FileGroupName = ( - SELECT TOP(1) f.[name] - FROM sys.filegroups f WITH(NOLOCK) - WHERE f.[is_default] = 1 - ) +SELECT * FROM ( SELECT i.ObjectID , ObjectName = o.[name] @@ -432,7 +428,7 @@ FROM sys.dm_db_index_usage_stats WITH(NOLOCK) public const string Lob2008 = @" INSERT INTO #Lob (ObjectID, IndexID, IsLobLegacy, IsLob) SELECT c.ObjectID - , IndexID = ISNULL(i.IndexID, 1) + , IndexID = ISNULL(i.IndexID, 0) , IsLobLegacy = MAX(CASE WHEN c.SystemTypeID IN (34, 35, 99) THEN 1 END) , IsLob = MAX(CASE WHEN c.MaxLen = -1 THEN 1 END) FROM #Columns c @@ -445,7 +441,7 @@ GROUP BY c.ObjectID public const string Lob2012Plus = @" INSERT INTO #Lob (ObjectID, IndexID, IsLobLegacy, IsLob) SELECT c.ObjectID - , IndexID = ISNULL(i.IndexID, 1) + , IndexID = ISNULL(i.IndexID, 0) , IsLobLegacy = MAX(CASE WHEN c.SystemTypeID IN (34, 35, 99) THEN 1 END) , IsLob = 0 FROM #Columns c @@ -540,6 +536,8 @@ FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber public const string DatabaseList = @" SET NOCOUNT ON +SET ARITHABORT ON +SET NUMERIC_ROUNDABORT OFF IF OBJECT_ID('tempdb.dbo.#Databases') IS NOT NULL DROP TABLE #Databases @@ -586,6 +584,7 @@ LEFT JOIN ( , DataSize = SUM(CASE WHEN [type] = 0 THEN CAST([size] AS BIGINT) END) , LogSize = SUM(CASE WHEN [type] = 1 THEN CAST([size] AS BIGINT) END) FROM sys.master_files WITH(NOLOCK) + WHERE [state] = 0 GROUP BY [database_id] ) d ON d.DatabaseID = t.DatabaseID WHERE t.HasDBAccess = 1 @@ -689,6 +688,7 @@ FROM sys.partitions WITH(NOLOCK) AND [index_id] = {1} AND [partition_number] = {2} "; + } } \ No newline at end of file diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index d1d0f6b..7a40d0a 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -60,13 +60,13 @@ public static ServerInfo GetServerInfo(SqlConnection connection) { public static List GetIndexes(SqlConnection connection) { List it = new List(); - if (Settings.Options.ScanHeap) it.Add((int)IndexType.Heap); - if (Settings.Options.ScanClusteredIndex) it.Add((int)IndexType.Clustered); - if (Settings.Options.ScanNonClusteredIndex) it.Add((int)IndexType.NonClustered); + if (Settings.Options.ScanHeap) it.Add((int)IndexType.HEAP); + if (Settings.Options.ScanClusteredIndex) it.Add((int)IndexType.CLUSTERED); + if (Settings.Options.ScanNonClusteredIndex) it.Add((int)IndexType.NONCLUSTERED); if (Settings.ServerInfo.IsColumnstoreAvailable) { - if (Settings.Options.ScanClusteredColumnstore) it.Add((int)IndexType.ColumnstoreClustered); - if (Settings.Options.ScanNonClusteredColumnstore) it.Add((int)IndexType.ColumnstoreNonClustered); + if (Settings.Options.ScanClusteredColumnstore) it.Add((int)IndexType.CLUSTERED_COLUMNSTORE); + if (Settings.Options.ScanNonClusteredColumnstore) it.Add((int)IndexType.NONCLUSTERED_COLUMNSTORE); } List indexes = new List(); @@ -75,13 +75,13 @@ public static List GetIndexes(SqlConnection connection) { string lob = string.Empty; if (Settings.ServerInfo.IsOnlineRebuildAvailable) - lob = Settings.ServerInfo.MajorVersion == Server.Sql2008 ? Query.Lob2008 : Query.Lob2012Plus; + lob = Settings.ServerInfo.MajorVersion == ServerVersion.Sql2008 ? Query.Lob2008 : Query.Lob2012Plus; string indexStats = Settings.ServerInfo.IsAzure && connection.Database == Resources.DatamaseMaster ? Query.IndexStatsAzureMaster : Query.IndexStats; - string indexQuery = Settings.ServerInfo.MajorVersion == Server.Sql2008 ? Query.Index2008 : Query.Index2012Plus; + string indexQuery = Settings.ServerInfo.MajorVersion == ServerVersion.Sql2008 ? Query.Index2008 : Query.Index2012Plus; List excludeObjectMask = Settings.Options.ExcludeObject.Where(_ => _.Contains("%")).ToList(); List includeObjectMask = Settings.Options.IncludeObject.Where(_ => _.Contains("%")).ToList(); @@ -125,7 +125,7 @@ public static List GetIndexes(SqlConnection connection) { SqlCommand cmd = new SqlCommand(query, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@PreDescribeSize", SqlDbType.BigInt) { Value = Settings.Options.PreDescribeSize.PageSize() }); @@ -144,19 +144,17 @@ public static List GetIndexes(SqlConnection connection) { if ( _.Field(Resources.IsLobLegacy) || - indexType == IndexType.Heap + indexType == IndexType.CLUSTERED_COLUMNSTORE || - indexType == IndexType.ColumnstoreClustered - || - indexType == IndexType.ColumnstoreNonClustered + indexType == IndexType.NONCLUSTERED_COLUMNSTORE ) { isOnlineRebuild = false; } else { isOnlineRebuild = - Settings.ServerInfo.MajorVersion > Server.Sql2008 + Settings.ServerInfo.MajorVersion > ServerVersion.Sql2008 || - (Settings.ServerInfo.MajorVersion == Server.Sql2008 && !_.Field(Resources.IsLob)); + (Settings.ServerInfo.MajorVersion == ServerVersion.Sql2008 && !_.Field(Resources.IsLob)); } } @@ -188,7 +186,7 @@ public static List GetIndexes(SqlConnection connection) { DataCompression = (DataCompression)_.Field(Resources.DataCompression), Fragmentation = _.Field(Resources.Fragmentation), PageSpaceUsed = _.Field(Resources.PageSpaceUsed), - IsAllowReorganize = _.Field(Resources.IsAllowPageLocks) && indexType != IndexType.Heap, + IsAllowReorganize = _.Field(Resources.IsAllowPageLocks) && indexType != IndexType.HEAP, IsAllowOnlineRebuild = isOnlineRebuild, IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable && !_.Field(Resources.IsSparse), IndexColumns = _.Field(Resources.IndexColumns), @@ -203,7 +201,7 @@ public static List GetIndexes(SqlConnection connection) { SqlCommand cmd = new SqlCommand(Query.MissingIndex, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); @@ -228,15 +226,17 @@ public static List GetIndexes(SqlConnection connection) { SchemaName = _.Field(Resources.SchemaName), PagesCount = _.Field(Resources.PagesCount), RowsCount = _.Field(Resources.RowsCount), - FileGroupName = _.Field(Resources.FileGroupName), - IndexType = IndexType.MissingIndex, + FileGroupName = "PRIMARY", + IndexType = IndexType.MISSING_INDEX, IndexStats = _.Field(Resources.IndexStats), TotalReads = _.Field(Resources.TotalReads), TotalSeeks = _.Field(Resources.TotalSeeks), TotalScans = _.Field(Resources.TotalScans), LastUsage = _.Field(Resources.LastUsage), - DataCompression = DataCompression.None, + DataCompression = DataCompression.NONE, Fragmentation = _.Field(Resources.Fragmentation), + IsAllowOnlineRebuild = false, + IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable, IndexColumns = indexCols, IncludedColumns = _.Field(Resources.IncludedColumns) }; @@ -272,7 +272,7 @@ public static void GetColumnstoreFragmentation(SqlConnection connection, Index i SqlCommand cmd = new SqlCommand(Query.ColumnstoreIndexFragmentation, connection) { CommandTimeout = Settings.Options.CommandTimeout }; cmd.Parameters.Add(new SqlParameter("@ObjectID", SqlDbType.Int) { Value = index.ObjectId }); - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.ReorganizeThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); @@ -296,14 +296,18 @@ public static void GetColumnstoreFragmentation(SqlConnection connection, Index i } } - public static string FixIndex(SqlConnection connection, Index index) { - string sqlInfo = string.Format(index.IsColumnstore ? Query.AfterFixColumnstoreIndex : Query.AfterFixIndex, - index.ObjectId, index.IndexId, index.PartitionNumber, Settings.Options.ScanMode); - - string query = index.GetQuery(); - string sql = index.FixType == IndexOp.Disable - || index.FixType == IndexOp.Drop - || index.FixType == IndexOp.CreateIndex + public static string FixIndex(SqlConnection connection, Index ix) { + string sqlInfo = string.Format(ix.IsColumnstore ? Query.AfterFixColumnstoreIndex : Query.AfterFixIndex, + ix.ObjectId, ix.IndexId, ix.PartitionNumber, Settings.Options.ScanMode); + + string query = ix.GetQuery(); + string sql = ix.FixType == IndexOp.DISABLE_INDEX + || ix.FixType == IndexOp.DROP_INDEX + || ix.FixType == IndexOp.DROP_TABLE + || ix.FixType == IndexOp.CREATE_INDEX + || ix.FixType == IndexOp.UPDATE_STATISTICS_FULL + || ix.FixType == IndexOp.UPDATE_STATISTICS_RESAMPLE + || ix.FixType == IndexOp.UPDATE_STATISTICS_SAMPLE ? query : $"{query} \n {sqlInfo}"; @@ -315,35 +319,120 @@ public static string FixIndex(SqlConnection connection, Index index) { adapter.Fill(data); } catch (Exception ex) { - index.Error = ex.Message; + ix.Error = ex.Message; } - if (index.FixType == IndexOp.CreateIndex) { - index.Fragmentation = 0; + if (string.IsNullOrEmpty(ix.Error)) { + + if (ix.FixType == IndexOp.UPDATE_STATISTICS_FULL || ix.FixType == IndexOp.UPDATE_STATISTICS_RESAMPLE || ix.FixType == IndexOp.UPDATE_STATISTICS_SAMPLE) { + ix.IndexStats = DateTime.Now; + } + else if (ix.FixType == IndexOp.CREATE_INDEX) { + ix.IndexStats = DateTime.Now; + ix.Fragmentation = 0; + } + else if (ix.FixType == IndexOp.DISABLE_INDEX || ix.FixType == IndexOp.DROP_INDEX || ix.FixType == IndexOp.DROP_TABLE) { + ix.PagesCountBefore = ix.PagesCount; + ix.Fragmentation = 0; + ix.PagesCount = 0; + ix.UnusedPagesCount = 0; + ix.RowsCount = 0; + } + else if (data.Tables.Count == 1 && data.Tables[0].Rows.Count == 1) { + DataRow row = data.Tables[0].Rows[0]; + + ix.PagesCountBefore = ix.PagesCount - row.Field(Resources.PagesCount); + ix.Fragmentation = row.Field(Resources.Fragmentation); + ix.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); + ix.PagesCount = row.Field(Resources.PagesCount); + ix.UnusedPagesCount = row.Field(Resources.UnusedPagesCount); + ix.RowsCount = row.Field(Resources.RowsCount); + ix.DataCompression = ((DataCompression)row.Field(Resources.DataCompression)); + ix.IndexStats = row.Field(Resources.IndexStats); + } + } - else if (index.FixType == IndexOp.Disable || index.FixType == IndexOp.Drop) { - index.PagesCountBefore = index.PagesCount; - index.Fragmentation = 0; - index.PagesCount = 0; - index.UnusedPagesCount = 0; - index.RowsCount = 0; + + return query; + } + + public static void FindUnusedIndexes(List indexes) { + foreach (Index ix in indexes.Where( + _ => !_.IsPartitioned + && _.Warning == null + && _.TotalWrites > 50000 + && (_.TotalReads ?? 0) < _.TotalWrites / 10 + && (_.IndexType == IndexType.CLUSTERED || _.IndexType == IndexType.NONCLUSTERED || _.IndexType == IndexType.HEAP))) { + ix.Warning = WarningType.UNUSED; } - else if (data.Tables.Count == 1 && data.Tables[0].Rows.Count == 1) { - DataRow row = data.Tables[0].Rows[0]; + } + + public static void FindDublicateIndexes(List indexes) { + var data = indexes.Where(_ => !_.IsPartitioned + && _.Warning == null + && (_.IndexType == IndexType.CLUSTERED || _.IndexType == IndexType.NONCLUSTERED)) + .GroupBy(_ => new { _.DatabaseName, _.ObjectId }) + .Select(_ => new { _.Key.DatabaseName, _.Key.ObjectId, Indexes = _.ToList() }) + .Where(_ => _.Indexes.Count > 1); + + foreach (var item in data) { + foreach (Index a in item.Indexes) { + if (a.Warning != null) continue; + foreach (Index b in item.Indexes) { + if (a != b && b.Warning == null && a.IndexColumns == b.IndexColumns && a.IncludedColumns.Sort() == b.IncludedColumns.Sort()) + a.Warning = b.Warning = WarningType.DUBLICATE; + } + } - index.PagesCountBefore = index.PagesCount - row.Field(Resources.PagesCount); - index.Fragmentation = row.Field(Resources.Fragmentation); - index.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); - index.PagesCount = row.Field(Resources.PagesCount); - index.UnusedPagesCount = row.Field(Resources.UnusedPagesCount); - index.RowsCount = row.Field(Resources.RowsCount); - index.DataCompression = ((DataCompression)row.Field(Resources.DataCompression)); - index.IndexStats = row.Field(Resources.IndexStats); + foreach (Index a in item.Indexes) { + foreach (Index b in item.Indexes) { + if (a != b && b.Warning == null) { + int len = Math.Min(a.IndexColumns.Length, b.IndexColumns.Length); + if (a.IndexColumns == b.IndexColumns || a.IndexColumns.Left(len) == b.IndexColumns.Left(len)) + b.Warning = WarningType.OVERLAP; + } + } + } } + } - return query; + private static IndexOp CorrectIndexOp(IndexOp op, Index ix) { + if (ix.IndexType == IndexType.MISSING_INDEX) + return IndexOp.CREATE_INDEX; + if (op == IndexOp.REORGANIZE && (ix.IsAllowReorganize || ix.IsColumnstore)) + return IndexOp.REORGANIZE; + + if (op == IndexOp.REBUILD && !ix.IsColumnstore && ix.IsAllowCompression) { + if (Settings.Options.DataCompression == DataCompression.NONE && ix.DataCompression != DataCompression.NONE) + return IndexOp.REBUILD_NONE; + + if (Settings.Options.DataCompression == DataCompression.ROW) + return IndexOp.REBUILD_ROW; + + if (Settings.Options.DataCompression == DataCompression.PAGE) + return IndexOp.REBUILD_PAGE; + } + + if (op == IndexOp.UPDATE_STATISTICS_FULL || op == IndexOp.UPDATE_STATISTICS_RESAMPLE || op == IndexOp.UPDATE_STATISTICS_SAMPLE) { + if (!ix.IsPartitioned && (ix.IndexType == IndexType.CLUSTERED || ix.IndexType == IndexType.NONCLUSTERED)) { + return op; + } + } + + return Settings.Options.Online && ix.IsAllowOnlineRebuild && (op == IndexOp.REBUILD || op == IndexOp.REORGANIZE) + ? IndexOp.REBUILD_ONLINE + : IndexOp.REBUILD; } + + public static void UpdateFixType(List indexes) { + foreach (Index ix in indexes) { + ix.FixType = CorrectIndexOp(ix.Fragmentation < Settings.Options.SecondThreshold + ? Settings.Options.FirstOperation + : Settings.Options.SecondOperation, ix); + } + } + } -} +} \ No newline at end of file diff --git a/Server/ServerInfo.cs b/Server/ServerInfo.cs index 1f724e5..1e7af67 100644 --- a/Server/ServerInfo.cs +++ b/Server/ServerInfo.cs @@ -2,27 +2,30 @@ public class ServerInfo { - private string ProductLevel; - private string Edition; - public bool IsSysAdmin; - public string ServerVersion; - public string Version => $"SQL Server {ProductVersion} {ProductLevel} ({ServerVersion}) {Edition}"; + private readonly string ProductLevel; + private readonly string Edition; + public readonly bool IsSysAdmin; + private readonly string Version; + + public override string ToString() { + return $"SQL Server {ProductVersion} {ProductLevel} ({Version}) {Edition}"; + } public bool IsAzure => Edition == "SQL Azure"; private bool IsMaxEdititon => Edition.StartsWith("Enterprise") || Edition.StartsWith("Developer"); - public int MajorVersion; - private int MinorVersion; - private int PatchVersion; + public readonly int MajorVersion; + private readonly int MinorVersion; + private readonly int PatchVersion; public bool IsColumnstoreAvailable { get { if ( - (MajorVersion >= Server.Sql2014 && IsMaxEdititon) // 2014..2019 Enterprise/Developer/Evaluation + (MajorVersion >= ServerVersion.Sql2014 && IsMaxEdititon) // 2014..2019 Enterprise/Developer/Evaluation || - (MajorVersion == Server.Sql2016 && PatchVersion >= 4001) // 2016 SP1 + (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) // 2016 SP1 || - (MajorVersion >= Server.Sql2017) + (MajorVersion >= ServerVersion.Sql2017) ) { return true; } @@ -34,11 +37,11 @@ public bool IsColumnstoreAvailable { public bool IsCompressionAvailable { get { if ( - (MajorVersion >= Server.Sql2008 && IsMaxEdititon) + (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon) || - (MajorVersion == Server.Sql2016 && PatchVersion >= 4001) // 2016 SP1 + (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) // 2016 SP1 || - (MajorVersion >= Server.Sql2017) + (MajorVersion >= ServerVersion.Sql2017) ) { return true; } @@ -49,16 +52,16 @@ public bool IsCompressionAvailable { public bool IsOnlineRebuildAvailable { get { - if (MajorVersion >= Server.Sql2008 && IsMaxEdititon) + if (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon) { if ( - (MajorVersion == Server.Sql2014 && PatchVersion < 2370) // 2014 RTM + (MajorVersion == ServerVersion.Sql2014 && PatchVersion < 2370) // 2014 RTM || - (MajorVersion == Server.Sql2012 && ( - PatchVersion < 3437 // 2012 RTM..SP1 - || - PatchVersion.IsBetween(5058, 5521) // 2012 SP2 - ) + (MajorVersion == ServerVersion.Sql2012 && ( + PatchVersion < 3437 // 2012 RTM..SP1 + || + PatchVersion.IsBetween(5058, 5521) // 2012 SP2 + ) ) ) { return false; // https://sqlperformance.com/2014/06/sql-indexes/hotfix-sql-2012-rebuilds @@ -74,19 +77,19 @@ public bool IsOnlineRebuildAvailable { public string ProductVersion { get { switch (MajorVersion) { - case Server.Sql2005: + case ServerVersion.Sql2005: return "2005"; - case Server.Sql2008: + case ServerVersion.Sql2008: return MinorVersion == 50 ? "2008 R2" : "2008"; - case Server.Sql2012: + case ServerVersion.Sql2012: return "2012"; - case Server.Sql2014: + case ServerVersion.Sql2014: return "2014"; - case Server.Sql2016: + case ServerVersion.Sql2016: return "2016"; - case Server.Sql2017: + case ServerVersion.Sql2017: return "2017"; - case Server.Sql2019: + case ServerVersion.Sql2019: return "2019"; default: return "?"; @@ -97,13 +100,14 @@ public string ProductVersion { public ServerInfo(string productLevel, string edition, string serverVersion, bool isSysAdmin) { ProductLevel = productLevel; Edition = edition; - ServerVersion = serverVersion; + Version = serverVersion; IsSysAdmin = isSysAdmin; MajorVersion = int.Parse(serverVersion.Split('.')[0]); MinorVersion = int.Parse(serverVersion.Split('.')[1]); PatchVersion = int.Parse(serverVersion.Split('.')[2]); } + } -} +} \ No newline at end of file diff --git a/Settings/GlobalSettings.cs b/Settings/GlobalSettings.cs index dd5ae10..977c847 100644 --- a/Settings/GlobalSettings.cs +++ b/Settings/GlobalSettings.cs @@ -6,6 +6,7 @@ namespace SQLIndexManager { [Serializable] public class GlobalSettings { + [XmlElement] public Options Options = new Options(); @@ -14,6 +15,7 @@ public class GlobalSettings { [XmlIgnore] public List NetworkHosts = new List(); + } } diff --git a/Settings/Options.cs b/Settings/Options.cs index 65be9e1..a074ee7 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -6,14 +6,11 @@ namespace SQLIndexManager { [Serializable] public class Options { - public const string DEFAULT = "DEFAULT"; - public const string NONE = "NONE"; - public const string ON = "ON"; - public const string OFF = "OFF"; - public const string LIMITED = "LIMITED"; - - private int _reorganizeThreshold = 15; - private int _rebuildThreshold = 30; + + private IndexOp _firstOperation = IndexOp.REORGANIZE; + private IndexOp _secondOperation = IndexOp.REBUILD; + private int _firstThreshold = 15; + private int _secondThreshold = 30; private int _minIndexSize = 6; private int _preDescribeSize = 256; private int _maxIndexSize = 8192; @@ -23,15 +20,29 @@ public class Options { private int _fillFactor; private int _sampleStatsPercent = 100; private int _maxDuration = 1; - private string _abortAfterWait = NONE; - private string _dataCompression = DEFAULT; - private string _noRecompute = DEFAULT; - private string _scanMode = LIMITED; + private DataCompression _dataCompression; private List _includeSchemas = new List(); private List _excludeSchemas = new List(); private List _includeObject = new List(); private List _excludeObject = new List(); + public Options() { + SortInTempDb = true; + LobCompaction = true; + ScanHeap = true; + ScanClusteredIndex = true; + ScanNonClusteredIndex = true; + ScanClusteredColumnstore = true; + ScanNonClusteredColumnstore = true; + IgnorePermissions = true; + IgnoreReadOnlyFL = true; + + ScanMode = ScanMode.LIMITED; + DataCompression = DataCompression.DEFAULT; + NoRecompute = NoRecompute.DEFAULT; + AbortAfterWait = AbortAfterWait.NONE; + } + [XmlAttribute] public int ConnectionTimeout { get => _connectionTimeout; @@ -45,15 +56,27 @@ public int CommandTimeout { } [XmlAttribute] - public int ReorganizeThreshold { - get => _reorganizeThreshold; - set => UpdateThreshold(value, _rebuildThreshold); + public IndexOp FirstOperation { + get => _firstOperation; + set => _firstOperation = CheckAllowedIndexOp(value, _firstOperation); + } + + [XmlAttribute] + public IndexOp SecondOperation { + get => _secondOperation; + set => _secondOperation = CheckAllowedIndexOp(value, _secondOperation); } [XmlAttribute] - public int RebuildThreshold { - get => _rebuildThreshold; - set => UpdateThreshold(_reorganizeThreshold, value); + public int FirstThreshold { + get => _firstThreshold; + set => UpdateThreshold(value, _secondThreshold); + } + + [XmlAttribute] + public int SecondThreshold { + get => _secondThreshold; + set => UpdateThreshold(_firstThreshold, value); } [XmlAttribute] @@ -95,6 +118,9 @@ public int MaxIndexSize { [XmlAttribute] public bool Online; + [XmlAttribute] + public bool PadIndex; + [XmlAttribute] public bool SortInTempDb; @@ -159,41 +185,41 @@ public int MaxDuration { } [XmlAttribute] - public string NoRecompute { - get => _noRecompute; - set => _noRecompute = (value == DEFAULT || value == ON || value == OFF) ? value : _noRecompute; - } + public NoRecompute NoRecompute; [XmlAttribute] - public string DataCompression { + public DataCompression DataCompression { get => _dataCompression; - set => _dataCompression = (value == DEFAULT || value == NONE || value == "ROW" || value == "PAGE") ? value : _dataCompression; + set => _dataCompression = (value != DataCompression.COLUMNSTORE && value != DataCompression.COLUMNSTORE_ARCHIVE) ? value : _dataCompression; } [XmlAttribute] - public string AbortAfterWait { - get => _abortAfterWait; - set => _abortAfterWait = (value == NONE || value == "SELF" || value == "BLOCKERS") ? value : _abortAfterWait; - } + public AbortAfterWait AbortAfterWait; [XmlAttribute] - public string ScanMode { - get => _scanMode; - set => _scanMode = (value == LIMITED || value == "SAMPLED" || value == "DETAILED") ? value : _scanMode; + public ScanMode ScanMode; + + private IndexOp CheckAllowedIndexOp(IndexOp newValue, IndexOp oldValue) { + return (newValue == IndexOp.REBUILD + || newValue == IndexOp.REORGANIZE + || newValue == IndexOp.UPDATE_STATISTICS_FULL + || newValue == IndexOp.UPDATE_STATISTICS_RESAMPLE + || newValue == IndexOp.UPDATE_STATISTICS_SAMPLE + ) ? newValue : oldValue; } - private void UpdateThreshold(int reorganize, int rebuild) { - _reorganizeThreshold = reorganize.IsBetween(0, 99) ? reorganize : _reorganizeThreshold; - _rebuildThreshold = rebuild.IsBetween(1, 100) ? rebuild : _rebuildThreshold; + private void UpdateThreshold(int first, int second) { + _firstThreshold = first.IsBetween(0, 99) ? first : _firstThreshold; + _secondThreshold = second.IsBetween(1, 100) ? second : _secondThreshold; - if (_reorganizeThreshold > _rebuildThreshold) - _rebuildThreshold = _reorganizeThreshold + 1; + if (_firstThreshold > _secondThreshold) + _secondThreshold = _firstThreshold + 1; - if (_reorganizeThreshold == _rebuildThreshold) { - if (_reorganizeThreshold > 0) - _reorganizeThreshold -= 1; + if (_firstThreshold == _secondThreshold) { + if (_firstThreshold > 0) + _firstThreshold -= 1; else - _rebuildThreshold += 1; + _secondThreshold += 1; } } @@ -213,17 +239,6 @@ private void UpdateSize(int min, int pre, int max) { } } - public Options() { - SortInTempDb = true; - LobCompaction = true; - ScanHeap = true; - ScanClusteredIndex = true; - ScanNonClusteredIndex = true; - ScanClusteredColumnstore = true; - ScanNonClusteredColumnstore = true; - IgnorePermissions = true; - IgnoreReadOnlyFL = true; - } } -} +} \ No newline at end of file diff --git a/Settings/Settings.cs b/Settings/Settings.cs index 3fe2308..213e9c6 100644 --- a/Settings/Settings.cs +++ b/Settings/Settings.cs @@ -9,6 +9,7 @@ namespace SQLIndexManager { public class Settings { + private static GlobalSettings _current; private static Host _activeHost; private static readonly Destructor _finalise = new Destructor(); @@ -86,7 +87,7 @@ public static void Save() { using (FileStream writer = File.OpenWrite(SettingFileName)) { _current.Hosts.RemoveAll(s => !s.IsUserConnection); _current.Hosts.ForEach(s => { - if (s.AuthType == AuthTypes.SqlServer && s.Password != null) { + if (s.AuthType == AuthTypes.SQLSERVER && s.Password != null) { s.Password = s.SavePassword ? AES.Encrypt(s.Password) : null; @@ -113,7 +114,7 @@ private static void Load() { _current.Hosts.RemoveAll(_ => _.Server == null); _current.Hosts.ForEach(s => { s.IsUserConnection = true; - if (s.AuthType == AuthTypes.SqlServer && !string.IsNullOrEmpty(s.Password)) { + if (s.AuthType == AuthTypes.SQLSERVER && !string.IsNullOrEmpty(s.Password)) { s.Password = AES.Decrypt(s.Password); s.SavePassword = true; } @@ -150,6 +151,7 @@ private static void Load() { _current.Hosts.Add(new Host() { Server = Environment.MachineName }); } } + } } \ No newline at end of file diff --git a/Types/AbortAfterWait.cs b/Types/AbortAfterWait.cs new file mode 100644 index 0000000..b2d95f5 --- /dev/null +++ b/Types/AbortAfterWait.cs @@ -0,0 +1,9 @@ +namespace SQLIndexManager { + + public enum AbortAfterWait { + NONE = 0, + SELF = 1, + BLOCKERS = 2 + } + +} diff --git a/Types/AuthTypes.cs b/Types/AuthTypes.cs index a44901a..ce6b818 100644 --- a/Types/AuthTypes.cs +++ b/Types/AuthTypes.cs @@ -1,8 +1,8 @@ namespace SQLIndexManager { public enum AuthTypes { - Windows = 0, - SqlServer = 1 + WINDOWS = 0, + SQLSERVER = 1 } } diff --git a/Types/DataCompression.cs b/Types/DataCompression.cs index c49023a..ef04f34 100644 --- a/Types/DataCompression.cs +++ b/Types/DataCompression.cs @@ -1,22 +1,12 @@ -using System.ComponentModel; - -namespace SQLIndexManager { +namespace SQLIndexManager { public enum DataCompression { - [Description("NONE")] - None = 0, - - [Description("ROW")] - Row = 1, - - [Description("PAGE")] - Page = 2, - - [Description("COLUMNSTORE")] - Columnstore = 3, - - [Description("COLUMNSTORE_ARCHIVE")] - ColumnstoreArchive = 4 + DEFAULT = -1, + NONE = 0, + ROW = 1, + PAGE = 2, + COLUMNSTORE = 3, + COLUMNSTORE_ARCHIVE = 4 } } diff --git a/Types/FixOp.cs b/Types/FixOp.cs deleted file mode 100644 index 845c453..0000000 --- a/Types/FixOp.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace SQLIndexManager { - - public class FixOp { - public IndexOp Fix { get; set; } - public string Name { get; set; } - } - -} diff --git a/Types/IndexOp.cs b/Types/IndexOp.cs index a37abe8..2447f56 100644 --- a/Types/IndexOp.cs +++ b/Types/IndexOp.cs @@ -4,52 +4,52 @@ namespace SQLIndexManager { public enum IndexOp { [Description("REBUILD")] - Rebuild = 0, + REBUILD = 0, [Description("REBUILD (COMPRESSION = ROW)")] - RebuildRow = 1, + REBUILD_ROW = 1, [Description("REBUILD (COMPRESSION = PAGE)")] - RebuildPage = 2, + REBUILD_PAGE = 2, [Description("REBUILD (COMPRESSION = NONE)")] - RebuildNone = 3, + REBUILD_NONE = 3, [Description("REBUILD (COMPRESSION = COLUMNSTORE)")] - RebuildColumnstore = 4, + REBUILD_COLUMNSTORE = 4, [Description("REBUILD (COMPRESSION = COLUMNSTORE_ARCHIVE)")] - RebuildColumnstoreArchive = 5, + REBUILD_COLUMNSTORE_ARCHIVE = 5, [Description("REORGANIZE")] - Reorganize = 6, + REORGANIZE = 6, [Description("REORGANIZE (COMPRESS_ALL_ROW_GROUPS = ON)")] - ReorganizeCompressAllRowGroup = 7, + REORGANIZE_COMPRESS_ALL_ROW_GROUPS = 7, [Description("REBUILD (ONLINE = ON)")] - RebuildOnline = 8, - - [Description("REBUILD (FILLFACTOR = 100)")] - RebuildFillFactorZero = 9, + REBUILD_ONLINE = 8, [Description("UPDATE STATISTICS SAMPLE")] - UpdateStatsSample = 10, + UPDATE_STATISTICS_SAMPLE = 9, [Description("UPDATE STATISTICS RESAMPLE")] - UpdateStatsResample = 11, + UPDATE_STATISTICS_RESAMPLE = 10, [Description("UPDATE STATISTICS FULL")] - UpdateStatsFull = 12, + UPDATE_STATISTICS_FULL = 11, - [Description("DISABLE")] - Disable = 13, + [Description("DISABLE INDEX")] + DISABLE_INDEX = 12, - [Description("DROP")] - Drop = 14, + [Description("DROP INDEX")] + DROP_INDEX = 13, [Description("CREATE INDEX")] - CreateIndex = 15 + CREATE_INDEX = 14, + + [Description("DROP TABLE")] + DROP_TABLE = 15 } } diff --git a/Types/IndexType.cs b/Types/IndexType.cs index 204ad6e..923460a 100644 --- a/Types/IndexType.cs +++ b/Types/IndexType.cs @@ -1,25 +1,12 @@ -using System.ComponentModel; - -namespace SQLIndexManager { +namespace SQLIndexManager { public enum IndexType { - [Description("MISSING INDEX")] - MissingIndex = -1, - - [Description("HEAP")] - Heap = 0, - - [Description("CLUSTERED")] - Clustered = 1, - - [Description("NONCLUSTERED")] - NonClustered = 2, - - [Description("CLUSTERED COLUMNSTORE")] - ColumnstoreClustered = 5, - - [Description("NONCLUSTERED COLUMNSTORE")] - ColumnstoreNonClustered = 6 + MISSING_INDEX = -1, + HEAP = 0, + CLUSTERED = 1, + NONCLUSTERED = 2, + CLUSTERED_COLUMNSTORE = 5, + NONCLUSTERED_COLUMNSTORE = 6 } } diff --git a/Types/NoRecompute.cs b/Types/NoRecompute.cs new file mode 100644 index 0000000..2b630e7 --- /dev/null +++ b/Types/NoRecompute.cs @@ -0,0 +1,9 @@ +namespace SQLIndexManager { + + public enum NoRecompute { + DEFAULT = 0, + ON = 1, + OFF = 2 + } + +} diff --git a/Types/ScanMode.cs b/Types/ScanMode.cs new file mode 100644 index 0000000..1a55b2b --- /dev/null +++ b/Types/ScanMode.cs @@ -0,0 +1,9 @@ +namespace SQLIndexManager { + + public enum ScanMode { + LIMITED = 0, + SAMPLED = 1, + DETAILED = 2 + } + +} diff --git a/Server/Server.cs b/Types/ServerVersion.cs similarity index 88% rename from Server/Server.cs rename to Types/ServerVersion.cs index 956af28..be78097 100644 --- a/Server/Server.cs +++ b/Types/ServerVersion.cs @@ -1,6 +1,6 @@ namespace SQLIndexManager { - public static class Server { + public static class ServerVersion { public const int Sql2005 = 9; public const int Sql2008 = 10; public const int Sql2012 = 11; diff --git a/Types/WarningType.cs b/Types/WarningType.cs index 14690d5..a01b845 100644 --- a/Types/WarningType.cs +++ b/Types/WarningType.cs @@ -1,9 +1,9 @@ namespace SQLIndexManager { public enum WarningType { - Low = 1, - Middle = 2, - High = 3 + UNUSED = 1, + OVERLAP = 2, + DUBLICATE = 3 } } From 03edfc8944d968da3c7d1be15b55a534da3573db Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 31 Aug 2019 11:31:30 +0300 Subject: [PATCH 04/53] Update readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f23ff1..99c1669 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ You can download .zip file with the latest build of the master branch from [Rele ## Screenshots ![SQL Index Manager](https://habrastorage.org/webt/jw/8s/vk/jw8svkqqg0ybvtdgt1cdoiulxsm.png) -![SQL Index Manager](https://habrastorage.org/webt/9d/gm/uf/9dgmufdo4-bnbhqrx7c8jcs5358.png) +![SQL Index Manager](https://habrastorage.org/webt/oq/rf/br/oqrfbrezv3yay64mj4gzpt9cjei.png) ![SQL Index Manager](https://habrastorage.org/webt/3x/iz/4n/3xiz4nf8-wneuchgmovaceynny0.png) ## Command Line @@ -97,4 +97,4 @@ This switch is used to specify the predescribe index size in MB. Overrides globa **/maxindexsize 8096** -This switch is used to specify the maximun index size in MB. Overrides global option (8 GB) \ No newline at end of file +This switch is used to specify the maximun index size in MB. Overrides global option (8 GB) From 466346ebd01d3f11cd0cb7f1330d09b4e87d1f9b Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 31 Aug 2019 12:28:27 +0300 Subject: [PATCH 05/53] Bugfix in UI --- Forms/MainBox.Designer.cs | 54 +++++++++++++++++++-------------------- Forms/MainBox.resx | 44 +++++++++++++++---------------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index ceeec4e..c8481f8 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -71,10 +71,12 @@ private void InitializeComponent() { this.gridControl1 = new DevExpress.XtraGrid.GridControl(); this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(); this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); + this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); this.labelDatabase = new DevExpress.XtraBars.BarStaticItem(); this.labelIndex = new DevExpress.XtraBars.BarStaticItem(); + this.labelError = new DevExpress.XtraBars.BarStaticItem(); this.buttonStopScan = new DevExpress.XtraBars.BarButtonItem(); this.buttonStopFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonLog = new DevExpress.XtraBars.BarButtonItem(); @@ -109,8 +111,6 @@ private void InitializeComponent() { this.colDuration = new DevExpress.XtraGrid.Columns.GridColumn(); this.colMessage = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemMemoEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); - this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); - this.labelError = new DevExpress.XtraBars.BarStaticItem(); Fragmentation = new DevExpress.XtraGrid.Columns.GridColumn(); PagesCount = new DevExpress.XtraGrid.Columns.GridColumn(); RowsCount = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -678,7 +678,7 @@ private void InitializeComponent() { this.Warning.AppearanceCell.Options.UseTextOptions = true; this.Warning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; this.Warning.Caption = "Warning"; - this.Warning.FieldName = "Error"; + this.Warning.FieldName = "Warning"; this.Warning.MaxWidth = 90; this.Warning.MinWidth = 90; this.Warning.Name = "Warning"; @@ -1033,6 +1033,18 @@ private void InitializeComponent() { this.Duration.OptionsFilter.AllowFilter = false; this.Duration.Width = 70; // + // Error + // + this.Error.Caption = "Error Message"; + this.Error.FieldName = "Error"; + this.Error.MaxWidth = 300; + this.Error.MinWidth = 120; + this.Error.Name = "Error"; + this.Error.OptionsColumn.AllowEdit = false; + this.Error.OptionsColumn.AllowFocus = false; + this.Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; + this.Error.Width = 120; + // // gridToolTipController // this.gridToolTipController.GetActiveObjectInfo += new DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventHandler(this.GetActiveObjectInfo); @@ -1075,6 +1087,16 @@ private void InitializeComponent() { this.labelIndex.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelIndex.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // + // labelError + // + this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelError.Caption = "0"; + this.labelError.Id = 29; + this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.Image"))); + this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.LargeImage"))); + this.labelError.Name = "labelError"; + this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // // buttonStopScan // this.buttonStopScan.Caption = "Stop"; @@ -1287,8 +1309,8 @@ private void InitializeComponent() { // this.buttonRestoreDefaultLayout.Caption = "Restore Layout"; this.buttonRestoreDefaultLayout.Id = 28; - this.buttonRestoreDefaultLayout.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barButtonItem1.ImageOptions.Image"))); - this.buttonRestoreDefaultLayout.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barButtonItem1.ImageOptions.LargeImage"))); + this.buttonRestoreDefaultLayout.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonRestoreDefaultLayout.ImageOptions.Image"))); + this.buttonRestoreDefaultLayout.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonRestoreDefaultLayout.ImageOptions.LargeImage"))); this.buttonRestoreDefaultLayout.Name = "buttonRestoreDefaultLayout"; this.buttonRestoreDefaultLayout.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.RestoreDefaultLayout); // @@ -1476,28 +1498,6 @@ private void InitializeComponent() { // this.repositoryItemMemoEdit1.Name = "repositoryItemMemoEdit1"; // - // Error - // - this.Error.Caption = "Error Message"; - this.Error.FieldName = "Error"; - this.Error.MaxWidth = 300; - this.Error.MinWidth = 120; - this.Error.Name = "Error"; - this.Error.OptionsColumn.AllowEdit = false; - this.Error.OptionsColumn.AllowFocus = false; - this.Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; - this.Error.Width = 120; - // - // labelError - // - this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelError.Caption = "0"; - this.labelError.Id = 29; - this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("barStaticItem1.ImageOptions.Image"))); - this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("barStaticItem1.ImageOptions.LargeImage"))); - this.labelError.Name = "labelError"; - this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - // // MainBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 0d2670b..e6c1455 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -252,30 +252,30 @@ gg== - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEXRFWHRUaXRsZQBCdWc7UmVw - b3J0O7GwFz0AAADmSURBVDhPnZEhDgIxEEUXsx61J0ChgOwNsGgEEsU1SLgCWE5AgkMQwjEwYFeBxZCU - +c2f0pbSbBBvZzr/z98mLYwxlst8HDMQumTImUP3cgFnoU/QB3qbgJdwIugD/SuAIUZFqQ+ewT3lAa7x - xKnQE648gxtn0MT62YkDrEFoWH10Bs/PALClMQU06wsCJsvDyDM9vT7GadhxAZ6hFcfFzNYggLeo1ZSh - 1hsHAQJqxT5HpTt+gKKvkMO+AogDdHnNmmLD6p7SfhiiQkfY8+yDGTT9UTJAb1MKK2FH0Jf0OW8Q8B+m - eAMPClrQB44otAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAOZJ + REFUOE+dkSEOAjEQRRezHrUnQKGA7A2waAQSxTVIuAJYTkCCQxDCMTBgV4HFkJT5zZ/SltJsEG9nOv/P + 3yYtjDGWy3wcMxC6ZMiZQ/dyAWehT9AHepuAl3Ai6AP9K4AhRkWpD57BPeUBrvHEqdATrjyDG2fQxPrZ + iQOsQWhYfXQGz88AsKUxBTTrCwImy8PIMz29PsZp2HEBnqEVx8XM1iCAt6jVlKHWGwcBAmrFPkelO36A + oq+Qw74CiAN0ec2aYsPqntJ+GKJCR9jz7IMZNP1RMkBvUworYUfQl/Q5bxDwH6Z4Aw8KWtAHjii0AAAA + AElFTkSuQmCC - + - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEXRFWHRUaXRsZQBCdWc7UmVw - b3J0O7GwFz0AAAHOSURBVFhHxZYxTsNAEEVTIBJBwz24Bm2g4QbcgDvQAB1IVLkDlLR0QLoUcAXoQAIh - gWT+t2aj2d1v7NjGKZ5iv50/M3ESKaOiKNaKlEMi5fPRXh074Mrd85rO10SoOURK1cCxCR5A4Ryv7wHP - fO0SNYdIqRo4jgEHpgsQnvnaJWoOkVI1cMxB1QKPzkWoOURKC5VNhf8IZ4JPkPYKZ5EPSMniEBR+7Qv4 - jyCFZ2mvcBb5gJTEBad2Pwan4Nu8gmdnYGyZqXnc6jlSkhA0DsFt4v6CtcwsXdo/ICUC0fY9wF5ylpQs - NvpYohxO1CwpQwBsgFegGjeBWfZYbQFioQOgGq8Ce8gZJBMo7vOzTyl/UZ7ohgVJ4D+IlkgXiArBS+La - 8AaiN+ZnVi0Qvrk/znUherp+ZtUCvCbvzrWFTyD0K52fWbmA3S+ca8vCetUvEGCxvc5CqAMz3zNFSsIA - OLEmXWAPOYNIyQDo8ydZfqnVrEyw0AKqURfkEplgkQuRfXCduCbcAGa9y+ZlgkUuUG4NtsCduSawdhsw - 659mNi8TFsoCuJ4A/tup+0d0DiZ1/QKZ8IGKs11wAZ7Al8HrS8CzKGO55gsMjZRDIuVwFKNfUcI4nBvN - fbMAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAc5J + REFUWEfFljFOw0AQRVMgEkHDPbgGbaDhBtyAO9AAHUhUuQOUtHRAuhRwBehAAiGBZP63ZqPZ3W/s2MYp + nmK/nT8zcRIpo6Io1oqUQyLl89FeHTvgyt3zms7XRKg5RErVwLEJHkDhHK/vAc987RI1h0ipGjiOAQem + CxCe+dolag6RUjVwzEHVAo/ORag5REoLlU2F/whngk+Q9gpnkQ9IyeIQFH7tC/iPIIVnaa9wFvmAlMQF + p3Y/Bqfg27yCZ2dgbJmpedzqOVKSEDQOwW3i/oK1zCxd2j8gJQLR9j3AXnKWlCw2+liiHE7ULClDAGyA + V6AaN4FZ9lhtAWKhA6AarwJ7yBkkEyju87NPKX9RnuiGBUngP4iWSBeICsFL4trwBqI35mdWLRC+uT/O + dSF6un5m1QK8Ju/OtYVPIPQrnZ9ZuYDdL5xry8J61S8QYLG9zkKoAzPfM0VKwgA4sSZdYA85g0jJAOjz + J1l+qdWsTLDQAqpRF+QSmWCRC5F9cJ24JtwAZr3L5mWCRS5Qbg22wJ25JrB2GzDrn2Y2LxMWygK4ngD+ + 26n7R3QOJnX9ApnwgYqzXXABnsCXwetLwLMoY7nmCwyNlEMi5XAUo19RwjicG819swAAAABJRU5ErkJg + gg== @@ -549,7 +549,7 @@ 2mhFPI4AAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAEdyaWQ7Q3VzdG9taXo7T3B0aW9u @@ -559,7 +559,7 @@ hdlQjGAOeOd2OEnA6L9wBTsrjkMDid01rXMQtAwkxYFvUBBrlPTuDd2QVs5xgNpsAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAEdyaWQ7Q3VzdG9taXo7T3B0aW9u From 8f194b982f69d81309a6087dd494efaeb3d5b5ec Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 31 Aug 2019 12:58:17 +0300 Subject: [PATCH 06/53] Update readme --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 99c1669..e93315a 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ This tool lets you quickly and easily find out the status of your indexes and discover which databases need maintenance. You can do maintenance through the UI, or generate a T-SQL script to run in SSMS. +[SQL Index Manager – Free GUI Tool for Index Maintenance on SQL Server and Azure](https://www.codeproject.com/Articles/5162340/SQL-Index-Manager-Free-GUI-Tool-for-Index-Maintena) + ## Key Features * An incredibly fast describe engine @@ -27,10 +29,6 @@ You can do maintenance through the UI, or generate a T-SQL script to run in SSMS You can download .zip file with the latest build of the master branch from [Releases](https://github.com/sergeysyrovatchenko/SQLIndexManager/releases) -## Topics - -[SQL Index Manager – Free GUI Tool for Index Maintenance on SQL Server and Azure](https://www.codeproject.com/Articles/5162340/SQL-Index-Manager-Free-GUI-Tool-for-Index-Maintena) - ## Screenshots ![SQL Index Manager](https://habrastorage.org/webt/jw/8s/vk/jw8svkqqg0ybvtdgt1cdoiulxsm.png) From 26ab1529a719988e4d2f0003b0bb0aa184e3e7e5 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 8 Sep 2019 10:41:25 +0300 Subject: [PATCH 07/53] Fix issue with Azure --- Forms/MainBox.Designer.cs | 2 +- Forms/MainBox.cs | 6 ++-- Forms/MainBox.resx | 49 ++++++++++++-------------- Properties/AssemblyInfo.cs | 4 +-- Server/QueryEngine.cs | 2 +- Server/ServerInfo.cs | 72 +++++++------------------------------- Types/WarningType.cs | 2 +- 7 files changed, 43 insertions(+), 94 deletions(-) diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index c8481f8..7a75603 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -1052,8 +1052,8 @@ private void InitializeComponent() { // statusBar // this.statusBar.ItemLinks.Add(this.labelDatabase); - this.statusBar.ItemLinks.Add(this.labelIndex); this.statusBar.ItemLinks.Add(this.labelError); + this.statusBar.ItemLinks.Add(this.labelIndex); this.statusBar.ItemLinks.Add(this.buttonStopScan); this.statusBar.ItemLinks.Add(this.buttonStopFix); this.statusBar.ItemLinks.Add(this.buttonLog); diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 6e6485f..4562f9f 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -474,9 +474,7 @@ private void ShowConnectionBox() { #region Grid Methods private string GetFixChanges() { - List dv = (List)gridView1.DataSource; - List fix = dv.Where(_ => _.IsSelected).ToList(); - + List fix = ((List)gridView1.DataSource).Where(_ => _.IsSelected).ToList(); StringBuilder sb = new StringBuilder(); var groupList = fix.GroupBy(u => u.DatabaseName).Select(grp => grp.ToList()).ToList(); @@ -681,7 +679,7 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { item.Visible = false; } - if (e.HitInfo.Column.Caption == @"Selection") + if (e.HitInfo.Column == null || e.HitInfo.Column.Caption == @"Selection") return; string colName = (e.HitInfo.Column.Fixed == FixedStyle.None) ? "Freeze column" : "Unfreeze column"; diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index e6c1455..104ff09 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -230,6 +230,29 @@ xW2nOYfW7UoCUNxpzqHXG6j+EVT/ElY/w7XcSq4fImat3a4kgIr5DrzLo1zL0J9iepnBrMFnuJcXeZI7 uZFLuZBpxGsynlFDLT30/sz5X2d47DTncHS7kgAqHs9wPMPxDMd/w+pniNxnaHfZkOJoLkvhnPqeIT30 MuN7nttlw5JsWJINywmTE1tx9TxqmfzzAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w + G1xZEQAAANNJREFUOE+N0jEKwlAQBNB4Gu8gWNqLkgN4AxG8QQo77e1tbG0sRe9g4RVEFLQR8TsbfnR2 + +AkWr9jszIZAshDC1+UwqQxgB3e4wRZ6UO6544YYmENIeMMUXMcNWOYxXMeOdLmjB/YUrrPmjh54SDjl + xB09cJVwypE7emAj4ZQld/RAB14UVvaJbe7oATOCJ2jZ/ok+uI4bbBmtQA/MoNxzxw1VABagB8bw94FG + 3HEDh4qiCIx33HEDh5pwxw0cwltzOEdD3nHHDRwyKLaMPv91QvYBcM7IysnHHlAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w + G1xZEQAAAYNJREFUWEfF1UFOAkEUhGE4DXgKEyV6H88wZzDKkr1ncGP0CibiAXShiBtZtfUMZXraX5SG + zCy+hFS6qhkSYJBS6hWGXcLQXm7OyJFcyoOs1uJ1ZMfyo0PbhqEVQ2O5lvSHOBNnv7u0bRhaNnIoS6EL + SZyNzl7eQDzNQuiiTaLz9UnQtmFoKg/lTuiC/4jukLYNQ1N5ko3VmtC2YWgqT4uxGlPaNgxN5XkxVmNO + 24ahqRzfcRrdxoq2DUNTeZuv3m92egP3xViNR9o2DE3lWTFWY0bbhqGpfFqM1TihbcPQVO79hyjs8lN8 + ILhtGFqU13r9M7L4JOgysve/Y/sQujAXZ1o92jYMrRySZ6FLc0/S6tG2YWjlkNwKXZqLM60ebRuGVg7J + udCluQtp9WjbMLRyqBZtG4ZGY03TpE2oQ9uGodFYDdo2DI3G9JRv5VNn3qlD24ah0VgN2jYMjcb0lGN5 + zZ7aImv9AhptG4ZGY0EXjeRKlmvxekRnA20bhl3CsDtp8AnIuG9GnlXR/AAAAABJRU5ErkJggg== @@ -250,32 +273,6 @@ Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAOZJ - REFUOE+dkSEOAjEQRRezHrUnQKGA7A2waAQSxTVIuAJYTkCCQxDCMTBgV4HFkJT5zZ/SltJsEG9nOv/P - 3yYtjDGWy3wcMxC6ZMiZQ/dyAWehT9AHepuAl3Ai6AP9K4AhRkWpD57BPeUBrvHEqdATrjyDG2fQxPrZ - iQOsQWhYfXQGz88AsKUxBTTrCwImy8PIMz29PsZp2HEBnqEVx8XM1iCAt6jVlKHWGwcBAmrFPkelO36A - oq+Qw74CiAN0ec2aYsPqntJ+GKJCR9jz7IMZNP1RMkBvUworYUfQl/Q5bxDwH6Z4Aw8KWtAHjii0AAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAc5J - REFUWEfFljFOw0AQRVMgEkHDPbgGbaDhBtyAO9AAHUhUuQOUtHRAuhRwBehAAiGBZP63ZqPZ3W/s2MYp - nmK/nT8zcRIpo6Io1oqUQyLl89FeHTvgyt3zms7XRKg5RErVwLEJHkDhHK/vAc987RI1h0ipGjiOAQem - CxCe+dolag6RUjVwzEHVAo/ORag5REoLlU2F/whngk+Q9gpnkQ9IyeIQFH7tC/iPIIVnaa9wFvmAlMQF - p3Y/Bqfg27yCZ2dgbJmpedzqOVKSEDQOwW3i/oK1zCxd2j8gJQLR9j3AXnKWlCw2+liiHE7ULClDAGyA - V6AaN4FZ9lhtAWKhA6AarwJ7yBkkEyju87NPKX9RnuiGBUngP4iWSBeICsFL4trwBqI35mdWLRC+uT/O - dSF6un5m1QK8Ju/OtYVPIPQrnZ9ZuYDdL5xry8J61S8QYLG9zkKoAzPfM0VKwgA4sSZdYA85g0jJAOjz - J1l+qdWsTLDQAqpRF+QSmWCRC5F9cJ24JtwAZr3L5mWCRS5Qbg22wJ25JrB2GzDrn2Y2LxMWygK4ngD+ - 26n7R3QOJnX9ApnwgYqzXXABnsCXwetLwLMoY7nmCwyNlEMi5XAUo19RwjicG819swAAAABJRU5ErkJg - gg== diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 853d33d..5c015f8 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.51")] -[assembly: AssemblyFileVersion("1.0.0.51")] +[assembly: AssemblyVersion("1.0.0.52")] +[assembly: AssemblyFileVersion("1.0.0.52")] diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 7a40d0a..526c79f 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -380,7 +380,7 @@ public static void FindDublicateIndexes(List indexes) { if (a.Warning != null) continue; foreach (Index b in item.Indexes) { if (a != b && b.Warning == null && a.IndexColumns == b.IndexColumns && a.IncludedColumns.Sort() == b.IncludedColumns.Sort()) - a.Warning = b.Warning = WarningType.DUBLICATE; + a.Warning = b.Warning = WarningType.DUPLICATE; } } diff --git a/Server/ServerInfo.cs b/Server/ServerInfo.cs index 1e7af67..8802c48 100644 --- a/Server/ServerInfo.cs +++ b/Server/ServerInfo.cs @@ -7,72 +7,26 @@ public class ServerInfo { public readonly bool IsSysAdmin; private readonly string Version; - public override string ToString() { - return $"SQL Server {ProductVersion} {ProductLevel} ({Version}) {Edition}"; - } - - public bool IsAzure => Edition == "SQL Azure"; - private bool IsMaxEdititon => Edition.StartsWith("Enterprise") || Edition.StartsWith("Developer"); - public readonly int MajorVersion; private readonly int MinorVersion; private readonly int PatchVersion; - public bool IsColumnstoreAvailable { - get { - if ( - (MajorVersion >= ServerVersion.Sql2014 && IsMaxEdititon) // 2014..2019 Enterprise/Developer/Evaluation - || - (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) // 2016 SP1 - || - (MajorVersion >= ServerVersion.Sql2017) - ) { - return true; - } - - return false; - } - } - - public bool IsCompressionAvailable { - get { - if ( - (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon) - || - (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) // 2016 SP1 - || - (MajorVersion >= ServerVersion.Sql2017) - ) { - return true; - } - - return false; - } - } + public bool IsAzure => Edition == "SQL Azure"; + private bool IsMaxEdititon => Edition.StartsWith("Enterprise") || Edition.StartsWith("Developer"); + public override string ToString() => $"SQL Server {ProductVersion} {ProductLevel} ({Version}) {Edition}"; - public bool IsOnlineRebuildAvailable { - get { - if (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon) - { - if ( - (MajorVersion == ServerVersion.Sql2014 && PatchVersion < 2370) // 2014 RTM - || - (MajorVersion == ServerVersion.Sql2012 && ( - PatchVersion < 3437 // 2012 RTM..SP1 - || - PatchVersion.IsBetween(5058, 5521) // 2012 SP2 - ) - ) - ) { - return false; // https://sqlperformance.com/2014/06/sql-indexes/hotfix-sql-2012-rebuilds - } + public bool IsColumnstoreAvailable => IsAzure + || (MajorVersion >= ServerVersion.Sql2014 && IsMaxEdititon) + || (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) + || MajorVersion >= ServerVersion.Sql2017; - return true; - } + public bool IsCompressionAvailable => IsAzure + || (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon) + || (MajorVersion == ServerVersion.Sql2016 && PatchVersion >= 4001) + || MajorVersion >= ServerVersion.Sql2017; - return false; - } - } + public bool IsOnlineRebuildAvailable => IsAzure + || (MajorVersion >= ServerVersion.Sql2008 && IsMaxEdititon); public string ProductVersion { get { diff --git a/Types/WarningType.cs b/Types/WarningType.cs index a01b845..f29bb5b 100644 --- a/Types/WarningType.cs +++ b/Types/WarningType.cs @@ -3,7 +3,7 @@ public enum WarningType { UNUSED = 1, OVERLAP = 2, - DUBLICATE = 3 + DUPLICATE = 3 } } From 0b48dd4b6ca7e47ff43b53b7175f6641895e984c Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 3 Nov 2019 11:47:42 +0200 Subject: [PATCH 08/53] Cannot insert duplicate key when scan Azure SQL Database --- Properties/AssemblyInfo.cs | 4 ++-- Server/Query.cs | 36 ++++++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 5c015f8..44aa777 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.52")] -[assembly: AssemblyFileVersion("1.0.0.52")] +[assembly: AssemblyVersion("1.0.0.53")] +[assembly: AssemblyFileVersion("1.0.0.53")] diff --git a/Server/Query.cs b/Server/Query.cs index 495e4e9..6b39690 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -45,15 +45,15 @@ DROP TABLE #Indexes CREATE TABLE #Indexes ( ObjectID INT NOT NULL , IndexID INT NOT NULL - , IndexName SYSNAME NULL , PagesCount BIGINT NOT NULL , UnusedPagesCount BIGINT NOT NULL , PartitionNumber INT NOT NULL , RowsCount BIGINT NOT NULL + , DataCompression TINYINT NOT NULL + , IndexName SYSNAME NULL , IndexType TINYINT NOT NULL , IsAllowPageLocks BIT NOT NULL , DataSpaceID INT NOT NULL - , DataCompression TINYINT NOT NULL , IsUnique BIT NOT NULL , IsPK BIT NOT NULL , FillFactorValue INT NOT NULL @@ -62,24 +62,36 @@ ObjectID INT NOT NULL ) INSERT INTO #Indexes -SELECT ObjectID = i.[object_id] - , IndexID = i.index_id +SELECT p.ObjectID + , p.IndexID + , p.PagesCount + , p.UnusedPagesCount + , p.PartitionNumber + , p.RowsCount + , p.DataCompression , IndexName = i.[name] - , PagesCount = a.ReservedPages - , UnusedPagesCount = CASE WHEN ABS(a.ReservedPages - a.UsedPages) > 32 THEN a.ReservedPages - a.UsedPages ELSE 0 END - , PartitionNumber = p.[partition_number] - , RowsCount = ISNULL(p.[rows], 0) , IndexType = i.[type] , IsAllowPageLocks = i.[allow_page_locks] , DataSpaceID = i.[data_space_id] - , DataCompression = p.[data_compression] , IsUnique = i.[is_unique] , IsPK = i.[is_primary_key] , FillFactorValue = i.[fill_factor] , IsFiltered = i.[has_filter] -FROM #AllocationUnits a -JOIN #Partitions p ON a.ContainerID = p.[partition_id] -JOIN sys.indexes i WITH(NOLOCK) ON i.[object_id] = p.[object_id] AND p.[index_id] = i.[index_id] {6} +FROM ( + SELECT ObjectID = p.[object_id] + , IndexID = p.[index_id] + , PartitionNumber = p.[partition_number] + , DataCompression = MAX(p.[data_compression]) + , RowsCount = ISNULL(SUM(p.[rows]), 0) + , PagesCount = SUM(a.ReservedPages) + , UnusedPagesCount = SUM(CASE WHEN ABS(a.ReservedPages - a.UsedPages) > 32 THEN a.ReservedPages - a.UsedPages ELSE 0 END) + FROM #AllocationUnits a + JOIN #Partitions p ON a.ContainerID = p.[partition_id] + GROUP BY p.[object_id] + , p.[index_id] + , p.[partition_number] +) p +JOIN sys.indexes i WITH(NOLOCK) ON i.[object_id] = p.ObjectID AND i.[index_id] = p.IndexID {6} WHERE i.[type] IN ({0}) AND i.[object_id] > 255 From b8f8c7e081ac89346b216a13364da9618695849e Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 7 Dec 2019 16:19:46 +0200 Subject: [PATCH 09/53] Added SQLIndexManager.vssettings --- SQLIndexManager.vssettings | 472 +++++++++++++++++++++++++++++++++++++ 1 file changed, 472 insertions(+) create mode 100644 SQLIndexManager.vssettings diff --git a/SQLIndexManager.vssettings b/SQLIndexManager.vssettings new file mode 100644 index 0000000..f9bb879 --- /dev/null +++ b/SQLIndexManager.vssettings @@ -0,0 +1,472 @@ +falsefalsetruefalsetruefalsetruetruetrue00truetruetruefalse56553510truetruetruetruefalsetrue10%vsspv_user_appdata%\source\repostruetruetrue44true%vsspv_visualstudio_dir%\Templates\ItemTemplatestruetrue101%vsspv_visualstudio_dir%\Templates\ProjectTemplatestrue4truetruetruetruetruetruetrue5true60falseHACK:2TODO:2UNDONE:2UnresolvedMergeConflict:3falsefalsehttps://go.microsoft.com/fwlink/?LinkId=32722&clcid=%vsspv_lcid_hex%1%systemroot%\system32\notepad.exehttps://go.microsoft.com/fwlink/?LinkId=32722&clcid=%vsspv_lcid_hex% + 0 + 1 + 1 + 0 + + true + false + 0 + .suo;.sln;.ncb;.sdf;.vcxproj;.csproj;.user;.vbproj;.scc;.vsscc;.vspscc;.old;.filters + .cpp;.cxx;.cc;.c;.inl;.ipp;.h;.hh;.hpp;.hxx;.hm;.inc;.rc;.resx;.idl;.rc2;.def;.odl;.asm;.asmx;.xsd;.bin;.rgs;.html;.htm;.manifest + 0 + false + + 4truetruetruetrue2truefalsetruefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue + true + true + true + true + true + true + true + false + true + true + true + true + true + false + 4truetruetruetrue2truetruetruefalsefalsetruetruetruetruetruetrue58truefalse4truetruetruetrue + true + false + false + true + true + 1 + true + false + 5120 + true + true + true + true + + 1 + true + true + true + 0 + false + false + true + false + true + false + false + false + false + false + false + false + true + false + false + false + false + false + false + false + false + false + false + false + false + false + false + true + false + false + false + false + true + true + true + true + + true + true + 55 + 1 + false + false + false + true + false + false + true + false + 1 + false + 1 + 2 + 2 + 0 + 5 + 2 + 1 + false + {}[]().,:;+-*/%&|^!=<>?@#\ + true + true + 3 + false + 0 + true + true + 0 + 0 + true + true + false + 0 + 0 + false + 0 + 1 + false + true + false + false + true + false + true + true + true + true + true + false + false + false + false + 2 + true + true + true + false + 60 + false + false + true + true + 2 + 2 + 2 + true + false + false + true + true + false + 1 + true + false + false + false + false + false + false + false + false + false + false + false + true + false + true + true + false + true + 4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue2truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58truefalse2truetruetruetrue<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" />0111<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" />11<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />01<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />10111<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />0000111<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />10001<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" />00010<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><NamingPreferencesInfo SerializationVersion="4"> + <SymbolSpecifications> + <SymbolSpecification ID="5c545a62-b14d-460a-88d8-e936c0a39316" Name="Class"> + <ApplicableSymbolKindList> + <TypeKind>Class</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="23d856b4-5089-4405-83ce-749aada99153" Name="Interface"> + <ApplicableSymbolKindList> + <TypeKind>Interface</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="d1796e78-ff66-463f-8576-eb46416060c0" Name="Struct"> + <ApplicableSymbolKindList> + <TypeKind>Struct</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="d8af8dc6-1ade-441d-9947-8946922e198a" Name="Enum"> + <ApplicableSymbolKindList> + <TypeKind>Enum</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="408a3347-b908-4b54-a954-1355e64c1de3" Name="Delegate"> + <ApplicableSymbolKindList> + <TypeKind>Delegate</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="830657f6-e7e5-4830-b328-f109d3b6c165" Name="Event"> + <ApplicableSymbolKindList> + <SymbolKind>Event</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="390caed4-f0a9-42bb-adbb-b44c4a302a22" Name="Method"> + <ApplicableSymbolKindList> + <SymbolKind>Method</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="af410767-f189-47c6-b140-aeccf1ff242e" Name="Private Method"> + <ApplicableSymbolKindList> + <SymbolKind>Method</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Private</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="8076757e-6a4a-47f1-9b4b-ae8a3284e987" Name="Abstract Method"> + <ApplicableSymbolKindList> + <SymbolKind>Method</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList> + <ModifierKind>IsAbstract</ModifierKind> + </RequiredModifierList> + </SymbolSpecification> + <SymbolSpecification ID="16133061-a8e7-4392-92c3-1d93cd54c218" Name="Static Method"> + <ApplicableSymbolKindList> + <SymbolKind>Method</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList> + <ModifierKind>IsStatic</ModifierKind> + </RequiredModifierList> + </SymbolSpecification> + <SymbolSpecification ID="da6a2919-5aa6-4ad1-a24d-576776ed3974" Name="Property"> + <ApplicableSymbolKindList> + <SymbolKind>Property</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="b24a91ce-3501-4799-b6df-baf044156c83" Name="Public or Protected Field"> + <ApplicableSymbolKindList> + <SymbolKind>Field</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="70af42cb-1741-4027-969c-9edc4877d965" Name="Static Field"> + <ApplicableSymbolKindList> + <SymbolKind>Field</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList> + <ModifierKind>IsStatic</ModifierKind> + </RequiredModifierList> + </SymbolSpecification> + <SymbolSpecification ID="10790aa6-0a0b-432d-a52d-d252ca92302b" Name="Private or Internal Field"> + <ApplicableSymbolKindList> + <SymbolKind>Field</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="ac995be4-88de-4771-9dcc-a456a7c02d89" Name="Private or Internal Static Field"> + <ApplicableSymbolKindList> + <SymbolKind>Field</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList> + <ModifierKind>IsStatic</ModifierKind> + </RequiredModifierList> + </SymbolSpecification> + <SymbolSpecification ID="2c07f5bf-bc81-4c2b-82b4-ae9b3ffd0ba4" Name="Types"> + <ApplicableSymbolKindList> + <TypeKind>Class</TypeKind> + <TypeKind>Struct</TypeKind> + <TypeKind>Interface</TypeKind> + <TypeKind>Enum</TypeKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + <SymbolSpecification ID="5f3ddba1-279f-486c-801e-5c097c36dd85" Name="Non-Field Members"> + <ApplicableSymbolKindList> + <SymbolKind>Property</SymbolKind> + <SymbolKind>Method</SymbolKind> + <SymbolKind>Event</SymbolKind> + </ApplicableSymbolKindList> + <ApplicableAccessibilityList> + <AccessibilityKind>Public</AccessibilityKind> + <AccessibilityKind>Internal</AccessibilityKind> + <AccessibilityKind>Private</AccessibilityKind> + <AccessibilityKind>Protected</AccessibilityKind> + <AccessibilityKind>ProtectedOrInternal</AccessibilityKind> + </ApplicableAccessibilityList> + <RequiredModifierList /> + </SymbolSpecification> + </SymbolSpecifications> + <NamingStyles> + <NamingStyle ID="87e7c501-9948-4b53-b1eb-a6cbe918feee" Name="Pascal Case" Prefix="" Suffix="" WordSeparator="" CapitalizationScheme="PascalCase" /> + <NamingStyle ID="1ecc5eb6-b5fc-49a5-a9f1-a980f3e48c92" Name="Begins with I" Prefix="I" Suffix="" WordSeparator="" CapitalizationScheme="PascalCase" /> + </NamingStyles> + <NamingRules> + <SerializableNamingRule SymbolSpecificationID="23d856b4-5089-4405-83ce-749aada99153" NamingStyleID="1ecc5eb6-b5fc-49a5-a9f1-a980f3e48c92" EnforcementLevel="Info" /> + <SerializableNamingRule SymbolSpecificationID="2c07f5bf-bc81-4c2b-82b4-ae9b3ffd0ba4" NamingStyleID="87e7c501-9948-4b53-b1eb-a6cbe918feee" EnforcementLevel="Info" /> + <SerializableNamingRule SymbolSpecificationID="5f3ddba1-279f-486c-801e-5c097c36dd85" NamingStyleID="87e7c501-9948-4b53-b1eb-a6cbe918feee" EnforcementLevel="Info" /> + </NamingRules> +</NamingPreferencesInfo>1001101100<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" />010<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />11<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />00000100<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" />10011<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Hidden" />021<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="true" DiagnosticSeverity="Info" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" />000<CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" /><CodeStyleOption SerializationVersion="1" Type="Boolean" Value="false" DiagnosticSeverity="Hidden" />01011100010011 + true + true + false + true + true + true + 4 + 2 + false + 58 + true + true + true + true + true + true + true + true + true + true + 4 + false + false + false + true + 4truetruetruetrue1truetruefalsefalsefalsetruetruefalsetruefalsetrue58truefalse4truetruetruetruetruetrue0truetruefalsetruefalsetruetrue4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue16244681013027014130030571648769114413810003575607202202157245271502431557746900202000-1-17257087123839990128jpg080gif8015000-12083886165-1750-11317273516765887200-1-10429496729522551001128954521521676031116750848210033012865075201800-114145511216768975072570870text/html;text/x-jquery-tmpl;text/template;text/x-handlebars;text/x-handlebars-template;text/x-jsrender1673925816777215090HTML5010500-120111190170100112167508481200-14truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue2truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58truefalse2truetruetruetrue4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue + false + true + true + true + true + + true + true + true + false + true + true + true + false + false + true + true + 4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58truefalse4falsetruetruetrue4truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truefalsetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58truefalse4falsetruetruefalse4truetruetruetrue1truetruefalsefalsefalsetruetruetruetruetruetrue58truefalse4falsetruetruetrue4truetruetruetrue2truetruetruefalsefalsetruetruefalsefalsetruetrue58truefalse4falsetruetruetrue + false + false + true + true + true + true + true + true + true + false + true + true + false + false + true + false + false + false + 4truetruetruetrue2truetruetruefalsefalsetruetruefalsetruefalsetrue58truefalse4falsetruetruetrue2truetruetruetrue2truetruefalsefalsefalsetruetruefalsetruetruetrue58truefalse2falsetruetruetrue4truetruetruetrue1truetruefalsefalsefalsetruetruefalsefalsetruetrue58falsefalse4falsetruetruetruetruefalsetruetruetruetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalsefalsetruefalse00True<ExtensionRepositoryConfigList Capacity="0" xmlns="clr-namespace:Microsoft.VisualStudio.ExtensionManager;assembly=Microsoft.VisualStudio.ExtensionEngine" />Truefalsetruefalse2{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0215.0.0.0F7Shift+F7Visual C# 2005falsefalsefalsefalsetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalse{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0false01truefalsefalsetruefalsetruetrueTrueFalseTrueTrueTrueTrueFalseFalseTrueFalsefalse10000MatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=0 KeepOpen=0 NameOnly=0 Append=0 Plain Document FindMatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=1 KeepOpen=0 NameOnly=0 Append=0 Plain Project FindAllMatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=0 KeepOpen=0 NameOnly=0 Append=0 Plain Document Find111111111111111Regex07Design|Debug|NoToolWinTrueFalse11010111000011011000100010100010011010110000001675773604736002101101110000500015000150010001000100020002000500010000100002501000500125100011001111111111000011100100110000000010120482530001001110000010100110101011132768819211011010000011501https://referencesource.microsoft.com/symbolshttps://msdl.microsoft.com/download/symbolsFunction: $FUNCTION, Thread: $TID $TNAME506464101csv3.01002.03.01100Falsefalsetruefalsefalse-1TrueTrueTrue25FalsefalsefalsefalsetrueTrueTrueTrue8, 8SnapLinesTrueTrueTrueTrueTrueTrueTrueTrueDoubleQuote120FalseTrueTrueTrueTrueTrueTrueTruePreservePreserveTrueNoneFalseTrueTrueTrueTrueTrueTrueTrueTrue%VsInstallDir%\xml\Schemas5105TrueFalseFalseTrueTrue4TrueFalseTrueTrueSplitViewDefaultPixelsFalseControlMouseWheelTrueTrueTrue.\node_modules\.bin;$(VSINSTALLDIR)\Web\External;$(PATH);$(VSINSTALLDIR)\Web\External\git;$(DevEnvDir)\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\binTrueTrueTrueTrueTrue\node_modules\,\bower_components\,\typings\,\lib\,.min.TrueOpenInBrowser \ No newline at end of file From 9840ace00707e412ef31332cdc8eeda0d055ba37 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sat, 7 Dec 2019 16:21:45 +0200 Subject: [PATCH 10/53] Small improvements in GUI --- Forms/MainBox.Designer.cs | 78 ++++++++++++++++++-------------- Forms/MainBox.cs | 34 +++++++++++--- Forms/MainBox.resx | 21 +++++++++ Properties/AssemblyInfo.cs | 4 +- Properties/Resources.Designer.cs | 9 ++++ Properties/Resources.resx | 3 ++ Server/Host.cs | 4 -- Server/Query.cs | 3 +- Server/QueryEngine.cs | 5 +- Server/ServerInfo.cs | 5 +- Settings/Options.cs | 1 - 11 files changed, 115 insertions(+), 52 deletions(-) diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 7a75603..5cfca89 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -75,13 +75,14 @@ private void InitializeComponent() { this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); this.labelDatabase = new DevExpress.XtraBars.BarStaticItem(); - this.labelIndex = new DevExpress.XtraBars.BarStaticItem(); this.labelError = new DevExpress.XtraBars.BarStaticItem(); + this.labelIndex = new DevExpress.XtraBars.BarStaticItem(); + this.labelSavedSpace = new DevExpress.XtraBars.BarStaticItem(); this.buttonStopScan = new DevExpress.XtraBars.BarButtonItem(); this.buttonStopFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonLog = new DevExpress.XtraBars.BarButtonItem(); - this.labelServerInfo = new DevExpress.XtraBars.BarStaticItem(); this.labelInfo = new DevExpress.XtraBars.BarStaticItem(); + this.labelServerInfo = new DevExpress.XtraBars.BarButtonItem(); this.ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl(); this.buttonNewConnection = new DevExpress.XtraBars.BarButtonItem(); this.buttonFix = new DevExpress.XtraBars.BarButtonItem(); @@ -321,8 +322,8 @@ private void InitializeComponent() { IndexStats.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; IndexStats.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; IndexStats.FieldName = "IndexStats"; - IndexStats.MaxWidth = 110; - IndexStats.MinWidth = 110; + IndexStats.MaxWidth = 105; + IndexStats.MinWidth = 105; IndexStats.Name = "IndexStats"; IndexStats.OptionsColumn.AllowEdit = false; IndexStats.OptionsColumn.AllowFocus = false; @@ -330,7 +331,7 @@ private void InitializeComponent() { IndexStats.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; IndexStats.Visible = true; IndexStats.VisibleIndex = 12; - IndexStats.Width = 110; + IndexStats.Width = 105; // // TotalWrites // @@ -374,8 +375,8 @@ private void InitializeComponent() { LastUsage.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; LastUsage.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; LastUsage.FieldName = "LastUsage"; - LastUsage.MaxWidth = 110; - LastUsage.MinWidth = 110; + LastUsage.MaxWidth = 105; + LastUsage.MinWidth = 105; LastUsage.Name = "LastUsage"; LastUsage.OptionsColumn.AllowEdit = false; LastUsage.OptionsColumn.AllowFocus = false; @@ -383,7 +384,7 @@ private void InitializeComponent() { LastUsage.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; LastUsage.Visible = true; LastUsage.VisibleIndex = 15; - LastUsage.Width = 110; + LastUsage.Width = 105; // // FixType // @@ -734,8 +735,6 @@ private void InitializeComponent() { this.gridView1.Appearance.FocusedRow.Options.UseBackColor = true; this.gridView1.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); this.gridView1.Appearance.HeaderPanel.Options.UseFont = true; - this.gridView1.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; - this.gridView1.Appearance.HideSelectionRow.Options.UseBackColor = true; this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; this.gridView1.Appearance.OddRow.Options.UseBackColor = true; this.gridView1.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); @@ -970,6 +969,8 @@ private void InitializeComponent() { this.gridView1.FormatRules.Add(gridFormatRule7); this.gridView1.GridControl = this.gridControl1; this.gridView1.Name = "gridView1"; + this.gridView1.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; + this.gridView1.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.False; this.gridView1.OptionsCustomization.AllowGroup = false; this.gridView1.OptionsFind.AllowFindPanel = false; this.gridView1.OptionsFind.FindFilterColumns = "DatabaseName;SchemaName;ObjectName;IndexName;FileGroupName;IndexColumns;IncludedC" + @@ -1002,6 +1003,7 @@ private void InitializeComponent() { this.gridView1.OptionsView.ShowIndicator = false; this.gridView1.RowHeight = 24; this.gridView1.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); + this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.RowCellStyle); this.gridView1.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); this.gridView1.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); this.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); @@ -1054,11 +1056,12 @@ private void InitializeComponent() { this.statusBar.ItemLinks.Add(this.labelDatabase); this.statusBar.ItemLinks.Add(this.labelError); this.statusBar.ItemLinks.Add(this.labelIndex); + this.statusBar.ItemLinks.Add(this.labelSavedSpace); this.statusBar.ItemLinks.Add(this.buttonStopScan); this.statusBar.ItemLinks.Add(this.buttonStopFix); this.statusBar.ItemLinks.Add(this.buttonLog); - this.statusBar.ItemLinks.Add(this.labelServerInfo); this.statusBar.ItemLinks.Add(this.labelInfo); + this.statusBar.ItemLinks.Add(this.labelServerInfo); this.statusBar.Location = new System.Drawing.Point(0, 768); this.statusBar.Name = "statusBar"; this.statusBar.Ribbon = this.ribbonControl1; @@ -1076,6 +1079,16 @@ private void InitializeComponent() { this.labelDatabase.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelDatabase.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // + // labelError + // + this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelError.Caption = "0"; + this.labelError.Id = 29; + this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.Image"))); + this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.LargeImage"))); + this.labelError.Name = "labelError"; + this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // // labelIndex // this.labelIndex.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; @@ -1087,15 +1100,15 @@ private void InitializeComponent() { this.labelIndex.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelIndex.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // - // labelError + // labelSavedSpace // - this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelError.Caption = "0"; - this.labelError.Id = 29; - this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.Image"))); - this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.LargeImage"))); - this.labelError.Name = "labelError"; - this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + this.labelSavedSpace.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelSavedSpace.Caption = "0"; + this.labelSavedSpace.Id = 31; + this.labelSavedSpace.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.Image"))); + this.labelSavedSpace.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.LargeImage"))); + this.labelSavedSpace.Name = "labelSavedSpace"; + this.labelSavedSpace.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // buttonStopScan // @@ -1126,21 +1139,19 @@ private void InitializeComponent() { this.buttonLog.Name = "buttonLog"; this.buttonLog.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonLog); // + // labelInfo + // + this.labelInfo.Id = 24; + this.labelInfo.Name = "labelInfo"; + // // labelServerInfo // this.labelServerInfo.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelServerInfo.Caption = "Not connected"; - this.labelServerInfo.Id = 26; + this.labelServerInfo.Caption = "No connection"; + this.labelServerInfo.Id = 32; this.labelServerInfo.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.Image"))); this.labelServerInfo.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.LargeImage"))); this.labelServerInfo.Name = "labelServerInfo"; - this.labelServerInfo.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - this.labelServerInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - // - // labelInfo - // - this.labelInfo.Id = 24; - this.labelInfo.Name = "labelInfo"; // // ribbonControl1 // @@ -1157,7 +1168,6 @@ private void InitializeComponent() { this.buttonRefreshIndex, this.buttonSaveFix, this.labelInfo, - this.labelServerInfo, this.buttonStopFix, this.buttonCopyFix, this.labelDatabase, @@ -1172,9 +1182,11 @@ private void InitializeComponent() { this.buttonLog, this.buttonExportHtml, this.buttonRestoreDefaultLayout, - this.labelError}); + this.labelError, + this.labelSavedSpace, + this.labelServerInfo}); this.ribbonControl1.Location = new System.Drawing.Point(0, 0); - this.ribbonControl1.MaxItemId = 30; + this.ribbonControl1.MaxItemId = 33; this.ribbonControl1.Name = "ribbonControl1"; this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonNewConnection); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonDatabases); @@ -1512,7 +1524,6 @@ private void InitializeComponent() { this.ShowIcon = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StatusBar = this.statusBar; - this.Text = "SQL Index Manager"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainBox_FormClosing); this.Shown += new System.EventHandler(this.MainBox_Shown); @@ -1546,7 +1557,6 @@ private void InitializeComponent() { private BarButtonItem buttonRefreshIndex; private BarButtonItem buttonSaveFix; private BarStaticItem labelInfo; - private BarStaticItem labelServerInfo; private BarButtonItem buttonStopFix; private DevExpress.XtraGrid.Views.Grid.GridView gridView1; private DevExpress.Utils.Taskbar.TaskbarAssistant taskbar; @@ -1584,5 +1594,7 @@ private void InitializeComponent() { private BarButtonItem buttonRestoreDefaultLayout; private DevExpress.XtraGrid.Columns.GridColumn Error; private BarStaticItem labelError; + private BarStaticItem labelSavedSpace; + private BarButtonItem labelServerInfo; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 4562f9f..37a02c2 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -46,17 +46,21 @@ private void UpdateActiveHost(Host host) { buttonDatabases.Enabled = (host != null); buttonRefreshIndex.Enabled = (host != null && host.Databases.Count > 0); - labelServerInfo.Visibility = - labelDatabase.Visibility = - labelError.Visibility = - labelIndex.Visibility = (host == null) ? BarItemVisibility.Never : BarItemVisibility.Always; + labelSavedSpace.Visibility = BarItemVisibility.Never; + + labelDatabase.Visibility = + labelError.Visibility = + labelIndex.Visibility = (host == null) ? BarItemVisibility.Never : BarItemVisibility.Always; if (host == null) { + Text = "SQL Index Manager"; ShowConnectionBox(); } else { - Output.Current.Add($"Current host: {host}"); - labelServerInfo.Caption = host.ToString(); + Output.Current.Add($"Host: {host.Server}"); + Output.Current.Add($"Server: {host.ServerInfo}"); + Text = host.Server.ToString(); + labelServerInfo.Caption = host.ServerInfo.ToString(); ShowDatabaseBox(); } } @@ -294,6 +298,7 @@ private void RefreshIndexes() { buttonRefreshIndex.Enabled = buttonNewConnection.Enabled = false; + labelSavedSpace.Visibility = BarItemVisibility.Never; buttonStopScan.Visibility = BarItemVisibility.Always; taskbar.ProgressMode = TaskbarButtonProgressMode.Indeterminate; @@ -432,7 +437,12 @@ private void FixIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonOptions.Enabled = true; buttonFix.Enabled = false; - labelError.Caption = ((List)gridView1.DataSource).Count(_ => _.Error != null).ToString(); + + List indexes = (List)gridView1.DataSource; + + labelSavedSpace.Visibility = BarItemVisibility.Always; + labelSavedSpace.Caption = Convert.ToDecimal(indexes.Sum(_ => _.PagesCountBefore ?? 0) * 8).FormatSize(); + labelError.Caption = indexes.Count(_ => _.Error != null).ToString(); buttonStopFix.Visibility = BarItemVisibility.Never; @@ -733,6 +743,16 @@ private void CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { e.Appearance.DrawString(e.Cache, trySearchingAgainText, trySearchingAgainBounds); } + private void RowCellStyle(object sender, RowCellStyleEventArgs e) { + GridView view = sender as GridView; + if (e.RowHandle == view.FocusedRowHandle) { + if (e.Column.Caption == @"Selection" || (e.Column.Caption == @"Fix" && view.OptionsBehavior.Editable)) + return; + + e.Appearance.BackColor = Color.Silver; + } + } + #endregion #region Controls diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 104ff09..3179d4e 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -273,6 +273,27 @@ Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA + AAB8SURBVDhPzZFLDsAgCAW9YO/UNJ7IVW9HfU0hTwL9xE0Xo5HPQGIRkSlKrVVmOAXLtq/Ml9hPBDOo + ADcTxUJwpIK+Jta+xYr5b72Ac4oXRAyCfjd9MzbNMQg6LZO8FYBQYsVIKoHgcYMIE2TNgKcOXE0m8IQC + LgBalLPLAfMqYYHBumHwAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA + AAE+SURBVFhH7ZLBbcJAEEUT5QJ3KkgDaYJwo4EUwIEmEiEfaCElQANYSitBogIqQGxmR7PWePzteJ31 + kgOHZ1v/j/98rfbBOXdToJgTKOYEijnhR1EULjeNAstN+YEYy7sXuBdoFMgNKuDfiFG8/1kgiJqxvPBd + CQODmCFe+A7CoAJ0o/1N/xMcJEtiSV6AjwbQ6pmwb2JK1E5Jo2Yr2KCwFAU8a6KxOGBmGTYojJfYH37z + UCDxIt7c6BAOSlzgQkzE3yodwkGJC3h2aubLeDV4SJbE0lXA8yYFno1eQxfwb0SrhwIVR3UKn8arGLPA + QpZ3XsZagdBY0+WhQOFdfH/8Z6U34KDEBU7Ek/h7pUM4KGGBKzETb6X0VjhIlsSCCrzqghYwjwf7YsIO + xCOaC5h5Bg72BQXGAoP7ggLjKN0PwsUAknFG48cAAAAASUVORK5CYII= diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 44aa777..c9968bd 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.53")] -[assembly: AssemblyFileVersion("1.0.0.53")] +[assembly: AssemblyVersion("1.0.0.54")] +[assembly: AssemblyFileVersion("1.0.0.54")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index d82217c..b307ff1 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -486,6 +486,15 @@ internal static string SchemaName { } } + /// + /// Looks up a localized string similar to ServerName. + /// + internal static string ServerName { + get { + return ResourceManager.GetString("ServerName", resourceCulture); + } + } + /// /// Looks up a localized string similar to ServerVersion. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 28c7c5d..091ef73 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -280,4 +280,7 @@ PageSpaceUsed + + ServerName + \ No newline at end of file diff --git a/Server/Host.cs b/Server/Host.cs index 77d62ff..4b18769 100644 --- a/Server/Host.cs +++ b/Server/Host.cs @@ -36,10 +36,6 @@ public Host() { Databases = new List(); } - public override string ToString() { - return $"{Server} | {ServerInfo}"; - } - } } \ No newline at end of file diff --git a/Server/Query.cs b/Server/Query.cs index 6b39690..2e834fb 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -540,7 +540,8 @@ FROM sys.dm_db_index_physical_stats(@DBID, @ObjectID, @IndexID, @PartitionNumber "; public const string ServerInfo = @" -SELECT ProductLevel = SERVERPROPERTY('ProductLevel') +SELECT ServerName = @@SERVERNAME + , ProductLevel = SERVERPROPERTY('ProductLevel') , Edition = SERVERPROPERTY('Edition') , ServerVersion = SERVERPROPERTY('ProductVersion') , IsSysAdmin = CAST(IS_SRVROLEMEMBER('sysadmin') AS BIT) diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 526c79f..d7a846e 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -50,12 +50,13 @@ public static ServerInfo GetServerInfo(SqlConnection connection) { adapter.Fill(data); DataRow row = data.Tables[0].Rows[0]; + string serverName = row.Field(Resources.ServerName); string productLevel = row.Field(Resources.ProductLevel); string edition = row.Field(Resources.Edition); string serverVersion = row.Field(Resources.ServerVersion); bool isSysAdmin = row.Field(Resources.IsSysAdmin) ?? false; - return new ServerInfo(productLevel, edition, serverVersion, isSysAdmin); + return new ServerInfo(serverName, productLevel, edition, serverVersion, isSysAdmin); } public static List GetIndexes(SqlConnection connection) { @@ -361,7 +362,7 @@ public static void FindUnusedIndexes(List indexes) { _ => !_.IsPartitioned && _.Warning == null && _.TotalWrites > 50000 - && (_.TotalReads ?? 0) < _.TotalWrites / 10 + && (_.TotalReads ?? 0) < _.TotalWrites / 20 && (_.IndexType == IndexType.CLUSTERED || _.IndexType == IndexType.NONCLUSTERED || _.IndexType == IndexType.HEAP))) { ix.Warning = WarningType.UNUSED; } diff --git a/Server/ServerInfo.cs b/Server/ServerInfo.cs index 8802c48..ea81747 100644 --- a/Server/ServerInfo.cs +++ b/Server/ServerInfo.cs @@ -1,7 +1,7 @@ namespace SQLIndexManager { public class ServerInfo { - + public readonly string ServerName; private readonly string ProductLevel; private readonly string Edition; public readonly bool IsSysAdmin; @@ -51,7 +51,8 @@ public string ProductVersion { } } - public ServerInfo(string productLevel, string edition, string serverVersion, bool isSysAdmin) { + public ServerInfo(string serverName, string productLevel, string edition, string serverVersion, bool isSysAdmin) { + ServerName = serverName; ProductLevel = productLevel; Edition = edition; Version = serverVersion; diff --git a/Settings/Options.cs b/Settings/Options.cs index a074ee7..b6fba4c 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -29,7 +29,6 @@ public class Options { public Options() { SortInTempDb = true; LobCompaction = true; - ScanHeap = true; ScanClusteredIndex = true; ScanNonClusteredIndex = true; ScanClusteredColumnstore = true; From b90d5896ac05ee92debc169e3db3faad4c98ee1c Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 15 Dec 2019 12:01:48 +0200 Subject: [PATCH 11/53] Auto cell filter and several improvements in GUI --- Forms/AboutBox.Designer.cs | 61 +-- Forms/AboutBox.cs | 7 - Forms/DatabaseBox.Designer.cs | 829 +++++++++++++++++----------------- Forms/DatabaseBox.cs | 6 + Forms/ErrorBox.cs | 2 +- Forms/MainBox.Designer.cs | 37 +- Forms/MainBox.cs | 45 +- Properties/AssemblyInfo.cs | 4 +- Settings/Options.cs | 1 + 9 files changed, 480 insertions(+), 512 deletions(-) diff --git a/Forms/AboutBox.Designer.cs b/Forms/AboutBox.Designer.cs index 0ac5e8b..c85c7e1 100644 --- a/Forms/AboutBox.Designer.cs +++ b/Forms/AboutBox.Designer.cs @@ -25,7 +25,6 @@ protected override void Dispose(bool disposing) { /// private void InitializeComponent() { this.labelProductName = new DevExpress.XtraEditors.LabelControl(); - this.label1 = new DevExpress.XtraEditors.LabelControl(); this.label2 = new DevExpress.XtraEditors.LabelControl(); this.labelVersion = new DevExpress.XtraEditors.LabelControl(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); @@ -33,8 +32,6 @@ private void InitializeComponent() { this.labelGitHubControl = new DevExpress.XtraEditors.HyperlinkLabelControl(); this.labelCopyright = new DevExpress.XtraEditors.HyperlinkLabelControl(); this.labelControl1 = new DevExpress.XtraEditors.LabelControl(); - this.labelControl2 = new DevExpress.XtraEditors.LabelControl(); - this.labelMail = new DevExpress.XtraEditors.HyperlinkLabelControl(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // @@ -42,31 +39,23 @@ private void InitializeComponent() { // this.labelProductName.Appearance.Font = new System.Drawing.Font("Tahoma", 10.25F); this.labelProductName.Appearance.Options.UseFont = true; - this.labelProductName.Location = new System.Drawing.Point(149, 18); + this.labelProductName.Location = new System.Drawing.Point(149, 15); this.labelProductName.Name = "labelProductName"; this.labelProductName.Size = new System.Drawing.Size(84, 17); this.labelProductName.TabIndex = 0; this.labelProductName.Text = "ProductName"; // - // label1 - // - this.label1.Location = new System.Drawing.Point(149, 65); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(39, 13); - this.label1.TabIndex = 2; - this.label1.Text = "Version:"; - // // label2 // - this.label2.Location = new System.Drawing.Point(149, 84); + this.label2.Location = new System.Drawing.Point(149, 60); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(51, 13); + this.label2.Size = new System.Drawing.Size(62, 13); this.label2.TabIndex = 3; - this.label2.Text = "Copyright:"; + this.label2.Text = "Copyright by"; // // labelVersion // - this.labelVersion.Location = new System.Drawing.Point(225, 65); + this.labelVersion.Location = new System.Drawing.Point(275, 14); this.labelVersion.Name = "labelVersion"; this.labelVersion.Size = new System.Drawing.Size(26, 13); this.labelVersion.TabIndex = 6; @@ -84,7 +73,7 @@ private void InitializeComponent() { // // labelProductDescription // - this.labelProductDescription.Location = new System.Drawing.Point(149, 38); + this.labelProductDescription.Location = new System.Drawing.Point(149, 39); this.labelProductDescription.Name = "labelProductDescription"; this.labelProductDescription.Size = new System.Drawing.Size(90, 13); this.labelProductDescription.TabIndex = 10; @@ -101,7 +90,7 @@ private void InitializeComponent() { this.labelGitHubControl.Cursor = System.Windows.Forms.Cursors.Hand; this.labelGitHubControl.LineColor = System.Drawing.Color.White; this.labelGitHubControl.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.labelGitHubControl.Location = new System.Drawing.Point(149, 158); + this.labelGitHubControl.Location = new System.Drawing.Point(149, 113); this.labelGitHubControl.Name = "labelGitHubControl"; this.labelGitHubControl.Size = new System.Drawing.Size(116, 13); this.labelGitHubControl.TabIndex = 11; @@ -117,7 +106,7 @@ private void InitializeComponent() { this.labelCopyright.Cursor = System.Windows.Forms.Cursors.Hand; this.labelCopyright.LineColor = System.Drawing.Color.White; this.labelCopyright.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.labelCopyright.Location = new System.Drawing.Point(225, 84); + this.labelCopyright.Location = new System.Drawing.Point(215, 60); this.labelCopyright.Name = "labelCopyright"; this.labelCopyright.Size = new System.Drawing.Size(26, 13); this.labelCopyright.TabIndex = 12; @@ -126,43 +115,17 @@ private void InitializeComponent() { // // labelControl1 // - this.labelControl1.Location = new System.Drawing.Point(149, 139); + this.labelControl1.Location = new System.Drawing.Point(149, 94); this.labelControl1.Name = "labelControl1"; this.labelControl1.Size = new System.Drawing.Size(211, 13); this.labelControl1.TabIndex = 13; this.labelControl1.Text = "Please visit for updates and documentation:"; // - // labelControl2 - // - this.labelControl2.Location = new System.Drawing.Point(149, 103); - this.labelControl2.Name = "labelControl2"; - this.labelControl2.Size = new System.Drawing.Size(50, 13); - this.labelControl2.TabIndex = 14; - this.labelControl2.Text = "Feedback:"; - // - // labelMail - // - this.labelMail.Appearance.ForeColor = System.Drawing.Color.White; - this.labelMail.Appearance.LinkColor = System.Drawing.Color.White; - this.labelMail.Appearance.Options.UseForeColor = true; - this.labelMail.Appearance.Options.UseLinkColor = true; - this.labelMail.Cursor = System.Windows.Forms.Cursors.Hand; - this.labelMail.LineColor = System.Drawing.Color.White; - this.labelMail.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; - this.labelMail.Location = new System.Drawing.Point(225, 103); - this.labelMail.Name = "labelMail"; - this.labelMail.Size = new System.Drawing.Size(26, 13); - this.labelMail.TabIndex = 15; - this.labelMail.Text = "Value"; - this.labelMail.HyperlinkClick += new DevExpress.Utils.HyperlinkClickEventHandler(this.labelMail_HyperlinkClick); - // // AboutBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(511, 191); - this.Controls.Add(this.labelMail); - this.Controls.Add(this.labelControl2); + this.ClientSize = new System.Drawing.Size(492, 155); this.Controls.Add(this.labelControl1); this.Controls.Add(this.labelCopyright); this.Controls.Add(this.labelGitHubControl); @@ -170,7 +133,6 @@ private void InitializeComponent() { this.Controls.Add(this.pictureBox1); this.Controls.Add(this.labelVersion); this.Controls.Add(this.label2); - this.Controls.Add(this.label1); this.Controls.Add(this.labelProductName); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; @@ -190,7 +152,6 @@ private void InitializeComponent() { #endregion private DevExpress.XtraEditors.LabelControl labelProductName; - private DevExpress.XtraEditors.LabelControl label1; private DevExpress.XtraEditors.LabelControl label2; private DevExpress.XtraEditors.LabelControl labelVersion; private System.Windows.Forms.PictureBox pictureBox1; @@ -198,7 +159,5 @@ private void InitializeComponent() { private DevExpress.XtraEditors.HyperlinkLabelControl labelGitHubControl; private DevExpress.XtraEditors.HyperlinkLabelControl labelCopyright; private DevExpress.XtraEditors.LabelControl labelControl1; - private DevExpress.XtraEditors.LabelControl labelControl2; - private DevExpress.XtraEditors.HyperlinkLabelControl labelMail; } } \ No newline at end of file diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 84a1516..4747247 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -9,8 +9,6 @@ namespace SQLIndexManager { public partial class AboutBox : XtraForm { - private const string _mail = "sergey.syrovatchenko@gmail.com"; - public AboutBox() { InitializeComponent(); @@ -19,17 +17,12 @@ public AboutBox() { var product = (AssemblyProductAttribute)assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; var copyright = (AssemblyCopyrightAttribute)assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; - labelMail.Text = _mail; labelProductName.Text = title.Title; labelProductDescription.Text = product.Product; labelCopyright.Text = copyright.Copyright; labelVersion.Text = assembly.GetName().Version.ToString(); } - private void labelMail_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - RunHyperlink($"mailto:{_mail}"); - } - private void Copyright_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { RunHyperlink("www.linkedin.com/in/sergeysyrovatchenko"); } diff --git a/Forms/DatabaseBox.Designer.cs b/Forms/DatabaseBox.Designer.cs index 3c8b0ea..98fefd8 100644 --- a/Forms/DatabaseBox.Designer.cs +++ b/Forms/DatabaseBox.Designer.cs @@ -24,171 +24,171 @@ protected override void Dispose(bool disposing) { /// the contents of this method with the code editor. /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule3 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - this.colDataSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDatabase = new DevExpress.XtraGrid.Columns.GridColumn(); - this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); - this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); - this.searchControl1 = new DevExpress.XtraEditors.SearchControl(); - this.grid = new DevExpress.XtraGrid.GridControl(); - this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.colRecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); - this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); - this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); - this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); - this.searchControl1item = new DevExpress.XtraLayout.LayoutControlItem(); - this.griditem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonRefreshitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonOKitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); - this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); - ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); - this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.griditem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); - this.SuspendLayout(); - // - // colDataSize - // - this.colDataSize.Caption = "Data Size"; - this.colDataSize.FieldName = "DataSize"; - this.colDataSize.MaxWidth = 110; - this.colDataSize.MinWidth = 110; - this.colDataSize.Name = "colDataSize"; - this.colDataSize.Visible = true; - this.colDataSize.VisibleIndex = 4; - this.colDataSize.Width = 110; - // - // colDataFreeSize - // - this.colDataFreeSize.Caption = "Free Size"; - this.colDataFreeSize.FieldName = "DataFreeSize"; - this.colDataFreeSize.MaxWidth = 100; - this.colDataFreeSize.MinWidth = 100; - this.colDataFreeSize.Name = "colDataFreeSize"; - this.colDataFreeSize.Visible = true; - this.colDataFreeSize.VisibleIndex = 5; - this.colDataFreeSize.Width = 100; - // - // colLogSize - // - this.colLogSize.Caption = "Log Size"; - this.colLogSize.FieldName = "LogSize"; - this.colLogSize.MaxWidth = 110; - this.colLogSize.MinWidth = 110; - this.colLogSize.Name = "colLogSize"; - this.colLogSize.Visible = true; - this.colLogSize.VisibleIndex = 6; - this.colLogSize.Width = 110; - // - // colLogFreeSize - // - this.colLogFreeSize.Caption = "Free Size"; - this.colLogFreeSize.FieldName = "LogFreeSize"; - this.colLogFreeSize.MaxWidth = 100; - this.colLogFreeSize.MinWidth = 100; - this.colLogFreeSize.Name = "colLogFreeSize"; - this.colLogFreeSize.Visible = true; - this.colLogFreeSize.VisibleIndex = 7; - this.colLogFreeSize.Width = 100; - // - // colDatabase - // - this.colDatabase.Caption = "Database"; - this.colDatabase.FieldName = "DatabaseName"; - this.colDatabase.Name = "colDatabase"; - this.colDatabase.Visible = true; - this.colDatabase.VisibleIndex = 1; - this.colDatabase.Width = 241; - // - // buttonCancel - // - this.buttonCancel.AllowFocus = false; - this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(864, 366); - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.Size = new System.Drawing.Size(76, 22); - this.buttonCancel.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonCancel.TabIndex = 3; - this.buttonCancel.Text = "Cancel"; - // - // DatabaseBoxlayoutControl1ConvertedLayout - // - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.searchControl1); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.grid); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonRefresh); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonOK); - this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonCancel); - this.DatabaseBoxlayoutControl1ConvertedLayout.Dock = System.Windows.Forms.DockStyle.Fill; - this.DatabaseBoxlayoutControl1ConvertedLayout.Location = new System.Drawing.Point(0, 0); - this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; - this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); - this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; - this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(952, 400); - this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; - // - // searchControl1 - // - this.searchControl1.Client = this.grid; - this.searchControl1.Location = new System.Drawing.Point(87, 367); - this.searchControl1.Name = "searchControl1"; - this.searchControl1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar2 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule3 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + this.colDataSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colDataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colDatabase = new DevExpress.XtraGrid.Columns.GridColumn(); + this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); + this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); + this.searchControl1 = new DevExpress.XtraEditors.SearchControl(); + this.grid = new DevExpress.XtraGrid.GridControl(); + this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.colRecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); + this.colLogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); + this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); + this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); + this.searchControl1item = new DevExpress.XtraLayout.LayoutControlItem(); + this.griditem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonRefreshitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonOKitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); + ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); + this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.griditem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + this.SuspendLayout(); + // + // colDataSize + // + this.colDataSize.Caption = "Data Size"; + this.colDataSize.FieldName = "DataSize"; + this.colDataSize.MaxWidth = 110; + this.colDataSize.MinWidth = 110; + this.colDataSize.Name = "colDataSize"; + this.colDataSize.Visible = true; + this.colDataSize.VisibleIndex = 4; + this.colDataSize.Width = 110; + // + // colDataFreeSize + // + this.colDataFreeSize.Caption = "Free Size"; + this.colDataFreeSize.FieldName = "DataFreeSize"; + this.colDataFreeSize.MaxWidth = 100; + this.colDataFreeSize.MinWidth = 100; + this.colDataFreeSize.Name = "colDataFreeSize"; + this.colDataFreeSize.Visible = true; + this.colDataFreeSize.VisibleIndex = 5; + this.colDataFreeSize.Width = 100; + // + // colLogSize + // + this.colLogSize.Caption = "Log Size"; + this.colLogSize.FieldName = "LogSize"; + this.colLogSize.MaxWidth = 110; + this.colLogSize.MinWidth = 110; + this.colLogSize.Name = "colLogSize"; + this.colLogSize.Visible = true; + this.colLogSize.VisibleIndex = 6; + this.colLogSize.Width = 110; + // + // colLogFreeSize + // + this.colLogFreeSize.Caption = "Free Size"; + this.colLogFreeSize.FieldName = "LogFreeSize"; + this.colLogFreeSize.MaxWidth = 100; + this.colLogFreeSize.MinWidth = 100; + this.colLogFreeSize.Name = "colLogFreeSize"; + this.colLogFreeSize.Visible = true; + this.colLogFreeSize.VisibleIndex = 7; + this.colLogFreeSize.Width = 100; + // + // colDatabase + // + this.colDatabase.Caption = "Database"; + this.colDatabase.FieldName = "DatabaseName"; + this.colDatabase.Name = "colDatabase"; + this.colDatabase.Visible = true; + this.colDatabase.VisibleIndex = 1; + this.colDatabase.Width = 241; + // + // buttonCancel + // + this.buttonCancel.AllowFocus = false; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(864, 366); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(76, 22); + this.buttonCancel.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonCancel.TabIndex = 3; + this.buttonCancel.Text = "Cancel"; + // + // DatabaseBoxlayoutControl1ConvertedLayout + // + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.searchControl1); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.grid); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonRefresh); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonOK); + this.DatabaseBoxlayoutControl1ConvertedLayout.Controls.Add(this.buttonCancel); + this.DatabaseBoxlayoutControl1ConvertedLayout.Dock = System.Windows.Forms.DockStyle.Fill; + this.DatabaseBoxlayoutControl1ConvertedLayout.Location = new System.Drawing.Point(0, 0); + this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; + this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); + this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; + this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(952, 400); + this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; + // + // searchControl1 + // + this.searchControl1.Client = this.grid; + this.searchControl1.Location = new System.Drawing.Point(87, 367); + this.searchControl1.Name = "searchControl1"; + this.searchControl1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton()}); - this.searchControl1.Properties.Client = this.grid; - this.searchControl1.Size = new System.Drawing.Size(219, 20); - this.searchControl1.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.searchControl1.TabIndex = 4; - // - // grid - // - this.grid.Font = new System.Drawing.Font("Tahoma", 9F); - this.grid.Location = new System.Drawing.Point(12, 7); - this.grid.MainView = this.view; - this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); - this.grid.Name = "grid"; - this.grid.Size = new System.Drawing.Size(928, 353); - this.grid.TabIndex = 0; - this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { + this.searchControl1.Properties.Client = this.grid; + this.searchControl1.Size = new System.Drawing.Size(219, 20); + this.searchControl1.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.searchControl1.TabIndex = 4; + // + // grid + // + this.grid.Font = new System.Drawing.Font("Tahoma", 9F); + this.grid.Location = new System.Drawing.Point(12, 7); + this.grid.MainView = this.view; + this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); + this.grid.Name = "grid"; + this.grid.Size = new System.Drawing.Size(928, 353); + this.grid.TabIndex = 0; + this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { this.view}); - // - // view - // - this.view.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.view.Appearance.EvenRow.Options.UseBackColor = true; - this.view.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.view.Appearance.HeaderPanel.Options.UseFont = true; - this.view.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; - this.view.Appearance.HideSelectionRow.Options.UseBackColor = true; - this.view.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; - this.view.Appearance.OddRow.Options.UseBackColor = true; - this.view.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.view.Appearance.Row.Options.UseFont = true; - this.view.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; - this.view.Appearance.SelectedRow.Options.UseBackColor = true; - this.view.ColumnPanelRowHeight = 26; - this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + // + // view + // + this.view.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; + this.view.Appearance.EvenRow.Options.UseBackColor = true; + this.view.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.HeaderPanel.Options.UseFont = true; + this.view.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; + this.view.Appearance.HideSelectionRow.Options.UseBackColor = true; + this.view.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.view.Appearance.OddRow.Options.UseBackColor = true; + this.view.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.Row.Options.UseFont = true; + this.view.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; + this.view.Appearance.SelectedRow.Options.UseBackColor = true; + this.view.ColumnPanelRowHeight = 26; + this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { this.colDatabase, this.colRecoveryModel, this.colLogReuseWait, @@ -196,281 +196,282 @@ private void InitializeComponent() { this.colDataFreeSize, this.colLogSize, this.colLogFreeSize}); - this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - gridFormatRule1.Column = this.colDataSize; - gridFormatRule1.ColumnApplyTo = this.colDataSize; - gridFormatRule1.Name = "DataSize"; - formatConditionRuleDataBar1.AllowNegativeAxis = false; - formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); - formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar1.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar1.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar1.DrawAxis = false; - formatConditionRuleDataBar1.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar1.Minimum = new decimal(new int[] { + this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; + gridFormatRule1.Column = this.colDataSize; + gridFormatRule1.ColumnApplyTo = this.colDataSize; + gridFormatRule1.Name = "DataSize"; + formatConditionRuleDataBar1.AllowNegativeAxis = false; + formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar1.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); + formatConditionRuleDataBar1.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar1.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar1.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar1.DrawAxis = false; + formatConditionRuleDataBar1.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar1.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar1.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar1.PredefinedName = null; - formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule1.Rule = formatConditionRuleDataBar1; - gridFormatRule2.Column = this.colDataFreeSize; - gridFormatRule2.ColumnApplyTo = this.colDataFreeSize; - gridFormatRule2.Name = "DataFreeSize"; - formatConditionRuleDataBar2.AllowNegativeAxis = false; - formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); - formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); - formatConditionRuleDataBar2.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar2.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar2.DrawAxis = false; - formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar2.Minimum = new decimal(new int[] { + formatConditionRuleDataBar1.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar1.PredefinedName = null; + formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule1.Rule = formatConditionRuleDataBar1; + gridFormatRule2.Column = this.colDataFreeSize; + gridFormatRule2.ColumnApplyTo = this.colDataFreeSize; + gridFormatRule2.Name = "DataFreeSize"; + formatConditionRuleDataBar2.AllowNegativeAxis = false; + formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar2.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(214)))), ((int)(((byte)(254))))); + formatConditionRuleDataBar2.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); + formatConditionRuleDataBar2.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar2.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar2.DrawAxis = false; + formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar2.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar2.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar2.PredefinedName = null; - formatConditionRuleDataBar2.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule2.Rule = formatConditionRuleDataBar2; - gridFormatRule3.Column = this.colLogSize; - gridFormatRule3.ColumnApplyTo = this.colLogSize; - gridFormatRule3.Name = "LogSize"; - formatConditionRuleDataBar3.AllowNegativeAxis = false; - formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); - formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar3.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar3.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar3.DrawAxis = false; - formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar3.Minimum = new decimal(new int[] { + formatConditionRuleDataBar2.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar2.PredefinedName = null; + formatConditionRuleDataBar2.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule2.Rule = formatConditionRuleDataBar2; + gridFormatRule3.Column = this.colLogSize; + gridFormatRule3.ColumnApplyTo = this.colLogSize; + gridFormatRule3.Name = "LogSize"; + formatConditionRuleDataBar3.AllowNegativeAxis = false; + formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar3.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar3.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar3.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar3.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar3.DrawAxis = false; + formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar3.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar3.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar3.PredefinedName = null; - formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule3.Rule = formatConditionRuleDataBar3; - gridFormatRule4.Column = this.colLogFreeSize; - gridFormatRule4.ColumnApplyTo = this.colLogFreeSize; - gridFormatRule4.Name = "LogFreeSize"; - formatConditionRuleDataBar4.AllowNegativeAxis = false; - formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); - formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); - formatConditionRuleDataBar4.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar4.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar4.DrawAxis = false; - formatConditionRuleDataBar4.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar4.Minimum = new decimal(new int[] { + formatConditionRuleDataBar3.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar3.PredefinedName = null; + formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule3.Rule = formatConditionRuleDataBar3; + gridFormatRule4.Column = this.colLogFreeSize; + gridFormatRule4.ColumnApplyTo = this.colLogFreeSize; + gridFormatRule4.Name = "LogFreeSize"; + formatConditionRuleDataBar4.AllowNegativeAxis = false; + formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar4.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(159)))), ((int)(((byte)(243)))), ((int)(((byte)(233))))); + formatConditionRuleDataBar4.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); + formatConditionRuleDataBar4.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar4.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar4.DrawAxis = false; + formatConditionRuleDataBar4.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar4.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - formatConditionRuleDataBar4.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar4.PredefinedName = null; - formatConditionRuleDataBar4.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule4.Rule = formatConditionRuleDataBar4; - this.view.FormatRules.Add(gridFormatRule1); - this.view.FormatRules.Add(gridFormatRule2); - this.view.FormatRules.Add(gridFormatRule3); - this.view.FormatRules.Add(gridFormatRule4); - this.view.GridControl = this.grid; - this.view.Name = "view"; - this.view.OptionsBehavior.Editable = false; - this.view.OptionsCustomization.AllowColumnMoving = false; - this.view.OptionsCustomization.AllowColumnResizing = false; - this.view.OptionsCustomization.AllowFilter = false; - this.view.OptionsCustomization.AllowGroup = false; - this.view.OptionsCustomization.AllowQuickHideColumns = false; - this.view.OptionsFilter.AllowFilterEditor = false; - this.view.OptionsFind.AllowFindPanel = false; - this.view.OptionsFind.FindFilterColumns = "DatabaseName"; - this.view.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; - this.view.OptionsFind.FindNullPrompt = ""; - this.view.OptionsFind.ShowClearButton = false; - this.view.OptionsFind.ShowCloseButton = false; - this.view.OptionsFind.ShowFindButton = false; - this.view.OptionsMenu.EnableColumnMenu = false; - this.view.OptionsSelection.CheckBoxSelectorColumnWidth = 35; - this.view.OptionsSelection.EnableAppearanceFocusedCell = false; - this.view.OptionsSelection.EnableAppearanceFocusedRow = false; - this.view.OptionsSelection.EnableAppearanceHideSelection = false; - this.view.OptionsSelection.MultiSelect = true; - this.view.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; - this.view.OptionsSelection.UseIndicatorForSelection = false; - this.view.OptionsView.EnableAppearanceEvenRow = true; - this.view.OptionsView.EnableAppearanceOddRow = true; - this.view.OptionsView.ShowGroupPanel = false; - this.view.OptionsView.ShowIndicator = false; - this.view.RowHeight = 24; - this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { + formatConditionRuleDataBar4.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar4.PredefinedName = null; + formatConditionRuleDataBar4.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule4.Rule = formatConditionRuleDataBar4; + this.view.FormatRules.Add(gridFormatRule1); + this.view.FormatRules.Add(gridFormatRule2); + this.view.FormatRules.Add(gridFormatRule3); + this.view.FormatRules.Add(gridFormatRule4); + this.view.GridControl = this.grid; + this.view.Name = "view"; + this.view.OptionsBehavior.Editable = false; + this.view.OptionsCustomization.AllowColumnMoving = false; + this.view.OptionsCustomization.AllowColumnResizing = false; + this.view.OptionsCustomization.AllowFilter = false; + this.view.OptionsCustomization.AllowGroup = false; + this.view.OptionsCustomization.AllowQuickHideColumns = false; + this.view.OptionsFilter.AllowFilterEditor = false; + this.view.OptionsFind.AllowFindPanel = false; + this.view.OptionsFind.FindFilterColumns = "DatabaseName"; + this.view.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; + this.view.OptionsFind.FindNullPrompt = ""; + this.view.OptionsFind.ShowClearButton = false; + this.view.OptionsFind.ShowCloseButton = false; + this.view.OptionsFind.ShowFindButton = false; + this.view.OptionsMenu.EnableColumnMenu = false; + this.view.OptionsSelection.CheckBoxSelectorColumnWidth = 35; + this.view.OptionsSelection.EnableAppearanceFocusedCell = false; + this.view.OptionsSelection.EnableAppearanceFocusedRow = false; + this.view.OptionsSelection.EnableAppearanceHideSelection = false; + this.view.OptionsSelection.MultiSelect = true; + this.view.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; + this.view.OptionsSelection.UseIndicatorForSelection = false; + this.view.OptionsView.EnableAppearanceEvenRow = true; + this.view.OptionsView.EnableAppearanceOddRow = true; + this.view.OptionsView.ShowGroupPanel = false; + this.view.OptionsView.ShowIndicator = false; + this.view.RowHeight = 24; + this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.colDataSize, DevExpress.Data.ColumnSortOrder.Descending)}); - this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); - this.view.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridCustomColumnDisplayText); - this.view.DoubleClick += new System.EventHandler(this.GridDoubleClick); - // - // colRecoveryModel - // - this.colRecoveryModel.Caption = "Recovery Model"; - this.colRecoveryModel.FieldName = "RecoveryModel"; - this.colRecoveryModel.MaxWidth = 105; - this.colRecoveryModel.MinWidth = 105; - this.colRecoveryModel.Name = "colRecoveryModel"; - this.colRecoveryModel.Visible = true; - this.colRecoveryModel.VisibleIndex = 2; - this.colRecoveryModel.Width = 105; - // - // colLogReuseWait - // - this.colLogReuseWait.Caption = "Log Reuse Wait"; - this.colLogReuseWait.FieldName = "LogReuseWait"; - this.colLogReuseWait.MaxWidth = 130; - this.colLogReuseWait.MinWidth = 130; - this.colLogReuseWait.Name = "colLogReuseWait"; - this.colLogReuseWait.Visible = true; - this.colLogReuseWait.VisibleIndex = 3; - this.colLogReuseWait.Width = 130; - // - // buttonRefresh - // - this.buttonRefresh.AllowFocus = false; - this.buttonRefresh.Location = new System.Drawing.Point(12, 366); - this.buttonRefresh.Name = "buttonRefresh"; - this.buttonRefresh.Size = new System.Drawing.Size(71, 22); - this.buttonRefresh.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonRefresh.TabIndex = 1; - this.buttonRefresh.Text = "Refresh"; - this.buttonRefresh.Click += new System.EventHandler(this.ButtonRefreshClick); - // - // buttonOK - // - this.buttonOK.AllowFocus = false; - this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Enabled = false; - this.buttonOK.Location = new System.Drawing.Point(784, 366); - this.buttonOK.Name = "buttonOK"; - this.buttonOK.Size = new System.Drawing.Size(76, 22); - this.buttonOK.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; - this.buttonOK.TabIndex = 2; - this.buttonOK.Text = "OK"; - // - // layoutControl - // - this.layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; - this.layoutControl.GroupBordersVisible = false; - this.layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.view.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); + this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); + this.view.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridCustomColumnDisplayText); + this.view.DoubleClick += new System.EventHandler(this.GridDoubleClick); + // + // colRecoveryModel + // + this.colRecoveryModel.Caption = "Recovery Model"; + this.colRecoveryModel.FieldName = "RecoveryModel"; + this.colRecoveryModel.MaxWidth = 105; + this.colRecoveryModel.MinWidth = 105; + this.colRecoveryModel.Name = "colRecoveryModel"; + this.colRecoveryModel.Visible = true; + this.colRecoveryModel.VisibleIndex = 2; + this.colRecoveryModel.Width = 105; + // + // colLogReuseWait + // + this.colLogReuseWait.Caption = "Log Reuse Wait"; + this.colLogReuseWait.FieldName = "LogReuseWait"; + this.colLogReuseWait.MaxWidth = 130; + this.colLogReuseWait.MinWidth = 130; + this.colLogReuseWait.Name = "colLogReuseWait"; + this.colLogReuseWait.Visible = true; + this.colLogReuseWait.VisibleIndex = 3; + this.colLogReuseWait.Width = 130; + // + // buttonRefresh + // + this.buttonRefresh.AllowFocus = false; + this.buttonRefresh.Location = new System.Drawing.Point(12, 366); + this.buttonRefresh.Name = "buttonRefresh"; + this.buttonRefresh.Size = new System.Drawing.Size(71, 22); + this.buttonRefresh.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonRefresh.TabIndex = 1; + this.buttonRefresh.Text = "Refresh"; + this.buttonRefresh.Click += new System.EventHandler(this.ButtonRefreshClick); + // + // buttonOK + // + this.buttonOK.AllowFocus = false; + this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOK.Enabled = false; + this.buttonOK.Location = new System.Drawing.Point(784, 366); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(76, 22); + this.buttonOK.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; + this.buttonOK.TabIndex = 2; + this.buttonOK.Text = "OK"; + // + // layoutControl + // + this.layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControl.GroupBordersVisible = false; + this.layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { this.searchControl1item, this.griditem, this.buttonRefreshitem, this.buttonOKitem, this.buttonCancelitem, this.emptySpaceItem1}); - this.layoutControl.Name = "Root"; - this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); - this.layoutControl.Size = new System.Drawing.Size(952, 400); - this.layoutControl.TextVisible = false; - // - // searchControl1item - // - this.searchControl1item.Control = this.searchControl1; - this.searchControl1item.Location = new System.Drawing.Point(75, 359); - this.searchControl1item.MaxSize = new System.Drawing.Size(223, 26); - this.searchControl1item.MinSize = new System.Drawing.Size(223, 26); - this.searchControl1item.Name = "searchControl1item"; - this.searchControl1item.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 3, 2); - this.searchControl1item.Size = new System.Drawing.Size(223, 26); - this.searchControl1item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.searchControl1item.TextSize = new System.Drawing.Size(0, 0); - this.searchControl1item.TextVisible = false; - // - // griditem - // - this.griditem.Control = this.grid; - this.griditem.Location = new System.Drawing.Point(0, 0); - this.griditem.Name = "griditem"; - this.griditem.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 4); - this.griditem.Size = new System.Drawing.Size(932, 359); - this.griditem.TextSize = new System.Drawing.Size(0, 0); - this.griditem.TextVisible = false; - // - // buttonRefreshitem - // - this.buttonRefreshitem.Control = this.buttonRefresh; - this.buttonRefreshitem.Location = new System.Drawing.Point(0, 359); - this.buttonRefreshitem.MaxSize = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.MinSize = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.Name = "buttonRefreshitem"; - this.buttonRefreshitem.Size = new System.Drawing.Size(75, 26); - this.buttonRefreshitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonRefreshitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonRefreshitem.TextVisible = false; - // - // buttonOKitem - // - this.buttonOKitem.Control = this.buttonOK; - this.buttonOKitem.Location = new System.Drawing.Point(772, 359); - this.buttonOKitem.MaxSize = new System.Drawing.Size(80, 26); - this.buttonOKitem.MinSize = new System.Drawing.Size(80, 26); - this.buttonOKitem.Name = "buttonOKitem"; - this.buttonOKitem.Size = new System.Drawing.Size(80, 26); - this.buttonOKitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonOKitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonOKitem.TextVisible = false; - // - // buttonCancelitem - // - this.buttonCancelitem.Control = this.buttonCancel; - this.buttonCancelitem.Location = new System.Drawing.Point(852, 359); - this.buttonCancelitem.MaxSize = new System.Drawing.Size(80, 26); - this.buttonCancelitem.MinSize = new System.Drawing.Size(80, 26); - this.buttonCancelitem.Name = "buttonCancelitem"; - this.buttonCancelitem.Size = new System.Drawing.Size(80, 26); - this.buttonCancelitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - this.buttonCancelitem.TextSize = new System.Drawing.Size(0, 0); - this.buttonCancelitem.TextVisible = false; - // - // emptySpaceItem1 - // - this.emptySpaceItem1.AllowHotTrack = false; - this.emptySpaceItem1.Location = new System.Drawing.Point(298, 359); - this.emptySpaceItem1.Name = "emptySpaceItem1"; - this.emptySpaceItem1.Size = new System.Drawing.Size(474, 26); - this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); - // - // DatabaseBox - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(952, 400); - this.Controls.Add(this.DatabaseBoxlayoutControl1ConvertedLayout); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(868, 432); - this.Name = "DatabaseBox"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Select Databases"; - ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).EndInit(); - this.DatabaseBoxlayoutControl1ConvertedLayout.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.griditem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); - this.ResumeLayout(false); + this.layoutControl.Name = "Root"; + this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); + this.layoutControl.Size = new System.Drawing.Size(952, 400); + this.layoutControl.TextVisible = false; + // + // searchControl1item + // + this.searchControl1item.Control = this.searchControl1; + this.searchControl1item.Location = new System.Drawing.Point(75, 359); + this.searchControl1item.MaxSize = new System.Drawing.Size(223, 26); + this.searchControl1item.MinSize = new System.Drawing.Size(223, 26); + this.searchControl1item.Name = "searchControl1item"; + this.searchControl1item.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 3, 2); + this.searchControl1item.Size = new System.Drawing.Size(223, 26); + this.searchControl1item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.searchControl1item.TextSize = new System.Drawing.Size(0, 0); + this.searchControl1item.TextVisible = false; + // + // griditem + // + this.griditem.Control = this.grid; + this.griditem.Location = new System.Drawing.Point(0, 0); + this.griditem.Name = "griditem"; + this.griditem.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 4); + this.griditem.Size = new System.Drawing.Size(932, 359); + this.griditem.TextSize = new System.Drawing.Size(0, 0); + this.griditem.TextVisible = false; + // + // buttonRefreshitem + // + this.buttonRefreshitem.Control = this.buttonRefresh; + this.buttonRefreshitem.Location = new System.Drawing.Point(0, 359); + this.buttonRefreshitem.MaxSize = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.MinSize = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.Name = "buttonRefreshitem"; + this.buttonRefreshitem.Size = new System.Drawing.Size(75, 26); + this.buttonRefreshitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonRefreshitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonRefreshitem.TextVisible = false; + // + // buttonOKitem + // + this.buttonOKitem.Control = this.buttonOK; + this.buttonOKitem.Location = new System.Drawing.Point(772, 359); + this.buttonOKitem.MaxSize = new System.Drawing.Size(80, 26); + this.buttonOKitem.MinSize = new System.Drawing.Size(80, 26); + this.buttonOKitem.Name = "buttonOKitem"; + this.buttonOKitem.Size = new System.Drawing.Size(80, 26); + this.buttonOKitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonOKitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonOKitem.TextVisible = false; + // + // buttonCancelitem + // + this.buttonCancelitem.Control = this.buttonCancel; + this.buttonCancelitem.Location = new System.Drawing.Point(852, 359); + this.buttonCancelitem.MaxSize = new System.Drawing.Size(80, 26); + this.buttonCancelitem.MinSize = new System.Drawing.Size(80, 26); + this.buttonCancelitem.Name = "buttonCancelitem"; + this.buttonCancelitem.Size = new System.Drawing.Size(80, 26); + this.buttonCancelitem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.buttonCancelitem.TextSize = new System.Drawing.Size(0, 0); + this.buttonCancelitem.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(298, 359); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(474, 26); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // DatabaseBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(952, 400); + this.Controls.Add(this.DatabaseBoxlayoutControl1ConvertedLayout); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(868, 432); + this.Name = "DatabaseBox"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Select Databases"; + ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).EndInit(); + this.DatabaseBoxlayoutControl1ConvertedLayout.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.griditem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + this.ResumeLayout(false); } diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 1778995..6d809a4 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -140,6 +140,12 @@ private void GridDoubleClick(object sender, EventArgs e) { } } + private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { + if (e.RowHandle == (sender as GridView).FocusedRowHandle) { + e.Appearance.BackColor = Color.Silver; + } + } + #endregion } diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index b6f7597..81f11b6 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -12,7 +12,7 @@ public ErrorBox(Exception ex) { edError.Text = "Application has encountered an unexpected error" + - "\r\nPlease send error detail to sergey.syrovatchenko@gmail.com" + + "\r\nPlease send error detail to https://github.com/sergeysyrovatchenko/SQLIndexManager/issues" + $"\r\nBuild: {AssemblyVersion}" + $"\r\nOS: {Environment.OSVersion}" + $"\r\n\r\n{ex.Message}" + diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 5cfca89..7bccf4a 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -729,15 +729,15 @@ private void InitializeComponent() { // // gridView1 // - this.gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; this.gridView1.Appearance.EvenRow.Options.UseBackColor = true; - this.gridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.gridView1.Appearance.FocusedRow.Options.UseBackColor = true; this.gridView1.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); this.gridView1.Appearance.HeaderPanel.Options.UseFont = true; - this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; + this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); this.gridView1.Appearance.OddRow.Options.UseBackColor = true; + this.gridView1.Appearance.Row.BackColor = System.Drawing.Color.Silver; this.gridView1.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.gridView1.Appearance.Row.Options.UseBackColor = true; this.gridView1.Appearance.Row.Options.UseFont = true; this.gridView1.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; this.gridView1.Appearance.SelectedRow.Options.UseBackColor = true; @@ -850,9 +850,9 @@ private void InitializeComponent() { 0, 0, 0}); - formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar2.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; formatConditionRuleDataBar2.Minimum = new decimal(new int[] { - 1, + 64, 0, 0, 0}); @@ -875,9 +875,9 @@ private void InitializeComponent() { 0, 0, 0}); - formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar3.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; formatConditionRuleDataBar3.Minimum = new decimal(new int[] { - 1, + 64, 0, 0, 0}); @@ -902,7 +902,7 @@ private void InitializeComponent() { 0}); formatConditionRuleDataBar4.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; formatConditionRuleDataBar4.Minimum = new decimal(new int[] { - 1, + 100, 0, 0, 0}); @@ -927,7 +927,7 @@ private void InitializeComponent() { 0}); formatConditionRuleDataBar5.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; formatConditionRuleDataBar5.Minimum = new decimal(new int[] { - 1, + 64, 0, 0, 0}); @@ -950,9 +950,9 @@ private void InitializeComponent() { 0, 0, 0}); - formatConditionRuleDataBar6.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar6.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; formatConditionRuleDataBar6.Minimum = new decimal(new int[] { - 1, + 64, 0, 0, 0}); @@ -987,7 +987,6 @@ private void InitializeComponent() { this.gridView1.OptionsMenu.ShowAddNewSummaryItem = DevExpress.Utils.DefaultBoolean.False; this.gridView1.OptionsMenu.ShowAutoFilterRowItem = false; this.gridView1.OptionsSelection.CheckBoxSelectorColumnWidth = 35; - this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false; this.gridView1.OptionsSelection.EnableAppearanceFocusedRow = false; this.gridView1.OptionsSelection.EnableAppearanceHideSelection = false; this.gridView1.OptionsSelection.MultiSelect = true; @@ -1003,7 +1002,7 @@ private void InitializeComponent() { this.gridView1.OptionsView.ShowIndicator = false; this.gridView1.RowHeight = 24; this.gridView1.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); - this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.RowCellStyle); + this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); this.gridView1.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); this.gridView1.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); this.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); @@ -1032,7 +1031,7 @@ private void InitializeComponent() { this.Duration.OptionsColumn.ShowInExpressionEditor = false; this.Duration.OptionsColumn.TabStop = false; this.Duration.OptionsFilter.AllowAutoFilter = false; - this.Duration.OptionsFilter.AllowFilter = false; + this.Duration.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; this.Duration.Width = 70; // // Error @@ -1400,6 +1399,10 @@ private void InitializeComponent() { this.imageCollection.Images.SetKeyName(2, "apply_16x16.png"); this.imageCollection.InsertGalleryImage("close_16x16.png", "office2013/actions/close_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/actions/close_16x16.png"), 3); this.imageCollection.Images.SetKeyName(3, "close_16x16.png"); + this.imageCollection.InsertGalleryImage("copy_16x16.png", "office2013/edit/copy_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/edit/copy_16x16.png"), 4); + this.imageCollection.Images.SetKeyName(4, "copy_16x16.png"); + this.imageCollection.InsertGalleryImage("masterfilter_16x16.png", "office2013/filter/masterfilter_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/filter/masterfilter_16x16.png"), 5); + this.imageCollection.Images.SetKeyName(5, "masterfilter_16x16.png"); // // buttonFind // @@ -1441,7 +1444,7 @@ private void InitializeComponent() { // // gridView2 // - this.gridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.gridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; this.gridView2.Appearance.EvenRow.Options.UseBackColor = true; this.gridView2.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); this.gridView2.Appearance.FocusedRow.Options.UseBackColor = true; @@ -1449,7 +1452,7 @@ private void InitializeComponent() { this.gridView2.Appearance.HeaderPanel.Options.UseFont = true; this.gridView2.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; this.gridView2.Appearance.HideSelectionRow.Options.UseBackColor = true; - this.gridView2.Appearance.OddRow.BackColor = System.Drawing.Color.Gainsboro; + this.gridView2.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); this.gridView2.Appearance.OddRow.Options.UseBackColor = true; this.gridView2.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); this.gridView2.Appearance.Row.Options.UseFont = true; diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 37a02c2..8170b84 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -1,10 +1,12 @@ using DevExpress.Data; +using DevExpress.Data.Filtering; using DevExpress.Utils; using DevExpress.Utils.Menu; using DevExpress.Utils.Taskbar.Core; using DevExpress.XtraBars; using DevExpress.XtraBars.Ribbon; using DevExpress.XtraEditors; +using DevExpress.XtraGrid; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Localization; using DevExpress.XtraGrid.Views.Base; @@ -59,7 +61,7 @@ private void UpdateActiveHost(Host host) { else { Output.Current.Add($"Host: {host.Server}"); Output.Current.Add($"Server: {host.ServerInfo}"); - Text = host.Server.ToString(); + Text = host.Server.ToUpper(); labelServerInfo.Caption = host.ServerInfo.ToString(); ShowDatabaseBox(); } @@ -258,19 +260,6 @@ private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { gridView1.CustomDrawEmptyForeground += CustomDrawEmptyForeground; gridControl1.DataSource = indexes; - - if (indexes.Count > 0) { - var rulePagesCount = gridView1.FormatRules[Resources.PagesCount].RuleCast(); - var ruleUnusedPagesCount = gridView1.FormatRules[Resources.UnusedPagesCount].RuleCast(); - - rulePagesCount.Minimum = 1; - rulePagesCount.Maximum = indexes.Max(_ => _.PagesCount); - - ruleUnusedPagesCount.Minimum = 1; - ruleUnusedPagesCount.Maximum = indexes.Max(_ => _.UnusedPagesCount) > 1000 - ? indexes.Max(_ => _.UnusedPagesCount) - : rulePagesCount.Maximum; - } } private void RefreshIndexes() { @@ -695,6 +684,11 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { string colName = (e.HitInfo.Column.Fixed == FixedStyle.None) ? "Freeze column" : "Unfreeze column"; e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle) { Tag = e.HitInfo.Column.FieldName }); } + + if (e.MenuType == GridMenuType.Row) { + e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = e.HitInfo.Column.FieldName }); + e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = e.HitInfo.Column.FieldName }); + } } private void ChangeFixedColumnStyle(object sender, EventArgs e) { @@ -705,6 +699,21 @@ private void ChangeFixedColumnStyle(object sender, EventArgs e) { } } + private void CopyCellValue(object sender, EventArgs e) { + DXMenuItem mi = (DXMenuItem)sender; + GridColumn col = gridView1.Columns[mi.Tag.ToString()]; + var cellValue = gridView1.GetFocusedRowCellValue(col); + if (cellValue != null) + Clipboard.SetText(cellValue.ToString()); + } + + private void FilterCellValue(object sender, EventArgs e) { + DXMenuItem mi = (DXMenuItem)sender; + GridColumn col = gridView1.Columns[mi.Tag.ToString()]; + var cellValue = gridView1.GetFocusedRowCellValue(col); + gridView1.SetRowCellValue(GridControl.AutoFilterRowHandle, col, cellValue); + } + private void GridCustomizationMenu(object sender, RibbonCustomizationMenuEventArgs e) { foreach (BarItemLink itemLink in e.CustomizationMenu.ItemLinks) { itemLink.Visible = false; @@ -743,12 +752,8 @@ private void CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { e.Appearance.DrawString(e.Cache, trySearchingAgainText, trySearchingAgainBounds); } - private void RowCellStyle(object sender, RowCellStyleEventArgs e) { - GridView view = sender as GridView; - if (e.RowHandle == view.FocusedRowHandle) { - if (e.Column.Caption == @"Selection" || (e.Column.Caption == @"Fix" && view.OptionsBehavior.Editable)) - return; - + private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { + if (e.RowHandle == (sender as GridView).FocusedRowHandle) { e.Appearance.BackColor = Color.Silver; } } diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index c9968bd..04b0b12 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.54")] -[assembly: AssemblyFileVersion("1.0.0.54")] +[assembly: AssemblyVersion("1.0.0.55")] +[assembly: AssemblyFileVersion("1.0.0.55")] diff --git a/Settings/Options.cs b/Settings/Options.cs index b6fba4c..a074ee7 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -29,6 +29,7 @@ public class Options { public Options() { SortInTempDb = true; LobCompaction = true; + ScanHeap = true; ScanClusteredIndex = true; ScanNonClusteredIndex = true; ScanClusteredColumnstore = true; From c23d7bb21e332b70a8ad5c00d19edbddfe8be9ae Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 29 Dec 2019 16:53:46 +0200 Subject: [PATCH 12/53] Show all indexes, change fix action for several rows, new options, improvements in query cancellation --- Forms/ActionBox.Designer.cs | 93 +++++++++ Forms/ActionBox.cs | 75 ++++++++ Forms/ActionBox.resx | 120 ++++++++++++ Forms/DatabaseBox.cs | 2 +- Forms/MainBox.Designer.cs | 153 +++++++-------- Forms/MainBox.cs | 312 +++++++++++++++++++------------ Forms/SettingsBox.Designer.cs | 170 +++++++++++++---- Forms/SettingsBox.cs | 11 ++ Forms/SettingsBox.resx | 3 + Properties/AssemblyInfo.cs | 4 +- Properties/Resources.Designer.cs | 18 ++ Properties/Resources.resx | 6 + README.md | 2 +- SQLIndexManager.csproj | 9 + Server/Connection.cs | 2 +- Server/Query.cs | 13 ++ Server/QueryEngine.cs | 42 ++++- Settings/Options.cs | 28 ++- Settings/Settings.cs | 9 +- Types/IndexOp.cs | 11 +- 20 files changed, 832 insertions(+), 251 deletions(-) create mode 100644 Forms/ActionBox.Designer.cs create mode 100644 Forms/ActionBox.cs create mode 100644 Forms/ActionBox.resx diff --git a/Forms/ActionBox.Designer.cs b/Forms/ActionBox.Designer.cs new file mode 100644 index 0000000..5c07905 --- /dev/null +++ b/Forms/ActionBox.Designer.cs @@ -0,0 +1,93 @@ +namespace SQLIndexManager { + partial class ActionBox { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); + this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); + this.boxFixAction = new DevExpress.XtraEditors.ComboBoxEdit(); + ((System.ComponentModel.ISupportInitialize)(this.boxFixAction.Properties)).BeginInit(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.AllowFocus = false; + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(200, 40); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 7; + this.buttonCancel.Text = "Cancel"; + // + // buttonOK + // + this.buttonOK.AllowFocus = false; + this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOK.Location = new System.Drawing.Point(119, 40); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(75, 23); + this.buttonOK.TabIndex = 6; + this.buttonOK.Text = "OK"; + // + // boxFixAction + // + this.boxFixAction.Location = new System.Drawing.Point(12, 10); + this.boxFixAction.Name = "boxFixAction"; + this.boxFixAction.Properties.AllowFocused = false; + this.boxFixAction.Properties.AutoComplete = false; + this.boxFixAction.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxFixAction.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxFixAction.Size = new System.Drawing.Size(263, 20); + this.boxFixAction.TabIndex = 2; + // + // ActionBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 75); + this.Controls.Add(this.boxFixAction); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOK); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.LookAndFeel.SkinName = "Office 2016 Dark"; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ActionBox"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Change Fix Action"; + ((System.ComponentModel.ISupportInitialize)(this.boxFixAction.Properties)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraEditors.SimpleButton buttonCancel; + private DevExpress.XtraEditors.SimpleButton buttonOK; + private DevExpress.XtraEditors.ComboBoxEdit boxFixAction; + } +} \ No newline at end of file diff --git a/Forms/ActionBox.cs b/Forms/ActionBox.cs new file mode 100644 index 0000000..c10a34e --- /dev/null +++ b/Forms/ActionBox.cs @@ -0,0 +1,75 @@ +using DevExpress.XtraEditors; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace SQLIndexManager { + + public partial class ActionBox : XtraForm { + + public ActionBox() { + InitializeComponent(); + + List indexOps = new List { IndexOp.REBUILD, IndexOp.REORGANIZE }; + if (Settings.ServerInfo.IsCompressionAvailable) { + indexOps.AddRange(new List { + IndexOp.REBUILD_ROW, + IndexOp.REBUILD_PAGE, + IndexOp.REBUILD_NONE + } + ); + } + + if (Settings.ServerInfo.IsColumnstoreAvailable) { + indexOps.AddRange(new List { + IndexOp.REBUILD_COLUMNSTORE, + IndexOp.REBUILD_COLUMNSTORE_ARCHIVE + } + ); + } + + if (Settings.ServerInfo.IsOnlineRebuildAvailable) { + indexOps.Add(IndexOp.REBUILD_ONLINE); + } + + indexOps.AddRange(new List { + IndexOp.UPDATE_STATISTICS_SAMPLE, + IndexOp.UPDATE_STATISTICS_RESAMPLE, + IndexOp.UPDATE_STATISTICS_FULL, + IndexOp.DISABLE_INDEX, + IndexOp.DROP_TABLE, + IndexOp.SKIP + } + ); + + foreach (IndexOp op in indexOps) { + boxFixAction.Properties.Items.Add(op.Description()); + } + + boxFixAction.SelectedIndex = 0; + } + + public IndexOp GetFixAction() { + return Utils.GetValueFromDescription((string)boxFixAction.EditValue); + } + + #region Override Methods + + protected override bool ProcessDialogKey(Keys keyData) { + if (keyData == Keys.Escape) { + DialogResult = DialogResult.Cancel; + return true; + } + + if (keyData == Keys.Enter && buttonOK.Enabled) { + DialogResult = DialogResult.OK; + return true; + } + + return base.ProcessDialogKey(keyData); + } + + #endregion + + } + +} diff --git a/Forms/ActionBox.resx b/Forms/ActionBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Forms/ActionBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 6d809a4..24e9346 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -141,7 +141,7 @@ private void GridDoubleClick(object sender, EventArgs e) { } private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { - if (e.RowHandle == (sender as GridView).FocusedRowHandle) { + if (e.RowHandle == ((GridView) sender).FocusedRowHandle) { e.Appearance.BackColor = Color.Silver; } } diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 7bccf4a..8d46f84 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -69,7 +69,7 @@ private void InitializeComponent() { this.PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); this.gridControl1 = new DevExpress.XtraGrid.GridControl(); - this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.grid = new DevExpress.XtraGrid.Views.Grid.GridView(); this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); @@ -145,7 +145,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).BeginInit(); @@ -716,7 +716,7 @@ private void InitializeComponent() { this.gridControl1.Dock = System.Windows.Forms.DockStyle.Fill; this.gridControl1.Font = new System.Drawing.Font("Tahoma", 9F); this.gridControl1.Location = new System.Drawing.Point(0, 0); - this.gridControl1.MainView = this.gridView1; + this.gridControl1.MainView = this.grid; this.gridControl1.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); this.gridControl1.Name = "gridControl1"; this.gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { @@ -725,25 +725,25 @@ private void InitializeComponent() { this.gridControl1.TabIndex = 2; this.gridControl1.ToolTipController = this.gridToolTipController; this.gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { - this.gridView1}); - // - // gridView1 - // - this.gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; - this.gridView1.Appearance.EvenRow.Options.UseBackColor = true; - this.gridView1.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.gridView1.Appearance.HeaderPanel.Options.UseFont = true; - this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.gridView1.Appearance.OddRow.Options.UseBackColor = true; - this.gridView1.Appearance.Row.BackColor = System.Drawing.Color.Silver; - this.gridView1.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.gridView1.Appearance.Row.Options.UseBackColor = true; - this.gridView1.Appearance.Row.Options.UseFont = true; - this.gridView1.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; - this.gridView1.Appearance.SelectedRow.Options.UseBackColor = true; - this.gridView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; - this.gridView1.ColumnPanelRowHeight = 26; - this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + this.grid}); + // + // grid + // + this.grid.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; + this.grid.Appearance.EvenRow.Options.UseBackColor = true; + this.grid.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.grid.Appearance.HeaderPanel.Options.UseFont = true; + this.grid.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.grid.Appearance.OddRow.Options.UseBackColor = true; + this.grid.Appearance.Row.BackColor = System.Drawing.Color.Silver; + this.grid.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.grid.Appearance.Row.Options.UseBackColor = true; + this.grid.Appearance.Row.Options.UseFont = true; + this.grid.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; + this.grid.Appearance.SelectedRow.Options.UseBackColor = true; + this.grid.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + this.grid.ColumnPanelRowHeight = 26; + this.grid.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { Progress, this.Duration, FixType, @@ -777,7 +777,7 @@ private void InitializeComponent() { IncludedColumns, this.Warning, this.Error}); - this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; + this.grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; gridFormatRule1.Column = this.Warning; gridFormatRule1.ColumnApplyTo = IndexName; gridFormatRule1.Name = "Warning"; @@ -960,54 +960,54 @@ private void InitializeComponent() { formatConditionRuleDataBar6.PredefinedName = null; formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule7.Rule = formatConditionRuleDataBar6; - this.gridView1.FormatRules.Add(gridFormatRule1); - this.gridView1.FormatRules.Add(gridFormatRule2); - this.gridView1.FormatRules.Add(gridFormatRule3); - this.gridView1.FormatRules.Add(gridFormatRule4); - this.gridView1.FormatRules.Add(gridFormatRule5); - this.gridView1.FormatRules.Add(gridFormatRule6); - this.gridView1.FormatRules.Add(gridFormatRule7); - this.gridView1.GridControl = this.gridControl1; - this.gridView1.Name = "gridView1"; - this.gridView1.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; - this.gridView1.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.False; - this.gridView1.OptionsCustomization.AllowGroup = false; - this.gridView1.OptionsFind.AllowFindPanel = false; - this.gridView1.OptionsFind.FindFilterColumns = "DatabaseName;SchemaName;ObjectName;IndexName;FileGroupName;IndexColumns;IncludedC" + + this.grid.FormatRules.Add(gridFormatRule1); + this.grid.FormatRules.Add(gridFormatRule2); + this.grid.FormatRules.Add(gridFormatRule3); + this.grid.FormatRules.Add(gridFormatRule4); + this.grid.FormatRules.Add(gridFormatRule5); + this.grid.FormatRules.Add(gridFormatRule6); + this.grid.FormatRules.Add(gridFormatRule7); + this.grid.GridControl = this.gridControl1; + this.grid.Name = "grid"; + this.grid.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; + this.grid.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.False; + this.grid.OptionsCustomization.AllowGroup = false; + this.grid.OptionsFind.AllowFindPanel = false; + this.grid.OptionsFind.FindFilterColumns = "DatabaseName;SchemaName;ObjectName;IndexName;FileGroupName;IndexColumns;IncludedC" + "olumns"; - this.gridView1.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; - this.gridView1.OptionsFind.FindNullPrompt = ""; - this.gridView1.OptionsFind.ShowClearButton = false; - this.gridView1.OptionsFind.ShowCloseButton = false; - this.gridView1.OptionsFind.ShowFindButton = false; - this.gridView1.OptionsLayout.Columns.AddNewColumns = false; - this.gridView1.OptionsLayout.StoreDataSettings = false; - this.gridView1.OptionsLayout.StoreVisualOptions = false; - this.gridView1.OptionsMenu.EnableGroupPanelMenu = false; - this.gridView1.OptionsMenu.ShowAddNewSummaryItem = DevExpress.Utils.DefaultBoolean.False; - this.gridView1.OptionsMenu.ShowAutoFilterRowItem = false; - this.gridView1.OptionsSelection.CheckBoxSelectorColumnWidth = 35; - this.gridView1.OptionsSelection.EnableAppearanceFocusedRow = false; - this.gridView1.OptionsSelection.EnableAppearanceHideSelection = false; - this.gridView1.OptionsSelection.MultiSelect = true; - this.gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; - this.gridView1.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True; - this.gridView1.OptionsSelection.ShowCheckBoxSelectorInGroupRow = DevExpress.Utils.DefaultBoolean.True; - this.gridView1.OptionsSelection.ShowCheckBoxSelectorInPrintExport = DevExpress.Utils.DefaultBoolean.False; - this.gridView1.OptionsSelection.UseIndicatorForSelection = false; - this.gridView1.OptionsView.ColumnAutoWidth = false; - this.gridView1.OptionsView.EnableAppearanceEvenRow = true; - this.gridView1.OptionsView.EnableAppearanceOddRow = true; - this.gridView1.OptionsView.ShowGroupPanel = false; - this.gridView1.OptionsView.ShowIndicator = false; - this.gridView1.RowHeight = 24; - this.gridView1.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); - this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); - this.gridView1.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); - this.gridView1.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); - this.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); - this.gridView1.DoubleClick += new System.EventHandler(this.GridDoubleClick); - this.gridView1.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); + this.grid.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; + this.grid.OptionsFind.FindNullPrompt = ""; + this.grid.OptionsFind.ShowClearButton = false; + this.grid.OptionsFind.ShowCloseButton = false; + this.grid.OptionsFind.ShowFindButton = false; + this.grid.OptionsLayout.Columns.AddNewColumns = false; + this.grid.OptionsLayout.StoreDataSettings = false; + this.grid.OptionsLayout.StoreVisualOptions = false; + this.grid.OptionsMenu.EnableGroupPanelMenu = false; + this.grid.OptionsMenu.ShowAddNewSummaryItem = DevExpress.Utils.DefaultBoolean.False; + this.grid.OptionsMenu.ShowAutoFilterRowItem = false; + this.grid.OptionsSelection.CheckBoxSelectorColumnWidth = 35; + this.grid.OptionsSelection.EnableAppearanceFocusedRow = false; + this.grid.OptionsSelection.EnableAppearanceHideSelection = false; + this.grid.OptionsSelection.MultiSelect = true; + this.grid.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; + this.grid.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True; + this.grid.OptionsSelection.ShowCheckBoxSelectorInGroupRow = DevExpress.Utils.DefaultBoolean.True; + this.grid.OptionsSelection.ShowCheckBoxSelectorInPrintExport = DevExpress.Utils.DefaultBoolean.False; + this.grid.OptionsSelection.UseIndicatorForSelection = false; + this.grid.OptionsView.ColumnAutoWidth = false; + this.grid.OptionsView.EnableAppearanceEvenRow = true; + this.grid.OptionsView.EnableAppearanceOddRow = true; + this.grid.OptionsView.ShowGroupPanel = false; + this.grid.OptionsView.ShowIndicator = false; + this.grid.RowHeight = 24; + this.grid.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); + this.grid.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); + this.grid.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); + this.grid.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); + this.grid.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); + this.grid.DoubleClick += new System.EventHandler(this.GridDoubleClick); + this.grid.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); // // Duration // @@ -1146,11 +1146,11 @@ private void InitializeComponent() { // labelServerInfo // this.labelServerInfo.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelServerInfo.Caption = "No connection"; this.labelServerInfo.Id = 32; this.labelServerInfo.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.Image"))); this.labelServerInfo.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.LargeImage"))); this.labelServerInfo.Name = "labelServerInfo"; + this.labelServerInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // ribbonControl1 // @@ -1338,6 +1338,7 @@ private void InitializeComponent() { // buttonRefreshIndex // this.buttonRefreshIndex.Caption = "Refresh Indexes"; + this.buttonRefreshIndex.Enabled = false; this.buttonRefreshIndex.Id = 19; this.buttonRefreshIndex.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonRefreshIndex.ImageOptions.Image"))); this.buttonRefreshIndex.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonRefreshIndex.ImageOptions.LargeImage"))); @@ -1348,6 +1349,7 @@ private void InitializeComponent() { // buttonDatabases // this.buttonDatabases.Caption = "Select Databases"; + this.buttonDatabases.Enabled = false; this.buttonDatabases.Id = 14; this.buttonDatabases.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonDatabases.ImageOptions.Image"))); this.buttonDatabases.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonDatabases.ImageOptions.LargeImage"))); @@ -1403,6 +1405,10 @@ private void InitializeComponent() { this.imageCollection.Images.SetKeyName(4, "copy_16x16.png"); this.imageCollection.InsertGalleryImage("masterfilter_16x16.png", "office2013/filter/masterfilter_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/filter/masterfilter_16x16.png"), 5); this.imageCollection.Images.SetKeyName(5, "masterfilter_16x16.png"); + this.imageCollection.InsertGalleryImage("showworktimeonly_16x16.png", "office2013/scheduling/showworktimeonly_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/scheduling/showworktimeonly_16x16.png"), 6); + this.imageCollection.Images.SetKeyName(6, "showworktimeonly_16x16.png"); + this.imageCollection.InsertGalleryImage("replace_16x16.png", "office2013/format/replace_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/format/replace_16x16.png"), 7); + this.imageCollection.Images.SetKeyName(7, "replace_16x16.png"); // // buttonFind // @@ -1527,13 +1533,14 @@ private void InitializeComponent() { this.ShowIcon = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StatusBar = this.statusBar; + this.Text = "SQL Index Manager"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainBox_FormClosing); this.Shown += new System.EventHandler(this.MainBox_Shown); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).EndInit(); @@ -1561,7 +1568,7 @@ private void InitializeComponent() { private BarButtonItem buttonSaveFix; private BarStaticItem labelInfo; private BarButtonItem buttonStopFix; - private DevExpress.XtraGrid.Views.Grid.GridView gridView1; + private DevExpress.XtraGrid.Views.Grid.GridView grid; private DevExpress.Utils.Taskbar.TaskbarAssistant taskbar; private DevExpress.XtraGrid.GridControl gridControl1; private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit popupIndexOperation; diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 8170b84..737e5c1 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -1,5 +1,4 @@ using DevExpress.Data; -using DevExpress.Data.Filtering; using DevExpress.Utils; using DevExpress.Utils.Menu; using DevExpress.Utils.Taskbar.Core; @@ -17,12 +16,14 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Windows.Forms; namespace SQLIndexManager { @@ -41,43 +42,18 @@ public MainBox() { RestoreLayout(); } - - private void UpdateActiveHost(Host host) { - Settings.ActiveHost = host; - - buttonDatabases.Enabled = (host != null); - buttonRefreshIndex.Enabled = (host != null && host.Databases.Count > 0); - - labelSavedSpace.Visibility = BarItemVisibility.Never; - - labelDatabase.Visibility = - labelError.Visibility = - labelIndex.Visibility = (host == null) ? BarItemVisibility.Never : BarItemVisibility.Always; - - if (host == null) { - Text = "SQL Index Manager"; - ShowConnectionBox(); - } - else { - Output.Current.Add($"Host: {host.Server}"); - Output.Current.Add($"Server: {host.ServerInfo}"); - Text = host.Server.ToUpper(); - labelServerInfo.Caption = host.ServerInfo.ToString(); - ShowDatabaseBox(); - } - } - + #region Save/Restore Layout private void MainBox_FormClosing(object sender, FormClosingEventArgs e) { SaveLayout(); } - Stream defaultLayout = new MemoryStream(); + readonly Stream defaultLayout = new MemoryStream(); private void RestoreLayout() { try { - gridView1.SaveLayoutToStream(defaultLayout); + grid.SaveLayoutToStream(defaultLayout); defaultLayout.Seek(0, SeekOrigin.Begin); } catch { } @@ -87,7 +63,7 @@ private void RestoreLayout() { string layout = AES.Decrypt(File.ReadAllText(Settings.LayoutFileName)); using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(layout))) { - gridView1.RestoreLayoutFromStream(stream); + grid.RestoreLayoutFromStream(stream); } Output.Current.Add($"Grid layout restored: {Settings.LayoutFileName}"); } @@ -99,10 +75,10 @@ private void RestoreLayout() { private void RestoreDefaultLayout(object sender, ItemClickEventArgs e) { try { - gridView1.RestoreLayoutFromStream(defaultLayout); + grid.RestoreLayoutFromStream(defaultLayout); defaultLayout.Seek(0, SeekOrigin.Begin); - Output.Current.Add($"Default grid layout restored"); + Output.Current.Add("Default grid layout restored"); } catch { Output.Current.Add("Failed to restore default layout"); @@ -110,13 +86,12 @@ private void RestoreDefaultLayout(object sender, ItemClickEventArgs e) { } private void SaveLayout() { - gridView1.Columns["Progress"].Visible = false; - gridView1.Columns["Duration"].Visible = false; + HideSystemColumns(); try { using (StreamWriter file = new StreamWriter(new FileStream(Settings.LayoutFileName, FileMode.Create))) { Stream str = new MemoryStream(); - gridView1.SaveLayoutToStream(str); + grid.SaveLayoutToStream(str); str.Seek(0, SeekOrigin.Begin); StreamReader reader = new StreamReader(str); string layout = reader.ReadToEnd(); @@ -140,7 +115,7 @@ private void SaveLayout() { private Stopwatch _scanDuration = new Stopwatch(); private int _errors; - private void ScanIndexStart(object sender, DoWorkEventArgs e) { + private void ScanIndexes(object sender, DoWorkEventArgs e) { _errors = 0; using (ConnectionList connectionList = new ConnectionList(Settings.ActiveHost)) { foreach (var database in Settings.ActiveHost.Databases) { @@ -232,7 +207,7 @@ private void ScanIndexStart(object sender, DoWorkEventArgs e) { } } - private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { + private void ScanIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { taskbar.ProgressMode = TaskbarButtonProgressMode.NoProgress; _scanDuration.Stop(); @@ -244,7 +219,7 @@ private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { buttonStopScan.Visibility = BarItemVisibility.Never; - List indexes = _scanIndexes.Where(_ => _.Fragmentation >= Settings.Options.FirstThreshold + List indexes = _scanIndexes.Where(_ => _.Fragmentation >= (Settings.Options.SkipOperation == IndexOp.IGNORE ? Settings.Options.FirstThreshold : 0) && _.PagesCount >= Settings.Options.MinIndexSize.PageSize() && _.PagesCount <= Settings.Options.MaxIndexSize.PageSize()) .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) @@ -258,14 +233,14 @@ private void ScanIndexFinish(object sender, RunWorkerCompletedEventArgs e) { labelError.Caption = _errors.ToString(); Output.Current.Add($"Processed: {_scanIndexes.Count}. Fragmented: {indexes.Count}", null, _scanDuration.ElapsedMilliseconds); - gridView1.CustomDrawEmptyForeground += CustomDrawEmptyForeground; + grid.CustomDrawEmptyForeground += CustomDrawEmptyForeground; gridControl1.DataSource = indexes; } private void RefreshIndexes() { if (_workerFix != null && _workerFix.IsBusy) return; - gridView1.CustomDrawEmptyForeground -= CustomDrawEmptyForeground; + grid.CustomDrawEmptyForeground -= CustomDrawEmptyForeground; gridControl1.DataSource = null; labelDatabase.Caption = Settings.ActiveHost.Databases.Count.ToString(); @@ -274,12 +249,10 @@ private void RefreshIndexes() { RestoreSortRules(); - gridView1.OptionsBehavior.Editable = true; - gridView1.OptionsSelection.MultiSelect = true; + grid.OptionsBehavior.Editable = true; + grid.OptionsSelection.MultiSelect = true; - gridView1.Columns[Resources.Progress].Visible = false; - gridView1.Columns[Resources.Duration].Visible = false; - gridView1.Columns[Resources.PagesCountBefore].Visible = false; + HideSystemColumns(); buttonFix.Enabled = buttonOptions.Enabled = @@ -295,11 +268,16 @@ private void RefreshIndexes() { _scanDuration = Stopwatch.StartNew(); _workerScan = new ThreadWorker() { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; - _workerScan.DoWork += ScanIndexStart; - _workerScan.RunWorkerCompleted += ScanIndexFinish; + _workerScan.DoWork += ScanIndexes; + _workerScan.RunWorkerCompleted += ScanIndexesFinish; + _workerScan.ProgressChanged += ScanIndexesProgressChanged; _workerScan.RunWorkerAsync(); } + private void ScanIndexesProgressChanged(object sender, ProgressChangedEventArgs e) { + //taskbar.ProgressCurrentValue = e.ProgressPercentage; + } + #endregion #region Fix Indexes @@ -318,10 +296,10 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { buttonStopFix.Visibility = BarItemVisibility.Always; - List selIndex = ((List)gridView1.DataSource).Where(_ => _.IsSelected).ToList(); + List selIndex = ((List)grid.DataSource).Where(_ => _.IsSelected).ToList(); List fixIndex = - selIndex.Where(x => Settings.ActiveHost.Databases.Any(y => y == x.DatabaseName)) + selIndex.Where(x => Settings.ActiveHost.Databases.Any(y => y == x.DatabaseName) && x.FixType != IndexOp.SKIP) .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) .ThenByDescending(_ => _.PagesCount).ToList(); @@ -334,22 +312,22 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { SaveSortRules(); - gridView1.ClearColumnsFilter(); - gridView1.ClearSelection(); + grid.ClearColumnsFilter(); + grid.ClearSelection(); - gridView1.Columns[Resources.Duration].Visible = true; - gridView1.Columns[Resources.Duration].VisibleIndex = 0; + grid.Columns[Resources.Duration].Visible = true; + grid.Columns[Resources.Duration].VisibleIndex = 0; - gridView1.Columns[Resources.Progress].Visible = true; - gridView1.Columns[Resources.Progress].VisibleIndex = 0; + grid.Columns[Resources.Progress].Visible = true; + grid.Columns[Resources.Progress].VisibleIndex = 0; - gridView1.Columns[Resources.PagesCountBefore].Visible = true; - gridView1.Columns[Resources.PagesCountBefore].VisibleIndex = gridView1.Columns[Resources.PagesCount].VisibleIndex + 1; + grid.Columns[Resources.PagesCountBefore].Visible = true; + grid.Columns[Resources.PagesCountBefore].VisibleIndex = grid.Columns[Resources.PagesCount].VisibleIndex + 1; gridControl1.DataSource = fixIndex; - gridView1.OptionsBehavior.Editable = false; - gridView1.OptionsSelection.MultiSelect = false; + grid.OptionsBehavior.Editable = false; + grid.OptionsSelection.MultiSelect = false; Output.Current.Add("Start processing"); @@ -359,13 +337,13 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { _workerFix = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; _workerFix.DoWork += FixIndexes; _workerFix.RunWorkerCompleted += FixIndexesFinish; - _workerFix.ProgressChanged += backgroundWorker_ProgressChanged; + _workerFix.ProgressChanged += FixIndexesProgressChanged; _workerFix.RunWorkerAsync(fixIndex); } - private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { + private void FixIndexesProgressChanged(object sender, ProgressChangedEventArgs e) { taskbar.ProgressCurrentValue = e.ProgressPercentage; - gridView1.RefreshData(); + grid.RefreshData(); } private BackgroundWorker _workerFix; @@ -376,20 +354,20 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { using (var connectionList = new ConnectionList(Settings.ActiveHost)) { - int count = 1; - - foreach (Index item in indexes) { + for (int i = 0; i < indexes.Count; i++) { + Index item = indexes[i]; if (_workerFix.CancellationPending) { Output.Current.Add("Canceled"); e.Cancel = true; return; } + item.Progress = imageCollection.Images[1]; + _workerFix.ReportProgress(i + 1); + Output.Current.AddCaption(item.ToString()); Stopwatch watch = Stopwatch.StartNew(); - item.Progress = imageCollection.Images[1]; - string sql = string.Empty; SqlConnection connection = connectionList.Get(item.DatabaseName); if (connection != null) { @@ -404,13 +382,21 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { item.Duration = (new DateTime(0)).AddMilliseconds(watch.ElapsedMilliseconds); Output.Current.Add(item.ToString(), sql, watch.ElapsedMilliseconds); + _workerFix.ReportProgress(i + 1); if (!string.IsNullOrEmpty(item.Error)) { Output.Current.Add(item.ToString(), item.Error); item.Progress = imageCollection.Images[3]; } + else { + if (Settings.Options.DelayAfterFix > 0 && i < indexes.Count - 1) { + item.Progress = imageCollection.Images[6]; + Thread.Sleep(Settings.Options.DelayAfterFix); + item.Progress = imageCollection.Images[2]; + } + } - _workerFix.ReportProgress(count++); + _workerFix.ReportProgress(i + 2); } } } @@ -427,7 +413,7 @@ private void FixIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonFix.Enabled = false; - List indexes = (List)gridView1.DataSource; + List indexes = (List)grid.DataSource; labelSavedSpace.Visibility = BarItemVisibility.Always; labelSavedSpace.Caption = Convert.ToDecimal(indexes.Sum(_ => _.PagesCountBefore ?? 0) * 8).FormatSize(); @@ -443,14 +429,22 @@ private void FixIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { #region Dialogs private void MainBox_Shown(object sender, EventArgs e) { - UpdateActiveHost(null); + ShowConnectionBox(); } - private void ShowDatabaseBox() { + private void ShowDatabaseBox(bool isConnectionChanged) { using (DatabaseBox form = new DatabaseBox()) { DialogResult dr = form.ShowDialog(this); if (dr == DialogResult.OK) { - Settings.ActiveHost.Databases = form.GetDatabases(); + List dbs = form.GetDatabases(); + bool isDatabaseSelectionEqual = Settings.ActiveHost.Databases.OrderBy(t => t).SequenceEqual(dbs.OrderBy(t => t)); + + Settings.ActiveHost.Databases = dbs; + + if (Settings.Options.ShowSettingsWhenConnectionChanged && (!isDatabaseSelectionEqual || isConnectionChanged)) { + ShowSettingsBox(); + } + RefreshIndexes(); } else { @@ -463,7 +457,39 @@ private void ShowConnectionBox() { using (ConnectionBox form = new ConnectionBox()) { DialogResult dr = form.ShowDialog(this); if (dr == DialogResult.OK) { - UpdateActiveHost(form.GetHost()); + Host host = form.GetHost(); + Host lastHost = Settings.Hosts[0]; + + bool isConnectionChanged = !string.Equals(host.Server, (Settings.ActiveHost ?? new Host()).Server, StringComparison.CurrentCultureIgnoreCase) + && !string.Equals(host.Server, (lastHost ?? new Host()).Server, StringComparison.CurrentCultureIgnoreCase); + + Settings.ActiveHost = host; + + buttonDatabases.Enabled = true; + buttonRefreshIndex.Enabled = host.Databases.Count > 0; + + labelSavedSpace.Visibility = BarItemVisibility.Never; + + labelServerInfo.Visibility = + labelDatabase.Visibility = + labelError.Visibility = + labelIndex.Visibility = BarItemVisibility.Always; + + Output.Current.Add($"Host: {host.Server}"); + Output.Current.Add($"Server: {host.ServerInfo}"); + Text = host.Server.ToUpper(); + labelServerInfo.Caption = host.ServerInfo.ToString(); + + ShowDatabaseBox(isConnectionChanged); + } + } + } + + public void ShowSettingsBox() { + using (SettingsBox form = new SettingsBox()) { + DialogResult dr = form.ShowDialog(this); + if (dr == DialogResult.OK) { + Settings.Options = form.GetSettings(); } } } @@ -473,7 +499,7 @@ private void ShowConnectionBox() { #region Grid Methods private string GetFixChanges() { - List fix = ((List)gridView1.DataSource).Where(_ => _.IsSelected).ToList(); + List fix = ((List)grid.DataSource).Where(_ => _.IsSelected).ToList(); StringBuilder sb = new StringBuilder(); var groupList = fix.GroupBy(u => u.DatabaseName).Select(grp => grp.ToList()).ToList(); @@ -492,32 +518,38 @@ private string GetFixChanges() { } private void FixedOpPopupValueChanged(object sender, EventArgs e) { - Index row = (Index)gridView1.GetFocusedRow(); + Index row = (Index)grid.GetFocusedRow(); if (row == null) return; - int rowIndex = gridView1.FindRow(row); + int rowIndex = grid.FindRow(row); - gridView1.PostEditor(); - gridView1.SelectRow(rowIndex); - gridView1.UpdateCurrentRow(); + grid.PostEditor(); + grid.SelectRow(rowIndex); + grid.UpdateCurrentRow(); } private void FixedOpPopup(object sender, EventArgs e) { LookUpEdit obj = (LookUpEdit)sender; obj.Properties.DataSource = null; - Index row = (Index)gridView1.GetFocusedRow(); + Index row = (Index)grid.GetFocusedRow(); if (row == null) return; + List ops = GetIndexOperations(row); + obj.Properties.DropDownRows = ops.Count; + obj.Properties.DataSource = ops.Select(_ => new { Fix = _, Name = _.Description() }); + } + + private List GetIndexOperations(Index ix) { List i = new List(); - if (row.IndexType == IndexType.MISSING_INDEX) { + if (ix.IndexType == IndexType.MISSING_INDEX) { i.Add(IndexOp.CREATE_INDEX); } - else if (row.IsColumnstore) { + else if (ix.IsColumnstore) { i.Add(IndexOp.REBUILD); - i.Add(row.DataCompression == DataCompression.COLUMNSTORE_ARCHIVE + i.Add(ix.DataCompression == DataCompression.COLUMNSTORE_ARCHIVE ? IndexOp.REBUILD_COLUMNSTORE : IndexOp.REBUILD_COLUMNSTORE_ARCHIVE); @@ -529,45 +561,46 @@ private void FixedOpPopup(object sender, EventArgs e) { else { i.Add(IndexOp.REBUILD); - if (row.IsAllowCompression) { - if (row.DataCompression == DataCompression.NONE) { + if (ix.IsAllowCompression) { + if (ix.DataCompression == DataCompression.NONE) { i.Add(IndexOp.REBUILD_ROW); i.Add(IndexOp.REBUILD_PAGE); } else { i.Add(IndexOp.REBUILD_NONE); - i.Add(row.DataCompression == DataCompression.PAGE + i.Add(ix.DataCompression == DataCompression.PAGE ? IndexOp.REBUILD_ROW : IndexOp.REBUILD_PAGE); } } - if (row.IsAllowOnlineRebuild) + if (ix.IsAllowOnlineRebuild) i.Add(IndexOp.REBUILD_ONLINE); - if (row.IsAllowReorganize) + if (ix.IsAllowReorganize) i.Add(IndexOp.REORGANIZE); - if (!row.IsPartitioned) { - if (row.IndexType == IndexType.CLUSTERED || row.IndexType == IndexType.NONCLUSTERED) { + if (!ix.IsPartitioned) { + if (ix.IndexType == IndexType.CLUSTERED || ix.IndexType == IndexType.NONCLUSTERED) { i.Add(IndexOp.UPDATE_STATISTICS_FULL); i.Add(IndexOp.UPDATE_STATISTICS_RESAMPLE); i.Add(IndexOp.UPDATE_STATISTICS_SAMPLE); } - if (row.IndexType == IndexType.NONCLUSTERED) { + if (ix.IndexType == IndexType.NONCLUSTERED) { i.Add(IndexOp.DISABLE_INDEX); i.Add(IndexOp.DROP_INDEX); } - if (row.IndexType == IndexType.HEAP) { + if (ix.IndexType == IndexType.HEAP) { i.Add(IndexOp.DROP_TABLE); } } } - obj.Properties.DropDownRows = i.Count; - obj.Properties.DataSource = i.Select(_ => new { Fix = _, Name = _.Description() }); + i.Add(IndexOp.SKIP); + + return i; } private void GridDoubleClick(object sender, EventArgs e) { @@ -575,7 +608,7 @@ private void GridDoubleClick(object sender, EventArgs e) { Point pt = obj.GridControl.PointToClient(MousePosition); GridHitInfo info = obj.CalcHitInfo(pt); - if (info.Column == null || info.Column.Caption == @"Fix" || info.Column.Caption == @"Selection") + if (info.Column == null || info.Column.Caption == Resources.Fix || info.Column.Caption == Resources.Selection) return; if (info.InRow || info.InRowCell) { @@ -667,6 +700,9 @@ private void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventAr } private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { + var col = e.HitInfo.Column; + if (col == null) return; + if (e.MenuType == GridMenuType.Column) { string[] columns = { GridLocalizer.Active.GetLocalizedString(GridStringId.MenuColumnGroup), @@ -678,22 +714,26 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { item.Visible = false; } - if (e.HitInfo.Column == null || e.HitInfo.Column.Caption == @"Selection") + if (col.Caption == Resources.Selection || col.Caption == Resources.Progress) return; - string colName = (e.HitInfo.Column.Fixed == FixedStyle.None) ? "Freeze column" : "Unfreeze column"; - e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle) { Tag = e.HitInfo.Column.FieldName }); + string colName = (col.Fixed == FixedStyle.None) ? "Freeze Column" : "Unfreeze Column"; + e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle) { Tag = col.FieldName }); } + else if (e.MenuType == GridMenuType.Row) { + + if (col.Caption == Resources.Selection || col.Caption == Resources.Progress) + return; - if (e.MenuType == GridMenuType.Row) { - e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = e.HitInfo.Column.FieldName }); - e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = e.HitInfo.Column.FieldName }); + e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, imageCollection.Images[7])); + e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = col.FieldName }); + e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = col.FieldName }); } } private void ChangeFixedColumnStyle(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = gridView1.Columns[mi.Tag.ToString()]; + GridColumn col = grid.Columns[mi.Tag.ToString()]; if (col != null) { col.Fixed = (col.Fixed == FixedStyle.Left) ? FixedStyle.None : FixedStyle.Left; } @@ -701,17 +741,44 @@ private void ChangeFixedColumnStyle(object sender, EventArgs e) { private void CopyCellValue(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = gridView1.Columns[mi.Tag.ToString()]; - var cellValue = gridView1.GetFocusedRowCellValue(col); + GridColumn col = grid.Columns[mi.Tag.ToString()]; + var cellValue = grid.GetFocusedRowCellValue(col); if (cellValue != null) Clipboard.SetText(cellValue.ToString()); } private void FilterCellValue(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = gridView1.Columns[mi.Tag.ToString()]; - var cellValue = gridView1.GetFocusedRowCellValue(col); - gridView1.SetRowCellValue(GridControl.AutoFilterRowHandle, col, cellValue); + GridColumn col = grid.Columns[mi.Tag.ToString()]; + var cellValue = grid.GetFocusedRowCellValue(col); + grid.SetRowCellValue(GridControl.AutoFilterRowHandle, col, cellValue); + } + + private void ChangeFixAction(object sender, EventArgs e) { + using (ActionBox form = new ActionBox()) { + DialogResult dr = form.ShowDialog(this); + if (dr == DialogResult.OK) { + UpdateFixAction(form.GetFixAction()); + } + } + } + + private void UpdateFixAction(IndexOp op) { + List indexes = (List)grid.DataSource; + + for (int i = 0; i < grid.DataRowCount; i++) { + if (grid.IsDataRow(i)) { + var rowHandle = grid.GetDataSourceRowIndex(i); + Index index = indexes[rowHandle]; + if (index == null) continue; + + List ops = GetIndexOperations(index); + if (ops.Contains(op)) + index.FixType = op; + } + } + + grid.RefreshData(); } private void GridCustomizationMenu(object sender, RibbonCustomizationMenuEventArgs e) { @@ -722,10 +789,10 @@ private void GridCustomizationMenu(object sender, RibbonCustomizationMenuEventAr private void GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e) { if (e.Info == null || e.SelectedControl == gridControl1) { - GridHitInfo info = gridView1.CalcHitInfo(e.ControlMousePosition); + GridHitInfo info = grid.CalcHitInfo(e.ControlMousePosition); if (info.InRowCell && info.RowHandle != -1 && info.Column != null && info.Column.FieldName == Resources.Progress) { - Index index = (Index)gridView1.GetRow(info.RowHandle); + Index index = (Index)grid.GetRow(info.RowHandle); e.Info = new ToolTipControlInfo($"{info.RowHandle} - {info.Column}", $"{index.GetQuery()}\n{index.Error}"); } } @@ -753,7 +820,7 @@ private void CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { } private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { - if (e.RowHandle == (sender as GridView).FocusedRowHandle) { + if (e.RowHandle == ((GridView) sender).FocusedRowHandle) { e.Appearance.BackColor = Color.Silver; } } @@ -762,6 +829,12 @@ private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { #region Controls + private void HideSystemColumns() { + grid.Columns[Resources.Progress].Visible = false; + grid.Columns[Resources.Duration].Visible = false; + grid.Columns[Resources.PagesCountBefore].Visible = false; + } + private void ButtonLog(object sender, ItemClickEventArgs e) { splitContainer.PanelVisibility = buttonLog.Down ? SplitPanelVisibility.Both : SplitPanelVisibility.Panel1; } @@ -775,17 +848,19 @@ private void ButtonFindClick(object sender, ItemClickEventArgs e) { } private void ButtonDatabasesClick(object sender, ItemClickEventArgs e) { - ShowDatabaseBox(); + ShowDatabaseBox(false); } private void ButtonStopScanClick(object sender, ItemClickEventArgs e) { Output.Current.Add("Canceling..."); + QueryEngine.KillActiveSessions(); _workerScan.CancelAsync(); buttonStopScan.Visibility = BarItemVisibility.Never; } private void ButtonStopFixClick(object sender, ItemClickEventArgs e) { Output.Current.Add("Canceling..."); + QueryEngine.KillActiveSessions(); _workerFix.CancelAsync(); buttonStopFix.Visibility = BarItemVisibility.Never; } @@ -814,12 +889,7 @@ private void ButtonSaveFixClick(object sender, ItemClickEventArgs e) { } private void ButtonOptionsClick(object sender, ItemClickEventArgs e) { - using (SettingsBox form = new SettingsBox()) { - DialogResult dr = form.ShowDialog(this); - if (dr == DialogResult.OK) { - Settings.Options = form.GetSettings(); - } - } + ShowSettingsBox(); } private void ButtonAboutClick(object sender, ItemClickEventArgs e) { @@ -835,17 +905,17 @@ private void ButtonAboutClick(object sender, ItemClickEventArgs e) { private readonly List _sortInfo = new List(); private void SaveSortRules() { - foreach (GridColumnSortInfo col in gridView1.SortInfo) { + foreach (GridColumnSortInfo col in grid.SortInfo) { _sortInfo.Add(col); } - gridView1.ClearSorting(); + grid.ClearSorting(); } private void RestoreSortRules() { - if (_sortInfo.Count > 0 && gridView1.SortInfo.Count == 0) { + if (_sortInfo.Count > 0 && grid.SortInfo.Count == 0) { foreach (GridColumnSortInfo sortCol in _sortInfo) { - gridView1.SortInfo.Add(sortCol); + grid.SortInfo.Add(sortCol); } _sortInfo.Clear(); diff --git a/Forms/SettingsBox.Designer.cs b/Forms/SettingsBox.Designer.cs index c6f9b85..a1ad69e 100644 --- a/Forms/SettingsBox.Designer.cs +++ b/Forms/SettingsBox.Designer.cs @@ -37,6 +37,8 @@ private void InitializeComponent() { DevExpress.XtraEditors.LabelControl labelControl6; DevExpress.XtraEditors.GroupControl db3; DevExpress.XtraEditors.GroupControl groupControl3; + DevExpress.XtraEditors.LabelControl labelControl3; + DevExpress.XtraEditors.LabelControl labelPadIndex; DevExpress.XtraEditors.LabelControl labelControl7; DevExpress.XtraEditors.LabelControl labelControl13; DevExpress.XtraEditors.LabelControl labelControl15; @@ -48,7 +50,8 @@ private void InitializeComponent() { System.Windows.Forms.PictureBox pictureBox1; System.Windows.Forms.PictureBox pictureBox3; System.Windows.Forms.PictureBox pictureBox4; - DevExpress.XtraEditors.LabelControl labelPadIndex; + this.labelSkipThreshold = new DevExpress.XtraEditors.LabelControl(); + this.boxSkipThreshold = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxSecondThreshold = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxFirstThreshold = new DevExpress.XtraEditors.ComboBoxEdit(); this.labelFirstThreshold = new DevExpress.XtraEditors.LabelControl(); @@ -68,6 +71,8 @@ private void InitializeComponent() { this.boxScanNonClusteredColumnstore = new DevExpress.XtraEditors.CheckEdit(); this.boxIgnoreReadOnlyFL = new DevExpress.XtraEditors.CheckEdit(); this.boxScanHeap = new DevExpress.XtraEditors.CheckEdit(); + this.boxDelayAfterFix = new DevExpress.XtraEditors.SpinEdit(); + this.boxPadIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxNoRecompute = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxStatsSamplePercent = new DevExpress.XtraEditors.SpinEdit(); this.boxScanMode = new DevExpress.XtraEditors.ComboBoxEdit(); @@ -87,7 +92,7 @@ private void InitializeComponent() { this.boxIncludeObject = new DevExpress.XtraEditors.TokenEdit(); this.groupControl4 = new DevExpress.XtraEditors.GroupControl(); this.groupControl5 = new DevExpress.XtraEditors.GroupControl(); - this.boxPadIndex = new DevExpress.XtraEditors.CheckEdit(); + this.boxShowSettingsWhenConnectionChanged = new DevExpress.XtraEditors.CheckEdit(); labelControl9 = new DevExpress.XtraEditors.LabelControl(); labelSortInTempDb = new DevExpress.XtraEditors.LabelControl(); labelLobCompaction = new DevExpress.XtraEditors.LabelControl(); @@ -101,6 +106,8 @@ private void InitializeComponent() { labelControl6 = new DevExpress.XtraEditors.LabelControl(); db3 = new DevExpress.XtraEditors.GroupControl(); groupControl3 = new DevExpress.XtraEditors.GroupControl(); + labelControl3 = new DevExpress.XtraEditors.LabelControl(); + labelPadIndex = new DevExpress.XtraEditors.LabelControl(); labelControl7 = new DevExpress.XtraEditors.LabelControl(); labelControl13 = new DevExpress.XtraEditors.LabelControl(); labelControl15 = new DevExpress.XtraEditors.LabelControl(); @@ -112,9 +119,9 @@ private void InitializeComponent() { pictureBox1 = new System.Windows.Forms.PictureBox(); pictureBox3 = new System.Windows.Forms.PictureBox(); pictureBox4 = new System.Windows.Forms.PictureBox(); - labelPadIndex = new DevExpress.XtraEditors.LabelControl(); ((System.ComponentModel.ISupportInitialize)(groupControl1)).BeginInit(); groupControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxSkipThreshold.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSecondThreshold.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxFirstThreshold.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize)).BeginInit(); @@ -139,6 +146,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.boxScanHeap.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(groupControl3)).BeginInit(); groupControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxDelayAfterFix.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).BeginInit(); @@ -163,7 +172,7 @@ private void InitializeComponent() { this.groupControl4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).BeginInit(); this.groupControl5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxShowSettingsWhenConnectionChanged.Properties)).BeginInit(); this.SuspendLayout(); // // labelControl9 @@ -210,7 +219,7 @@ private void InitializeComponent() { // buttonCancel.AllowFocus = false; buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - buttonCancel.Location = new System.Drawing.Point(629, 481); + buttonCancel.Location = new System.Drawing.Point(629, 511); buttonCancel.Name = "buttonCancel"; buttonCancel.Size = new System.Drawing.Size(75, 23); buttonCancel.TabIndex = 0; @@ -220,7 +229,7 @@ private void InitializeComponent() { // buttonRestore // buttonRestore.AllowFocus = false; - buttonRestore.Location = new System.Drawing.Point(12, 481); + buttonRestore.Location = new System.Drawing.Point(12, 511); buttonRestore.Name = "buttonRestore"; buttonRestore.Size = new System.Drawing.Size(75, 23); buttonRestore.TabIndex = 0; @@ -230,6 +239,8 @@ private void InitializeComponent() { // // groupControl1 // + groupControl1.Controls.Add(this.labelSkipThreshold); + groupControl1.Controls.Add(this.boxSkipThreshold); groupControl1.Controls.Add(this.boxSecondThreshold); groupControl1.Controls.Add(this.boxFirstThreshold); groupControl1.Controls.Add(this.labelFirstThreshold); @@ -241,14 +252,37 @@ private void InitializeComponent() { groupControl1.Controls.Add(this.labelSize); groupControl1.Location = new System.Drawing.Point(12, 4); groupControl1.Name = "groupControl1"; - groupControl1.Size = new System.Drawing.Size(396, 176); + groupControl1.Size = new System.Drawing.Size(396, 205); groupControl1.TabIndex = 8; groupControl1.Text = "Filters"; // + // labelSkipThreshold + // + this.labelSkipThreshold.Location = new System.Drawing.Point(211, 91); + this.labelSkipThreshold.Name = "labelSkipThreshold"; + this.labelSkipThreshold.Size = new System.Drawing.Size(25, 13); + this.labelSkipThreshold.TabIndex = 33; + this.labelSkipThreshold.Text = "Label"; + // + // boxSkipThreshold + // + this.boxSkipThreshold.EditValue = ""; + this.boxSkipThreshold.Location = new System.Drawing.Point(13, 88); + this.boxSkipThreshold.Name = "boxSkipThreshold"; + this.boxSkipThreshold.Properties.AllowFocused = false; + this.boxSkipThreshold.Properties.Appearance.Options.UseTextOptions = true; + this.boxSkipThreshold.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxSkipThreshold.Properties.AutoComplete = false; + this.boxSkipThreshold.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxSkipThreshold.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.boxSkipThreshold.Size = new System.Drawing.Size(185, 20); + this.boxSkipThreshold.TabIndex = 32; + // // boxSecondThreshold // this.boxSecondThreshold.EditValue = ""; - this.boxSecondThreshold.Location = new System.Drawing.Point(13, 112); + this.boxSecondThreshold.Location = new System.Drawing.Point(13, 140); this.boxSecondThreshold.Name = "boxSecondThreshold"; this.boxSecondThreshold.Properties.AllowFocused = false; this.boxSecondThreshold.Properties.Appearance.Options.UseTextOptions = true; @@ -263,7 +297,7 @@ private void InitializeComponent() { // boxFirstThreshold // this.boxFirstThreshold.EditValue = ""; - this.boxFirstThreshold.Location = new System.Drawing.Point(13, 86); + this.boxFirstThreshold.Location = new System.Drawing.Point(13, 114); this.boxFirstThreshold.Name = "boxFirstThreshold"; this.boxFirstThreshold.Properties.AllowFocused = false; this.boxFirstThreshold.Properties.Appearance.Options.UseTextOptions = true; @@ -277,7 +311,7 @@ private void InitializeComponent() { // // labelFirstThreshold // - this.labelFirstThreshold.Location = new System.Drawing.Point(211, 89); + this.labelFirstThreshold.Location = new System.Drawing.Point(211, 117); this.labelFirstThreshold.Name = "labelFirstThreshold"; this.labelFirstThreshold.Size = new System.Drawing.Size(25, 13); this.labelFirstThreshold.TabIndex = 3; @@ -285,7 +319,7 @@ private void InitializeComponent() { // // labelSecondThreshold // - this.labelSecondThreshold.Location = new System.Drawing.Point(211, 115); + this.labelSecondThreshold.Location = new System.Drawing.Point(211, 143); this.labelSecondThreshold.Name = "labelSecondThreshold"; this.labelSecondThreshold.Size = new System.Drawing.Size(25, 13); this.labelSecondThreshold.TabIndex = 8; @@ -337,11 +371,12 @@ private void InitializeComponent() { // boxThreshold // this.boxThreshold.EditValue = new DevExpress.XtraEditors.Repository.TrackBarRange(1, 1); - this.boxThreshold.Location = new System.Drawing.Point(6, 143); + this.boxThreshold.Location = new System.Drawing.Point(6, 171); this.boxThreshold.Name = "boxThreshold"; this.boxThreshold.Properties.AllowFocused = false; this.boxThreshold.Properties.HighlightSelectedRange = false; this.boxThreshold.Properties.Maximum = 100; + this.boxThreshold.Properties.Minimum = 1; this.boxThreshold.Properties.TickFrequency = 10; this.boxThreshold.Properties.TickStyle = System.Windows.Forms.TickStyle.None; this.boxThreshold.Properties.ValueToolTipFormatString = ""; @@ -365,7 +400,7 @@ private void InitializeComponent() { groupControl2.Controls.Add(this.boxConnectionTimeout); groupControl2.Controls.Add(labelControl6); groupControl2.Controls.Add(this.boxCommandTimeout); - groupControl2.Location = new System.Drawing.Point(414, 394); + groupControl2.Location = new System.Drawing.Point(414, 422); groupControl2.Name = "groupControl2"; groupControl2.Size = new System.Drawing.Size(290, 81); groupControl2.TabIndex = 14; @@ -467,7 +502,7 @@ private void InitializeComponent() { db3.Controls.Add(this.boxScanNonClusteredColumnstore); db3.Controls.Add(this.boxIgnoreReadOnlyFL); db3.Controls.Add(this.boxScanHeap); - db3.Location = new System.Drawing.Point(12, 187); + db3.Location = new System.Drawing.Point(12, 215); db3.Name = "db3"; db3.Size = new System.Drawing.Size(396, 114); db3.TabIndex = 16; @@ -561,6 +596,8 @@ private void InitializeComponent() { // // groupControl3 // + groupControl3.Controls.Add(this.boxDelayAfterFix); + groupControl3.Controls.Add(labelControl3); groupControl3.Controls.Add(labelPadIndex); groupControl3.Controls.Add(this.boxPadIndex); groupControl3.Controls.Add(this.boxNoRecompute); @@ -589,10 +626,71 @@ private void InitializeComponent() { groupControl3.Controls.Add(this.boxOnline); groupControl3.Location = new System.Drawing.Point(414, 4); groupControl3.Name = "groupControl3"; - groupControl3.Size = new System.Drawing.Size(290, 384); + groupControl3.Size = new System.Drawing.Size(290, 412); groupControl3.TabIndex = 17; groupControl3.Text = "Indexes"; // + // boxDelayAfterFix + // + this.boxDelayAfterFix.EditValue = new decimal(new int[] { + 0, + 0, + 0, + 0}); + this.boxDelayAfterFix.Location = new System.Drawing.Point(189, 383); + this.boxDelayAfterFix.Name = "boxDelayAfterFix"; + this.boxDelayAfterFix.Properties.AllowFocused = false; + this.boxDelayAfterFix.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; + this.boxDelayAfterFix.Properties.Appearance.Options.UseTextOptions = true; + this.boxDelayAfterFix.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxDelayAfterFix.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxDelayAfterFix.Properties.DisplayFormat.FormatString = "N00"; + this.boxDelayAfterFix.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; + this.boxDelayAfterFix.Properties.EditFormat.FormatString = "n0"; + this.boxDelayAfterFix.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom; + this.boxDelayAfterFix.Properties.Increment = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.boxDelayAfterFix.Properties.IsFloatValue = false; + this.boxDelayAfterFix.Properties.Mask.EditMask = "N00"; + this.boxDelayAfterFix.Properties.MaxValue = new decimal(new int[] { + 5000, + 0, + 0, + 0}); + this.boxDelayAfterFix.Size = new System.Drawing.Size(88, 20); + this.boxDelayAfterFix.TabIndex = 30; + this.boxDelayAfterFix.TabStop = false; + // + // labelControl3 + // + labelControl3.Location = new System.Drawing.Point(14, 384); + labelControl3.Name = "labelControl3"; + labelControl3.Size = new System.Drawing.Size(122, 13); + labelControl3.TabIndex = 28; + labelControl3.Text = "DELAY_MS_AFTER_FIX ="; + // + // labelPadIndex + // + labelPadIndex.Location = new System.Drawing.Point(14, 189); + labelPadIndex.Name = "labelPadIndex"; + labelPadIndex.Size = new System.Drawing.Size(85, 13); + labelPadIndex.TabIndex = 27; + labelPadIndex.Text = "PAD_INDEX = ON"; + // + // boxPadIndex + // + this.boxPadIndex.Location = new System.Drawing.Point(221, 186); + this.boxPadIndex.Name = "boxPadIndex"; + this.boxPadIndex.Properties.AllowFocused = false; + this.boxPadIndex.Properties.Caption = ""; + this.boxPadIndex.Size = new System.Drawing.Size(19, 19); + this.boxPadIndex.TabIndex = 26; + this.boxPadIndex.TabStop = false; + // // boxNoRecompute // this.boxNoRecompute.EditValue = ""; @@ -980,7 +1078,7 @@ private void InitializeComponent() { // this.buttonOK.AllowFocus = false; this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Location = new System.Drawing.Point(548, 481); + this.buttonOK.Location = new System.Drawing.Point(548, 511); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 1; @@ -1012,7 +1110,7 @@ private void InitializeComponent() { this.groupControl4.Controls.Add(pictureBox1); this.groupControl4.Controls.Add(this.boxExcludeSchemas); this.groupControl4.Controls.Add(this.boxIncludeSchemas); - this.groupControl4.Location = new System.Drawing.Point(12, 307); + this.groupControl4.Location = new System.Drawing.Point(12, 335); this.groupControl4.Name = "groupControl4"; this.groupControl4.Size = new System.Drawing.Size(396, 81); this.groupControl4.TabIndex = 18; @@ -1024,35 +1122,28 @@ private void InitializeComponent() { this.groupControl5.Controls.Add(pictureBox4); this.groupControl5.Controls.Add(this.boxIncludeObject); this.groupControl5.Controls.Add(this.boxExcludeObject); - this.groupControl5.Location = new System.Drawing.Point(12, 394); + this.groupControl5.Location = new System.Drawing.Point(12, 422); this.groupControl5.Name = "groupControl5"; this.groupControl5.Size = new System.Drawing.Size(396, 81); this.groupControl5.TabIndex = 19; this.groupControl5.Text = "Object Filter (schema.table OR table OR %pattern%)"; // - // labelPadIndex - // - labelPadIndex.Location = new System.Drawing.Point(14, 189); - labelPadIndex.Name = "labelPadIndex"; - labelPadIndex.Size = new System.Drawing.Size(85, 13); - labelPadIndex.TabIndex = 27; - labelPadIndex.Text = "PAD_INDEX = ON"; - // - // boxPadIndex + // boxShowSettingsWhenConnectionChanged // - this.boxPadIndex.Location = new System.Drawing.Point(221, 186); - this.boxPadIndex.Name = "boxPadIndex"; - this.boxPadIndex.Properties.AllowFocused = false; - this.boxPadIndex.Properties.Caption = ""; - this.boxPadIndex.Size = new System.Drawing.Size(19, 19); - this.boxPadIndex.TabIndex = 26; - this.boxPadIndex.TabStop = false; + this.boxShowSettingsWhenConnectionChanged.Location = new System.Drawing.Point(93, 513); + this.boxShowSettingsWhenConnectionChanged.Name = "boxShowSettingsWhenConnectionChanged"; + this.boxShowSettingsWhenConnectionChanged.Properties.AllowFocused = false; + this.boxShowSettingsWhenConnectionChanged.Properties.Caption = "Open dialog when connection string changed"; + this.boxShowSettingsWhenConnectionChanged.Size = new System.Drawing.Size(248, 19); + this.boxShowSettingsWhenConnectionChanged.TabIndex = 15; + this.boxShowSettingsWhenConnectionChanged.TabStop = false; // // SettingsBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(715, 514); + this.ClientSize = new System.Drawing.Size(715, 544); + this.Controls.Add(this.boxShowSettingsWhenConnectionChanged); this.Controls.Add(this.groupControl5); this.Controls.Add(this.groupControl4); this.Controls.Add(groupControl3); @@ -1074,6 +1165,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(groupControl1)).EndInit(); groupControl1.ResumeLayout(false); groupControl1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxSkipThreshold.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSecondThreshold.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxFirstThreshold.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxMinIndexSize.Properties)).EndInit(); @@ -1100,6 +1192,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(groupControl3)).EndInit(); groupControl3.ResumeLayout(false); groupControl3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxDelayAfterFix.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMode.Properties)).EndInit(); @@ -1126,7 +1220,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.groupControl5)).EndInit(); this.groupControl5.ResumeLayout(false); this.groupControl5.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxShowSettingsWhenConnectionChanged.Properties)).EndInit(); this.ResumeLayout(false); } @@ -1172,5 +1266,9 @@ private void InitializeComponent() { private DevExpress.XtraEditors.ComboBoxEdit boxFirstThreshold; private DevExpress.XtraEditors.ComboBoxEdit boxSecondThreshold; private DevExpress.XtraEditors.CheckEdit boxPadIndex; + private DevExpress.XtraEditors.LabelControl labelSkipThreshold; + private DevExpress.XtraEditors.ComboBoxEdit boxSkipThreshold; + private DevExpress.XtraEditors.SpinEdit boxDelayAfterFix; + private DevExpress.XtraEditors.CheckEdit boxShowSettingsWhenConnectionChanged; } } \ No newline at end of file diff --git a/Forms/SettingsBox.cs b/Forms/SettingsBox.cs index d56aa69..24f4b05 100644 --- a/Forms/SettingsBox.cs +++ b/Forms/SettingsBox.cs @@ -26,6 +26,10 @@ public SettingsBox() { DataCompression.PAGE }; + boxSkipThreshold.Properties.Items.Add(IndexOp.IGNORE.Description()); + boxSkipThreshold.Properties.Items.Add(IndexOp.NO_ACTION.Description()); + boxSkipThreshold.Properties.Items.AddRange(indexOps); + boxFirstThreshold.Properties.Items.AddRange(indexOps); boxSecondThreshold.Properties.Items.AddRange(indexOps); boxDataCompression.Properties.Items.AddRange(dataCompression); @@ -37,6 +41,7 @@ public SettingsBox() { } private void UpdateControls(Options o) { + boxSkipThreshold.EditValue = o.SkipOperation.Description(); boxFirstThreshold.EditValue = o.FirstOperation.Description(); boxSecondThreshold.EditValue = o.SecondOperation.Description(); boxThreshold.Value = new TrackBarRange(o.FirstThreshold, o.SecondThreshold); @@ -46,6 +51,7 @@ private void UpdateControls(Options o) { boxPadIndex.Checked = o.PadIndex; boxSortInTempDb.Checked = o.SortInTempDb; boxLobCompaction.Checked = o.LobCompaction; + boxDelayAfterFix.Value = o.DelayAfterFix; boxMaxDod.Value = o.MaxDop; boxStatsSamplePercent.Value = o.SampleStatsPercent; boxConnectionTimeout.Value = o.ConnectionTimeout; @@ -57,6 +63,7 @@ private void UpdateControls(Options o) { boxNoRecompute.EditValue = o.NoRecompute; boxFillFactor.EditValue = o.FillFactor; boxScanMode.EditValue = o.ScanMode; + boxShowSettingsWhenConnectionChanged.Checked = o.ShowSettingsWhenConnectionChanged; boxScanHeap.Checked = o.ScanHeap; boxScanClusteredIndex.Checked = o.ScanClusteredIndex; @@ -75,6 +82,7 @@ private void UpdateControls(Options o) { public Options GetSettings() { return new Options { + SkipOperation = Utils.GetValueFromDescription((string)boxSkipThreshold.EditValue), FirstOperation = Utils.GetValueFromDescription((string)boxFirstThreshold.EditValue), SecondOperation = Utils.GetValueFromDescription((string)boxSecondThreshold.EditValue), FirstThreshold = boxThreshold.Value.Minimum, @@ -82,6 +90,7 @@ public Options GetSettings() { MinIndexSize = boxMinIndexSize.Value.Minimum, PreDescribeSize = boxMinIndexSize.Value.Maximum, MaxIndexSize = boxMaxIndexSize.Value, + DelayAfterFix = (int)boxDelayAfterFix.Value, MaxDop = (int)boxMaxDod.Value, Online = boxOnline.Checked, PadIndex = boxPadIndex.Checked, @@ -97,6 +106,7 @@ public Options GetSettings() { NoRecompute = boxNoRecompute.EditValue.ToEnum(), FillFactor = (int)boxFillFactor.Value, ScanMode = boxScanMode.EditValue.ToEnum(), + ShowSettingsWhenConnectionChanged = boxShowSettingsWhenConnectionChanged.Checked, ScanHeap = boxScanHeap.Checked, ScanClusteredIndex = boxScanClusteredIndex.Checked, @@ -126,6 +136,7 @@ private void IndexSizeValueChanged(object sender, EventArgs e) { } private void ThresholdValueChanged(object sender, EventArgs e) { + labelSkipThreshold.Text = $@"< {boxThreshold.Value.Minimum}%"; labelFirstThreshold.Text = $@">= {boxThreshold.Value.Minimum}% AND < {boxThreshold.Value.Maximum }%"; labelSecondThreshold.Text = $@">= {boxThreshold.Value.Maximum}%"; } diff --git a/Forms/SettingsBox.resx b/Forms/SettingsBox.resx index 17e71a0..27ec773 100644 --- a/Forms/SettingsBox.resx +++ b/Forms/SettingsBox.resx @@ -156,6 +156,9 @@ False + + False + False diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 04b0b12..b67fb72 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.55")] -[assembly: AssemblyFileVersion("1.0.0.55")] +[assembly: AssemblyVersion("1.0.0.56")] +[assembly: AssemblyFileVersion("1.0.0.56")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index b307ff1..f78413e 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -150,6 +150,15 @@ internal static string FillFactor { } } + /// + /// Looks up a localized string similar to Fix. + /// + internal static string Fix { + get { + return ResourceManager.GetString("Fix", resourceCulture); + } + } + /// /// Looks up a localized string similar to FixType. /// @@ -486,6 +495,15 @@ internal static string SchemaName { } } + /// + /// Looks up a localized string similar to Selection. + /// + internal static string Selection { + get { + return ResourceManager.GetString("Selection", resourceCulture); + } + } + /// /// Looks up a localized string similar to ServerName. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 091ef73..81ca8a6 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -283,4 +283,10 @@ ServerName + + Fix + + + Selection + \ No newline at end of file diff --git a/README.md b/README.md index e93315a..13b1caf 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ You can download .zip file with the latest build of the master branch from [Rele ![SQL Index Manager](https://habrastorage.org/webt/jw/8s/vk/jw8svkqqg0ybvtdgt1cdoiulxsm.png) ![SQL Index Manager](https://habrastorage.org/webt/oq/rf/br/oqrfbrezv3yay64mj4gzpt9cjei.png) -![SQL Index Manager](https://habrastorage.org/webt/3x/iz/4n/3xiz4nf8-wneuchgmovaceynny0.png) +![SQL Index Manager](https://habrastorage.org/webt/gr/qb/sq/grqbsqiogtwyppsqulsc73p4fl0.png) ## Command Line diff --git a/SQLIndexManager.csproj b/SQLIndexManager.csproj index 907f990..e8b1920 100644 --- a/SQLIndexManager.csproj +++ b/SQLIndexManager.csproj @@ -100,6 +100,12 @@ + + Form + + + ActionBox.cs + Form @@ -170,6 +176,9 @@ + + ActionBox.cs + ErrorBox.cs diff --git a/Server/Connection.cs b/Server/Connection.cs index c2a64db..bb521ea 100644 --- a/Server/Connection.cs +++ b/Server/Connection.cs @@ -7,7 +7,7 @@ public static class Connection { private static string GetConnectionString(Host host, string database) { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder() { - ApplicationName = Settings.ExeName, + ApplicationName = Settings.ApplicationName, ConnectTimeout = Settings.Options.ConnectionTimeout, DataSource = host.Server, InitialCatalog = database ?? "master" diff --git a/Server/Query.cs b/Server/Query.cs index 2e834fb..55cfb09 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -702,6 +702,19 @@ FROM sys.partitions WITH(NOLOCK) AND [partition_number] = {2} "; + public const string KillActiveSessions = @" +DECLARE @SQL NVARCHAR(MAX) +SELECT @SQL = ( + SELECT CHAR(13) + 'KILL ' + CAST([session_id] AS NVARCHAR(100)) + FROM sys.dm_exec_sessions + WHERE [program_name] = @ApplicationName + AND [status] = 'running' + AND [session_id] != @@SPID + FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)') + +EXEC sys.sp_executesql @SQL +"; + } } \ No newline at end of file diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index d7a846e..0d0206d 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -70,6 +70,8 @@ public static List GetIndexes(SqlConnection connection) { if (Settings.Options.ScanNonClusteredColumnstore) it.Add((int)IndexType.NONCLUSTERED_COLUMNSTORE); } + int threshold = Settings.Options.SkipOperation == IndexOp.IGNORE ? Settings.Options.FirstThreshold : 0; + List indexes = new List(); if (it.Count > 0) { @@ -126,7 +128,7 @@ public static List GetIndexes(SqlConnection connection) { SqlCommand cmd = new SqlCommand(query, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = threshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@PreDescribeSize", SqlDbType.BigInt) { Value = Settings.Options.PreDescribeSize.PageSize() }); @@ -202,7 +204,7 @@ public static List GetIndexes(SqlConnection connection) { SqlCommand cmd = new SqlCommand(Query.MissingIndex, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = threshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); @@ -272,8 +274,10 @@ public static void GetIndexFragmentation(SqlConnection connection, Index index) public static void GetColumnstoreFragmentation(SqlConnection connection, Index index, List indexes) { SqlCommand cmd = new SqlCommand(Query.ColumnstoreIndexFragmentation, connection) { CommandTimeout = Settings.Options.CommandTimeout }; + int threshold = Settings.Options.SkipOperation == IndexOp.IGNORE ? Settings.Options.FirstThreshold : 0; + cmd.Parameters.Add(new SqlParameter("@ObjectID", SqlDbType.Int) { Value = index.ObjectId }); - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = Settings.Options.FirstThreshold }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = threshold }); cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); @@ -398,6 +402,9 @@ public static void FindDublicateIndexes(List indexes) { } private static IndexOp CorrectIndexOp(IndexOp op, Index ix) { + if (op == IndexOp.NO_ACTION || op == IndexOp.IGNORE) + return IndexOp.SKIP; + if (ix.IndexType == IndexType.MISSING_INDEX) return IndexOp.CREATE_INDEX; @@ -428,9 +435,32 @@ private static IndexOp CorrectIndexOp(IndexOp op, Index ix) { public static void UpdateFixType(List indexes) { foreach (Index ix in indexes) { - ix.FixType = CorrectIndexOp(ix.Fragmentation < Settings.Options.SecondThreshold - ? Settings.Options.FirstOperation - : Settings.Options.SecondOperation, ix); + if (ix.Fragmentation < Settings.Options.FirstThreshold) { + ix.FixType = CorrectIndexOp(Settings.Options.SkipOperation, ix); + } + else if (ix.Fragmentation < Settings.Options.SecondThreshold) { + ix.FixType = CorrectIndexOp(Settings.Options.FirstOperation, ix); + } + else { + ix.FixType = CorrectIndexOp(Settings.Options.SecondOperation, ix); + } + } + } + + public static void KillActiveSessions() { + if (!Settings.ServerInfo.IsSysAdmin) return; + + using (SqlConnection connection = Connection.Create(Settings.ActiveHost)) { + try { + connection.Open(); + SqlCommand cmd = new SqlCommand(Query.KillActiveSessions, connection) { CommandTimeout = Settings.Options.CommandTimeout }; + cmd.Parameters.Add(new SqlParameter("@ApplicationName", SqlDbType.NVarChar, 128) { Value = Settings.ApplicationName }); + cmd.ExecuteNonQuery(); + } + catch { } + finally { + connection.Close(); + } } } diff --git a/Settings/Options.cs b/Settings/Options.cs index a074ee7..b52c3ef 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -7,6 +7,7 @@ namespace SQLIndexManager { [Serializable] public class Options { + private IndexOp _skipOperation = IndexOp.IGNORE; private IndexOp _firstOperation = IndexOp.REORGANIZE; private IndexOp _secondOperation = IndexOp.REBUILD; private int _firstThreshold = 15; @@ -16,6 +17,7 @@ public class Options { private int _maxIndexSize = 8192; private int _connectionTimeout = 15; private int _commandTimeout = 120; + private int _delayAfterFix; private int _maxDop; private int _fillFactor; private int _sampleStatsPercent = 100; @@ -36,6 +38,7 @@ public Options() { ScanNonClusteredColumnstore = true; IgnorePermissions = true; IgnoreReadOnlyFL = true; + ShowSettingsWhenConnectionChanged = true; ScanMode = ScanMode.LIMITED; DataCompression = DataCompression.DEFAULT; @@ -55,11 +58,17 @@ public int CommandTimeout { set => _commandTimeout = value.IsBetween(0, 1800) ? value : _commandTimeout; } + [XmlAttribute] + public IndexOp SkipOperation { + get => _skipOperation; + set => _skipOperation = CheckAllowedIndexOp(value, _skipOperation, true); + } + [XmlAttribute] public IndexOp FirstOperation { get => _firstOperation; set => _firstOperation = CheckAllowedIndexOp(value, _firstOperation); - } + } [XmlAttribute] public IndexOp SecondOperation { @@ -79,6 +88,12 @@ public int SecondThreshold { set => UpdateThreshold(_firstThreshold, value); } + [XmlAttribute] + public int DelayAfterFix { + get => _delayAfterFix; + set => _delayAfterFix = value.IsBetween(0, 5000) ? value : _delayAfterFix; + } + [XmlAttribute] public int MaxDop { get => _maxDop; @@ -115,6 +130,9 @@ public int MaxIndexSize { set => UpdateSize(_minIndexSize, _preDescribeSize, value); } + [XmlAttribute] + public bool ShowSettingsWhenConnectionChanged; + [XmlAttribute] public bool Online; @@ -199,18 +217,20 @@ public DataCompression DataCompression { [XmlAttribute] public ScanMode ScanMode; - private IndexOp CheckAllowedIndexOp(IndexOp newValue, IndexOp oldValue) { + private IndexOp CheckAllowedIndexOp(IndexOp newValue, IndexOp oldValue, bool isSkip = false) { return (newValue == IndexOp.REBUILD || newValue == IndexOp.REORGANIZE || newValue == IndexOp.UPDATE_STATISTICS_FULL || newValue == IndexOp.UPDATE_STATISTICS_RESAMPLE || newValue == IndexOp.UPDATE_STATISTICS_SAMPLE + || (isSkip && newValue == IndexOp.NO_ACTION) + || (isSkip && newValue == IndexOp.IGNORE) ) ? newValue : oldValue; } private void UpdateThreshold(int first, int second) { - _firstThreshold = first.IsBetween(0, 99) ? first : _firstThreshold; - _secondThreshold = second.IsBetween(1, 100) ? second : _secondThreshold; + _firstThreshold = first.IsBetween(1, 99) ? first : _firstThreshold; + _secondThreshold = second.IsBetween(2, 100) ? second : _secondThreshold; if (_firstThreshold > _secondThreshold) _secondThreshold = _firstThreshold + 1; diff --git a/Settings/Settings.cs b/Settings/Settings.cs index 213e9c6..c612a09 100644 --- a/Settings/Settings.cs +++ b/Settings/Settings.cs @@ -1,6 +1,7 @@ using Microsoft.Win32; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; @@ -19,10 +20,7 @@ public static Host ActiveHost { get => _activeHost; set { _activeHost = value; - - if (_activeHost == null) - return; - + Host oldHost = _current.Hosts.FirstOrDefault(_ => string.Equals(_.Server, _activeHost.Server, StringComparison.CurrentCultureIgnoreCase)); if (oldHost != null) { value.Databases = oldHost.Databases; @@ -66,8 +64,9 @@ private sealed class Destructor { } } - public static string ExeName => System.Diagnostics.Process.GetCurrentProcess().ProcessName; + public static string ExeName => Process.GetCurrentProcess().ProcessName; public static string ExePath => Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + public static string ApplicationName => $"{ExeName}-{Process.GetCurrentProcess().Id}"; public static readonly string LayoutFileName = $"{ExePath}\\{ExeName}.layout"; public static readonly string SettingFileName = $"{ExePath}\\{ExeName}.cfg"; diff --git a/Types/IndexOp.cs b/Types/IndexOp.cs index 2447f56..2f8b514 100644 --- a/Types/IndexOp.cs +++ b/Types/IndexOp.cs @@ -49,7 +49,16 @@ public enum IndexOp { CREATE_INDEX = 14, [Description("DROP TABLE")] - DROP_TABLE = 15 + DROP_TABLE = 15, + + [Description("NO ACTION")] + NO_ACTION = 16, + + [Description("IGNORE")] + IGNORE = 17, + + [Description("SKIP")] + SKIP = 18 } } From 776091ad6611cd997d1bd49c2802ed8c2d8cbe99 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Tue, 7 Jan 2020 20:42:49 +0200 Subject: [PATCH 13/53] Realtime stats, refactoring and bugfix --- Common/GridMethod.cs | 65 ++++++ Common/Output.cs | 8 +- Forms/AboutBox.cs | 6 +- Forms/ActionBox.cs | 4 +- Forms/ConnectionBox.cs | 8 +- Forms/DatabaseBox.Designer.cs | 211 +++++++++--------- Forms/DatabaseBox.cs | 74 ++----- Forms/ErrorBox.cs | 4 +- Forms/MainBox.Designer.cs | 405 ++++++++++++++++++---------------- Forms/MainBox.cs | 362 ++++++++++++++---------------- Forms/MainBox.resx | 59 ++++- Forms/NetworkBox.cs | 4 +- Forms/SettingsBox.cs | 6 +- Program.cs | 6 +- Properties/AssemblyInfo.cs | 4 +- SQLIndexManager.csproj | 4 + Server/Index.cs | 4 +- Server/ProgressStatus.cs | 27 +++ Server/QueryEngine.cs | 4 +- Settings/Settings.cs | 4 +- 20 files changed, 678 insertions(+), 591 deletions(-) create mode 100644 Common/GridMethod.cs create mode 100644 Server/ProgressStatus.cs diff --git a/Common/GridMethod.cs b/Common/GridMethod.cs new file mode 100644 index 0000000..3b27197 --- /dev/null +++ b/Common/GridMethod.cs @@ -0,0 +1,65 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DevExpress.XtraGrid.Views.Grid.ViewInfo; +using SQLIndexManager.Properties; + +namespace SQLIndexManager { + + public class GridMethod: Control { + + public static void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { + if (e.RowHandle == ((GridView)sender).FocusedRowHandle) { + e.Appearance.BackColor = Color.Silver; + } + } + + public static void GridDoubleClick(object sender, EventArgs e) { + GridView obj = (GridView)sender; + Point pt = obj.GridControl.PointToClient(MousePosition); + + GridHitInfo info = obj.CalcHitInfo(pt); + if (info.Column == null || info.Column.Caption == Resources.Fix || info.Column.Caption == Resources.Selection) + return; + + if (info.InRow || info.InRowCell) { + if (obj.IsRowSelected(info.RowHandle)) + obj.UnselectRow(info.RowHandle); + else + obj.SelectRow(info.RowHandle); + } + } + + public static void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { + switch (e.Column.FieldName) { + case "DataSize": + case "DataFreeSize": + case "LogSize": + case "LogFreeSize": + case "PagesCount": + case "PagesCountBefore": + case "UnusedPagesCount": + if (e.Value != null) + e.DisplayText = (Convert.ToDecimal(e.Value) * 8).FormatSize() + " "; + break; + + case "Fragmentation": + case "PageSpaceUsed": + if (e.Value != null) + e.DisplayText = $"{e.Value:n1} % "; + break; + + case "RowsCount": + e.DisplayText = $"{e.Value:n0} "; + break; + + case "FixType": + e.DisplayText = ((IndexOp)e.Value).Description(); + break; + } + } + + } +} diff --git a/Common/Output.cs b/Common/Output.cs index 23bf22d..64e0eb9 100644 --- a/Common/Output.cs +++ b/Common/Output.cs @@ -1,9 +1,9 @@ -using DevExpress.XtraBars; -using DevExpress.XtraGrid; -using DevExpress.XtraGrid.Views.Grid; -using System; +using System; using System.Collections.Generic; using System.IO; +using DevExpress.XtraBars; +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Views.Grid; namespace SQLIndexManager { diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 4747247..3eae4db 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -1,9 +1,9 @@ -using DevExpress.Utils; -using DevExpress.XtraEditors; -using System; +using System; using System.Diagnostics; using System.Reflection; using System.Windows.Forms; +using DevExpress.Utils; +using DevExpress.XtraEditors; namespace SQLIndexManager { diff --git a/Forms/ActionBox.cs b/Forms/ActionBox.cs index c10a34e..7d3d5cd 100644 --- a/Forms/ActionBox.cs +++ b/Forms/ActionBox.cs @@ -1,6 +1,6 @@ -using DevExpress.XtraEditors; -using System.Collections.Generic; +using System.Collections.Generic; using System.Windows.Forms; +using DevExpress.XtraEditors; namespace SQLIndexManager { diff --git a/Forms/ConnectionBox.cs b/Forms/ConnectionBox.cs index 3f9e20d..cd1a1aa 100644 --- a/Forms/ConnectionBox.cs +++ b/Forms/ConnectionBox.cs @@ -1,12 +1,12 @@ -using DevExpress.XtraEditors; -using DevExpress.XtraEditors.Controls; -using SQLIndexManager.Properties; -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data.SqlClient; using System.Linq; using System.Windows.Forms; +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Controls; +using SQLIndexManager.Properties; namespace SQLIndexManager { diff --git a/Forms/DatabaseBox.Designer.cs b/Forms/DatabaseBox.Designer.cs index 98fefd8..a93b9f5 100644 --- a/Forms/DatabaseBox.Designer.cs +++ b/Forms/DatabaseBox.Designer.cs @@ -33,18 +33,18 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - this.colDataSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colDatabase = new DevExpress.XtraGrid.Columns.GridColumn(); + this.DataSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.DataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.LogSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.LogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.DatabaseName = new DevExpress.XtraGrid.Columns.GridColumn(); this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); this.searchControl1 = new DevExpress.XtraEditors.SearchControl(); this.grid = new DevExpress.XtraGrid.GridControl(); this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.colRecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colLogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); + this.RecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); + this.LogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); @@ -69,58 +69,58 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); this.SuspendLayout(); // - // colDataSize - // - this.colDataSize.Caption = "Data Size"; - this.colDataSize.FieldName = "DataSize"; - this.colDataSize.MaxWidth = 110; - this.colDataSize.MinWidth = 110; - this.colDataSize.Name = "colDataSize"; - this.colDataSize.Visible = true; - this.colDataSize.VisibleIndex = 4; - this.colDataSize.Width = 110; - // - // colDataFreeSize - // - this.colDataFreeSize.Caption = "Free Size"; - this.colDataFreeSize.FieldName = "DataFreeSize"; - this.colDataFreeSize.MaxWidth = 100; - this.colDataFreeSize.MinWidth = 100; - this.colDataFreeSize.Name = "colDataFreeSize"; - this.colDataFreeSize.Visible = true; - this.colDataFreeSize.VisibleIndex = 5; - this.colDataFreeSize.Width = 100; - // - // colLogSize - // - this.colLogSize.Caption = "Log Size"; - this.colLogSize.FieldName = "LogSize"; - this.colLogSize.MaxWidth = 110; - this.colLogSize.MinWidth = 110; - this.colLogSize.Name = "colLogSize"; - this.colLogSize.Visible = true; - this.colLogSize.VisibleIndex = 6; - this.colLogSize.Width = 110; - // - // colLogFreeSize - // - this.colLogFreeSize.Caption = "Free Size"; - this.colLogFreeSize.FieldName = "LogFreeSize"; - this.colLogFreeSize.MaxWidth = 100; - this.colLogFreeSize.MinWidth = 100; - this.colLogFreeSize.Name = "colLogFreeSize"; - this.colLogFreeSize.Visible = true; - this.colLogFreeSize.VisibleIndex = 7; - this.colLogFreeSize.Width = 100; - // - // colDatabase - // - this.colDatabase.Caption = "Database"; - this.colDatabase.FieldName = "DatabaseName"; - this.colDatabase.Name = "colDatabase"; - this.colDatabase.Visible = true; - this.colDatabase.VisibleIndex = 1; - this.colDatabase.Width = 241; + // DataSize + // + this.DataSize.Caption = "Data Size"; + this.DataSize.FieldName = "DataSize"; + this.DataSize.MaxWidth = 110; + this.DataSize.MinWidth = 110; + this.DataSize.Name = "DataSize"; + this.DataSize.Visible = true; + this.DataSize.VisibleIndex = 4; + this.DataSize.Width = 110; + // + // DataFreeSize + // + this.DataFreeSize.Caption = "Free Size"; + this.DataFreeSize.FieldName = "DataFreeSize"; + this.DataFreeSize.MaxWidth = 100; + this.DataFreeSize.MinWidth = 100; + this.DataFreeSize.Name = "DataFreeSize"; + this.DataFreeSize.Visible = true; + this.DataFreeSize.VisibleIndex = 5; + this.DataFreeSize.Width = 100; + // + // LogSize + // + this.LogSize.Caption = "Log Size"; + this.LogSize.FieldName = "LogSize"; + this.LogSize.MaxWidth = 110; + this.LogSize.MinWidth = 110; + this.LogSize.Name = "LogSize"; + this.LogSize.Visible = true; + this.LogSize.VisibleIndex = 6; + this.LogSize.Width = 110; + // + // LogFreeSize + // + this.LogFreeSize.Caption = "Free Size"; + this.LogFreeSize.FieldName = "LogFreeSize"; + this.LogFreeSize.MaxWidth = 100; + this.LogFreeSize.MinWidth = 100; + this.LogFreeSize.Name = "LogFreeSize"; + this.LogFreeSize.Visible = true; + this.LogFreeSize.VisibleIndex = 7; + this.LogFreeSize.Width = 100; + // + // DatabaseName + // + this.DatabaseName.Caption = "Database"; + this.DatabaseName.FieldName = "DatabaseName"; + this.DatabaseName.Name = "DatabaseName"; + this.DatabaseName.Visible = true; + this.DatabaseName.VisibleIndex = 1; + this.DatabaseName.Width = 241; // // buttonCancel // @@ -189,16 +189,16 @@ private void InitializeComponent() { this.view.Appearance.SelectedRow.Options.UseBackColor = true; this.view.ColumnPanelRowHeight = 26; this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { - this.colDatabase, - this.colRecoveryModel, - this.colLogReuseWait, - this.colDataSize, - this.colDataFreeSize, - this.colLogSize, - this.colLogFreeSize}); + this.DatabaseName, + this.RecoveryModel, + this.LogReuseWait, + this.DataSize, + this.DataFreeSize, + this.LogSize, + this.LogFreeSize}); this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - gridFormatRule1.Column = this.colDataSize; - gridFormatRule1.ColumnApplyTo = this.colDataSize; + gridFormatRule1.Column = this.DataSize; + gridFormatRule1.ColumnApplyTo = this.DataSize; gridFormatRule1.Name = "DataSize"; formatConditionRuleDataBar1.AllowNegativeAxis = false; formatConditionRuleDataBar1.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); @@ -217,8 +217,8 @@ private void InitializeComponent() { formatConditionRuleDataBar1.PredefinedName = null; formatConditionRuleDataBar1.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule1.Rule = formatConditionRuleDataBar1; - gridFormatRule2.Column = this.colDataFreeSize; - gridFormatRule2.ColumnApplyTo = this.colDataFreeSize; + gridFormatRule2.Column = this.DataFreeSize; + gridFormatRule2.ColumnApplyTo = this.DataFreeSize; gridFormatRule2.Name = "DataFreeSize"; formatConditionRuleDataBar2.AllowNegativeAxis = false; formatConditionRuleDataBar2.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(123)))), ((int)(((byte)(180)))), ((int)(((byte)(247))))); @@ -237,8 +237,8 @@ private void InitializeComponent() { formatConditionRuleDataBar2.PredefinedName = null; formatConditionRuleDataBar2.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule2.Rule = formatConditionRuleDataBar2; - gridFormatRule3.Column = this.colLogSize; - gridFormatRule3.ColumnApplyTo = this.colLogSize; + gridFormatRule3.Column = this.LogSize; + gridFormatRule3.ColumnApplyTo = this.LogSize; gridFormatRule3.Name = "LogSize"; formatConditionRuleDataBar3.AllowNegativeAxis = false; formatConditionRuleDataBar3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); @@ -257,8 +257,8 @@ private void InitializeComponent() { formatConditionRuleDataBar3.PredefinedName = null; formatConditionRuleDataBar3.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule3.Rule = formatConditionRuleDataBar3; - gridFormatRule4.Column = this.colLogFreeSize; - gridFormatRule4.ColumnApplyTo = this.colLogFreeSize; + gridFormatRule4.Column = this.LogFreeSize; + gridFormatRule4.ColumnApplyTo = this.LogFreeSize; gridFormatRule4.Name = "LogFreeSize"; formatConditionRuleDataBar4.AllowNegativeAxis = false; formatConditionRuleDataBar4.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(218)))), ((int)(((byte)(206))))); @@ -311,33 +311,30 @@ private void InitializeComponent() { this.view.OptionsView.ShowIndicator = false; this.view.RowHeight = 24; this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { - new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.colDataSize, DevExpress.Data.ColumnSortOrder.Descending)}); - this.view.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); + new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.DataSize, DevExpress.Data.ColumnSortOrder.Descending)}); this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); - this.view.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridCustomColumnDisplayText); - this.view.DoubleClick += new System.EventHandler(this.GridDoubleClick); - // - // colRecoveryModel - // - this.colRecoveryModel.Caption = "Recovery Model"; - this.colRecoveryModel.FieldName = "RecoveryModel"; - this.colRecoveryModel.MaxWidth = 105; - this.colRecoveryModel.MinWidth = 105; - this.colRecoveryModel.Name = "colRecoveryModel"; - this.colRecoveryModel.Visible = true; - this.colRecoveryModel.VisibleIndex = 2; - this.colRecoveryModel.Width = 105; - // - // colLogReuseWait - // - this.colLogReuseWait.Caption = "Log Reuse Wait"; - this.colLogReuseWait.FieldName = "LogReuseWait"; - this.colLogReuseWait.MaxWidth = 130; - this.colLogReuseWait.MinWidth = 130; - this.colLogReuseWait.Name = "colLogReuseWait"; - this.colLogReuseWait.Visible = true; - this.colLogReuseWait.VisibleIndex = 3; - this.colLogReuseWait.Width = 130; + // + // RecoveryModel + // + this.RecoveryModel.Caption = "Recovery Model"; + this.RecoveryModel.FieldName = "RecoveryModel"; + this.RecoveryModel.MaxWidth = 105; + this.RecoveryModel.MinWidth = 105; + this.RecoveryModel.Name = "RecoveryModel"; + this.RecoveryModel.Visible = true; + this.RecoveryModel.VisibleIndex = 2; + this.RecoveryModel.Width = 105; + // + // LogReuseWait + // + this.LogReuseWait.Caption = "Log Reuse Wait"; + this.LogReuseWait.FieldName = "LogReuseWait"; + this.LogReuseWait.MaxWidth = 130; + this.LogReuseWait.MinWidth = 130; + this.LogReuseWait.Name = "LogReuseWait"; + this.LogReuseWait.Visible = true; + this.LogReuseWait.VisibleIndex = 3; + this.LogReuseWait.Width = 130; // // buttonRefresh // @@ -482,14 +479,14 @@ private void InitializeComponent() { private DevExpress.XtraEditors.SimpleButton buttonRefresh; private DevExpress.XtraGrid.GridControl grid; private DevExpress.XtraGrid.Views.Grid.GridView view; - private DevExpress.XtraGrid.Columns.GridColumn colDataSize; - private DevExpress.XtraGrid.Columns.GridColumn colLogSize; - private DevExpress.XtraGrid.Columns.GridColumn colDatabase; - private DevExpress.XtraGrid.Columns.GridColumn colRecoveryModel; - private DevExpress.XtraGrid.Columns.GridColumn colLogReuseWait; + private DevExpress.XtraGrid.Columns.GridColumn DataSize; + private DevExpress.XtraGrid.Columns.GridColumn LogSize; + private DevExpress.XtraGrid.Columns.GridColumn DatabaseName; + private DevExpress.XtraGrid.Columns.GridColumn RecoveryModel; + private DevExpress.XtraGrid.Columns.GridColumn LogReuseWait; private DevExpress.XtraEditors.SearchControl searchControl1; - private DevExpress.XtraGrid.Columns.GridColumn colLogFreeSize; - private DevExpress.XtraGrid.Columns.GridColumn colDataFreeSize; + private DevExpress.XtraGrid.Columns.GridColumn LogFreeSize; + private DevExpress.XtraGrid.Columns.GridColumn DataFreeSize; private DevExpress.XtraLayout.LayoutControl DatabaseBoxlayoutControl1ConvertedLayout; private DevExpress.XtraLayout.LayoutControlGroup layoutControl; private DevExpress.XtraLayout.LayoutControlItem searchControl1item; diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 24e9346..fd9f24e 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -1,16 +1,13 @@ -using DevExpress.Data; -using DevExpress.XtraEditors; -using DevExpress.XtraGrid.Columns; -using DevExpress.XtraGrid.Views.Base; -using DevExpress.XtraGrid.Views.Grid; -using DevExpress.XtraGrid.Views.Grid.ViewInfo; -using System; +using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Diagnostics; -using System.Drawing; using System.Linq; using System.Windows.Forms; +using DevExpress.Data; +using DevExpress.XtraEditors; +using DevExpress.XtraGrid.Columns; +using DevExpress.XtraGrid.Views.Grid; namespace SQLIndexManager { @@ -19,10 +16,14 @@ public partial class DatabaseBox : XtraForm { public DatabaseBox() { InitializeComponent(); + view.CustomColumnDisplayText += GridMethod.GridColumnDisplayText; + view.RowCellStyle += GridMethod.GridRowCellStyle; + view.DoubleClick += GridMethod.GridDoubleClick; + if (Settings.ServerInfo.IsAzure || !Settings.ServerInfo.IsSysAdmin) { - colDataSize.Visible = colLogSize.Visible = false; + DataSize.Visible = LogSize.Visible = false; view.SortInfo.Clear(); - view.SortInfo.Add(new GridColumnSortInfo(colDatabase, ColumnSortOrder.Ascending)); + view.SortInfo.Add(new GridColumnSortInfo(DatabaseName, ColumnSortOrder.Ascending)); } RefreshDatabases(false); @@ -48,17 +49,13 @@ private void RefreshDatabases(bool scanUsedSpace) { grid.DataSource = null; buttonOK.Enabled = false; - colDataSize.Visible = colLogSize.Visible = !Settings.ServerInfo.IsAzure - && Settings.ServerInfo.IsSysAdmin; - - colDataFreeSize.Visible = colLogFreeSize.Visible = scanUsedSpace - && !Settings.ServerInfo.IsAzure - && Settings.ServerInfo.IsSysAdmin; + DataSize.Visible = LogSize.Visible = !Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin; + DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin && scanUsedSpace; Stopwatch ts = Stopwatch.StartNew(); + Output.Current.Add("Refresh databases"); using (SqlConnection connection = Connection.Create(Settings.ActiveHost)) { - try { connection.Open(); @@ -69,12 +66,13 @@ private void RefreshDatabases(bool scanUsedSpace) { } grid.DataSource = dbs; - Output.Current.Add($"Refresh {dbs.Count} databases", null, ts.ElapsedMilliseconds); foreach (string db in Settings.ActiveHost.Databases) { - int index = view.LocateByValue(colDatabase.FieldName, db); + int index = view.LocateByValue(DatabaseName.FieldName, db); view.SelectRow(index); } + + Output.Current.Add($"Refreshed {dbs.Count} databases", null, ts.ElapsedMilliseconds); } catch (Exception ex) { Output.Current.Add("Refresh databases failed", ex.Message, ts.ElapsedMilliseconds); @@ -106,44 +104,8 @@ protected override bool ProcessDialogKey(Keys keyData) { #region Grid Methods - private void GridCustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { - if (e.Value == null) - return; - - if ( e.Column.FieldName == colDataSize.FieldName - || e.Column.FieldName == colDataFreeSize.FieldName - || e.Column.FieldName == colLogSize.FieldName - || e.Column.FieldName == colLogFreeSize.FieldName - ) { - e.DisplayText = (Convert.ToDecimal(e.Value) * 8).FormatSize(); - } - } - private void GridSelectionChanged(object sender, SelectionChangedEventArgs e) { - int[] rows = ((GridView)sender).GetSelectedRows(); - buttonOK.Enabled = rows.Length > 0; - } - - private void GridDoubleClick(object sender, EventArgs e) { - GridView obj = (GridView)sender; - Point pt = obj.GridControl.PointToClient(MousePosition); - - GridHitInfo info = obj.CalcHitInfo(pt); - if (info.Column == null || info.Column.Caption == @"Selection") - return; - - if (info.InRow || info.InRowCell) { - if (obj.IsRowSelected(info.RowHandle)) - obj.UnselectRow(info.RowHandle); - else - obj.SelectRow(info.RowHandle); - } - } - - private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { - if (e.RowHandle == ((GridView) sender).FocusedRowHandle) { - e.Appearance.BackColor = Color.Silver; - } + buttonOK.Enabled = ((GridView)sender).SelectedRowsCount > 0; } #endregion diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 81f11b6..e227658 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -1,7 +1,7 @@ -using DevExpress.XtraEditors; -using System; +using System; using System.Reflection; using System.Windows.Forms; +using DevExpress.XtraEditors; namespace SQLIndexManager { diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 8d46f84..6164ab6 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -68,21 +68,23 @@ private void InitializeComponent() { this.Warning = new DevExpress.XtraGrid.Columns.GridColumn(); this.PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); - this.gridControl1 = new DevExpress.XtraGrid.GridControl(); - this.grid = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.grid = new DevExpress.XtraGrid.GridControl(); + this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); - this.labelDatabase = new DevExpress.XtraBars.BarStaticItem(); - this.labelError = new DevExpress.XtraBars.BarStaticItem(); - this.labelIndex = new DevExpress.XtraBars.BarStaticItem(); + this.labelDatabases = new DevExpress.XtraBars.BarStaticItem(); + this.labelErrors = new DevExpress.XtraBars.BarStaticItem(); + this.labelIndexes = new DevExpress.XtraBars.BarStaticItem(); + this.labelIndexesSize = new DevExpress.XtraBars.BarStaticItem(); this.labelSavedSpace = new DevExpress.XtraBars.BarStaticItem(); + this.labelElapsedTime = new DevExpress.XtraBars.BarStaticItem(); this.buttonStopScan = new DevExpress.XtraBars.BarButtonItem(); this.buttonStopFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonLog = new DevExpress.XtraBars.BarButtonItem(); this.labelInfo = new DevExpress.XtraBars.BarStaticItem(); - this.labelServerInfo = new DevExpress.XtraBars.BarButtonItem(); + this.labelServerInfo = new DevExpress.XtraBars.BarStaticItem(); this.ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl(); this.buttonNewConnection = new DevExpress.XtraBars.BarButtonItem(); this.buttonFix = new DevExpress.XtraBars.BarButtonItem(); @@ -107,8 +109,8 @@ private void InitializeComponent() { this.imageCollection = new DevExpress.Utils.ImageCollection(this.components); this.buttonFind = new DevExpress.XtraBars.BarButtonItem(); this.splitContainer = new DevExpress.XtraEditors.SplitContainerControl(); - this.gridControl2 = new DevExpress.XtraGrid.GridControl(); - this.gridView2 = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.gridLog = new DevExpress.XtraGrid.GridControl(); + this.viewLog = new DevExpress.XtraGrid.Views.Grid.GridView(); this.colDuration = new DevExpress.XtraGrid.Columns.GridColumn(); this.colMessage = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemMemoEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); @@ -144,8 +146,8 @@ private void InitializeComponent() { IncludedColumns = new DevExpress.XtraGrid.Columns.GridColumn(); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).BeginInit(); @@ -153,8 +155,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); this.splitContainer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.gridControl2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridView2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridLog)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.viewLog)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemMemoEdit1)).BeginInit(); this.SuspendLayout(); // @@ -711,39 +713,39 @@ private void InitializeComponent() { // this.repositoryItemHypertextLabel1.Name = "repositoryItemHypertextLabel1"; // - // gridControl1 - // - this.gridControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.gridControl1.Font = new System.Drawing.Font("Tahoma", 9F); - this.gridControl1.Location = new System.Drawing.Point(0, 0); - this.gridControl1.MainView = this.grid; - this.gridControl1.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); - this.gridControl1.Name = "gridControl1"; - this.gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { - this.popupIndexOperation}); - this.gridControl1.Size = new System.Drawing.Size(1190, 500); - this.gridControl1.TabIndex = 2; - this.gridControl1.ToolTipController = this.gridToolTipController; - this.gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { - this.grid}); - // // grid // - this.grid.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; - this.grid.Appearance.EvenRow.Options.UseBackColor = true; - this.grid.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.grid.Appearance.HeaderPanel.Options.UseFont = true; - this.grid.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.grid.Appearance.OddRow.Options.UseBackColor = true; - this.grid.Appearance.Row.BackColor = System.Drawing.Color.Silver; - this.grid.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.grid.Appearance.Row.Options.UseBackColor = true; - this.grid.Appearance.Row.Options.UseFont = true; - this.grid.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; - this.grid.Appearance.SelectedRow.Options.UseBackColor = true; - this.grid.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; - this.grid.ColumnPanelRowHeight = 26; - this.grid.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + this.grid.Dock = System.Windows.Forms.DockStyle.Fill; + this.grid.Font = new System.Drawing.Font("Tahoma", 9F); + this.grid.Location = new System.Drawing.Point(0, 0); + this.grid.MainView = this.view; + this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); + this.grid.Name = "grid"; + this.grid.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { + this.popupIndexOperation}); + this.grid.Size = new System.Drawing.Size(1190, 500); + this.grid.TabIndex = 2; + this.grid.ToolTipController = this.gridToolTipController; + this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { + this.view}); + // + // view + // + this.view.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; + this.view.Appearance.EvenRow.Options.UseBackColor = true; + this.view.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.HeaderPanel.Options.UseFont = true; + this.view.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.view.Appearance.OddRow.Options.UseBackColor = true; + this.view.Appearance.Row.BackColor = System.Drawing.Color.Silver; + this.view.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.view.Appearance.Row.Options.UseBackColor = true; + this.view.Appearance.Row.Options.UseFont = true; + this.view.Appearance.SelectedRow.BackColor = System.Drawing.Color.Transparent; + this.view.Appearance.SelectedRow.Options.UseBackColor = true; + this.view.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + this.view.ColumnPanelRowHeight = 26; + this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { Progress, this.Duration, FixType, @@ -777,7 +779,7 @@ private void InitializeComponent() { IncludedColumns, this.Warning, this.Error}); - this.grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; + this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; gridFormatRule1.Column = this.Warning; gridFormatRule1.ColumnApplyTo = IndexName; gridFormatRule1.Name = "Warning"; @@ -960,54 +962,51 @@ private void InitializeComponent() { formatConditionRuleDataBar6.PredefinedName = null; formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule7.Rule = formatConditionRuleDataBar6; - this.grid.FormatRules.Add(gridFormatRule1); - this.grid.FormatRules.Add(gridFormatRule2); - this.grid.FormatRules.Add(gridFormatRule3); - this.grid.FormatRules.Add(gridFormatRule4); - this.grid.FormatRules.Add(gridFormatRule5); - this.grid.FormatRules.Add(gridFormatRule6); - this.grid.FormatRules.Add(gridFormatRule7); - this.grid.GridControl = this.gridControl1; - this.grid.Name = "grid"; - this.grid.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; - this.grid.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.False; - this.grid.OptionsCustomization.AllowGroup = false; - this.grid.OptionsFind.AllowFindPanel = false; - this.grid.OptionsFind.FindFilterColumns = "DatabaseName;SchemaName;ObjectName;IndexName;FileGroupName;IndexColumns;IncludedC" + + this.view.FormatRules.Add(gridFormatRule1); + this.view.FormatRules.Add(gridFormatRule2); + this.view.FormatRules.Add(gridFormatRule3); + this.view.FormatRules.Add(gridFormatRule4); + this.view.FormatRules.Add(gridFormatRule5); + this.view.FormatRules.Add(gridFormatRule6); + this.view.FormatRules.Add(gridFormatRule7); + this.view.GridControl = this.grid; + this.view.Name = "view"; + this.view.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; + this.view.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.False; + this.view.OptionsCustomization.AllowGroup = false; + this.view.OptionsFind.AllowFindPanel = false; + this.view.OptionsFind.FindFilterColumns = "DatabaseName;SchemaName;ObjectName;IndexName;FileGroupName;IndexColumns;IncludedC" + "olumns"; - this.grid.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; - this.grid.OptionsFind.FindNullPrompt = ""; - this.grid.OptionsFind.ShowClearButton = false; - this.grid.OptionsFind.ShowCloseButton = false; - this.grid.OptionsFind.ShowFindButton = false; - this.grid.OptionsLayout.Columns.AddNewColumns = false; - this.grid.OptionsLayout.StoreDataSettings = false; - this.grid.OptionsLayout.StoreVisualOptions = false; - this.grid.OptionsMenu.EnableGroupPanelMenu = false; - this.grid.OptionsMenu.ShowAddNewSummaryItem = DevExpress.Utils.DefaultBoolean.False; - this.grid.OptionsMenu.ShowAutoFilterRowItem = false; - this.grid.OptionsSelection.CheckBoxSelectorColumnWidth = 35; - this.grid.OptionsSelection.EnableAppearanceFocusedRow = false; - this.grid.OptionsSelection.EnableAppearanceHideSelection = false; - this.grid.OptionsSelection.MultiSelect = true; - this.grid.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; - this.grid.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True; - this.grid.OptionsSelection.ShowCheckBoxSelectorInGroupRow = DevExpress.Utils.DefaultBoolean.True; - this.grid.OptionsSelection.ShowCheckBoxSelectorInPrintExport = DevExpress.Utils.DefaultBoolean.False; - this.grid.OptionsSelection.UseIndicatorForSelection = false; - this.grid.OptionsView.ColumnAutoWidth = false; - this.grid.OptionsView.EnableAppearanceEvenRow = true; - this.grid.OptionsView.EnableAppearanceOddRow = true; - this.grid.OptionsView.ShowGroupPanel = false; - this.grid.OptionsView.ShowIndicator = false; - this.grid.RowHeight = 24; - this.grid.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); - this.grid.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(this.GridRowCellStyle); - this.grid.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); - this.grid.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); - this.grid.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.GridColumnDisplayText); - this.grid.DoubleClick += new System.EventHandler(this.GridDoubleClick); - this.grid.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); + this.view.OptionsFind.FindMode = DevExpress.XtraEditors.FindMode.Always; + this.view.OptionsFind.FindNullPrompt = ""; + this.view.OptionsFind.ShowClearButton = false; + this.view.OptionsFind.ShowCloseButton = false; + this.view.OptionsFind.ShowFindButton = false; + this.view.OptionsLayout.Columns.AddNewColumns = false; + this.view.OptionsLayout.StoreDataSettings = false; + this.view.OptionsLayout.StoreVisualOptions = false; + this.view.OptionsMenu.EnableGroupPanelMenu = false; + this.view.OptionsMenu.ShowAddNewSummaryItem = DevExpress.Utils.DefaultBoolean.False; + this.view.OptionsMenu.ShowAutoFilterRowItem = false; + this.view.OptionsSelection.CheckBoxSelectorColumnWidth = 35; + this.view.OptionsSelection.EnableAppearanceFocusedRow = false; + this.view.OptionsSelection.EnableAppearanceHideSelection = false; + this.view.OptionsSelection.MultiSelect = true; + this.view.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; + this.view.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True; + this.view.OptionsSelection.ShowCheckBoxSelectorInGroupRow = DevExpress.Utils.DefaultBoolean.True; + this.view.OptionsSelection.ShowCheckBoxSelectorInPrintExport = DevExpress.Utils.DefaultBoolean.False; + this.view.OptionsSelection.UseIndicatorForSelection = false; + this.view.OptionsView.ColumnAutoWidth = false; + this.view.OptionsView.EnableAppearanceEvenRow = true; + this.view.OptionsView.EnableAppearanceOddRow = true; + this.view.OptionsView.ShowGroupPanel = false; + this.view.OptionsView.ShowIndicator = false; + this.view.RowHeight = 24; + this.view.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridRowCellClick); + this.view.PopupMenuShowing += new DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventHandler(this.GridPopupMenuShowing); + this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); + this.view.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); // // Duration // @@ -1052,10 +1051,12 @@ private void InitializeComponent() { // // statusBar // - this.statusBar.ItemLinks.Add(this.labelDatabase); - this.statusBar.ItemLinks.Add(this.labelError); - this.statusBar.ItemLinks.Add(this.labelIndex); + this.statusBar.ItemLinks.Add(this.labelDatabases); + this.statusBar.ItemLinks.Add(this.labelErrors); + this.statusBar.ItemLinks.Add(this.labelIndexes); + this.statusBar.ItemLinks.Add(this.labelIndexesSize); this.statusBar.ItemLinks.Add(this.labelSavedSpace); + this.statusBar.ItemLinks.Add(this.labelElapsedTime); this.statusBar.ItemLinks.Add(this.buttonStopScan); this.statusBar.ItemLinks.Add(this.buttonStopFix); this.statusBar.ItemLinks.Add(this.buttonLog); @@ -1067,48 +1068,62 @@ private void InitializeComponent() { this.statusBar.Size = new System.Drawing.Size(1190, 31); this.statusBar.ToolTipController = this.toolTipController; // - // labelDatabase - // - this.labelDatabase.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelDatabase.Caption = "0"; - this.labelDatabase.Id = 12; - this.labelDatabase.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelDatabase.ImageOptions.Image"))); - this.labelDatabase.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelDatabase.ImageOptions.LargeImage"))); - this.labelDatabase.Name = "labelDatabase"; - this.labelDatabase.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - this.labelDatabase.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - // - // labelError - // - this.labelError.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelError.Caption = "0"; - this.labelError.Id = 29; - this.labelError.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.Image"))); - this.labelError.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelError.ImageOptions.LargeImage"))); - this.labelError.Name = "labelError"; - this.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - // - // labelIndex - // - this.labelIndex.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelIndex.Caption = "0"; - this.labelIndex.Id = 13; - this.labelIndex.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndex.ImageOptions.Image"))); - this.labelIndex.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndex.ImageOptions.LargeImage"))); - this.labelIndex.Name = "labelIndex"; - this.labelIndex.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; - this.labelIndex.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // labelDatabases + // + this.labelDatabases.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelDatabases.Id = 12; + this.labelDatabases.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelDatabases.ImageOptions.Image"))); + this.labelDatabases.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelDatabases.ImageOptions.LargeImage"))); + this.labelDatabases.Name = "labelDatabases"; + this.labelDatabases.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; + this.labelDatabases.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // + // labelErrors + // + this.labelErrors.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelErrors.Id = 29; + this.labelErrors.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelErrors.ImageOptions.Image"))); + this.labelErrors.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelErrors.ImageOptions.LargeImage"))); + this.labelErrors.Name = "labelErrors"; + this.labelErrors.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // + // labelIndexes + // + this.labelIndexes.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelIndexes.Id = 13; + this.labelIndexes.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndexes.ImageOptions.Image"))); + this.labelIndexes.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndexes.ImageOptions.LargeImage"))); + this.labelIndexes.Name = "labelIndexes"; + this.labelIndexes.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; + this.labelIndexes.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // + // labelIndexesSize + // + this.labelIndexesSize.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelIndexesSize.Id = 33; + this.labelIndexesSize.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndexesSize.ImageOptions.Image"))); + this.labelIndexesSize.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndexesSize.ImageOptions.LargeImage"))); + this.labelIndexesSize.Name = "labelIndexesSize"; + this.labelIndexesSize.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // // labelSavedSpace // this.labelSavedSpace.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelSavedSpace.Caption = "0"; this.labelSavedSpace.Id = 31; this.labelSavedSpace.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.Image"))); this.labelSavedSpace.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.LargeImage"))); this.labelSavedSpace.Name = "labelSavedSpace"; this.labelSavedSpace.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // + // labelElapsedTime + // + this.labelElapsedTime.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; + this.labelElapsedTime.Id = 34; + this.labelElapsedTime.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelElapsedTime.ImageOptions.Image"))); + this.labelElapsedTime.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelElapsedTime.ImageOptions.LargeImage"))); + this.labelElapsedTime.Name = "labelElapsedTime"; + this.labelElapsedTime.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // // buttonStopScan // this.buttonStopScan.Caption = "Stop"; @@ -1146,7 +1161,7 @@ private void InitializeComponent() { // labelServerInfo // this.labelServerInfo.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; - this.labelServerInfo.Id = 32; + this.labelServerInfo.Id = 35; this.labelServerInfo.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.Image"))); this.labelServerInfo.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.LargeImage"))); this.labelServerInfo.Name = "labelServerInfo"; @@ -1169,8 +1184,8 @@ private void InitializeComponent() { this.labelInfo, this.buttonStopFix, this.buttonCopyFix, - this.labelDatabase, - this.labelIndex, + this.labelDatabases, + this.labelIndexes, this.buttonDatabases, this.boxSearch, this.labelSeparator, @@ -1181,11 +1196,13 @@ private void InitializeComponent() { this.buttonLog, this.buttonExportHtml, this.buttonRestoreDefaultLayout, - this.labelError, + this.labelErrors, this.labelSavedSpace, + this.labelIndexesSize, + this.labelElapsedTime, this.labelServerInfo}); this.ribbonControl1.Location = new System.Drawing.Point(0, 0); - this.ribbonControl1.MaxItemId = 33; + this.ribbonControl1.MaxItemId = 36; this.ribbonControl1.Name = "ribbonControl1"; this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonNewConnection); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonDatabases); @@ -1370,7 +1387,7 @@ private void InitializeComponent() { this.boxSearchControl.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), new DevExpress.XtraEditors.Repository.SearchButton()}); - this.boxSearchControl.Client = this.gridControl1; + this.boxSearchControl.Client = this.grid; this.boxSearchControl.Name = "boxSearchControl"; this.boxSearchControl.ShowDropDown = DevExpress.XtraEditors.Controls.ShowDropDown.Never; // @@ -1425,68 +1442,68 @@ private void InitializeComponent() { this.splitContainer.Horizontal = false; this.splitContainer.Location = new System.Drawing.Point(0, 27); this.splitContainer.Name = "splitContainer"; - this.splitContainer.Panel1.Controls.Add(this.gridControl1); + this.splitContainer.Panel1.Controls.Add(this.grid); this.splitContainer.Panel1.Text = "Panel1"; - this.splitContainer.Panel2.Controls.Add(this.gridControl2); + this.splitContainer.Panel2.Controls.Add(this.gridLog); this.splitContainer.Panel2.Text = "Panel2"; this.splitContainer.Size = new System.Drawing.Size(1190, 741); this.splitContainer.SplitterPosition = 500; this.splitContainer.TabIndex = 5; // - // gridControl2 + // gridLog // - this.gridControl2.Dock = System.Windows.Forms.DockStyle.Fill; - this.gridControl2.Font = new System.Drawing.Font("Tahoma", 9F); - this.gridControl2.Location = new System.Drawing.Point(0, 0); - this.gridControl2.MainView = this.gridView2; - this.gridControl2.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); - this.gridControl2.Name = "gridControl2"; - this.gridControl2.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { + this.gridLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.gridLog.Font = new System.Drawing.Font("Tahoma", 9F); + this.gridLog.Location = new System.Drawing.Point(0, 0); + this.gridLog.MainView = this.viewLog; + this.gridLog.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); + this.gridLog.Name = "gridLog"; + this.gridLog.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { this.repositoryItemMemoEdit1}); - this.gridControl2.Size = new System.Drawing.Size(1190, 236); - this.gridControl2.TabIndex = 4; - this.gridControl2.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { - this.gridView2}); - // - // gridView2 - // - this.gridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; - this.gridView2.Appearance.EvenRow.Options.UseBackColor = true; - this.gridView2.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.gridView2.Appearance.FocusedRow.Options.UseBackColor = true; - this.gridView2.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.gridView2.Appearance.HeaderPanel.Options.UseFont = true; - this.gridView2.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; - this.gridView2.Appearance.HideSelectionRow.Options.UseBackColor = true; - this.gridView2.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.gridView2.Appearance.OddRow.Options.UseBackColor = true; - this.gridView2.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.gridView2.Appearance.Row.Options.UseFont = true; - this.gridView2.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.gridView2.Appearance.SelectedRow.Options.UseBackColor = true; - this.gridView2.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; - this.gridView2.ColumnPanelRowHeight = 22; - this.gridView2.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + this.gridLog.Size = new System.Drawing.Size(1190, 236); + this.gridLog.TabIndex = 4; + this.gridLog.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { + this.viewLog}); + // + // viewLog + // + this.viewLog.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; + this.viewLog.Appearance.EvenRow.Options.UseBackColor = true; + this.viewLog.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.viewLog.Appearance.FocusedRow.Options.UseBackColor = true; + this.viewLog.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.viewLog.Appearance.HeaderPanel.Options.UseFont = true; + this.viewLog.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; + this.viewLog.Appearance.HideSelectionRow.Options.UseBackColor = true; + this.viewLog.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.viewLog.Appearance.OddRow.Options.UseBackColor = true; + this.viewLog.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); + this.viewLog.Appearance.Row.Options.UseFont = true; + this.viewLog.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); + this.viewLog.Appearance.SelectedRow.Options.UseBackColor = true; + this.viewLog.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + this.viewLog.ColumnPanelRowHeight = 22; + this.viewLog.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colDateTime, this.colDuration, this.colMessage}); - this.gridView2.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - this.gridView2.GridControl = this.gridControl2; - this.gridView2.Name = "gridView2"; - this.gridView2.OptionsBehavior.Editable = false; - this.gridView2.OptionsCustomization.AllowColumnMoving = false; - this.gridView2.OptionsCustomization.AllowColumnResizing = false; - this.gridView2.OptionsCustomization.AllowFilter = false; - this.gridView2.OptionsCustomization.AllowGroup = false; - this.gridView2.OptionsCustomization.AllowQuickHideColumns = false; - this.gridView2.OptionsFilter.AllowFilterEditor = false; - this.gridView2.OptionsMenu.EnableColumnMenu = false; - this.gridView2.OptionsView.EnableAppearanceEvenRow = true; - this.gridView2.OptionsView.EnableAppearanceOddRow = true; - this.gridView2.OptionsView.RowAutoHeight = true; - this.gridView2.OptionsView.ShowGroupPanel = false; - this.gridView2.OptionsView.ShowIndicator = false; - this.gridView2.RowHeight = 22; + this.viewLog.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; + this.viewLog.GridControl = this.gridLog; + this.viewLog.Name = "viewLog"; + this.viewLog.OptionsBehavior.Editable = false; + this.viewLog.OptionsCustomization.AllowColumnMoving = false; + this.viewLog.OptionsCustomization.AllowColumnResizing = false; + this.viewLog.OptionsCustomization.AllowFilter = false; + this.viewLog.OptionsCustomization.AllowGroup = false; + this.viewLog.OptionsCustomization.AllowQuickHideColumns = false; + this.viewLog.OptionsFilter.AllowFilterEditor = false; + this.viewLog.OptionsMenu.EnableColumnMenu = false; + this.viewLog.OptionsView.EnableAppearanceEvenRow = true; + this.viewLog.OptionsView.EnableAppearanceOddRow = true; + this.viewLog.OptionsView.RowAutoHeight = true; + this.viewLog.OptionsView.ShowGroupPanel = false; + this.viewLog.OptionsView.ShowIndicator = false; + this.viewLog.RowHeight = 22; // // colDuration // @@ -1539,8 +1556,8 @@ private void InitializeComponent() { this.Shown += new System.EventHandler(this.MainBox_Shown); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupExport)).EndInit(); @@ -1548,8 +1565,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); this.splitContainer.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.gridControl2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.gridView2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridLog)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.viewLog)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.repositoryItemMemoEdit1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -1568,15 +1585,15 @@ private void InitializeComponent() { private BarButtonItem buttonSaveFix; private BarStaticItem labelInfo; private BarButtonItem buttonStopFix; - private DevExpress.XtraGrid.Views.Grid.GridView grid; + private DevExpress.XtraGrid.Views.Grid.GridView view; private DevExpress.Utils.Taskbar.TaskbarAssistant taskbar; - private DevExpress.XtraGrid.GridControl gridControl1; + private DevExpress.XtraGrid.GridControl grid; private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit popupIndexOperation; private DevExpress.Utils.ImageCollection imageCollection; private DevExpress.XtraGrid.Columns.GridColumn Duration; private BarButtonItem buttonCopyFix; - private BarStaticItem labelDatabase; - private BarStaticItem labelIndex; + private BarStaticItem labelDatabases; + private BarStaticItem labelIndexes; private DevExpress.Utils.ToolTipController toolTipController; private BarButtonItem buttonDatabases; private BarEditItem boxSearch; @@ -1592,8 +1609,8 @@ private void InitializeComponent() { private BarButtonItem buttonExportText; private DevExpress.XtraEditors.SplitContainerControl splitContainer; private BarButtonItem buttonLog; - private DevExpress.XtraGrid.GridControl gridControl2; - private DevExpress.XtraGrid.Views.Grid.GridView gridView2; + private DevExpress.XtraGrid.GridControl gridLog; + private DevExpress.XtraGrid.Views.Grid.GridView viewLog; private DevExpress.XtraGrid.Columns.GridColumn colDuration; private DevExpress.XtraGrid.Columns.GridColumn colMessage; private DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit repositoryItemMemoEdit1; @@ -1603,8 +1620,10 @@ private void InitializeComponent() { private DevExpress.XtraGrid.Columns.GridColumn Warning; private BarButtonItem buttonRestoreDefaultLayout; private DevExpress.XtraGrid.Columns.GridColumn Error; - private BarStaticItem labelError; + private BarStaticItem labelErrors; private BarStaticItem labelSavedSpace; - private BarButtonItem labelServerInfo; + private BarStaticItem labelIndexesSize; + private BarStaticItem labelElapsedTime; + private BarStaticItem labelServerInfo; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 737e5c1..f339827 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -1,4 +1,15 @@ -using DevExpress.Data; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using DevExpress.Data; using DevExpress.Utils; using DevExpress.Utils.Menu; using DevExpress.Utils.Taskbar.Core; @@ -13,31 +24,22 @@ using DevExpress.XtraGrid.Views.Grid.ViewInfo; using DevExpress.XtraPrinting; using SQLIndexManager.Properties; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.SqlClient; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Windows.Forms; namespace SQLIndexManager { public partial class MainBox : RibbonForm { - private long _totalDuration; - public MainBox() { InitializeComponent(); splitContainer.PanelVisibility = SplitPanelVisibility.Panel1; - Output.Current.SetOutputControl(labelInfo, gridControl2); + Output.Current.SetOutputControl(labelInfo, gridLog); Output.Current.Add($"Log folder: {Environment.CurrentDirectory}"); + + view.CustomColumnDisplayText += GridMethod.GridColumnDisplayText; + view.RowCellStyle += GridMethod.GridRowCellStyle; + view.DoubleClick += GridMethod.GridDoubleClick; + popupIndexOperation.DataSource = Enum.GetValues(typeof(IndexOp)).Cast().ToList(); RestoreLayout(); @@ -53,7 +55,7 @@ private void MainBox_FormClosing(object sender, FormClosingEventArgs e) { private void RestoreLayout() { try { - grid.SaveLayoutToStream(defaultLayout); + view.SaveLayoutToStream(defaultLayout); defaultLayout.Seek(0, SeekOrigin.Begin); } catch { } @@ -63,7 +65,7 @@ private void RestoreLayout() { string layout = AES.Decrypt(File.ReadAllText(Settings.LayoutFileName)); using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(layout))) { - grid.RestoreLayoutFromStream(stream); + view.RestoreLayoutFromStream(stream); } Output.Current.Add($"Grid layout restored: {Settings.LayoutFileName}"); } @@ -75,7 +77,7 @@ private void RestoreLayout() { private void RestoreDefaultLayout(object sender, ItemClickEventArgs e) { try { - grid.RestoreLayoutFromStream(defaultLayout); + view.RestoreLayoutFromStream(defaultLayout); defaultLayout.Seek(0, SeekOrigin.Begin); Output.Current.Add("Default grid layout restored"); @@ -91,7 +93,7 @@ private void SaveLayout() { try { using (StreamWriter file = new StreamWriter(new FileStream(Settings.LayoutFileName, FileMode.Create))) { Stream str = new MemoryStream(); - grid.SaveLayoutToStream(str); + view.SaveLayoutToStream(str); str.Seek(0, SeekOrigin.Begin); StreamReader reader = new StreamReader(str); string layout = reader.ReadToEnd(); @@ -110,13 +112,10 @@ private void SaveLayout() { #region Scan Indexes - private readonly List _scanIndexes = new List(); + private readonly List _indexes = new List(); private BackgroundWorker _workerScan; - private Stopwatch _scanDuration = new Stopwatch(); - private int _errors; private void ScanIndexes(object sender, DoWorkEventArgs e) { - _errors = 0; using (ConnectionList connectionList = new ConnectionList(Settings.ActiveHost)) { foreach (var database in Settings.ActiveHost.Databases) { List idx = new List(); @@ -139,8 +138,8 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { break; } catch (SqlException ex) { - _errors++; - if (!ex.Message.Contains("timeout")) { + _ps.Errors++; + if (!ex.Message.Contains("timeout") && !ex.Message.Contains("kill")) { Output.Current.Add($"Error: {ex.Source}", ex.Message); XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); return; @@ -159,6 +158,10 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { $"Post-describe: {(idx.Count(_ => _.Fragmentation == null))}", null, opw.ElapsedMilliseconds); List clid = new List(); + _ps.IndexesTotal = idx.Count; + _ps.Indexes = idx.Count(_ => _.Fragmentation != null); + _ps.IndexesSize = idx.Where(_ => _.Fragmentation != null).Sum(_ => _.PagesCount); + _ps.SavedSpace = idx.Where(_ => _.Fragmentation != null).Sum(_ => _.UnusedPagesCount); foreach (Index index in idx.Where(_ => _.Fragmentation == null) .OrderBy(_ => _.ObjectId) @@ -166,7 +169,7 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { .ThenBy(_ => _.PartitionNumber)) { try { if (_workerScan.CancellationPending) { - _scanIndexes.AddRange(idx); + _indexes.AddRange(idx); e.Cancel = true; return; } @@ -174,6 +177,8 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { connection = connectionList.Get(database); if (connection == null) break; + _ps.Indexes++; + if (index.IndexType == IndexType.CLUSTERED_COLUMNSTORE || index.IndexType == IndexType.NONCLUSTERED_COLUMNSTORE) { if (!clid.Exists(_ => _ == index.ObjectId)) { Output.Current.AddCaption(index.ToString()); @@ -197,19 +202,24 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { } } catch (Exception ex) { - _errors++; + _ps.Errors++; Output.Current.Add($"Failed: {index}", ex.Message); } + + _ps.Indexes = idx.Count(_ => _.Fragmentation != null); + _ps.IndexesSize = idx.Where(_ => _.Fragmentation != null).Sum(_ => _.PagesCount); + _ps.SavedSpace = idx.Where(_ => _.Fragmentation != null).Sum(_ => _.UnusedPagesCount); + + _workerScan.ReportProgress(0); } - _scanIndexes.AddRange(idx); + _indexes.AddRange(idx); } } } private void ScanIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { taskbar.ProgressMode = TaskbarButtonProgressMode.NoProgress; - _scanDuration.Stop(); buttonOptions.Enabled = buttonDatabases.Enabled = @@ -219,38 +229,37 @@ private void ScanIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonStopScan.Visibility = BarItemVisibility.Never; - List indexes = _scanIndexes.Where(_ => _.Fragmentation >= (Settings.Options.SkipOperation == IndexOp.IGNORE ? Settings.Options.FirstThreshold : 0) - && _.PagesCount >= Settings.Options.MinIndexSize.PageSize() - && _.PagesCount <= Settings.Options.MaxIndexSize.PageSize()) - .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) - .ThenByDescending(_ => _.PagesCount).ToList(); + List indexes = _indexes.Where(_ => _.Fragmentation >= (Settings.Options.SkipOperation == IndexOp.IGNORE ? Settings.Options.FirstThreshold : 0) + && _.PagesCount >= Settings.Options.MinIndexSize.PageSize() + && _.PagesCount <= Settings.Options.MaxIndexSize.PageSize()) + .OrderBy(_ => _.Fragmentation < Settings.Options.FirstThreshold ? 3 : (_.Fragmentation < Settings.Options.SecondThreshold ? 2 : 1 )) + .ThenByDescending(_ => (_.Fragmentation + 0.1) * _.PagesCount).ToList(); QueryEngine.UpdateFixType(indexes); QueryEngine.FindDublicateIndexes(indexes); QueryEngine.FindUnusedIndexes(indexes); - labelIndex.Caption = indexes.Count.ToString(); - labelError.Caption = _errors.ToString(); - Output.Current.Add($"Processed: {_scanIndexes.Count}. Fragmented: {indexes.Count}", null, _scanDuration.ElapsedMilliseconds); + _ps.Indexes = _ps.IndexesTotal = indexes.Count; + _ps.IndexesSize = indexes.Sum(_ => _.PagesCount); + _ps.SavedSpace = indexes.Sum(_ => _.UnusedPagesCount); + UpdateProgressStats(); + + Output.Current.Add($"Processed: {_indexes.Count}. Fragmented: {_ps.Indexes}"); - grid.CustomDrawEmptyForeground += CustomDrawEmptyForeground; - gridControl1.DataSource = indexes; + view.CustomDrawEmptyForeground += CustomDrawEmptyForeground; + grid.DataSource = indexes; } private void RefreshIndexes() { if (_workerFix != null && _workerFix.IsBusy) return; - grid.CustomDrawEmptyForeground -= CustomDrawEmptyForeground; - gridControl1.DataSource = null; - - labelDatabase.Caption = Settings.ActiveHost.Databases.Count.ToString(); - labelIndex.Caption = - labelError.Caption = @"0"; + view.CustomDrawEmptyForeground -= CustomDrawEmptyForeground; + grid.DataSource = null; RestoreSortRules(); - grid.OptionsBehavior.Editable = true; - grid.OptionsSelection.MultiSelect = true; + view.OptionsBehavior.Editable = true; + view.OptionsSelection.MultiSelect = true; HideSystemColumns(); @@ -260,12 +269,12 @@ private void RefreshIndexes() { buttonRefreshIndex.Enabled = buttonNewConnection.Enabled = false; - labelSavedSpace.Visibility = BarItemVisibility.Never; buttonStopScan.Visibility = BarItemVisibility.Always; taskbar.ProgressMode = TaskbarButtonProgressMode.Indeterminate; - _scanIndexes.Clear(); - _scanDuration = Stopwatch.StartNew(); + _indexes.Clear(); + _ps = new ProgressStatus { Databases = Settings.ActiveHost.Databases.Count }; + UpdateProgressStats(); _workerScan = new ThreadWorker() { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; _workerScan.DoWork += ScanIndexes; @@ -274,8 +283,31 @@ private void RefreshIndexes() { _workerScan.RunWorkerAsync(); } + private ProgressStatus _ps; + private void ScanIndexesProgressChanged(object sender, ProgressChangedEventArgs e) { - //taskbar.ProgressCurrentValue = e.ProgressPercentage; + UpdateProgressStats(); + } + + private void UpdateProgressStats() { + labelErrors.Visibility = _ps.Errors > 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + labelErrors.Caption = _ps.Errors.ToString(); + + labelDatabases.Visibility = _ps.Databases > 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + labelDatabases.Caption = _ps.Databases.ToString(); + + labelIndexes.Visibility = _ps.Indexes > 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + labelIndexes.Caption = _ps.Indexes != _ps.IndexesTotal ? $"{_ps.Indexes} / {_ps.IndexesTotal}" : _ps.Indexes.ToString(); + + labelIndexesSize.Visibility = _ps.IndexesSize > 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + labelIndexesSize.Caption = Convert.ToDecimal(_ps.IndexesSize * 8).FormatSize(); + + labelSavedSpace.Visibility = _ps.SavedSpace != 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + labelSavedSpace.Caption = Convert.ToDecimal(_ps.SavedSpace * 8).FormatSize(); + + labelElapsedTime.Visibility = _ps.Duration.ElapsedMilliseconds > 0 ? BarItemVisibility.Always : BarItemVisibility.Never; + DateTime duration = (new DateTime(0)).AddMilliseconds(_ps.Duration.ElapsedMilliseconds); + labelElapsedTime.Caption = duration.ToString("HH:mm:ss:fff"); } #endregion @@ -285,8 +317,6 @@ private void ScanIndexesProgressChanged(object sender, ProgressChangedEventArgs private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { if (_workerFix != null && _workerFix.IsBusy) return; - _totalDuration = 0; - buttonFix.Enabled = buttonDatabases.Enabled = buttonRefreshIndex.Enabled = @@ -296,15 +326,19 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { buttonStopFix.Visibility = BarItemVisibility.Always; - List selIndex = ((List)grid.DataSource).Where(_ => _.IsSelected).ToList(); + List selIndex = ((List)view.DataSource).Where(_ => _.IsSelected).ToList(); List fixIndex = selIndex.Where(x => Settings.ActiveHost.Databases.Any(y => y == x.DatabaseName) && x.FixType != IndexOp.SKIP) .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) .ThenByDescending(_ => _.PagesCount).ToList(); - labelDatabase.Caption = fixIndex.Select(_ => _.DatabaseName).Distinct().Count().ToString(); - labelIndex.Caption = fixIndex.Count.ToString(); + _ps = new ProgressStatus + { + Databases = fixIndex.Select(_ => _.DatabaseName).Distinct().Count(), + IndexesTotal = fixIndex.Count + }; + UpdateProgressStats(); foreach (Index row in fixIndex) { row.Progress = imageCollection.Images[0]; @@ -312,22 +346,22 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { SaveSortRules(); - grid.ClearColumnsFilter(); - grid.ClearSelection(); + view.ClearColumnsFilter(); + view.ClearSelection(); - grid.Columns[Resources.Duration].Visible = true; - grid.Columns[Resources.Duration].VisibleIndex = 0; + view.Columns[Resources.Duration].Visible = true; + view.Columns[Resources.Duration].VisibleIndex = 0; - grid.Columns[Resources.Progress].Visible = true; - grid.Columns[Resources.Progress].VisibleIndex = 0; + view.Columns[Resources.Progress].Visible = true; + view.Columns[Resources.Progress].VisibleIndex = 0; - grid.Columns[Resources.PagesCountBefore].Visible = true; - grid.Columns[Resources.PagesCountBefore].VisibleIndex = grid.Columns[Resources.PagesCount].VisibleIndex + 1; + view.Columns[Resources.PagesCountBefore].Visible = true; + view.Columns[Resources.PagesCountBefore].VisibleIndex = view.Columns[Resources.PagesCount].VisibleIndex + 1; - gridControl1.DataSource = fixIndex; + grid.DataSource = fixIndex; - grid.OptionsBehavior.Editable = false; - grid.OptionsSelection.MultiSelect = false; + view.OptionsBehavior.Editable = false; + view.OptionsSelection.MultiSelect = false; Output.Current.Add("Start processing"); @@ -343,7 +377,8 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { private void FixIndexesProgressChanged(object sender, ProgressChangedEventArgs e) { taskbar.ProgressCurrentValue = e.ProgressPercentage; - grid.RefreshData(); + view.RefreshData(); + UpdateProgressStats(); } private BackgroundWorker _workerFix; @@ -363,6 +398,8 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { } item.Progress = imageCollection.Images[1]; + _ps.Indexes++; + _ps.IndexesSize += item.PagesCount; _workerFix.ReportProgress(i + 1); Output.Current.AddCaption(item.ToString()); @@ -378,7 +415,6 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { watch.Stop(); - _totalDuration += watch.ElapsedMilliseconds; item.Duration = (new DateTime(0)).AddMilliseconds(watch.ElapsedMilliseconds); Output.Current.Add(item.ToString(), sql, watch.ElapsedMilliseconds); @@ -387,6 +423,7 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { if (!string.IsNullOrEmpty(item.Error)) { Output.Current.Add(item.ToString(), item.Error); item.Progress = imageCollection.Images[3]; + _ps.Errors++; } else { if (Settings.Options.DelayAfterFix > 0 && i < indexes.Count - 1) { @@ -396,6 +433,7 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { } } + _ps.SavedSpace += (item.PagesCountBefore ?? 0); _workerFix.ReportProgress(i + 2); } } @@ -413,15 +451,10 @@ private void FixIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonFix.Enabled = false; - List indexes = (List)grid.DataSource; - - labelSavedSpace.Visibility = BarItemVisibility.Always; - labelSavedSpace.Caption = Convert.ToDecimal(indexes.Sum(_ => _.PagesCountBefore ?? 0) * 8).FormatSize(); - labelError.Caption = indexes.Count(_ => _.Error != null).ToString(); - buttonStopFix.Visibility = BarItemVisibility.Never; - Output.Current.Add("Finished", null, _totalDuration); + UpdateProgressStats(); + Output.Current.Add("Done!"); } #endregion @@ -434,8 +467,7 @@ private void MainBox_Shown(object sender, EventArgs e) { private void ShowDatabaseBox(bool isConnectionChanged) { using (DatabaseBox form = new DatabaseBox()) { - DialogResult dr = form.ShowDialog(this); - if (dr == DialogResult.OK) { + if (form.ShowDialog(this) == DialogResult.OK) { List dbs = form.GetDatabases(); bool isDatabaseSelectionEqual = Settings.ActiveHost.Databases.OrderBy(t => t).SequenceEqual(dbs.OrderBy(t => t)); @@ -448,15 +480,15 @@ private void ShowDatabaseBox(bool isConnectionChanged) { RefreshIndexes(); } else { - labelDatabase.Caption = Settings.ActiveHost.Databases.Count.ToString(); + labelDatabases.Caption = Settings.ActiveHost.Databases.Count.ToString(); + labelDatabases.Visibility = BarItemVisibility.Always; } } } private void ShowConnectionBox() { using (ConnectionBox form = new ConnectionBox()) { - DialogResult dr = form.ShowDialog(this); - if (dr == DialogResult.OK) { + if (form.ShowDialog(this) == DialogResult.OK) { Host host = form.GetHost(); Host lastHost = Settings.Hosts[0]; @@ -464,21 +496,16 @@ private void ShowConnectionBox() { && !string.Equals(host.Server, (lastHost ?? new Host()).Server, StringComparison.CurrentCultureIgnoreCase); Settings.ActiveHost = host; + Text = host.Server.ToUpper(); buttonDatabases.Enabled = true; buttonRefreshIndex.Enabled = host.Databases.Count > 0; - labelSavedSpace.Visibility = BarItemVisibility.Never; - - labelServerInfo.Visibility = - labelDatabase.Visibility = - labelError.Visibility = - labelIndex.Visibility = BarItemVisibility.Always; + labelServerInfo.Visibility = BarItemVisibility.Always; + labelServerInfo.Caption = host.ServerInfo.ToString(); Output.Current.Add($"Host: {host.Server}"); Output.Current.Add($"Server: {host.ServerInfo}"); - Text = host.Server.ToUpper(); - labelServerInfo.Caption = host.ServerInfo.ToString(); ShowDatabaseBox(isConnectionChanged); } @@ -487,8 +514,7 @@ private void ShowConnectionBox() { public void ShowSettingsBox() { using (SettingsBox form = new SettingsBox()) { - DialogResult dr = form.ShowDialog(this); - if (dr == DialogResult.OK) { + if (form.ShowDialog(this) == DialogResult.OK) { Settings.Options = form.GetSettings(); } } @@ -499,7 +525,7 @@ public void ShowSettingsBox() { #region Grid Methods private string GetFixChanges() { - List fix = ((List)grid.DataSource).Where(_ => _.IsSelected).ToList(); + List fix = ((List)view.DataSource).Where(_ => _.IsSelected).ToList(); StringBuilder sb = new StringBuilder(); var groupList = fix.GroupBy(u => u.DatabaseName).Select(grp => grp.ToList()).ToList(); @@ -518,21 +544,21 @@ private string GetFixChanges() { } private void FixedOpPopupValueChanged(object sender, EventArgs e) { - Index row = (Index)grid.GetFocusedRow(); + Index row = (Index)view.GetFocusedRow(); if (row == null) return; - int rowIndex = grid.FindRow(row); + int rowIndex = view.FindRow(row); - grid.PostEditor(); - grid.SelectRow(rowIndex); - grid.UpdateCurrentRow(); + view.PostEditor(); + view.SelectRow(rowIndex); + view.UpdateCurrentRow(); } private void FixedOpPopup(object sender, EventArgs e) { LookUpEdit obj = (LookUpEdit)sender; obj.Properties.DataSource = null; - Index row = (Index)grid.GetFocusedRow(); + Index row = (Index)view.GetFocusedRow(); if (row == null) return; List ops = GetIndexOperations(row); @@ -603,35 +629,19 @@ private List GetIndexOperations(Index ix) { return i; } - private void GridDoubleClick(object sender, EventArgs e) { - GridView obj = (GridView)sender; - Point pt = obj.GridControl.PointToClient(MousePosition); - - GridHitInfo info = obj.CalcHitInfo(pt); - if (info.Column == null || info.Column.Caption == Resources.Fix || info.Column.Caption == Resources.Selection) - return; - - if (info.InRow || info.InRowCell) { - if (obj.IsRowSelected(info.RowHandle)) - obj.UnselectRow(info.RowHandle); - else - obj.SelectRow(info.RowHandle); - } - } - private void GridSelectionChanged(object sender, SelectionChangedEventArgs e) { if (_workerFix != null && _workerFix.IsBusy) return; GridView obj = (GridView)sender; - int[] b = obj.GetSelectedRows(); - foreach (int row in b) { + int[] rows = obj.GetSelectedRows(); + foreach (int row in rows) { Index a = (Index)obj.GetRow(row); a.IsSelected = true; } for (int i = 0; i != obj.RowCount; i++) { - if (b.Contains(i)) continue; + if (rows.Contains(i)) continue; Index a = (Index)obj.GetRow(i); a.IsSelected = false; @@ -673,32 +683,6 @@ private void GridRowCellClick(object sender, RowCellClickEventArgs e) { } } - private void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { - switch (e.Column.FieldName) { - case "PagesCount": - case "PagesCountBefore": - case "UnusedPagesCount": - if (e.Value != null) - e.DisplayText = (Convert.ToDecimal(e.Value) * 8).FormatSize() + " "; - break; - - case "Fragmentation": - case "PageSpaceUsed": - if (e.Value != null) { - e.DisplayText = $"{e.Value:n1} % "; - } - break; - - case "RowsCount": - e.DisplayText = $"{e.Value:n0} "; - break; - - case "FixType": - e.DisplayText = ((IndexOp)e.Value).Description(); - break; - } - } - private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { var col = e.HitInfo.Column; if (col == null) return; @@ -733,7 +717,7 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { private void ChangeFixedColumnStyle(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = grid.Columns[mi.Tag.ToString()]; + GridColumn col = view.Columns[mi.Tag.ToString()]; if (col != null) { col.Fixed = (col.Fixed == FixedStyle.Left) ? FixedStyle.None : FixedStyle.Left; } @@ -741,44 +725,48 @@ private void ChangeFixedColumnStyle(object sender, EventArgs e) { private void CopyCellValue(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = grid.Columns[mi.Tag.ToString()]; - var cellValue = grid.GetFocusedRowCellValue(col); + GridColumn col = view.Columns[mi.Tag.ToString()]; + var cellValue = view.GetFocusedRowCellValue(col); if (cellValue != null) Clipboard.SetText(cellValue.ToString()); } private void FilterCellValue(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; - GridColumn col = grid.Columns[mi.Tag.ToString()]; - var cellValue = grid.GetFocusedRowCellValue(col); - grid.SetRowCellValue(GridControl.AutoFilterRowHandle, col, cellValue); + GridColumn col = view.Columns[mi.Tag.ToString()]; + var cellValue = view.GetFocusedRowCellValue(col); + view.SetRowCellValue(GridControl.AutoFilterRowHandle, col, cellValue); } private void ChangeFixAction(object sender, EventArgs e) { using (ActionBox form = new ActionBox()) { - DialogResult dr = form.ShowDialog(this); - if (dr == DialogResult.OK) { + if (form.ShowDialog(this) == DialogResult.OK) { UpdateFixAction(form.GetFixAction()); } } } private void UpdateFixAction(IndexOp op) { - List indexes = (List)grid.DataSource; + List indexes = (List)view.DataSource; - for (int i = 0; i < grid.DataRowCount; i++) { - if (grid.IsDataRow(i)) { - var rowHandle = grid.GetDataSourceRowIndex(i); + for (int i = 0; i < view.DataRowCount; i++) { + if (view.IsDataRow(i)) { + var rowHandle = view.GetDataSourceRowIndex(i); Index index = indexes[rowHandle]; if (index == null) continue; - List ops = GetIndexOperations(index); - if (ops.Contains(op)) - index.FixType = op; + if (op == IndexOp.REBUILD_NONE && index.DataCompression == DataCompression.NONE) { + index.FixType = IndexOp.REBUILD; + } + else { + List ops = GetIndexOperations(index); + if (ops.Contains(op)) + index.FixType = op; + } } } - grid.RefreshData(); + view.RefreshData(); } private void GridCustomizationMenu(object sender, RibbonCustomizationMenuEventArgs e) { @@ -788,11 +776,11 @@ private void GridCustomizationMenu(object sender, RibbonCustomizationMenuEventAr } private void GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e) { - if (e.Info == null || e.SelectedControl == gridControl1) { - GridHitInfo info = grid.CalcHitInfo(e.ControlMousePosition); + if (e.Info == null || e.SelectedControl == grid) { + GridHitInfo info = view.CalcHitInfo(e.ControlMousePosition); if (info.InRowCell && info.RowHandle != -1 && info.Column != null && info.Column.FieldName == Resources.Progress) { - Index index = (Index)grid.GetRow(info.RowHandle); + Index index = (Index)view.GetRow(info.RowHandle); e.Info = new ToolTipControlInfo($"{info.RowHandle} - {info.Column}", $"{index.GetQuery()}\n{index.Error}"); } } @@ -819,20 +807,14 @@ private void CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { e.Appearance.DrawString(e.Cache, trySearchingAgainText, trySearchingAgainBounds); } - private void GridRowCellStyle(object sender, RowCellStyleEventArgs e) { - if (e.RowHandle == ((GridView) sender).FocusedRowHandle) { - e.Appearance.BackColor = Color.Silver; - } - } - #endregion #region Controls private void HideSystemColumns() { - grid.Columns[Resources.Progress].Visible = false; - grid.Columns[Resources.Duration].Visible = false; - grid.Columns[Resources.PagesCountBefore].Visible = false; + view.Columns[Resources.Progress].Visible = false; + view.Columns[Resources.Duration].Visible = false; + view.Columns[Resources.PagesCountBefore].Visible = false; } private void ButtonLog(object sender, ItemClickEventArgs e) { @@ -905,17 +887,17 @@ private void ButtonAboutClick(object sender, ItemClickEventArgs e) { private readonly List _sortInfo = new List(); private void SaveSortRules() { - foreach (GridColumnSortInfo col in grid.SortInfo) { + foreach (GridColumnSortInfo col in view.SortInfo) { _sortInfo.Add(col); } - grid.ClearSorting(); + view.ClearSorting(); } private void RestoreSortRules() { - if (_sortInfo.Count > 0 && grid.SortInfo.Count == 0) { + if (_sortInfo.Count > 0 && view.SortInfo.Count == 0) { foreach (GridColumnSortInfo sortCol in _sortInfo) { - grid.SortInfo.Add(sortCol); + view.SortInfo.Add(sortCol); } _sortInfo.Clear(); @@ -927,10 +909,7 @@ private void RestoreSortRules() { #region Export private void ExportCsv(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { - Filter = @"CSV Files (*.csv)|*.csv", - RestoreDirectory = true - }; + SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"CSV Files (*.csv)|*.csv" }; if (dialog.ShowDialog() == DialogResult.OK) { CsvExportOptionsEx advOptions = new CsvExportOptionsEx { @@ -939,7 +918,7 @@ private void ExportCsv(object sender, ItemClickEventArgs e) { }; try { - gridControl1.ExportToCsv(dialog.FileName, advOptions); + grid.ExportToCsv(dialog.FileName, advOptions); Output.Current.Add($"Export to CSV: {dialog.FileName}"); } catch (Exception ex) { @@ -950,10 +929,7 @@ private void ExportCsv(object sender, ItemClickEventArgs e) { } private void ExportExcel(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { - Filter = @"Excel Files (*.xlsx)|*.xlsx", - RestoreDirectory = true - }; + SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"Excel Files (*.xlsx)|*.xlsx" }; if (dialog.ShowDialog() == DialogResult.OK) { XlsxExportOptionsEx advOptions = new XlsxExportOptionsEx { @@ -963,7 +939,7 @@ private void ExportExcel(object sender, ItemClickEventArgs e) { }; try { - gridControl1.ExportToXlsx(dialog.FileName, advOptions); + grid.ExportToXlsx(dialog.FileName, advOptions); Output.Current.Add($"Export to Excel: {dialog.FileName}"); } catch (Exception ex) { @@ -974,14 +950,11 @@ private void ExportExcel(object sender, ItemClickEventArgs e) { } private void ExportText(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { - Filter = @"Text Files (*.txt)|*.txt", - RestoreDirectory = true - }; + SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"Text Files (*.txt)|*.txt" }; if (dialog.ShowDialog() == DialogResult.OK) { try { - gridControl1.ExportToText(dialog.FileName); + grid.ExportToText(dialog.FileName); Output.Current.Add($"Export to Text: {dialog.FileName}"); } catch (Exception ex) { @@ -992,14 +965,11 @@ private void ExportText(object sender, ItemClickEventArgs e) { } private void ExportHtml(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { - Filter = @"HTML Files (*.html)|*.html", - RestoreDirectory = true - }; + SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"HTML Files (*.html)|*.html" }; if (dialog.ShowDialog() == DialogResult.OK) { try { - gridControl1.ExportToHtml(dialog.FileName); + grid.ExportToHtml(dialog.FileName); Output.Current.Add($"Export to Html: {dialog.FileName}"); } catch (Exception ex) { diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 3179d4e..730a109 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -211,7 +211,7 @@ 775, 7 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAERhdGFiYXNlO0RCO1NvdXJjZTtT @@ -220,7 +220,7 @@ 5kHCID5IHCQPUjcaBrQIA4ozEwiTkZ3/MwAAShbqQY39CKgAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAodEVYdFRpdGxlAERCO1NvdXJjZTtTdG9yO2RhdGFz @@ -232,7 +232,7 @@ MuN7nttlw5JsWJINywmTE1tx9TxqmfzzAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w @@ -242,7 +242,7 @@ 3HEDh4qiCIx33HEDh5pwxw0cwltzOEdD3nHHDRwyKLaMPv91QvYBcM7IysnHHlAAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w @@ -255,7 +255,7 @@ zZ7aImv9AhptG4ZGY0EXjeRKlmvxekRnA20bhl3CsDtp8AnIuG9GnlXR/AAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 @@ -264,7 +264,7 @@ A5e1B+ZttRqFnuz2wJfsJwdGyLCfpR37LNV02NfAHQAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 @@ -275,7 +275,7 @@ gg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA @@ -284,7 +284,7 @@ LgBalLPLAfMqYYHBumHwAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA @@ -294,6 +294,49 @@ UCDxIt7c6BAOSlzgQkzE3yodwkGJC3h2aubLeDV4SJbE0lXA8yYFno1eQxfwb0SrhwIVR3UKn8arGLPA QpZ3XsZagdBY0+WhQOFdfH/8Z6U34KDEBU7Ek/h7pUM4KGGBKzETb6X0VjhIlsSCCrzqghYwjwf7YsIO xCOaC5h5Bg72BQXGAoP7ggLjKN0PwsUAknFG48cAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAFRhYmxlO1JvdztTZXBlcmF0b3I7 + TmV3O0luc2VydOGaT7wAAAB7SURBVDhPtZLRDYAgDEQZjQXcyTiV29UeoclJxdYYPh6t9XwQtYjIL9xg + O07JgvxMsCfQ+EJBCuTxQFVQnSyD7dgkGPRrEPYsAJUEqBFO0Aa95+AMJ+ATmOS1ZwG/gzQmuH0FrbZT + SBNgYfrNpx9nROMLBSmQd4JvSLkAx9RxtuIB+K4AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAFRhYmxlO1JvdztTZXBlcmF0b3I7 + TmV3O0luc2VydOGaT7wAAAC3SURBVFhH7ZVbDsQgCEVdWjfQPU1mVd0d4zWlsaAxRhh/+DglgIGTpo9E + RFtJ5/caQV7MCHwcCIEQCIEpARdYAMmRkYvNwUIJGmx0tA5UfWCaY748oCTuOqI1ebwWUBI5d6Mn8JK4 + 80fICsxF7AmUJh/MqAGr8I6ewNY70HwG6poFPFMKdN8CWV8FcxFrAbUcVP0iYpljPhe2fglHPMbWzAi0 + /marhEAIhMCUgAtFAJedNIv/g9IPycP7aUNai4gAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAWdEVYdFRpdGxlAFRpbWU7Q2xvY2s7V2F0Y2hviDio + AAAAyklEQVQ4T62TzRGCQAxGaYM+KIES6MCDZchhO6ERmnDGJjjYgDFvJ2EChoPi4TG7yeOb/YFGRE5R + H49LH+mUUZmVxWBMjd7qZgFX5a7IAfRw0gAaT+WlTMqgtAZjavRwakgMYGmkI9yoQSlFwOf0zMHtqHmD + /bHEyWXYBwCOuSNzL3JIFIcoHwSwHdyZuRc5aYptlD0gBuGYuzD/W0C6hQwcczdbSA8xA8fczSGm17iH + njkf1winPqQYQjpLzKBXX4YsAL7/mX5Hmjfh6HbzAvf6qQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAWdEVYdFRpdGxlAFRpbWU7Q2xvY2s7V2F0Y2hviDio + AAAByElEQVRYR8WWsW0DMQxFPYEHSenKTbqMkA3SGJnA6T1EJgjgxgNkEm+RykC6C59BGhQpn9lEVzzA + R/3/xTtJd15N07Qo3eJIusWRdIsjSYXz28scW2EvnISzcFH4TY0xND3vlThfKvRMwrPwKfwI0wPQoMWT + suJ8qdAxvQvcYW+yOfDgbfLifKkQDB/Cr2ChPO6jsBM2wlrhNzXG0JgeLxm3zDhfKjgx3fvJv4XXqI+g + Ua1v4vYkoj4VQISsn3/sX8JT1B0Oh0lp6mjVY36yrnvC6yAVQIRsIjNzN2lyuNcA4FGv5ZCZdKkgIo6R + 7XbW8+5jn2sA8GoGWWRuo6a5ABFxlq3rYxz3PGoAyHB5+zjeXICIeKGYYRfHPcUGOB2Wd4rjzQWIyG++ + TRz3FBvgiFreOY43FyAif47XcdzjGmjwGjJc3sWPQXMBiJxhkQbKS1CBDJdXWoLyJqxAhssrbcLyMaxA + hssrHcPyi+gReDWDrPKLCEqv4jnwqNdyyq9iKH2M7oFWPeavf4wQKct8jk2oLPqHxKB7vxxV8Nzu3Ijz + pUI0KKwfm8hOxxxo0F7XPBLnS4WeyfH/f8tH0y2OpFscSbc4jmn1Bw8VkFVeTnsNAAAAAElFTkSuQmCC diff --git a/Forms/NetworkBox.cs b/Forms/NetworkBox.cs index c14d56c..507e56e 100644 --- a/Forms/NetworkBox.cs +++ b/Forms/NetworkBox.cs @@ -1,10 +1,10 @@ -using DevExpress.XtraEditors; -using System; +using System; using System.Collections.Generic; using System.Data.OleDb; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using DevExpress.XtraEditors; namespace SQLIndexManager { diff --git a/Forms/SettingsBox.cs b/Forms/SettingsBox.cs index 24f4b05..1608216 100644 --- a/Forms/SettingsBox.cs +++ b/Forms/SettingsBox.cs @@ -1,8 +1,8 @@ -using DevExpress.XtraEditors; -using DevExpress.XtraEditors.Repository; -using System; +using System; using System.Collections.Generic; using System.Windows.Forms; +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Repository; namespace SQLIndexManager { diff --git a/Program.cs b/Program.cs index 18045fd..e039e1b 100644 --- a/Program.cs +++ b/Program.cs @@ -1,10 +1,10 @@ -using DevExpress.LookAndFeel; -using DevExpress.Skins; -using System; +using System; using System.Globalization; using System.Text; using System.Threading; using System.Windows.Forms; +using DevExpress.LookAndFeel; +using DevExpress.Skins; namespace SQLIndexManager { diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index b67fb72..ba448ef 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergey Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.56")] -[assembly: AssemblyFileVersion("1.0.0.56")] +[assembly: AssemblyVersion("1.0.0.57")] +[assembly: AssemblyFileVersion("1.0.0.57")] diff --git a/SQLIndexManager.csproj b/SQLIndexManager.csproj index e8b1920..966eb64 100644 --- a/SQLIndexManager.csproj +++ b/SQLIndexManager.csproj @@ -92,6 +92,9 @@ + + Component + Component @@ -139,6 +142,7 @@ + diff --git a/Server/Index.cs b/Server/Index.cs index 6df7fc7..c0aa41b 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -95,7 +95,7 @@ public string GetQuery() { compression = DataCompression.ROW; else if (FixType == IndexOp.REBUILD_NONE) compression = DataCompression.NONE; - else if (Settings.Options.DataCompression != DataCompression.DEFAULT) + else if (Settings.Options.DataCompression != DataCompression.DEFAULT && FixType != IndexOp.REBUILD) compression = Settings.Options.DataCompression; else compression = DataCompression; @@ -120,7 +120,7 @@ public string GetQuery() { sqlHeader = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}\n "; sql = sqlHeader + - $"WITH (" + + "WITH (" + (IndexType == IndexType.HEAP ? "" : $"SORT_IN_TEMPDB = {Settings.Options.SortInTempDb.OnOff()}, ") + diff --git a/Server/ProgressStatus.cs b/Server/ProgressStatus.cs new file mode 100644 index 0000000..ec772d3 --- /dev/null +++ b/Server/ProgressStatus.cs @@ -0,0 +1,27 @@ +using System.Diagnostics; + +namespace SQLIndexManager { + + public class ProgressStatus { + + public int Databases; + public int Errors; + public int Indexes; + public int IndexesTotal; + public long IndexesSize; + public long SavedSpace; + public Stopwatch Duration; + + public ProgressStatus() { + Databases = 0; + Errors = 0; + Indexes = 0; + IndexesTotal = 0; + IndexesSize = 0; + SavedSpace = 0; + Duration = Stopwatch.StartNew(); + } + + } + +} diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 0d0206d..1b95c80 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -1,9 +1,9 @@ -using SQLIndexManager.Properties; -using System; +using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; +using SQLIndexManager.Properties; namespace SQLIndexManager { diff --git a/Settings/Settings.cs b/Settings/Settings.cs index c612a09..2cda45f 100644 --- a/Settings/Settings.cs +++ b/Settings/Settings.cs @@ -1,11 +1,11 @@ -using Microsoft.Win32; -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Xml.Serialization; +using Microsoft.Win32; namespace SQLIndexManager { From 92763a793e59ef16d628c53c8a702ac088047d93 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Tue, 21 Jan 2020 09:11:50 +0200 Subject: [PATCH 14/53] Improvements in database dialog, show drive disk space, bugfix in UI --- Common/GridMethod.cs | 1 + Forms/AboutBox.cs | 4 +- Forms/DatabaseBox.Designer.cs | 97 +++++++++++++++++++++++++------- Forms/DatabaseBox.cs | 41 +++++++++----- Forms/ErrorBox.cs | 2 +- Forms/MainBox.Designer.cs | 48 +++++++++++++++- Forms/MainBox.cs | 46 ++++++--------- Forms/MainBox.resx | 25 ++++---- Properties/AssemblyInfo.cs | 8 +-- Properties/Resources.Designer.cs | 27 +++++++++ Properties/Resources.resx | 9 +++ SQLIndexManager.csproj | 1 + Server/Database.cs | 6 +- Server/DiskInfo.cs | 14 +++++ Server/Index.cs | 2 + Server/Query.cs | 59 ++++++++++--------- Server/QueryEngine.cs | 30 ++++++++-- 17 files changed, 303 insertions(+), 117 deletions(-) create mode 100644 Server/DiskInfo.cs diff --git a/Common/GridMethod.cs b/Common/GridMethod.cs index 3b27197..147a398 100644 --- a/Common/GridMethod.cs +++ b/Common/GridMethod.cs @@ -34,6 +34,7 @@ public static void GridDoubleClick(object sender, EventArgs e) { public static void GridColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e) { switch (e.Column.FieldName) { + case "TotalSize": case "DataSize": case "DataFreeSize": case "LogSize": diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 3eae4db..57d180c 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -24,11 +24,11 @@ public AboutBox() { } private void Copyright_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - RunHyperlink("www.linkedin.com/in/sergeysyrovatchenko"); + RunHyperlink("www.linkedin.com/in/sergiisyrovatchenko"); } private void GitHub_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - RunHyperlink("www.github.com/sergeysyrovatchenko/SQLIndexManager"); + RunHyperlink("www.github.com/sergiisyrovatchenko/SQLIndexManager"); } private void RunHyperlink(string hyperlink) { diff --git a/Forms/DatabaseBox.Designer.cs b/Forms/DatabaseBox.Designer.cs index a93b9f5..b28fb27 100644 --- a/Forms/DatabaseBox.Designer.cs +++ b/Forms/DatabaseBox.Designer.cs @@ -33,6 +33,8 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar3 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule4 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule5 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); this.DataSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.DataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.LogSize = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -55,6 +57,8 @@ private void InitializeComponent() { this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); + this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); + this.TotalSize = new DevExpress.XtraGrid.Columns.GridColumn(); ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); @@ -77,7 +81,7 @@ private void InitializeComponent() { this.DataSize.MinWidth = 110; this.DataSize.Name = "DataSize"; this.DataSize.Visible = true; - this.DataSize.VisibleIndex = 4; + this.DataSize.VisibleIndex = 6; this.DataSize.Width = 110; // // DataFreeSize @@ -88,7 +92,7 @@ private void InitializeComponent() { this.DataFreeSize.MinWidth = 100; this.DataFreeSize.Name = "DataFreeSize"; this.DataFreeSize.Visible = true; - this.DataFreeSize.VisibleIndex = 5; + this.DataFreeSize.VisibleIndex = 7; this.DataFreeSize.Width = 100; // // LogSize @@ -99,7 +103,7 @@ private void InitializeComponent() { this.LogSize.MinWidth = 110; this.LogSize.Name = "LogSize"; this.LogSize.Visible = true; - this.LogSize.VisibleIndex = 6; + this.LogSize.VisibleIndex = 8; this.LogSize.Width = 110; // // LogFreeSize @@ -110,7 +114,7 @@ private void InitializeComponent() { this.LogFreeSize.MinWidth = 100; this.LogFreeSize.Name = "LogFreeSize"; this.LogFreeSize.Visible = true; - this.LogFreeSize.VisibleIndex = 7; + this.LogFreeSize.VisibleIndex = 9; this.LogFreeSize.Width = 100; // // DatabaseName @@ -126,7 +130,7 @@ private void InitializeComponent() { // this.buttonCancel.AllowFocus = false; this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(864, 366); + this.buttonCancel.Location = new System.Drawing.Point(1096, 427); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(76, 22); this.buttonCancel.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; @@ -145,13 +149,13 @@ private void InitializeComponent() { this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; - this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(952, 400); + this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(1184, 461); this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; // // searchControl1 // this.searchControl1.Client = this.grid; - this.searchControl1.Location = new System.Drawing.Point(87, 367); + this.searchControl1.Location = new System.Drawing.Point(87, 428); this.searchControl1.Name = "searchControl1"; this.searchControl1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Repository.ClearButton(), @@ -168,7 +172,7 @@ private void InitializeComponent() { this.grid.MainView = this.view; this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); this.grid.Name = "grid"; - this.grid.Size = new System.Drawing.Size(928, 353); + this.grid.Size = new System.Drawing.Size(1160, 414); this.grid.TabIndex = 0; this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { this.view}); @@ -192,6 +196,8 @@ private void InitializeComponent() { this.DatabaseName, this.RecoveryModel, this.LogReuseWait, + this.CreateDate, + this.TotalSize, this.DataSize, this.DataFreeSize, this.LogSize, @@ -277,10 +283,31 @@ private void InitializeComponent() { formatConditionRuleDataBar4.PredefinedName = null; formatConditionRuleDataBar4.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule4.Rule = formatConditionRuleDataBar4; + gridFormatRule5.Column = this.TotalSize; + gridFormatRule5.ColumnApplyTo = this.TotalSize; + gridFormatRule5.Name = "TotalSize"; + formatConditionRuleDataBar5.AllowNegativeAxis = false; + formatConditionRuleDataBar5.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(121)))), ((int)(((byte)(121))))); + formatConditionRuleDataBar5.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(188)))), ((int)(((byte)(188))))); + formatConditionRuleDataBar5.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(226)))), ((int)(((byte)(121)))), ((int)(((byte)(121))))); + formatConditionRuleDataBar5.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar5.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar5.DrawAxis = false; + formatConditionRuleDataBar5.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar5.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + formatConditionRuleDataBar5.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar5.PredefinedName = null; + formatConditionRuleDataBar5.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule5.Rule = formatConditionRuleDataBar5; this.view.FormatRules.Add(gridFormatRule1); this.view.FormatRules.Add(gridFormatRule2); this.view.FormatRules.Add(gridFormatRule3); this.view.FormatRules.Add(gridFormatRule4); + this.view.FormatRules.Add(gridFormatRule5); this.view.GridControl = this.grid; this.view.Name = "view"; this.view.OptionsBehavior.Editable = false; @@ -311,7 +338,7 @@ private void InitializeComponent() { this.view.OptionsView.ShowIndicator = false; this.view.RowHeight = 24; this.view.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { - new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.DataSize, DevExpress.Data.ColumnSortOrder.Descending)}); + new DevExpress.XtraGrid.Columns.GridColumnSortInfo(this.TotalSize, DevExpress.Data.ColumnSortOrder.Descending)}); this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); // // RecoveryModel @@ -339,7 +366,7 @@ private void InitializeComponent() { // buttonRefresh // this.buttonRefresh.AllowFocus = false; - this.buttonRefresh.Location = new System.Drawing.Point(12, 366); + this.buttonRefresh.Location = new System.Drawing.Point(12, 427); this.buttonRefresh.Name = "buttonRefresh"; this.buttonRefresh.Size = new System.Drawing.Size(71, 22); this.buttonRefresh.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; @@ -352,7 +379,7 @@ private void InitializeComponent() { this.buttonOK.AllowFocus = false; this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOK.Enabled = false; - this.buttonOK.Location = new System.Drawing.Point(784, 366); + this.buttonOK.Location = new System.Drawing.Point(1016, 427); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(76, 22); this.buttonOK.StyleController = this.DatabaseBoxlayoutControl1ConvertedLayout; @@ -372,13 +399,13 @@ private void InitializeComponent() { this.emptySpaceItem1}); this.layoutControl.Name = "Root"; this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); - this.layoutControl.Size = new System.Drawing.Size(952, 400); + this.layoutControl.Size = new System.Drawing.Size(1184, 461); this.layoutControl.TextVisible = false; // // searchControl1item // this.searchControl1item.Control = this.searchControl1; - this.searchControl1item.Location = new System.Drawing.Point(75, 359); + this.searchControl1item.Location = new System.Drawing.Point(75, 420); this.searchControl1item.MaxSize = new System.Drawing.Size(223, 26); this.searchControl1item.MinSize = new System.Drawing.Size(223, 26); this.searchControl1item.Name = "searchControl1item"; @@ -394,14 +421,14 @@ private void InitializeComponent() { this.griditem.Location = new System.Drawing.Point(0, 0); this.griditem.Name = "griditem"; this.griditem.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 4); - this.griditem.Size = new System.Drawing.Size(932, 359); + this.griditem.Size = new System.Drawing.Size(1164, 420); this.griditem.TextSize = new System.Drawing.Size(0, 0); this.griditem.TextVisible = false; // // buttonRefreshitem // this.buttonRefreshitem.Control = this.buttonRefresh; - this.buttonRefreshitem.Location = new System.Drawing.Point(0, 359); + this.buttonRefreshitem.Location = new System.Drawing.Point(0, 420); this.buttonRefreshitem.MaxSize = new System.Drawing.Size(75, 26); this.buttonRefreshitem.MinSize = new System.Drawing.Size(75, 26); this.buttonRefreshitem.Name = "buttonRefreshitem"; @@ -413,7 +440,7 @@ private void InitializeComponent() { // buttonOKitem // this.buttonOKitem.Control = this.buttonOK; - this.buttonOKitem.Location = new System.Drawing.Point(772, 359); + this.buttonOKitem.Location = new System.Drawing.Point(1004, 420); this.buttonOKitem.MaxSize = new System.Drawing.Size(80, 26); this.buttonOKitem.MinSize = new System.Drawing.Size(80, 26); this.buttonOKitem.Name = "buttonOKitem"; @@ -425,7 +452,7 @@ private void InitializeComponent() { // buttonCancelitem // this.buttonCancelitem.Control = this.buttonCancel; - this.buttonCancelitem.Location = new System.Drawing.Point(852, 359); + this.buttonCancelitem.Location = new System.Drawing.Point(1084, 420); this.buttonCancelitem.MaxSize = new System.Drawing.Size(80, 26); this.buttonCancelitem.MinSize = new System.Drawing.Size(80, 26); this.buttonCancelitem.Name = "buttonCancelitem"; @@ -437,19 +464,45 @@ private void InitializeComponent() { // emptySpaceItem1 // this.emptySpaceItem1.AllowHotTrack = false; - this.emptySpaceItem1.Location = new System.Drawing.Point(298, 359); + this.emptySpaceItem1.Location = new System.Drawing.Point(298, 420); this.emptySpaceItem1.Name = "emptySpaceItem1"; - this.emptySpaceItem1.Size = new System.Drawing.Size(474, 26); + this.emptySpaceItem1.Size = new System.Drawing.Size(706, 26); this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); // + // CreateDate + // + this.CreateDate.AppearanceCell.Options.UseTextOptions = true; + this.CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.CreateDate.Caption = "Create Date"; + this.CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.CreateDate.FieldName = "CreateDate"; + this.CreateDate.MaxWidth = 105; + this.CreateDate.MinWidth = 105; + this.CreateDate.Name = "CreateDate"; + this.CreateDate.Visible = true; + this.CreateDate.VisibleIndex = 4; + this.CreateDate.Width = 105; + // + // TotalSize + // + this.TotalSize.Caption = "Total Size"; + this.TotalSize.FieldName = "TotalSize"; + this.TotalSize.MaxWidth = 110; + this.TotalSize.MinWidth = 110; + this.TotalSize.Name = "TotalSize"; + this.TotalSize.Visible = true; + this.TotalSize.VisibleIndex = 5; + this.TotalSize.Width = 110; + // // DatabaseBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(952, 400); + this.ClientSize = new System.Drawing.Size(1184, 461); this.Controls.Add(this.DatabaseBoxlayoutControl1ConvertedLayout); this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(868, 432); + this.MinimumSize = new System.Drawing.Size(1100, 500); this.Name = "DatabaseBox"; this.ShowIcon = false; this.ShowInTaskbar = false; @@ -496,5 +549,7 @@ private void InitializeComponent() { private DevExpress.XtraLayout.LayoutControlItem buttonCancelitem; private DevExpress.XtraLayout.Converter.LayoutConverter layoutConverter1; private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraGrid.Columns.GridColumn CreateDate; + private DevExpress.XtraGrid.Columns.GridColumn TotalSize; } } \ No newline at end of file diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index fd9f24e..7d40c83 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -8,6 +8,7 @@ using DevExpress.XtraEditors; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Views.Grid; +using SQLIndexManager.Properties; namespace SQLIndexManager { @@ -15,22 +16,23 @@ public partial class DatabaseBox : XtraForm { public DatabaseBox() { InitializeComponent(); + Text = Resources.DatabaseBoxTitle; view.CustomColumnDisplayText += GridMethod.GridColumnDisplayText; view.RowCellStyle += GridMethod.GridRowCellStyle; view.DoubleClick += GridMethod.GridDoubleClick; - if (Settings.ServerInfo.IsAzure || !Settings.ServerInfo.IsSysAdmin) { - DataSize.Visible = LogSize.Visible = false; + if (Settings.ServerInfo.IsAzure) { + TotalSize.Visible = DataSize.Visible = LogSize.Visible = DataFreeSize.Visible = LogFreeSize.Visible = false; view.SortInfo.Clear(); view.SortInfo.Add(new GridColumnSortInfo(DatabaseName, ColumnSortOrder.Ascending)); } - RefreshDatabases(false); + RefreshDatabases(); } private void ButtonRefreshClick(object sender, EventArgs e) { - RefreshDatabases(true); + RefreshDatabases(); } public List GetDatabases() { @@ -45,22 +47,33 @@ public List GetDatabases() { return dbs; } - private void RefreshDatabases(bool scanUsedSpace) { - grid.DataSource = null; - buttonOK.Enabled = false; - - DataSize.Visible = LogSize.Visible = !Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin; - DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin && scanUsedSpace; - + private void RefreshDatabases() { Stopwatch ts = Stopwatch.StartNew(); Output.Current.Add("Refresh databases"); + grid.DataSource = null; + buttonOK.Enabled = false; + TotalSize.Visible = DataSize.Visible = LogSize.Visible = DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure; + using (SqlConnection connection = Connection.Create(Settings.ActiveHost)) { try { connection.Open(); - List dbs = QueryEngine.GetDatabases(connection, scanUsedSpace); - var max = dbs.Max(_ => Math.Max(_.DataSize, _.LogSize)); + if (!Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin) { + Output.Current.Add("Get disk info"); + try { + List di = QueryEngine.GetDiskInfo(connection); + if (di.Count > 0) { + Text = $"{Resources.DatabaseBoxTitle} {string.Join(" | ", di.Select(_ => _.ToString()))}"; + } + } + catch (Exception ex) { + Output.Current.Add("Refresh disk info failed", ex.Message); + } + } + + List dbs = QueryEngine.GetDatabases(connection); + var max = dbs.Max(_ => _.TotalSize); foreach (var rule in view.FormatRules) { ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; } @@ -72,7 +85,7 @@ private void RefreshDatabases(bool scanUsedSpace) { view.SelectRow(index); } - Output.Current.Add($"Refreshed {dbs.Count} databases", null, ts.ElapsedMilliseconds); + Output.Current.Add($"Found {dbs.Count} databases", null, ts.ElapsedMilliseconds); } catch (Exception ex) { Output.Current.Add("Refresh databases failed", ex.Message, ts.ElapsedMilliseconds); diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index e227658..653cac2 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -12,7 +12,7 @@ public ErrorBox(Exception ex) { edError.Text = "Application has encountered an unexpected error" + - "\r\nPlease send error detail to https://github.com/sergeysyrovatchenko/SQLIndexManager/issues" + + "\r\nPlease send error detail to https://github.com/sergiisyrovatchenko/SQLIndexManager/issues" + $"\r\nBuild: {AssemblyVersion}" + $"\r\nOS: {Environment.OSVersion}" + $"\r\n\r\n{ex.Message}" + diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 6164ab6..3496e12 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -72,6 +72,8 @@ private void InitializeComponent() { this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); + this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); + this.ModifyDate = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); this.labelDatabases = new DevExpress.XtraBars.BarStaticItem(); @@ -778,7 +780,9 @@ private void InitializeComponent() { IndexColumns, IncludedColumns, this.Warning, - this.Error}); + this.Error, + this.CreateDate, + this.ModifyDate}); this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; gridFormatRule1.Column = this.Warning; gridFormatRule1.ColumnApplyTo = IndexName; @@ -1045,6 +1049,40 @@ private void InitializeComponent() { this.Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; this.Error.Width = 120; // + // CreateDate + // + this.CreateDate.AppearanceCell.Options.UseTextOptions = true; + this.CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.CreateDate.Caption = "Create Date"; + this.CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.CreateDate.FieldName = "CreateDate"; + this.CreateDate.MaxWidth = 105; + this.CreateDate.MinWidth = 105; + this.CreateDate.Name = "CreateDate"; + this.CreateDate.OptionsColumn.AllowEdit = false; + this.CreateDate.OptionsColumn.AllowFocus = false; + this.CreateDate.OptionsColumn.AllowSize = false; + this.CreateDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + this.CreateDate.Width = 105; + // + // ModifyDate + // + this.ModifyDate.AppearanceCell.Options.UseTextOptions = true; + this.ModifyDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.ModifyDate.Caption = "Modify Date"; + this.ModifyDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.ModifyDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.ModifyDate.FieldName = "ModifyDate"; + this.ModifyDate.MaxWidth = 105; + this.ModifyDate.MinWidth = 105; + this.ModifyDate.Name = "ModifyDate"; + this.ModifyDate.OptionsColumn.AllowEdit = false; + this.ModifyDate.OptionsColumn.AllowFocus = false; + this.ModifyDate.OptionsColumn.AllowSize = false; + this.ModifyDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + this.ModifyDate.Width = 105; + // // gridToolTipController // this.gridToolTipController.GetActiveObjectInfo += new DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventHandler(this.GetActiveObjectInfo); @@ -1259,7 +1297,7 @@ private void InitializeComponent() { // // buttonCopyFix // - this.buttonCopyFix.Caption = "Copy Script"; + this.buttonCopyFix.Caption = "Copy Fix Script"; this.buttonCopyFix.Id = 7; this.buttonCopyFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonCopyFix.ImageOptions.Image"))); this.buttonCopyFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonCopyFix.ImageOptions.LargeImage"))); @@ -1268,7 +1306,7 @@ private void InitializeComponent() { // // buttonSaveFix // - this.buttonSaveFix.Caption = "Save Script"; + this.buttonSaveFix.Caption = "Save Fix Script"; this.buttonSaveFix.Id = 23; this.buttonSaveFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonSaveFix.ImageOptions.Image"))); this.buttonSaveFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonSaveFix.ImageOptions.LargeImage"))); @@ -1426,6 +1464,8 @@ private void InitializeComponent() { this.imageCollection.Images.SetKeyName(6, "showworktimeonly_16x16.png"); this.imageCollection.InsertGalleryImage("replace_16x16.png", "office2013/format/replace_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/format/replace_16x16.png"), 7); this.imageCollection.Images.SetKeyName(7, "replace_16x16.png"); + this.imageCollection.InsertGalleryImage("article_16x16.png", "office2013/support/article_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/support/article_16x16.png"), 8); + this.imageCollection.Images.SetKeyName(8, "article_16x16.png"); // // buttonFind // @@ -1625,5 +1665,7 @@ private void InitializeComponent() { private BarStaticItem labelIndexesSize; private BarStaticItem labelElapsedTime; private BarStaticItem labelServerInfo; + private DevExpress.XtraGrid.Columns.GridColumn CreateDate; + private DevExpress.XtraGrid.Columns.GridColumn ModifyDate; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index f339827..30cde5b 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -3,7 +3,6 @@ using System.ComponentModel; using System.Data.SqlClient; using System.Diagnostics; -using System.Drawing; using System.IO; using System.Linq; using System.Text; @@ -19,7 +18,6 @@ using DevExpress.XtraGrid; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Localization; -using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid.ViewInfo; using DevExpress.XtraPrinting; @@ -244,16 +242,14 @@ private void ScanIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { _ps.SavedSpace = indexes.Sum(_ => _.UnusedPagesCount); UpdateProgressStats(); - Output.Current.Add($"Processed: {_indexes.Count}. Fragmented: {_ps.Indexes}"); + Output.Current.Add($"Processed: {_indexes.Count}. Fragmented: {_ps.Indexes}{(_ps.Indexes == 0 ? ". No indexes found. Try searching again or change settings..." : string.Empty)}"); - view.CustomDrawEmptyForeground += CustomDrawEmptyForeground; grid.DataSource = indexes; } private void RefreshIndexes() { if (_workerFix != null && _workerFix.IsBusy) return; - view.CustomDrawEmptyForeground -= CustomDrawEmptyForeground; grid.DataSource = null; RestoreSortRules(); @@ -330,8 +326,8 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { List fixIndex = selIndex.Where(x => Settings.ActiveHost.Databases.Any(y => y == x.DatabaseName) && x.FixType != IndexOp.SKIP) - .OrderByDescending(_ => Math.Ceiling(Math.Truncate(_.Fragmentation ?? 0) / 20) * 20) - .ThenByDescending(_ => _.PagesCount).ToList(); + .OrderBy(_ => _.Fragmentation < Settings.Options.FirstThreshold ? 3 : (_.Fragmentation < Settings.Options.SecondThreshold ? 2 : 1 )) + .ThenByDescending(_ => (_.Fragmentation + 0.1) * _.PagesCount).ToList(); _ps = new ProgressStatus { @@ -507,6 +503,12 @@ private void ShowConnectionBox() { Output.Current.Add($"Host: {host.Server}"); Output.Current.Add($"Server: {host.ServerInfo}"); + if (isConnectionChanged) { + grid.DataSource = null; + _ps = new ProgressStatus { Databases = host.Databases.Count }; + UpdateProgressStats(); + } + ShowDatabaseBox(isConnectionChanged); } } @@ -710,6 +712,7 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { return; e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, imageCollection.Images[7])); + e.Menu.Items.Add(new DXMenuItem("Copy Fix Script", CopyFixScript, imageCollection.Images[8])); e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = col.FieldName }); e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = col.FieldName }); } @@ -723,6 +726,14 @@ private void ChangeFixedColumnStyle(object sender, EventArgs e) { } } + private void CopyFixScript(object sender, EventArgs e) { + Index row = (Index)view.GetFocusedRow(); + if (row == null) return; + + string query = $"USE {row.DatabaseName.ToQuota()}\nGO\n{row.GetQuery()}\nGO\n"; + Clipboard.SetText(query); + } + private void CopyCellValue(object sender, EventArgs e) { DXMenuItem mi = (DXMenuItem)sender; GridColumn col = view.Columns[mi.Tag.ToString()]; @@ -786,27 +797,6 @@ private void GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObject } } - private void CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { - string noIndexesFoundText = "No indexes found"; - string trySearchingAgainText = "Try searching again or change settings"; - int offset = 15; - - e.DefaultDraw(); - e.Appearance.Options.UseFont = true; - e.Appearance.Font = new Font("Tahoma", 12); - Size size = e.Appearance.CalcTextSize(e.Cache, noIndexesFoundText, e.Bounds.Width).ToSize(); - int x = (e.Bounds.Width - size.Width) / 2; - int y = e.Bounds.Y + offset; - Rectangle noIndexesFoundBounds = new Rectangle(new Point(x, y), size); - e.Appearance.DrawString(e.Cache, noIndexesFoundText, noIndexesFoundBounds); - size = e.Appearance.CalcTextSize(e.Cache, trySearchingAgainText, e.Bounds.Width).ToSize(); - x = noIndexesFoundBounds.X - (size.Width - noIndexesFoundBounds.Width) / 2; - y = noIndexesFoundBounds.Bottom + offset; - size.Width += offset; - Rectangle trySearchingAgainBounds = new Rectangle(new Point(x, y), size); - e.Appearance.DrawString(e.Cache, trySearchingAgainText, trySearchingAgainBounds); - } - #endregion #region Controls diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 730a109..15ee787 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -457,22 +457,23 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh - bmRhcmQ7Q2xvbmVtDt9bAAAAb0lEQVQ4T+2OwQ2AIBAE6ckW700HlOaXIny4cgbIokE5w9NNJhC4HXAA - GkQEHfa8LjzflBUd6kXvvPcrS8yClI0ltfREjFGLt3PtDr0aQqiSEpNAc5WYBExJ3r8LOL9gkoBJ+fSD - s1OYJxiFywDcAUEvVDi/LQTFAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAHXRFWHRUaXRsZQBBcnRpY2xl + O0xvYWQ7T3BlbjtJc3N1ZcIGz9UAAACCSURBVDhPpZEBDoAgCEW9IJfpCM1DdYDO0w0YgRvMJYra394y + gqezRES/sEXOmRbwBaMgYnk2An4BKagAzquLxBOUggqihAJvZ0USCqKEAm9nRVL1T59AL7mBv7kCYKzp + uQ9gqAN8BdI8GmioBcvDjJ1ga5gpd7A9LNj/3MUtzkPpBdri4tyK2X7xAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAENvcHk7QmFycztSaWJib247U3Rh - bmRhcmQ7Q2xvbmVtDt9bAAAA50lEQVRYR+2TwQqDMAyGfT6fq1dRevfJxFNhD7EdsvysgukSp1vtBusH - P5K0id9BGyL6atRmyajNNM45OpjAaTmYfcp6tyis8BA/9oP7XdfdxnFsuUx3iVoUVt4RmOdZlSgmADSJ - ogIgldgUwOCReO9pmiYeleBsTZS4QoLPxDtFkQ6+Avf7vqcQQuw80PYsEnwmvomPBbA4lUB/Ixe+kk8A - aBIWcSavANgrcZoA2CNxqgBYJLS/A2QXsDIMQ7wlwRmTR2ALa1cVqAJVoAr8l4AVpowAI/ZrEUUV+AmB - nFnvtqI2y4WaO7s+m1CnlB8XAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAHXRFWHRUaXRsZQBBcnRpY2xl + O0xvYWQ7T3BlbjtJc3N1ZcIGz9UAAAERSURBVFhH3ZJBDsJACEW94FzGjXvTC7nzAK49ilcY+QaSofnY + dsbSRJKXAimfT9NTrfVQaDMT2syENjOhTTBNU/0RVN+gTYDh0fgvA+V6X0Ubmw3Iy8WG8BwN05I0xBU6 + QA2waxltmJakIa7QAWqgJ0xL0hBX6AA1wK5ltGFakoa4QgeogZ4wLUlDXKED1AC7ltGGaUka4godoAZ6 + wrQkDXGFDlAD7FpGG6YlaYgrdIAaWIgiOC2wtBy4otMAloP6epy3UtYaoBcqvcs/OLHAQJEXARUYZPEL + 7Lpc+PoP7L4cRAbK83bZfTlgBlIuN+YGUpcDZ0AaqcvB3AAbHiVcDpyBI6DNTGgzE9rMhDbzqKc3VHwj + GYOSKwkAAAAASUVORK5CYII= diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index ba448ef..28a78b1 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -2,10 +2,10 @@ [assembly: AssemblyTitle("SQL Index Manager")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Sergey Syrovatchenko")] +[assembly: AssemblyCompany("Sergii Syrovatchenko")] [assembly: AssemblyProduct("Free GUI Tool for Index Maintenance on SQL Server and Azure")] -[assembly: AssemblyCopyright("Sergey Syrovatchenko")] +[assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.57")] -[assembly: AssemblyFileVersion("1.0.0.57")] +[assembly: AssemblyVersion("1.0.0.58")] +[assembly: AssemblyFileVersion("1.0.0.58")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index f78413e..a72e5b9 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -60,6 +60,24 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to CreateDate. + /// + internal static string CreateDate { + get { + return ResourceManager.GetString("CreateDate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Databases. + /// + internal static string DatabaseBoxTitle { + get { + return ResourceManager.GetString("DatabaseBoxTitle", resourceCulture); + } + } + /// /// Looks up a localized string similar to DatabaseName. /// @@ -396,6 +414,15 @@ internal static string MinVersionMessage { } } + /// + /// Looks up a localized string similar to ModifyDate. + /// + internal static string ModifyDate { + get { + return ResourceManager.GetString("ModifyDate", resourceCulture); + } + } + /// /// Looks up a localized string similar to ObjectID. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 81ca8a6..bb76ce8 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -289,4 +289,13 @@ Selection + + CreateDate + + + ModifyDate + + + Select Databases + \ No newline at end of file diff --git a/SQLIndexManager.csproj b/SQLIndexManager.csproj index 966eb64..8d865ac 100644 --- a/SQLIndexManager.csproj +++ b/SQLIndexManager.csproj @@ -141,6 +141,7 @@ + diff --git a/Server/Database.cs b/Server/Database.cs index b84a35e..10e3e1b 100644 --- a/Server/Database.cs +++ b/Server/Database.cs @@ -1,10 +1,14 @@ -namespace SQLIndexManager { +using System; + +namespace SQLIndexManager { public class Database { public string DatabaseName { get; set; } public string RecoveryModel { get; set; } public string LogReuseWait { get; set; } + public DateTime CreateDate { get; set; } + public long TotalSize { get; set; } public long DataSize { get; set; } public long DataFreeSize { get; set; } public long LogSize { get; set; } diff --git a/Server/DiskInfo.cs b/Server/DiskInfo.cs new file mode 100644 index 0000000..bbfa652 --- /dev/null +++ b/Server/DiskInfo.cs @@ -0,0 +1,14 @@ +namespace SQLIndexManager { + + public class DiskInfo { + + public string Drive; + public int FreeSpace; + + public override string ToString() { + return $"{Drive}: {(((double)FreeSpace) / 1024).ToString("N2")}"; + } + + } + +} diff --git a/Server/Index.cs b/Server/Index.cs index c0aa41b..392bb67 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -27,6 +27,8 @@ public class Index { public long? TotalSeeks { get; set; } public long? TotalLookups { get; set; } + public DateTime CreateDate { get; set; } + public DateTime ModifyDate { get; set; } public DateTime? LastUsage { get; set; } public DataCompression DataCompression { get; set; } public int FillFactor { get; set; } diff --git a/Server/Query.cs b/Server/Query.cs index 55cfb09..1b86317 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -270,6 +270,8 @@ SELECT i.ObjectID , IsSparse = CAST(CASE WHEN p.ObjectID IS NULL THEN 0 ELSE 1 END AS BIT) , IsPartitioned = CAST(CASE WHEN dds.[data_space_id] IS NOT NULL THEN 1 ELSE 0 END AS BIT) , FileGroupName = fg.[name] + , CreateDate = o.create_date + , ModifyDate = o.modify_date , i.IsUnique , i.IsPK , i.FillFactorValue @@ -561,6 +563,7 @@ DatabaseID INT , RecoveryModel NVARCHAR(500) , LogReuseWait NVARCHAR(500) , HasDBAccess BIT + , CreateDate DATETIME ) INSERT INTO #Databases @@ -569,43 +572,23 @@ INSERT INTO #Databases , RecoveryModel = [recovery_model_desc] , LogReuseWait = [log_reuse_wait_desc] , HasDBAccess = ISNULL(HAS_DBACCESS([name]), 1) + , CreateDate = [create_date] FROM sys.databases WITH(NOLOCK) WHERE [state] = 0 AND [user_access] = 0 - AND [database_id] != 2 IF OBJECT_ID('tempdb.dbo.#UsedSpace') IS NOT NULL DROP TABLE #UsedSpace CREATE TABLE #UsedSpace ( DatabaseID INT + , DataSize BIGINT + , LogSize BIGINT , DataUsedSize BIGINT , LogUsedSize BIGINT -){0} - -SELECT t.DatabaseName - , d.DataSize - , u.DataUsedSize - , d.LogSize - , u.LogUsedSize - , t.RecoveryModel - , t.LogReuseWait -FROM #Databases t -LEFT JOIN #UsedSpace u ON u.DatabaseID = t.DatabaseID -LEFT JOIN ( - SELECT DatabaseID = [database_id] - , DataSize = SUM(CASE WHEN [type] = 0 THEN CAST([size] AS BIGINT) END) - , LogSize = SUM(CASE WHEN [type] = 1 THEN CAST([size] AS BIGINT) END) - FROM sys.master_files WITH(NOLOCK) - WHERE [state] = 0 - GROUP BY [database_id] -) d ON d.DatabaseID = t.DatabaseID -WHERE t.HasDBAccess = 1 -"; - - public const string DatabaseUsedSpace = @" +) -DECLARE @SQL NVARCHAR(MAX) +DECLARE @SQL NVARCHAR(MAX) SET @SQL = ( SELECT ' USE [' + REPLACE(REPLACE(DatabaseName, ']', ']]'), '[', '[[') + '] @@ -613,8 +596,12 @@ INSERT INTO #UsedSpace SELECT DB_ID() , SUM(CASE WHEN [type] = 0 THEN [size] END) , SUM(CASE WHEN [type] = 1 THEN [size] END) + , SUM(CASE WHEN [type] = 0 THEN [usedsize] END) + , SUM(CASE WHEN [type] = 1 THEN [usedsize] END) FROM ( - SELECT [type], [size] = SUM(CAST(FILEPROPERTY([name], ''SpaceUsed'') AS BIGINT)) + SELECT [type] + , [size] = SUM(CAST([size] AS BIGINT)) + , [usedsize] = SUM(CAST(FILEPROPERTY([name], ''SpaceUsed'') AS BIGINT)) FROM sys.database_files WITH(NOLOCK) WHERE [state] = 0 GROUP BY [type] @@ -623,7 +610,20 @@ GROUP BY [type] WHERE HasDBAccess = 1 FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)') -EXEC sys.sp_executesql @SQL"; +EXEC sys.sp_executesql @SQL + +SELECT t.DatabaseName + , u.DataSize + , u.DataUsedSize + , u.LogSize + , u.LogUsedSize + , t.RecoveryModel + , t.LogReuseWait + , t.CreateDate +FROM #Databases t +LEFT JOIN #UsedSpace u ON u.DatabaseID = t.DatabaseID +WHERE t.HasDBAccess = 1 +"; public const string DatabaseListAzure = @" SELECT DatabaseName = [name] @@ -633,6 +633,7 @@ FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)') , LogUsedSize = CAST(NULL AS BIGINT) , RecoveryModel = [recovery_model_desc] , LogReuseWait = [log_reuse_wait_desc] + , CreateDate = [create_date] FROM sys.databases WITH(NOLOCK) WHERE [state] = 0 AND ISNULL(HAS_DBACCESS([name]), 1) = 1 @@ -713,6 +714,10 @@ FROM sys.dm_exec_sessions FOR XML PATH(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)') EXEC sys.sp_executesql @SQL +"; + + public const string DiskInfo = @" +EXEC sys.xp_fixeddrives "; } diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 1b95c80..f7a23d8 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -9,10 +9,8 @@ namespace SQLIndexManager { public static class QueryEngine { - public static List GetDatabases(SqlConnection connection, bool scanUsedSpace) { - string query = !Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin - ? string.Format(Query.DatabaseList, scanUsedSpace ? Query.DatabaseUsedSpace : string.Empty) - : Query.DatabaseListAzure; + public static List GetDatabases(SqlConnection connection) { + string query = !Settings.ServerInfo.IsAzure ? Query.DatabaseList : Query.DatabaseListAzure; SqlCommand cmd = new SqlCommand(query, connection) { CommandTimeout = Settings.Options.CommandTimeout }; @@ -30,6 +28,8 @@ public static List GetDatabases(SqlConnection connection, bool scanUse DatabaseName = _.Field(Resources.DatabaseName), RecoveryModel = _.Field(Resources.RecoveryModel), LogReuseWait = _.Field(Resources.LogReuseWait), + CreateDate = _.Field(Resources.CreateDate), + TotalSize = dataSize + logSize, DataSize = dataSize, DataFreeSize = dataSize - (_.Field(Resources.DataUsedSize) ?? 0), LogSize = logSize, @@ -41,6 +41,26 @@ public static List GetDatabases(SqlConnection connection, bool scanUse return dbs; } + public static List GetDiskInfo(SqlConnection connection) { + SqlCommand cmd = new SqlCommand(Query.DiskInfo, connection) { CommandTimeout = Settings.Options.CommandTimeout }; + + SqlDataAdapter adapter = new SqlDataAdapter(cmd); + DataSet data = new DataSet(); + adapter.Fill(data); + + List di = new List(); + foreach (DataRow _ in data.Tables[0].Rows) { + di.Add( + new DiskInfo { + Drive = _.Field(0), + FreeSpace = _.Field(1) + } + ); + } + + return di; + } + public static ServerInfo GetServerInfo(SqlConnection connection) { DataSet data = new DataSet(); @@ -186,6 +206,8 @@ public static List GetIndexes(SqlConnection connection) { TotalScans = _.Field(Resources.TotalScans), TotalLookups = _.Field(Resources.TotalLookups), LastUsage = _.Field(Resources.LastUsage), + CreateDate = _.Field(Resources.CreateDate), + ModifyDate = _.Field(Resources.ModifyDate), DataCompression = (DataCompression)_.Field(Resources.DataCompression), Fragmentation = _.Field(Resources.Fragmentation), PageSpaceUsed = _.Field(Resources.PageSpaceUsed), From 8017a9a062059341bb7f88bf97e156ebdca14522 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 2 Feb 2020 20:08:44 +0200 Subject: [PATCH 15/53] Bugfix in script generation and early query cancelation --- Common/Output.cs | 2 +- Forms/ErrorBox.cs | 12 ++++++------ Forms/MainBox.cs | 14 ++++++++++---- Server/Index.cs | 16 ++++++++-------- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Common/Output.cs b/Common/Output.cs index 64e0eb9..cb31b62 100644 --- a/Common/Output.cs +++ b/Common/Output.cs @@ -60,7 +60,7 @@ public void Add(string message, string message2 = null, long? elapsedMillisecond OutputEvent ev = new OutputEvent { DateTime = now, - Message = string.IsNullOrEmpty(message2) ? message : $"{message}\n{message2}", + Message = string.IsNullOrEmpty(message2) ? message : $"{message}{Environment.NewLine}{message2}", Duration = duration }; diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 653cac2..000df84 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -12,12 +12,12 @@ public ErrorBox(Exception ex) { edError.Text = "Application has encountered an unexpected error" + - "\r\nPlease send error detail to https://github.com/sergiisyrovatchenko/SQLIndexManager/issues" + - $"\r\nBuild: {AssemblyVersion}" + - $"\r\nOS: {Environment.OSVersion}" + - $"\r\n\r\n{ex.Message}" + - $"\r\n{ex.Source}" + - $"\r\n{ex.StackTrace}"; + $"{Environment.NewLine}Please send error detail to https://github.com/sergiisyrovatchenko/SQLIndexManager/issues" + + $"{Environment.NewLine}Build: {AssemblyVersion}" + + $"{Environment.NewLine}OS: {Environment.OSVersion}" + + $"{Environment.NewLine}{Environment.NewLine}{ex.Message}" + + $"{Environment.NewLine}{ex.Source}" + + $"{Environment.NewLine}{ex.StackTrace}"; } private static string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString(); diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 30cde5b..c9f356d 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -137,7 +137,13 @@ private void ScanIndexes(object sender, DoWorkEventArgs e) { } catch (SqlException ex) { _ps.Errors++; - if (!ex.Message.Contains("timeout") && !ex.Message.Contains("kill")) { + + if (ex.Message.Contains("kill")) { + Output.Current.Add($"Cancel: {ex.Source}", ex.Message); + return; + } + + if (!ex.Message.Contains("timeout")) { Output.Current.Add($"Error: {ex.Source}", ex.Message); XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); return; @@ -532,13 +538,13 @@ private string GetFixChanges() { var groupList = fix.GroupBy(u => u.DatabaseName).Select(grp => grp.ToList()).ToList(); foreach (var group in groupList) { - sb.AppendLine($"USE {group[0].DatabaseName.ToQuota()}\nGO\n"); + sb.AppendLine($"USE {group[0].DatabaseName.ToQuota()}{Environment.NewLine}GO{Environment.NewLine}"); foreach (Index i in group.OrderBy(_ => _.SchemaName) .ThenBy(_ => _.ObjectName) .ThenBy(_ => _.IndexName) .ThenBy(_ => _.PartitionNumber)) { - sb.AppendLine($"RAISERROR(N'{i}', 0, 1) WITH NOWAIT\n{i.GetQuery()}\nGO\n"); + sb.AppendLine($"RAISERROR(N'{i}', 0, 1) WITH NOWAIT{Environment.NewLine}{i.GetQuery()}{Environment.NewLine}GO{Environment.NewLine}"); } } @@ -730,7 +736,7 @@ private void CopyFixScript(object sender, EventArgs e) { Index row = (Index)view.GetFocusedRow(); if (row == null) return; - string query = $"USE {row.DatabaseName.ToQuota()}\nGO\n{row.GetQuery()}\nGO\n"; + string query = $"USE {row.DatabaseName.ToQuota()}{Environment.NewLine}GO{Environment.NewLine}{row.GetQuery()}{Environment.NewLine}GO{Environment.NewLine}"; Clipboard.SetText(query); } diff --git a/Server/Index.cs b/Server/Index.cs index 392bb67..b4f823c 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -68,14 +68,14 @@ public string GetQuery() { case IndexOp.REBUILD_COLUMNSTORE: case IndexOp.REBUILD_COLUMNSTORE_ARCHIVE: DataCompression compression = (FixType == IndexOp.REBUILD_COLUMNSTORE) ? DataCompression.COLUMNSTORE : DataCompression.COLUMNSTORE_ARCHIVE; - sql = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}\n " + + sql = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}{Environment.NewLine} " + $"WITH (DATA_COMPRESSION = {(FixType == IndexOp.REBUILD ? DataCompression : compression)}, MAXDOP = {Settings.Options.MaxDop});"; break; case IndexOp.REORGANIZE: case IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS: sql = $"ALTER INDEX {fullIndexName} REORGANIZE PARTITION = {partition}" + - $"{(FixType == IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS ? "\n WITH (COMPRESS_ALL_ROW_GROUPS = ON)" : "")};"; + $"{(FixType == IndexOp.REORGANIZE_COMPRESS_ALL_ROW_GROUPS ? $"{Environment.NewLine} WITH (COMPRESS_ALL_ROW_GROUPS = ON)" : "")};"; break; } @@ -114,12 +114,12 @@ public string GetQuery() { string sqlHeader; if (IndexType == IndexType.MISSING_INDEX) - sqlHeader = $"CREATE NONCLUSTERED INDEX {fullIndexName}\n ({IndexColumns})\n " - + (string.IsNullOrEmpty(IncludedColumns) ? "" : $"INCLUDE ({IncludedColumns})\n "); + sqlHeader = $"CREATE NONCLUSTERED INDEX {fullIndexName}{Environment.NewLine} ({IndexColumns}){Environment.NewLine} " + + (string.IsNullOrEmpty(IncludedColumns) ? "" : $"INCLUDE ({IncludedColumns}){Environment.NewLine} "); else if (IndexType == IndexType.HEAP) - sqlHeader = $"ALTER TABLE {objectName} REBUILD PARTITION = {partition}\n "; + sqlHeader = $"ALTER TABLE {objectName} REBUILD PARTITION = {partition}{Environment.NewLine} "; else - sqlHeader = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}\n "; + sqlHeader = $"ALTER INDEX {fullIndexName} REBUILD PARTITION = {partition}{Environment.NewLine} "; sql = sqlHeader + "WITH (" + @@ -143,7 +143,7 @@ public string GetQuery() { break; case IndexOp.REORGANIZE: - sql = $"ALTER INDEX {fullIndexName} REORGANIZE PARTITION = {partition}\n " + + sql = $"ALTER INDEX {fullIndexName} REORGANIZE PARTITION = {partition}{Environment.NewLine} " + $"WITH (LOB_COMPACTION = {Settings.Options.LobCompaction.OnOff()});"; break; @@ -162,7 +162,7 @@ public string GetQuery() { case IndexOp.UPDATE_STATISTICS_SAMPLE: case IndexOp.UPDATE_STATISTICS_RESAMPLE: case IndexOp.UPDATE_STATISTICS_FULL: - sql = $"UPDATE STATISTICS {objectName} {indexName}\n " + ( + sql = $"UPDATE STATISTICS {objectName} {indexName}{Environment.NewLine} " + ( FixType == IndexOp.UPDATE_STATISTICS_SAMPLE ? $"WITH SAMPLE {Settings.Options.SampleStatsPercent} PERCENT;" : (FixType == IndexOp.UPDATE_STATISTICS_FULL ? "WITH FULLSCAN;" : "WITH RESAMPLE;") From 4cafe13138e67142aa438bb0382c14165bcad9a9 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 2 Feb 2020 20:09:13 +0200 Subject: [PATCH 16/53] Async refresh databases --- Forms/DatabaseBox.cs | 85 ++++++++++++++++++++++++-------------- Properties/AssemblyInfo.cs | 4 +- 2 files changed, 56 insertions(+), 33 deletions(-) diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 7d40c83..932eacf 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Data.SqlClient; using System.Diagnostics; using System.Linq; @@ -47,48 +48,26 @@ public List GetDatabases() { return dbs; } - private void RefreshDatabases() { - Stopwatch ts = Stopwatch.StartNew(); - Output.Current.Add("Refresh databases"); + #region Refresh Databases - grid.DataSource = null; - buttonOK.Enabled = false; - TotalSize.Visible = DataSize.Visible = LogSize.Visible = DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure; + private BackgroundWorker _workerScan; + private List _databases = new List(); + private List _disks = new List(); + private Stopwatch _ts = new Stopwatch(); + private void ScanDatabases(object sender, DoWorkEventArgs e) { using (SqlConnection connection = Connection.Create(Settings.ActiveHost)) { try { connection.Open(); if (!Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin) { - Output.Current.Add("Get disk info"); - try { - List di = QueryEngine.GetDiskInfo(connection); - if (di.Count > 0) { - Text = $"{Resources.DatabaseBoxTitle} {string.Join(" | ", di.Select(_ => _.ToString()))}"; - } - } - catch (Exception ex) { - Output.Current.Add("Refresh disk info failed", ex.Message); - } + _disks = QueryEngine.GetDiskInfo(connection); } - List dbs = QueryEngine.GetDatabases(connection); - var max = dbs.Max(_ => _.TotalSize); - foreach (var rule in view.FormatRules) { - ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; - } - - grid.DataSource = dbs; - - foreach (string db in Settings.ActiveHost.Databases) { - int index = view.LocateByValue(DatabaseName.FieldName, db); - view.SelectRow(index); - } - - Output.Current.Add($"Found {dbs.Count} databases", null, ts.ElapsedMilliseconds); + _databases = QueryEngine.GetDatabases(connection); } catch (Exception ex) { - Output.Current.Add("Refresh databases failed", ex.Message, ts.ElapsedMilliseconds); + Output.Current.Add("Refresh failed", ex.Message); XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { @@ -97,6 +76,50 @@ private void RefreshDatabases() { } } + private void ScanDatabasesFinish(object sender, RunWorkerCompletedEventArgs e) { + if (_disks.Count > 0) { + Text = $"{Resources.DatabaseBoxTitle} {string.Join(" | ", _disks.Select(_ => _.ToString()))}"; + } + + var max = _databases.Max(_ => _.TotalSize); + foreach (var rule in view.FormatRules) { + ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; + } + + grid.DataSource = _databases; + + foreach (string db in Settings.ActiveHost.Databases) { + int index = view.LocateByValue(DatabaseName.FieldName, db); + view.SelectRow(index); + } + + _ts.Stop(); + buttonRefresh.Enabled = true; + Output.Current.Add($"Found {_databases.Count} databases", null, _ts.ElapsedMilliseconds); + } + + private void RefreshDatabases() { + if (_workerScan != null && _workerScan.IsBusy) return; + + Output.Current.Add("Refresh databases..."); + + _ts = Stopwatch.StartNew(); + _databases.Clear(); + _disks.Clear(); + + grid.DataSource = null; + buttonOK.Enabled = false; + buttonRefresh.Enabled = false; + TotalSize.Visible = DataSize.Visible = LogSize.Visible = DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure; + + _workerScan = new ThreadWorker() { WorkerSupportsCancellation = true }; + _workerScan.DoWork += ScanDatabases; + _workerScan.RunWorkerCompleted += ScanDatabasesFinish; + _workerScan.RunWorkerAsync(); + } + + #endregion + #region Override Methods protected override bool ProcessDialogKey(Keys keyData) { diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 28a78b1..9cf296d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.58")] -[assembly: AssemblyFileVersion("1.0.0.58")] +[assembly: AssemblyVersion("1.0.0.59")] +[assembly: AssemblyFileVersion("1.0.0.59")] From a148a256fb578e023b63dbad1bd339790b3cc959 Mon Sep 17 00:00:00 2001 From: Sergii Syrovatchenko Date: Thu, 13 Feb 2020 09:04:36 +0200 Subject: [PATCH 17/53] Bugfix during columnstore processing --- Forms/DatabaseBox.cs | 18 +++++++------ Forms/MainBox.cs | 5 +++- Properties/AssemblyInfo.cs | 4 +-- Server/Query.cs | 1 + Server/QueryEngine.cs | 54 ++++++++++++++++++++------------------ 5 files changed, 46 insertions(+), 36 deletions(-) diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 932eacf..04c390b 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -81,16 +81,18 @@ private void ScanDatabasesFinish(object sender, RunWorkerCompletedEventArgs e) { Text = $"{Resources.DatabaseBoxTitle} {string.Join(" | ", _disks.Select(_ => _.ToString()))}"; } - var max = _databases.Max(_ => _.TotalSize); - foreach (var rule in view.FormatRules) { - ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; - } + if (_databases.Count > 0) { + var max = _databases.Max(_ => _.TotalSize); + foreach (var rule in view.FormatRules) { + ((FormatConditionRuleDataBar)rule.Rule).Maximum = max; + } - grid.DataSource = _databases; + grid.DataSource = _databases; - foreach (string db in Settings.ActiveHost.Databases) { - int index = view.LocateByValue(DatabaseName.FieldName, db); - view.SelectRow(index); + foreach (string db in Settings.ActiveHost.Databases) { + int index = view.LocateByValue(DatabaseName.FieldName, db); + view.SelectRow(index); + } } _ts.Stop(); diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index c9f356d..87dab37 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -717,7 +717,10 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { if (col.Caption == Resources.Selection || col.Caption == Resources.Progress) return; - e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, imageCollection.Images[7])); + if (view.OptionsBehavior.Editable) { + e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, imageCollection.Images[7])); + } + e.Menu.Items.Add(new DXMenuItem("Copy Fix Script", CopyFixScript, imageCollection.Images[8])); e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = col.FieldName }); e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = col.FieldName }); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 9cf296d..83db7af 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.59")] -[assembly: AssemblyFileVersion("1.0.0.59")] +[assembly: AssemblyVersion("1.0.0.60")] +[assembly: AssemblyFileVersion("1.0.0.60")] diff --git a/Server/Query.cs b/Server/Query.cs index 1b86317..08ed3dc 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -692,6 +692,7 @@ FROM sys.fn_column_store_row_groups({0}) AND [partition_number] = {2} SELECT Fragmentation = @Fragmentation + , PageSpaceUsed = NULL , PagesCount = ISNULL(@PagesCount, 0) , UnusedPagesCount = ISNULL(@UnusedPageCount, 0) , RowsCount = ISNULL([rows], 0) diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index f7a23d8..11ba9a1 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -351,33 +351,37 @@ public static string FixIndex(SqlConnection connection, Index ix) { if (string.IsNullOrEmpty(ix.Error)) { - if (ix.FixType == IndexOp.UPDATE_STATISTICS_FULL || ix.FixType == IndexOp.UPDATE_STATISTICS_RESAMPLE || ix.FixType == IndexOp.UPDATE_STATISTICS_SAMPLE) { - ix.IndexStats = DateTime.Now; - } - else if (ix.FixType == IndexOp.CREATE_INDEX) { - ix.IndexStats = DateTime.Now; - ix.Fragmentation = 0; - } - else if (ix.FixType == IndexOp.DISABLE_INDEX || ix.FixType == IndexOp.DROP_INDEX || ix.FixType == IndexOp.DROP_TABLE) { - ix.PagesCountBefore = ix.PagesCount; - ix.Fragmentation = 0; - ix.PagesCount = 0; - ix.UnusedPagesCount = 0; - ix.RowsCount = 0; + try { + if (ix.FixType == IndexOp.UPDATE_STATISTICS_FULL || ix.FixType == IndexOp.UPDATE_STATISTICS_RESAMPLE || ix.FixType == IndexOp.UPDATE_STATISTICS_SAMPLE) { + ix.IndexStats = DateTime.Now; + } + else if (ix.FixType == IndexOp.CREATE_INDEX) { + ix.IndexStats = DateTime.Now; + ix.Fragmentation = 0; + } + else if (ix.FixType == IndexOp.DISABLE_INDEX || ix.FixType == IndexOp.DROP_INDEX || ix.FixType == IndexOp.DROP_TABLE) { + ix.PagesCountBefore = ix.PagesCount; + ix.Fragmentation = 0; + ix.PagesCount = 0; + ix.UnusedPagesCount = 0; + ix.RowsCount = 0; + } + else if (data.Tables.Count == 1 && data.Tables[0].Rows.Count == 1) { + DataRow row = data.Tables[0].Rows[0]; + + ix.PagesCountBefore = ix.PagesCount - row.Field(Resources.PagesCount); + ix.Fragmentation = row.Field(Resources.Fragmentation); + ix.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); + ix.PagesCount = row.Field(Resources.PagesCount); + ix.UnusedPagesCount = row.Field(Resources.UnusedPagesCount); + ix.RowsCount = row.Field(Resources.RowsCount); + ix.DataCompression = ((DataCompression)row.Field(Resources.DataCompression)); + ix.IndexStats = row.Field(Resources.IndexStats); + } } - else if (data.Tables.Count == 1 && data.Tables[0].Rows.Count == 1) { - DataRow row = data.Tables[0].Rows[0]; - - ix.PagesCountBefore = ix.PagesCount - row.Field(Resources.PagesCount); - ix.Fragmentation = row.Field(Resources.Fragmentation); - ix.PageSpaceUsed = row.Field(Resources.PageSpaceUsed); - ix.PagesCount = row.Field(Resources.PagesCount); - ix.UnusedPagesCount = row.Field(Resources.UnusedPagesCount); - ix.RowsCount = row.Field(Resources.RowsCount); - ix.DataCompression = ((DataCompression)row.Field(Resources.DataCompression)); - ix.IndexStats = row.Field(Resources.IndexStats); + catch (Exception ex) { + ix.Error = ex.Message; } - } return query; From 265ab4952354a2342128533d65aa27e9fc5bf73a Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 29 Mar 2020 12:12:47 +0300 Subject: [PATCH 18/53] New columns with index usage stats and improvements in UI --- Common/GridMethod.cs | 5 + Forms/AboutBox.Designer.cs | 12 +- Forms/AboutBox.cs | 11 +- Forms/DatabaseBox.Designer.cs | 107 ++++++------ Forms/DatabaseBox.cs | 9 + Forms/DatabaseBox.resx | 7 +- Forms/ErrorBox.cs | 3 +- Forms/MainBox.Designer.cs | 283 +++++++++++++++++++++++++++---- Forms/MainBox.cs | 15 +- Forms/MainBox.resx | 78 ++++++--- Properties/AssemblyInfo.cs | 4 +- Properties/Resources.Designer.cs | 33 ++-- Properties/Resources.resx | 13 +- Properties/licenses.licx | 10 +- Server/Index.cs | 6 +- Server/Query.cs | 47 +++-- Server/QueryEngine.cs | 63 ++++--- 17 files changed, 494 insertions(+), 212 deletions(-) diff --git a/Common/GridMethod.cs b/Common/GridMethod.cs index 147a398..3f9c4ec 100644 --- a/Common/GridMethod.cs +++ b/Common/GridMethod.cs @@ -59,6 +59,11 @@ public static void GridColumnDisplayText(object sender, CustomColumnDisplayTextE case "FixType": e.DisplayText = ((IndexOp)e.Value).Description(); break; + + case "Duration": + if (e.Value != null) + e.DisplayText = $"{new DateTime(0).AddMilliseconds(Convert.ToInt64(e.Value)):mm:ss.fff}"; + break; } } diff --git a/Forms/AboutBox.Designer.cs b/Forms/AboutBox.Designer.cs index c85c7e1..101e4f0 100644 --- a/Forms/AboutBox.Designer.cs +++ b/Forms/AboutBox.Designer.cs @@ -30,7 +30,7 @@ private void InitializeComponent() { this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.labelProductDescription = new DevExpress.XtraEditors.LabelControl(); this.labelGitHubControl = new DevExpress.XtraEditors.HyperlinkLabelControl(); - this.labelCopyright = new DevExpress.XtraEditors.HyperlinkLabelControl(); + this.labelCopyright = new DevExpress.XtraEditors.LabelControl(); this.labelControl1 = new DevExpress.XtraEditors.LabelControl(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); @@ -99,19 +99,11 @@ private void InitializeComponent() { // // labelCopyright // - this.labelCopyright.Appearance.ForeColor = System.Drawing.Color.White; - this.labelCopyright.Appearance.LinkColor = System.Drawing.Color.White; - this.labelCopyright.Appearance.Options.UseForeColor = true; - this.labelCopyright.Appearance.Options.UseLinkColor = true; - this.labelCopyright.Cursor = System.Windows.Forms.Cursors.Hand; - this.labelCopyright.LineColor = System.Drawing.Color.White; - this.labelCopyright.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; this.labelCopyright.Location = new System.Drawing.Point(215, 60); this.labelCopyright.Name = "labelCopyright"; this.labelCopyright.Size = new System.Drawing.Size(26, 13); this.labelCopyright.TabIndex = 12; this.labelCopyright.Text = "Value"; - this.labelCopyright.HyperlinkClick += new DevExpress.Utils.HyperlinkClickEventHandler(this.Copyright_HyperlinkClick); // // labelControl1 // @@ -157,7 +149,7 @@ private void InitializeComponent() { private System.Windows.Forms.PictureBox pictureBox1; private DevExpress.XtraEditors.LabelControl labelProductDescription; private DevExpress.XtraEditors.HyperlinkLabelControl labelGitHubControl; - private DevExpress.XtraEditors.HyperlinkLabelControl labelCopyright; + private DevExpress.XtraEditors.LabelControl labelCopyright; private DevExpress.XtraEditors.LabelControl labelControl1; } } \ No newline at end of file diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 57d180c..202d98d 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -4,6 +4,7 @@ using System.Windows.Forms; using DevExpress.Utils; using DevExpress.XtraEditors; +using SQLIndexManager.Properties; namespace SQLIndexManager { @@ -23,17 +24,9 @@ public AboutBox() { labelVersion.Text = assembly.GetName().Version.ToString(); } - private void Copyright_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - RunHyperlink("www.linkedin.com/in/sergiisyrovatchenko"); - } - private void GitHub_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { - RunHyperlink("www.github.com/sergiisyrovatchenko/SQLIndexManager"); - } - - private void RunHyperlink(string hyperlink) { try { - Process.Start(hyperlink); + Process.Start(Resources.GitHubLink); } catch (Exception ex) { Output.Current.Add($"Error: {ex.Source}", ex.Message); diff --git a/Forms/DatabaseBox.Designer.cs b/Forms/DatabaseBox.Designer.cs index b28fb27..960da62 100644 --- a/Forms/DatabaseBox.Designer.cs +++ b/Forms/DatabaseBox.Designer.cs @@ -24,7 +24,6 @@ protected override void Dispose(bool disposing) { /// the contents of this method with the code editor. /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar1 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule2 = new DevExpress.XtraGrid.GridFormatRule(); @@ -35,10 +34,13 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar4 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule5 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraLayout.LayoutControlGroup layoutControl; + DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; this.DataSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.DataFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.LogSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.LogFreeSize = new DevExpress.XtraGrid.Columns.GridColumn(); + this.TotalSize = new DevExpress.XtraGrid.Columns.GridColumn(); this.DatabaseName = new DevExpress.XtraGrid.Columns.GridColumn(); this.buttonCancel = new DevExpress.XtraEditors.SimpleButton(); this.DatabaseBoxlayoutControl1ConvertedLayout = new DevExpress.XtraLayout.LayoutControl(); @@ -47,30 +49,28 @@ private void InitializeComponent() { this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); this.RecoveryModel = new DevExpress.XtraGrid.Columns.GridColumn(); this.LogReuseWait = new DevExpress.XtraGrid.Columns.GridColumn(); + this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); this.buttonRefresh = new DevExpress.XtraEditors.SimpleButton(); this.buttonOK = new DevExpress.XtraEditors.SimpleButton(); - this.layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); this.searchControl1item = new DevExpress.XtraLayout.LayoutControlItem(); this.griditem = new DevExpress.XtraLayout.LayoutControlItem(); this.buttonRefreshitem = new DevExpress.XtraLayout.LayoutControlItem(); this.buttonOKitem = new DevExpress.XtraLayout.LayoutControlItem(); this.buttonCancelitem = new DevExpress.XtraLayout.LayoutControlItem(); - this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); - this.layoutConverter1 = new DevExpress.XtraLayout.Converter.LayoutConverter(this.components); - this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); - this.TotalSize = new DevExpress.XtraGrid.Columns.GridColumn(); + layoutControl = new DevExpress.XtraLayout.LayoutControlGroup(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); ((System.ComponentModel.ISupportInitialize)(this.DatabaseBoxlayoutControl1ConvertedLayout)).BeginInit(); this.DatabaseBoxlayoutControl1ConvertedLayout.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(layoutControl)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.griditem)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(emptySpaceItem1)).BeginInit(); this.SuspendLayout(); // // DataSize @@ -117,6 +117,17 @@ private void InitializeComponent() { this.LogFreeSize.VisibleIndex = 9; this.LogFreeSize.Width = 100; // + // TotalSize + // + this.TotalSize.Caption = "Total Size"; + this.TotalSize.FieldName = "TotalSize"; + this.TotalSize.MaxWidth = 110; + this.TotalSize.MinWidth = 110; + this.TotalSize.Name = "TotalSize"; + this.TotalSize.Visible = true; + this.TotalSize.VisibleIndex = 5; + this.TotalSize.Width = 110; + // // DatabaseName // this.DatabaseName.Caption = "Database"; @@ -148,7 +159,7 @@ private void InitializeComponent() { this.DatabaseBoxlayoutControl1ConvertedLayout.Location = new System.Drawing.Point(0, 0); this.DatabaseBoxlayoutControl1ConvertedLayout.Name = "DatabaseBoxlayoutControl1ConvertedLayout"; this.DatabaseBoxlayoutControl1ConvertedLayout.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(968, 152, 650, 400); - this.DatabaseBoxlayoutControl1ConvertedLayout.Root = this.layoutControl; + this.DatabaseBoxlayoutControl1ConvertedLayout.Root = layoutControl; this.DatabaseBoxlayoutControl1ConvertedLayout.Size = new System.Drawing.Size(1184, 461); this.DatabaseBoxlayoutControl1ConvertedLayout.TabIndex = 5; // @@ -363,6 +374,21 @@ private void InitializeComponent() { this.LogReuseWait.VisibleIndex = 3; this.LogReuseWait.Width = 130; // + // CreateDate + // + this.CreateDate.AppearanceCell.Options.UseTextOptions = true; + this.CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.CreateDate.Caption = "Create Date"; + this.CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.CreateDate.FieldName = "CreateDate"; + this.CreateDate.MaxWidth = 105; + this.CreateDate.MinWidth = 105; + this.CreateDate.Name = "CreateDate"; + this.CreateDate.Visible = true; + this.CreateDate.VisibleIndex = 4; + this.CreateDate.Width = 105; + // // buttonRefresh // this.buttonRefresh.AllowFocus = false; @@ -388,19 +414,22 @@ private void InitializeComponent() { // // layoutControl // - this.layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; - this.layoutControl.GroupBordersVisible = false; - this.layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + layoutControl.AllowCustomizeChildren = false; + layoutControl.AllowHide = false; + layoutControl.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + layoutControl.GroupBordersVisible = false; + layoutControl.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { this.searchControl1item, this.griditem, this.buttonRefreshitem, this.buttonOKitem, this.buttonCancelitem, - this.emptySpaceItem1}); - this.layoutControl.Name = "Root"; - this.layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); - this.layoutControl.Size = new System.Drawing.Size(1184, 461); - this.layoutControl.TextVisible = false; + emptySpaceItem1}); + layoutControl.Name = "Root"; + layoutControl.Padding = new DevExpress.XtraLayout.Utils.Padding(10, 10, 5, 10); + layoutControl.ShowInCustomizationForm = false; + layoutControl.Size = new System.Drawing.Size(1184, 461); + layoutControl.TextVisible = false; // // searchControl1item // @@ -463,37 +492,12 @@ private void InitializeComponent() { // // emptySpaceItem1 // - this.emptySpaceItem1.AllowHotTrack = false; - this.emptySpaceItem1.Location = new System.Drawing.Point(298, 420); - this.emptySpaceItem1.Name = "emptySpaceItem1"; - this.emptySpaceItem1.Size = new System.Drawing.Size(706, 26); - this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); - // - // CreateDate - // - this.CreateDate.AppearanceCell.Options.UseTextOptions = true; - this.CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.CreateDate.Caption = "Create Date"; - this.CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; - this.CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.CreateDate.FieldName = "CreateDate"; - this.CreateDate.MaxWidth = 105; - this.CreateDate.MinWidth = 105; - this.CreateDate.Name = "CreateDate"; - this.CreateDate.Visible = true; - this.CreateDate.VisibleIndex = 4; - this.CreateDate.Width = 105; - // - // TotalSize - // - this.TotalSize.Caption = "Total Size"; - this.TotalSize.FieldName = "TotalSize"; - this.TotalSize.MaxWidth = 110; - this.TotalSize.MinWidth = 110; - this.TotalSize.Name = "TotalSize"; - this.TotalSize.Visible = true; - this.TotalSize.VisibleIndex = 5; - this.TotalSize.Width = 110; + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new System.Drawing.Point(298, 420); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.ShowInCustomizationForm = false; + emptySpaceItem1.Size = new System.Drawing.Size(706, 26); + emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); // // DatabaseBox // @@ -514,13 +518,13 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.searchControl1.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.layoutControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(layoutControl)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.searchControl1item)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.griditem)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonRefreshitem)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonOKitem)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.buttonCancelitem)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(emptySpaceItem1)).EndInit(); this.ResumeLayout(false); } @@ -541,14 +545,11 @@ private void InitializeComponent() { private DevExpress.XtraGrid.Columns.GridColumn LogFreeSize; private DevExpress.XtraGrid.Columns.GridColumn DataFreeSize; private DevExpress.XtraLayout.LayoutControl DatabaseBoxlayoutControl1ConvertedLayout; - private DevExpress.XtraLayout.LayoutControlGroup layoutControl; private DevExpress.XtraLayout.LayoutControlItem searchControl1item; private DevExpress.XtraLayout.LayoutControlItem griditem; private DevExpress.XtraLayout.LayoutControlItem buttonRefreshitem; private DevExpress.XtraLayout.LayoutControlItem buttonOKitem; private DevExpress.XtraLayout.LayoutControlItem buttonCancelitem; - private DevExpress.XtraLayout.Converter.LayoutConverter layoutConverter1; - private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; private DevExpress.XtraGrid.Columns.GridColumn CreateDate; private DevExpress.XtraGrid.Columns.GridColumn TotalSize; } diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index 04c390b..b933635 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -124,6 +124,15 @@ private void RefreshDatabases() { #region Override Methods + protected override bool ProcessKeyPreview(ref Message m) { + if ((Keys)m.WParam == Keys.F5) { + RefreshDatabases(); + return true; + } + + return base.ProcessKeyPreview(ref m); + } + protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Escape) { DialogResult = DialogResult.Cancel; diff --git a/Forms/DatabaseBox.resx b/Forms/DatabaseBox.resx index 3b09ede..0d7eb7d 100644 --- a/Forms/DatabaseBox.resx +++ b/Forms/DatabaseBox.resx @@ -117,7 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 + + False + + + False \ No newline at end of file diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 000df84..7fd52a0 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -2,6 +2,7 @@ using System.Reflection; using System.Windows.Forms; using DevExpress.XtraEditors; +using SQLIndexManager.Properties; namespace SQLIndexManager { @@ -12,7 +13,7 @@ public ErrorBox(Exception ex) { edError.Text = "Application has encountered an unexpected error" + - $"{Environment.NewLine}Please send error detail to https://github.com/sergiisyrovatchenko/SQLIndexManager/issues" + + $"{Environment.NewLine}Please send error detail to {Resources.GitHubLink}" + $"{Environment.NewLine}Build: {AssemblyVersion}" + $"{Environment.NewLine}OS: {Environment.OSVersion}" + $"{Environment.NewLine}{Environment.NewLine}{ex.Message}" + diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 3496e12..039c517 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -63,17 +63,31 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar5 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule7 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar6 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule8 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar7 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule9 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar8 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule10 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar9 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule11 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar10 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule12 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar11 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); + DevExpress.XtraGrid.GridFormatRule gridFormatRule13 = new DevExpress.XtraGrid.GridFormatRule(); + DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar12 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainBox)); this.popupIndexOperation = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); this.Warning = new DevExpress.XtraGrid.Columns.GridColumn(); this.PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); + this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); this.grid = new DevExpress.XtraGrid.GridControl(); this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); this.ModifyDate = new DevExpress.XtraGrid.Columns.GridColumn(); + this.LastRead = new DevExpress.XtraGrid.Columns.GridColumn(); + this.LastWrite = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); this.labelDatabases = new DevExpress.XtraBars.BarStaticItem(); @@ -106,6 +120,7 @@ private void InitializeComponent() { this.boxSearch = new DevExpress.XtraBars.BarEditItem(); this.boxSearchControl = new DevExpress.XtraEditors.Repository.RepositoryItemSearchControl(); this.labelSeparator = new DevExpress.XtraBars.BarStaticItem(); + this.buttonFeedback = new DevExpress.XtraBars.BarButtonItem(); this.toolTipController = new DevExpress.Utils.ToolTipController(this.components); this.taskbar = new DevExpress.Utils.Taskbar.TaskbarAssistant(); this.imageCollection = new DevExpress.Utils.ImageCollection(this.components); @@ -644,6 +659,8 @@ private void InitializeComponent() { // TotalLookups // TotalLookups.Caption = "Lookups"; + TotalLookups.DisplayFormat.FormatString = "N0"; + TotalLookups.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalLookups.FieldName = "TotalLookups"; TotalLookups.MaxWidth = 95; TotalLookups.MinWidth = 95; @@ -711,6 +728,29 @@ private void InitializeComponent() { this.PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; this.PageSpaceUsed.Width = 103; // + // Duration + // + this.Duration.AppearanceCell.Options.UseTextOptions = true; + this.Duration.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.Duration.Caption = "Duration"; + this.Duration.FieldName = "Duration"; + this.Duration.MaxWidth = 73; + this.Duration.MinWidth = 73; + this.Duration.Name = "Duration"; + this.Duration.OptionsColumn.AllowEdit = false; + this.Duration.OptionsColumn.AllowFocus = false; + this.Duration.OptionsColumn.AllowIncrementalSearch = false; + this.Duration.OptionsColumn.AllowMove = false; + this.Duration.OptionsColumn.AllowShowHide = false; + this.Duration.OptionsColumn.AllowSize = false; + this.Duration.OptionsColumn.ReadOnly = true; + this.Duration.OptionsColumn.ShowInCustomizationForm = false; + this.Duration.OptionsColumn.ShowInExpressionEditor = false; + this.Duration.OptionsColumn.TabStop = false; + this.Duration.OptionsFilter.AllowAutoFilter = false; + this.Duration.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + this.Duration.Width = 73; + // // repositoryItemHypertextLabel1 // this.repositoryItemHypertextLabel1.Name = "repositoryItemHypertextLabel1"; @@ -782,7 +822,9 @@ private void InitializeComponent() { this.Warning, this.Error, this.CreateDate, - this.ModifyDate}); + this.ModifyDate, + this.LastRead, + this.LastWrite}); this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; gridFormatRule1.Column = this.Warning; gridFormatRule1.ColumnApplyTo = IndexName; @@ -956,9 +998,9 @@ private void InitializeComponent() { 0, 0, 0}); - formatConditionRuleDataBar6.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar6.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Number; formatConditionRuleDataBar6.Minimum = new decimal(new int[] { - 64, + 1, 0, 0, 0}); @@ -966,6 +1008,156 @@ private void InitializeComponent() { formatConditionRuleDataBar6.PredefinedName = null; formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule7.Rule = formatConditionRuleDataBar6; + gridFormatRule8.Column = this.Duration; + gridFormatRule8.ColumnApplyTo = this.Duration; + gridFormatRule8.Name = "Duration"; + formatConditionRuleDataBar7.AllowNegativeAxis = false; + formatConditionRuleDataBar7.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); + formatConditionRuleDataBar7.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(237)))), ((int)(((byte)(179))))); + formatConditionRuleDataBar7.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); + formatConditionRuleDataBar7.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar7.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar7.DrawAxis = false; + formatConditionRuleDataBar7.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar7.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar7.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + formatConditionRuleDataBar7.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar7.PredefinedName = null; + formatConditionRuleDataBar7.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule8.Rule = formatConditionRuleDataBar7; + gridFormatRule9.Column = TotalReads; + gridFormatRule9.ColumnApplyTo = TotalReads; + gridFormatRule9.Name = "TotalReads"; + formatConditionRuleDataBar8.AllowNegativeAxis = false; + formatConditionRuleDataBar8.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); + formatConditionRuleDataBar8.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); + formatConditionRuleDataBar8.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar8.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar8.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar8.DrawAxis = false; + formatConditionRuleDataBar8.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar8.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar8.Minimum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + formatConditionRuleDataBar8.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar8.PredefinedName = null; + formatConditionRuleDataBar8.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule9.Rule = formatConditionRuleDataBar8; + gridFormatRule10.Column = TotalWrites; + gridFormatRule10.ColumnApplyTo = TotalWrites; + gridFormatRule10.Name = "TotalWrites"; + formatConditionRuleDataBar9.AllowNegativeAxis = false; + formatConditionRuleDataBar9.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); + formatConditionRuleDataBar9.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); + formatConditionRuleDataBar9.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar9.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar9.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar9.DrawAxis = false; + formatConditionRuleDataBar9.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar9.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar9.Minimum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + formatConditionRuleDataBar9.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar9.PredefinedName = null; + formatConditionRuleDataBar9.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule10.Rule = formatConditionRuleDataBar9; + gridFormatRule11.Column = TotalSeeks; + gridFormatRule11.ColumnApplyTo = TotalSeeks; + gridFormatRule11.Name = "TotalSeeks"; + formatConditionRuleDataBar10.AllowNegativeAxis = false; + formatConditionRuleDataBar10.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); + formatConditionRuleDataBar10.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); + formatConditionRuleDataBar10.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar10.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar10.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar10.DrawAxis = false; + formatConditionRuleDataBar10.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar10.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar10.Minimum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + formatConditionRuleDataBar10.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar10.PredefinedName = null; + formatConditionRuleDataBar10.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule11.Rule = formatConditionRuleDataBar10; + gridFormatRule12.Column = TotalScans; + gridFormatRule12.ColumnApplyTo = TotalScans; + gridFormatRule12.Name = "TotalScans"; + formatConditionRuleDataBar11.AllowNegativeAxis = false; + formatConditionRuleDataBar11.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); + formatConditionRuleDataBar11.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); + formatConditionRuleDataBar11.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar11.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar11.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar11.DrawAxis = false; + formatConditionRuleDataBar11.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar11.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar11.Minimum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + formatConditionRuleDataBar11.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar11.PredefinedName = null; + formatConditionRuleDataBar11.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule12.Rule = formatConditionRuleDataBar11; + gridFormatRule13.Column = TotalLookups; + gridFormatRule13.ColumnApplyTo = TotalLookups; + gridFormatRule13.Name = "TotalLookups"; + formatConditionRuleDataBar12.AllowNegativeAxis = false; + formatConditionRuleDataBar12.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); + formatConditionRuleDataBar12.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); + formatConditionRuleDataBar12.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar12.Appearance.Options.UseBackColor = true; + formatConditionRuleDataBar12.Appearance.Options.UseBorderColor = true; + formatConditionRuleDataBar12.DrawAxis = false; + formatConditionRuleDataBar12.Maximum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + formatConditionRuleDataBar12.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; + formatConditionRuleDataBar12.Minimum = new decimal(new int[] { + 1000, + 0, + 0, + 0}); + formatConditionRuleDataBar12.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; + formatConditionRuleDataBar12.PredefinedName = null; + formatConditionRuleDataBar12.RightToLeft = DevExpress.Utils.DefaultBoolean.False; + gridFormatRule13.Rule = formatConditionRuleDataBar12; this.view.FormatRules.Add(gridFormatRule1); this.view.FormatRules.Add(gridFormatRule2); this.view.FormatRules.Add(gridFormatRule3); @@ -973,6 +1165,12 @@ private void InitializeComponent() { this.view.FormatRules.Add(gridFormatRule5); this.view.FormatRules.Add(gridFormatRule6); this.view.FormatRules.Add(gridFormatRule7); + this.view.FormatRules.Add(gridFormatRule8); + this.view.FormatRules.Add(gridFormatRule9); + this.view.FormatRules.Add(gridFormatRule10); + this.view.FormatRules.Add(gridFormatRule11); + this.view.FormatRules.Add(gridFormatRule12); + this.view.FormatRules.Add(gridFormatRule13); this.view.GridControl = this.grid; this.view.Name = "view"; this.view.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; @@ -1012,31 +1210,6 @@ private void InitializeComponent() { this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); this.view.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); // - // Duration - // - this.Duration.AppearanceCell.Options.UseTextOptions = true; - this.Duration.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.Duration.Caption = "Duration"; - this.Duration.DisplayFormat.FormatString = "mm:ss.fff"; - this.Duration.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.Duration.FieldName = "Duration"; - this.Duration.MaxWidth = 70; - this.Duration.MinWidth = 70; - this.Duration.Name = "Duration"; - this.Duration.OptionsColumn.AllowEdit = false; - this.Duration.OptionsColumn.AllowFocus = false; - this.Duration.OptionsColumn.AllowIncrementalSearch = false; - this.Duration.OptionsColumn.AllowMove = false; - this.Duration.OptionsColumn.AllowShowHide = false; - this.Duration.OptionsColumn.AllowSize = false; - this.Duration.OptionsColumn.ReadOnly = true; - this.Duration.OptionsColumn.ShowInCustomizationForm = false; - this.Duration.OptionsColumn.ShowInExpressionEditor = false; - this.Duration.OptionsColumn.TabStop = false; - this.Duration.OptionsFilter.AllowAutoFilter = false; - this.Duration.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - this.Duration.Width = 70; - // // Error // this.Error.Caption = "Error Message"; @@ -1083,6 +1256,40 @@ private void InitializeComponent() { this.ModifyDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; this.ModifyDate.Width = 105; // + // LastRead + // + this.LastRead.AppearanceCell.Options.UseTextOptions = true; + this.LastRead.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.LastRead.Caption = "Last Read"; + this.LastRead.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.LastRead.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.LastRead.FieldName = "LastRead"; + this.LastRead.MaxWidth = 105; + this.LastRead.MinWidth = 105; + this.LastRead.Name = "LastRead"; + this.LastRead.OptionsColumn.AllowEdit = false; + this.LastRead.OptionsColumn.AllowFocus = false; + this.LastRead.OptionsColumn.AllowSize = false; + this.LastRead.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + this.LastRead.Width = 105; + // + // LastWrite + // + this.LastWrite.AppearanceCell.Options.UseTextOptions = true; + this.LastWrite.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.LastWrite.Caption = "Last Write"; + this.LastWrite.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + this.LastWrite.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.LastWrite.FieldName = "LastWrite"; + this.LastWrite.MaxWidth = 105; + this.LastWrite.MinWidth = 105; + this.LastWrite.Name = "LastWrite"; + this.LastWrite.OptionsColumn.AllowEdit = false; + this.LastWrite.OptionsColumn.AllowFocus = false; + this.LastWrite.OptionsColumn.AllowSize = false; + this.LastWrite.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + this.LastWrite.Width = 105; + // // gridToolTipController // this.gridToolTipController.GetActiveObjectInfo += new DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventHandler(this.GetActiveObjectInfo); @@ -1238,9 +1445,10 @@ private void InitializeComponent() { this.labelSavedSpace, this.labelIndexesSize, this.labelElapsedTime, - this.labelServerInfo}); + this.labelServerInfo, + this.buttonFeedback}); this.ribbonControl1.Location = new System.Drawing.Point(0, 0); - this.ribbonControl1.MaxItemId = 36; + this.ribbonControl1.MaxItemId = 38; this.ribbonControl1.Name = "ribbonControl1"; this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonNewConnection); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonDatabases); @@ -1249,6 +1457,7 @@ private void InitializeComponent() { this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonOptions); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonAbout); this.ribbonControl1.QuickToolbarItemLinks.Add(this.labelSeparator); + this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonFeedback); this.ribbonControl1.QuickToolbarItemLinks.Add(this.boxSearch); this.ribbonControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { this.boxSearchControl}); @@ -1437,6 +1646,15 @@ private void InitializeComponent() { this.labelSeparator.ShowImageInToolbar = false; this.labelSeparator.Width = 68; // + // buttonFeedback + // + this.buttonFeedback.Caption = "Feature Requests, Suggestions && Bugs"; + this.buttonFeedback.Id = 36; + this.buttonFeedback.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.Image"))); + this.buttonFeedback.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.LargeImage"))); + this.buttonFeedback.Name = "buttonFeedback"; + this.buttonFeedback.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonFeedbackClick); + // // toolTipController // this.toolTipController.Active = false; @@ -1667,5 +1885,8 @@ private void InitializeComponent() { private BarStaticItem labelServerInfo; private DevExpress.XtraGrid.Columns.GridColumn CreateDate; private DevExpress.XtraGrid.Columns.GridColumn ModifyDate; + private DevExpress.XtraGrid.Columns.GridColumn LastRead; + private DevExpress.XtraGrid.Columns.GridColumn LastWrite; + private BarButtonItem buttonFeedback; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 87dab37..9f691da 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -417,9 +417,8 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { watch.Stop(); - item.Duration = (new DateTime(0)).AddMilliseconds(watch.ElapsedMilliseconds); - - Output.Current.Add(item.ToString(), sql, watch.ElapsedMilliseconds); + item.Duration = watch.ElapsedMilliseconds; + Output.Current.Add(item.ToString(), sql, item.Duration); _workerFix.ReportProgress(i + 1); if (!string.IsNullOrEmpty(item.Error)) { @@ -879,6 +878,16 @@ private void ButtonAboutClick(object sender, ItemClickEventArgs e) { } } + private void ButtonFeedbackClick(object sender, ItemClickEventArgs e) { + try { + Process.Start(Resources.GitHubLink); + } + catch (Exception ex) { + Output.Current.Add($"Error: {ex.Source}", ex.Message); + XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + #endregion #region Save/Restore Sort diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 15ee787..9fd8952 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -235,24 +235,27 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w - G1xZEQAAANNJREFUOE+N0jEKwlAQBNB4Gu8gWNqLkgN4AxG8QQo77e1tbG0sRe9g4RVEFLQR8TsbfnR2 - +AkWr9jszIZAshDC1+UwqQxgB3e4wRZ6UO6544YYmENIeMMUXMcNWOYxXMeOdLmjB/YUrrPmjh54SDjl - xB09cJVwypE7emAj4ZQld/RAB14UVvaJbe7oATOCJ2jZ/ok+uI4bbBmtQA/MoNxzxw1VABagB8bw94FG - 3HEDh4qiCIx33HEDh5pwxw0cwltzOEdD3nHHDRwyKLaMPv91QvYBcM7IysnHHlAAAAAASUVORK5CYII= + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAOZJ + REFUOE+dkSEOAjEQRRezHrUnQKGA7A2waAQSxTVIuAJYTkCCQxDCMTBgV4HFkJT5zZ/SltJsEG9nOv/P + 3yYtjDGWy3wcMxC6ZMiZQ/dyAWehT9AHepuAl3Ai6AP9K4AhRkWpD57BPeUBrvHEqdATrjyDG2fQxPrZ + iQOsQWhYfXQGz88AsKUxBTTrCwImy8PIMz29PsZp2HEBnqEVx8XM1iCAt6jVlKHWGwcBAmrFPkelO36A + oq+Qw74CiAN0ec2aYsPqntJ+GKJCR9jz7IMZNP1RMkBvUworYUfQl/Q5bxDwH6Z4Aw8KWtAHjii0AAAA + AElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w - G1xZEQAAAYNJREFUWEfF1UFOAkEUhGE4DXgKEyV6H88wZzDKkr1ncGP0CibiAXShiBtZtfUMZXraX5SG - zCy+hFS6qhkSYJBS6hWGXcLQXm7OyJFcyoOs1uJ1ZMfyo0PbhqEVQ2O5lvSHOBNnv7u0bRhaNnIoS6EL - SZyNzl7eQDzNQuiiTaLz9UnQtmFoKg/lTuiC/4jukLYNQ1N5ko3VmtC2YWgqT4uxGlPaNgxN5XkxVmNO - 24ahqRzfcRrdxoq2DUNTeZuv3m92egP3xViNR9o2DE3lWTFWY0bbhqGpfFqM1TihbcPQVO79hyjs8lN8 - ILhtGFqU13r9M7L4JOgysve/Y/sQujAXZ1o92jYMrRySZ6FLc0/S6tG2YWjlkNwKXZqLM60ebRuGVg7J - udCluQtp9WjbMLRyqBZtG4ZGY03TpE2oQ9uGodFYDdo2DI3G9JRv5VNn3qlD24ah0VgN2jYMjcb0lGN5 - zZ7aImv9AhptG4ZGY0EXjeRKlmvxekRnA20bhl3CsDtp8AnIuG9GnlXR/AAAAABJRU5ErkJggg== + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAc5J + REFUWEfFljFOw0AQRVMgEkHDPbgGbaDhBtyAO9AAHUhUuQOUtHRAuhRwBehAAiGBZP63ZqPZ3W/s2MYp + nmK/nT8zcRIpo6Io1oqUQyLl89FeHTvgyt3zms7XRKg5RErVwLEJHkDhHK/vAc987RI1h0ipGjiOAQem + CxCe+dolag6RUjVwzEHVAo/ORag5REoLlU2F/whngk+Q9gpnkQ9IyeIQFH7tC/iPIIVnaa9wFvmAlMQF + p3Y/Bqfg27yCZ2dgbJmpedzqOVKSEDQOwW3i/oK1zCxd2j8gJQLR9j3AXnKWlCw2+liiHE7ULClDAGyA + V6AaN4FZ9lhtAWKhA6AarwJ7yBkkEyju87NPKX9RnuiGBUngP4iWSBeICsFL4trwBqI35mdWLRC+uT/O + dSF6un5m1QK8Ju/OtYVPIPQrnZ9ZuYDdL5xry8J61S8QYLG9zkKoAzPfM0VKwgA4sSZdYA85g0jJAOjz + J1l+qdWsTLDQAqpRF+QSmWCRC5F9cJ24JtwAZr3L5mWCRS5Qbg22wJ25JrB2GzDrn2Y2LxMWygK4ngD+ + 26n7R3QOJnX9ApnwgYqzXXABnsCXwetLwLMoY7nmCwyNlEMi5XAUo19RwjicG819swAAAABJRU5ErkJg + gg== @@ -457,23 +460,23 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAHXRFWHRUaXRsZQBBcnRpY2xl - O0xvYWQ7T3BlbjtJc3N1ZcIGz9UAAACCSURBVDhPpZEBDoAgCEW9IJfpCM1DdYDO0w0YgRvMJYra394y - gqezRES/sEXOmRbwBaMgYnk2An4BKagAzquLxBOUggqihAJvZ0USCqKEAm9nRVL1T59AL7mBv7kCYKzp - uQ9gqAN8BdI8GmioBcvDjJ1ga5gpd7A9LNj/3MUtzkPpBdri4tyK2X7xAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz + c3VlwgbP1QAAAIJJREFUOE+lkQEOgCAIRb0gl+kIzUN1gM7TDRiBG8wlitrf3jKCp7NERL+wRc6ZFvAF + oyBieTYCfgEpqADOq4vEE5SCCqKEAm9nRRIKooQCb2dFUvVPn0AvuYG/uQJgrOm5D2CoA3wF0jwaaKgF + y8OMnWBrmCl3sD0s2P/cxS3OQ+kF2uLi3IrZfvEAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAHXRFWHRUaXRsZQBBcnRpY2xl - O0xvYWQ7T3BlbjtJc3N1ZcIGz9UAAAERSURBVFhH3ZJBDsJACEW94FzGjXvTC7nzAK49ilcY+QaSofnY - dsbSRJKXAimfT9NTrfVQaDMT2syENjOhTTBNU/0RVN+gTYDh0fgvA+V6X0Ubmw3Iy8WG8BwN05I0xBU6 - QA2waxltmJakIa7QAWqgJ0xL0hBX6AA1wK5ltGFakoa4QgeogZ4wLUlDXKED1AC7ltGGaUka4godoAZ6 - wrQkDXGFDlAD7FpGG6YlaYgrdIAaWIgiOC2wtBy4otMAloP6epy3UtYaoBcqvcs/OLHAQJEXARUYZPEL - 7Lpc+PoP7L4cRAbK83bZfTlgBlIuN+YGUpcDZ0AaqcvB3AAbHiVcDpyBI6DNTGgzE9rMhDbzqKc3VHwj - GYOSKwkAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz + c3VlwgbP1QAAARFJREFUWEfdkkEOwkAIRb3gXMaNe9MLufMArj2KVxj5BpKh+dh2xtJEkpcCKZ9P01Ot + 9VBoMxPazIQ2M6FNME1T/RFU36BNgOHR+C8D5XpfRRubDcjLxYbwHA3TkjTEFTpADbBrGW2YlqQhrtAB + aqAnTEvSEFfoADXArmW0YVqShrhCB6iBnjAtSUNcoQPUALuW0YZpSRriCh2gBnrCtCQNcYUOUAPsWkYb + piVpiCt0gBpYiCI4LbC0HLii0wCWg/p6nLdS1hqgFyq9yz84scBAkRcBFRhk8Qvsulz4+g/svhxEBsrz + dtl9OWAGUi435gZSlwNnQBqpy8HcABseJVwOnIEjoM1MaDMT2syENvOopzdUfCMZg5IrCQAAAABJRU5E + rkJggg== @@ -733,6 +736,29 @@ MhO1nWDNi0P4VfwqfCGDreV8aTI6HRgz57cdwh+jkvgthD/HJfFv4XuiBDHhH5KS+Ltgvekv2Zz4IuYM NBWHmoHm4lAy0EUccga6iUPOAEJdxCFnALyJZuJQMgAINxWHKwOjyE72I61+ARytU5CEG5+/AAAAAElF TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w + G1xZEQAAANNJREFUOE+N0jEKwlAQBNB4Gu8gWNqLkgN4AxG8QQo77e1tbG0sRe9g4RVEFLQR8TsbfnR2 + +AkWr9jszIZAshDC1+UwqQxgB3e4wRZ6UO6544YYmENIeMMUXMcNWOYxXMeOdLmjB/YUrrPmjh54SDjl + xB09cJVwypE7emAj4ZQld/RAB14UVvaJbe7oATOCJ2jZ/ok+uI4bbBmtQA/MoNxzxw1VABagB8bw94FG + 3HEDh4qiCIx33HEDh5pwxw0cwltzOEdD3nHHDRwyKLaMPv91QvYBcM7IysnHHlAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w + G1xZEQAAAYNJREFUWEfF1UFOAkEUhGE4DXgKEyV6H88wZzDKkr1ncGP0CibiAXShiBtZtfUMZXraX5SG + zCy+hFS6qhkSYJBS6hWGXcLQXm7OyJFcyoOs1uJ1ZMfyo0PbhqEVQ2O5lvSHOBNnv7u0bRhaNnIoS6EL + SZyNzl7eQDzNQuiiTaLz9UnQtmFoKg/lTuiC/4jukLYNQ1N5ko3VmtC2YWgqT4uxGlPaNgxN5XkxVmNO + 24ahqRzfcRrdxoq2DUNTeZuv3m92egP3xViNR9o2DE3lWTFWY0bbhqGpfFqM1TihbcPQVO79hyjs8lN8 + ILhtGFqU13r9M7L4JOgysve/Y/sQujAXZ1o92jYMrRySZ6FLc0/S6tG2YWjlkNwKXZqLM60ebRuGVg7J + udCluQtp9WjbMLRyqBZtG4ZGY03TpE2oQ9uGodFYDdo2DI3G9JRv5VNn3qlD24ah0VgN2jYMjcb0lGN5 + zZ7aImv9AhptG4ZGY0EXjeRKlmvxekRnA20bhl3CsDtp8AnIuG9GnlXR/AAAAABJRU5ErkJggg== diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 83db7af..1bf68b8 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.60")] -[assembly: AssemblyFileVersion("1.0.0.60")] +[assembly: AssemblyVersion("1.0.0.61")] +[assembly: AssemblyFileVersion("1.0.0.61")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index a72e5b9..9bb3eef 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -195,6 +195,15 @@ internal static string Fragmentation { } } + /// + /// Looks up a localized string similar to www.github.com/sergiisyrovatchenko/SQLIndexManager. + /// + internal static string GitHubLink { + get { + return ResourceManager.GetString("GitHubLink", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -361,11 +370,20 @@ internal static string IsUnique { } /// - /// Looks up a localized string similar to LastUsage. + /// Looks up a localized string similar to LastRead. + /// + internal static string LastRead { + get { + return ResourceManager.GetString("LastRead", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LastWrite. /// - internal static string LastUsage { + internal static string LastWrite { get { - return ResourceManager.GetString("LastUsage", resourceCulture); + return ResourceManager.GetString("LastWrite", resourceCulture); } } @@ -558,15 +576,6 @@ internal static string TotalLookups { } } - /// - /// Looks up a localized string similar to TotalReads. - /// - internal static string TotalReads { - get { - return ResourceManager.GetString("TotalReads", resourceCulture); - } - } - /// /// Looks up a localized string similar to TotalScans. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index bb76ce8..a08a82d 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -129,9 +129,6 @@ ObjectName - - TotalReads - IsUnique @@ -217,8 +214,8 @@ DataFreeSize - - LastUsage + + LastWrite IsSysAdmin @@ -298,4 +295,10 @@ Select Databases + + LastRead + + + www.github.com/sergiisyrovatchenko/SQLIndexManager + \ No newline at end of file diff --git a/Properties/licenses.licx b/Properties/licenses.licx index d98b649..0731566 100644 --- a/Properties/licenses.licx +++ b/Properties/licenses.licx @@ -1,10 +1,8 @@ +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.RangeTrackBarControl, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit, DevExpress.XtraGrid.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.RangeTrackBarControl, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v17.2, Version=17.2.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/Server/Index.cs b/Server/Index.cs index b4f823c..f79a7b2 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -26,10 +26,12 @@ public class Index { public long? TotalScans { get; set; } public long? TotalSeeks { get; set; } public long? TotalLookups { get; set; } + public DateTime? LastUsage { get; set; } + public DateTime? LastWrite { get; set; } + public DateTime? LastRead { get; set; } public DateTime CreateDate { get; set; } public DateTime ModifyDate { get; set; } - public DateTime? LastUsage { get; set; } public DataCompression DataCompression { get; set; } public int FillFactor { get; set; } public DateTime? IndexStats { get; set; } @@ -49,7 +51,7 @@ public class Index { public string Error { get; set; } public Image Progress { get; set; } - public DateTime? Duration { get; set; } + public long? Duration { get; set; } public IndexOp FixType { get; set; } public WarningType? Warning { get; set; } public bool IsSelected { get; set; } diff --git a/Server/Query.cs b/Server/Query.cs index 08ed3dc..a1b14e7 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -256,11 +256,11 @@ SELECT i.ObjectID , i.IndexType , i.IsAllowPageLocks , u.TotalWrites - , u.TotalReads , u.TotalSeeks , u.TotalScans , u.TotalLookups - , u.LastUsage + , u.LastWrite + , u.LastRead , i.DataCompression , f.Fragmentation , f.PageSpaceUsed @@ -306,10 +306,9 @@ DROP TABLE #Indexes SELECT ObjectID = d.[object_id] , UserImpact = gs.[avg_user_impact] - , TotalReads = gs.[user_seeks] + gs.[user_scans] , TotalSeeks = gs.[user_seeks] , TotalScans = gs.[user_scans] - , LastUsage = ISNULL(gs.[last_user_scan], gs.[last_user_seek]) + , LastRead = ISNULL(gs.[last_user_scan], gs.[last_user_seek]) , IndexColumns = CASE WHEN d.[equality_columns] IS NOT NULL AND d.[inequality_columns] IS NOT NULL @@ -350,13 +349,12 @@ GROUP BY p.[object_id] SELECT i.ObjectID , ObjectName = o.[name] , SchemaName = s.[name] - , Fragmentation = CAST(100. * (i.UserImpact * i.TotalReads) / MAX(i.UserImpact * i.TotalReads) OVER() AS FLOAT) + , Fragmentation = CAST(100. * (i.UserImpact * (i.TotalSeeks + i.TotalScans)) / MAX(i.UserImpact * (i.TotalSeeks + i.TotalScans)) OVER() AS FLOAT) , a.RowsCount , a.PagesCount - , i.TotalReads , i.TotalSeeks , i.TotalScans - , i.LastUsage + , i.LastRead , a.IndexStats , i.IndexColumns , i.IncludedColumns @@ -407,22 +405,21 @@ AND [object_id] NOT IN (SELECT * FROM #ExcludeList) AND [object_id] IN (SELECT * FROM #IncludeList)"; public const string IndexStats = @" - SELECT ObjectID = [object_id] - , IndexID = [index_id] - , TotalWrites = NULLIF([user_updates], 0) - , TotalReads = NULLIF([user_seeks] + [user_scans] + [user_lookups], 0) - , TotalSeeks = NULLIF([user_seeks], 0) - , TotalScans = NULLIF([user_scans], 0) - , TotalLookups = NULLIF([user_lookups], 0) - , LastUsage = ( - SELECT MAX(dt) - FROM ( - VALUES ([last_user_seek]) - , ([last_user_scan]) - , ([last_user_lookup]) - , ([last_user_update]) - ) t(dt) - ) + SELECT ObjectID = [object_id] + , IndexID = [index_id] + , TotalWrites = NULLIF([user_updates], 0) + , TotalSeeks = NULLIF([user_seeks], 0) + , TotalScans = NULLIF([user_scans], 0) + , TotalLookups = NULLIF([user_lookups], 0) + , LastWrite = [last_user_update] + , LastRead = ( + SELECT MAX(dt) + FROM ( + VALUES ([last_user_seek]) + , ([last_user_scan]) + , ([last_user_lookup]) + ) t(dt) + ) FROM sys.dm_db_index_usage_stats WITH(NOLOCK) WHERE [database_id] = @DBID "; @@ -432,11 +429,11 @@ FROM sys.dm_db_index_usage_stats WITH(NOLOCK) SELECT ObjectID = NULL , IndexID = NULL , TotalWrites = NULL - , TotalReads = NULL , TotalSeeks = NULL , TotalScans = NULL , TotalLookups = NULL - , LastUsage = NULL + , LastWrite = NULL + , LastRead = NULL "; public const string Lob2008 = @" diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 11ba9a1..55815f2 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -181,6 +181,12 @@ public static List GetIndexes(SqlConnection connection) { } } + DateTime? lastWrite = _.Field(Resources.LastWrite); + DateTime? lastRead = _.Field(Resources.LastRead); + long? seeks = _.Field(Resources.TotalSeeks); + long? scans = _.Field(Resources.TotalScans); + long? lookups = _.Field(Resources.TotalLookups); + Index index = new Index { DatabaseName = connection.Database, ObjectId = _.Field(Resources.ObjectID), @@ -201,11 +207,13 @@ public static List GetIndexes(SqlConnection connection) { FillFactor = _.Field(Resources.FillFactor), IndexStats = _.Field(Resources.IndexStats), TotalWrites = _.Field(Resources.TotalWrites), - TotalReads = _.Field(Resources.TotalReads), - TotalSeeks = _.Field(Resources.TotalSeeks), - TotalScans = _.Field(Resources.TotalScans), - TotalLookups = _.Field(Resources.TotalLookups), - LastUsage = _.Field(Resources.LastUsage), + TotalReads = (seeks ?? 0) + (scans ?? 0) > 0 ? (seeks ?? 0) + (scans ?? 0) : (long?)null, + TotalSeeks = seeks, + TotalScans = scans, + TotalLookups = lookups, + LastWrite = lastWrite, + LastRead = lastRead, + LastUsage = Nullable.Compare(lastWrite, lastRead) > 0 ? lastWrite : lastRead, CreateDate = _.Field(Resources.CreateDate), ModifyDate = _.Field(Resources.ModifyDate), DataCompression = (DataCompression)_.Field(Resources.DataCompression), @@ -243,27 +251,32 @@ public static List GetIndexes(SqlConnection connection) { .Replace("]", string.Empty) .Replace(" ", string.Empty).Truncate(240); + long? seeks = _.Field(Resources.TotalSeeks); + long? scans = _.Field(Resources.TotalScans); + DateTime? lastRead = _.Field(Resources.LastRead); + Index index = new Index { - DatabaseName = connection.Database, - ObjectId = _.Field(Resources.ObjectID), - IndexName = indexName, - ObjectName = objName, - SchemaName = _.Field(Resources.SchemaName), - PagesCount = _.Field(Resources.PagesCount), - RowsCount = _.Field(Resources.RowsCount), - FileGroupName = "PRIMARY", - IndexType = IndexType.MISSING_INDEX, - IndexStats = _.Field(Resources.IndexStats), - TotalReads = _.Field(Resources.TotalReads), - TotalSeeks = _.Field(Resources.TotalSeeks), - TotalScans = _.Field(Resources.TotalScans), - LastUsage = _.Field(Resources.LastUsage), - DataCompression = DataCompression.NONE, - Fragmentation = _.Field(Resources.Fragmentation), - IsAllowOnlineRebuild = false, - IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable, - IndexColumns = indexCols, - IncludedColumns = _.Field(Resources.IncludedColumns) + DatabaseName = connection.Database, + ObjectId = _.Field(Resources.ObjectID), + IndexName = indexName, + ObjectName = objName, + SchemaName = _.Field(Resources.SchemaName), + PagesCount = _.Field(Resources.PagesCount), + RowsCount = _.Field(Resources.RowsCount), + FileGroupName = "PRIMARY", + IndexType = IndexType.MISSING_INDEX, + IndexStats = _.Field(Resources.IndexStats), + TotalReads = (seeks ?? 0) + (scans ?? 0) > 0 ? (seeks ?? 0) + (scans ?? 0) : (long?)null, + TotalSeeks = seeks, + TotalScans = scans, + LastRead = lastRead, + LastUsage = lastRead, + DataCompression = DataCompression.NONE, + Fragmentation = _.Field(Resources.Fragmentation), + IsAllowOnlineRebuild = false, + IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable, + IndexColumns = indexCols, + IncludedColumns = _.Field(Resources.IncludedColumns) }; indexes.Add(index); From b9da2170cba91cd484a701886f8ccdd8b82eb208 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Mon, 11 May 2020 09:25:21 +0300 Subject: [PATCH 19/53] Added .gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cf8e217 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/.vs/ +/Bin/ +/obj/ +*.sln.DotSettings.user From a3d73a402e8067e82c1a70c8611043516eee80e3 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Mon, 11 May 2020 09:31:31 +0300 Subject: [PATCH 20/53] Added splash screen --- Common/AppInfo.cs | 14 ++++ Forms/AboutBox.Designer.cs | 21 ++---- Forms/AboutBox.cs | 14 +--- Forms/SplashScreenBox.Designer.cs | 117 +++++++++++++++++++++++++++++ Forms/SplashScreenBox.cs | 18 +++++ Forms/SplashScreenBox.resx | 120 ++++++++++++++++++++++++++++++ Program.cs | 10 ++- SQLIndexManager.csproj | 10 +++ 8 files changed, 295 insertions(+), 29 deletions(-) create mode 100644 Common/AppInfo.cs create mode 100644 Forms/SplashScreenBox.Designer.cs create mode 100644 Forms/SplashScreenBox.cs create mode 100644 Forms/SplashScreenBox.resx diff --git a/Common/AppInfo.cs b/Common/AppInfo.cs new file mode 100644 index 0000000..7b2960f --- /dev/null +++ b/Common/AppInfo.cs @@ -0,0 +1,14 @@ +using System.Reflection; + +namespace SQLIndexManager { + + public static class AppInfo { + + public static string Title => ((AssemblyTitleAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]).Title; + public static string Product => ((AssemblyProductAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]).Product; + public static string Copyright => ((AssemblyCopyrightAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]).Copyright; + public static string Version => Assembly.GetExecutingAssembly().GetName().Version.ToString(); + + } + +} diff --git a/Forms/AboutBox.Designer.cs b/Forms/AboutBox.Designer.cs index 101e4f0..479058c 100644 --- a/Forms/AboutBox.Designer.cs +++ b/Forms/AboutBox.Designer.cs @@ -25,7 +25,6 @@ protected override void Dispose(bool disposing) { /// private void InitializeComponent() { this.labelProductName = new DevExpress.XtraEditors.LabelControl(); - this.label2 = new DevExpress.XtraEditors.LabelControl(); this.labelVersion = new DevExpress.XtraEditors.LabelControl(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.labelProductDescription = new DevExpress.XtraEditors.LabelControl(); @@ -45,21 +44,13 @@ private void InitializeComponent() { this.labelProductName.TabIndex = 0; this.labelProductName.Text = "ProductName"; // - // label2 - // - this.label2.Location = new System.Drawing.Point(149, 60); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(62, 13); - this.label2.TabIndex = 3; - this.label2.Text = "Copyright by"; - // // labelVersion // this.labelVersion.Location = new System.Drawing.Point(275, 14); this.labelVersion.Name = "labelVersion"; - this.labelVersion.Size = new System.Drawing.Size(26, 13); + this.labelVersion.Size = new System.Drawing.Size(35, 13); this.labelVersion.TabIndex = 6; - this.labelVersion.Text = "Value"; + this.labelVersion.Text = "Version"; // // pictureBox1 // @@ -99,11 +90,11 @@ private void InitializeComponent() { // // labelCopyright // - this.labelCopyright.Location = new System.Drawing.Point(215, 60); + this.labelCopyright.Location = new System.Drawing.Point(149, 58); this.labelCopyright.Name = "labelCopyright"; - this.labelCopyright.Size = new System.Drawing.Size(26, 13); + this.labelCopyright.Size = new System.Drawing.Size(47, 13); this.labelCopyright.TabIndex = 12; - this.labelCopyright.Text = "Value"; + this.labelCopyright.Text = "Copyright"; // // labelControl1 // @@ -124,7 +115,6 @@ private void InitializeComponent() { this.Controls.Add(this.labelProductDescription); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.labelVersion); - this.Controls.Add(this.label2); this.Controls.Add(this.labelProductName); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; @@ -144,7 +134,6 @@ private void InitializeComponent() { #endregion private DevExpress.XtraEditors.LabelControl labelProductName; - private DevExpress.XtraEditors.LabelControl label2; private DevExpress.XtraEditors.LabelControl labelVersion; private System.Windows.Forms.PictureBox pictureBox1; private DevExpress.XtraEditors.LabelControl labelProductDescription; diff --git a/Forms/AboutBox.cs b/Forms/AboutBox.cs index 202d98d..17b45ba 100644 --- a/Forms/AboutBox.cs +++ b/Forms/AboutBox.cs @@ -1,6 +1,5 @@ using System; using System.Diagnostics; -using System.Reflection; using System.Windows.Forms; using DevExpress.Utils; using DevExpress.XtraEditors; @@ -13,15 +12,10 @@ public partial class AboutBox : XtraForm { public AboutBox() { InitializeComponent(); - var assembly = Assembly.GetExecutingAssembly(); - var title = (AssemblyTitleAttribute)assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; - var product = (AssemblyProductAttribute)assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; - var copyright = (AssemblyCopyrightAttribute)assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; - - labelProductName.Text = title.Title; - labelProductDescription.Text = product.Product; - labelCopyright.Text = copyright.Copyright; - labelVersion.Text = assembly.GetName().Version.ToString(); + labelProductName.Text = AppInfo.Title; + labelProductDescription.Text = AppInfo.Product; + labelCopyright.Text = $"Copyright by {AppInfo.Copyright}"; + labelVersion.Text = AppInfo.Version; } private void GitHub_HyperlinkClick(object sender, HyperlinkClickEventArgs e) { diff --git a/Forms/SplashScreenBox.Designer.cs b/Forms/SplashScreenBox.Designer.cs new file mode 100644 index 0000000..f80ff2d --- /dev/null +++ b/Forms/SplashScreenBox.Designer.cs @@ -0,0 +1,117 @@ +namespace SQLIndexManager { + partial class SplashScreenBox { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.pictureEdit2 = new DevExpress.XtraEditors.PictureEdit(); + this.labelVersion = new DevExpress.XtraEditors.LabelControl(); + this.labelProductName = new DevExpress.XtraEditors.LabelControl(); + this.labelCopyright = new DevExpress.XtraEditors.LabelControl(); + this.labelProductDescription = new DevExpress.XtraEditors.LabelControl(); + ((System.ComponentModel.ISupportInitialize)(this.pictureEdit2.Properties)).BeginInit(); + this.SuspendLayout(); + // + // pictureEdit2 + // + this.pictureEdit2.EditValue = global::SQLIndexManager.Properties.Resources.icon; + this.pictureEdit2.Location = new System.Drawing.Point(12, 12); + this.pictureEdit2.Name = "pictureEdit2"; + this.pictureEdit2.Properties.AllowFocused = false; + this.pictureEdit2.Properties.Appearance.BackColor = System.Drawing.Color.Transparent; + this.pictureEdit2.Properties.Appearance.Options.UseBackColor = true; + this.pictureEdit2.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + this.pictureEdit2.Properties.ShowMenu = false; + this.pictureEdit2.Size = new System.Drawing.Size(374, 141); + this.pictureEdit2.TabIndex = 9; + // + // labelVersion + // + this.labelVersion.Location = new System.Drawing.Point(251, 144); + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Size = new System.Drawing.Size(35, 13); + this.labelVersion.TabIndex = 15; + this.labelVersion.Text = "Version"; + // + // labelProductName + // + this.labelProductName.Appearance.Font = new System.Drawing.Font("Tahoma", 12.5F); + this.labelProductName.Appearance.Options.UseFont = true; + this.labelProductName.Appearance.Options.UseTextOptions = true; + this.labelProductName.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.labelProductName.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.labelProductName.Location = new System.Drawing.Point(12, 152); + this.labelProductName.Name = "labelProductName"; + this.labelProductName.Size = new System.Drawing.Size(374, 29); + this.labelProductName.TabIndex = 13; + this.labelProductName.Text = "ProductName"; + // + // labelCopyright + // + this.labelCopyright.Appearance.Options.UseTextOptions = true; + this.labelCopyright.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.labelCopyright.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.labelCopyright.Location = new System.Drawing.Point(12, 214); + this.labelCopyright.Name = "labelCopyright"; + this.labelCopyright.Size = new System.Drawing.Size(374, 13); + this.labelCopyright.TabIndex = 18; + this.labelCopyright.Text = "Copyright"; + // + // labelProductDescription + // + this.labelProductDescription.Appearance.Font = new System.Drawing.Font("Tahoma", 9.25F); + this.labelProductDescription.Appearance.Options.UseFont = true; + this.labelProductDescription.Appearance.Options.UseTextOptions = true; + this.labelProductDescription.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.labelProductDescription.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.labelProductDescription.Location = new System.Drawing.Point(12, 187); + this.labelProductDescription.Name = "labelProductDescription"; + this.labelProductDescription.Size = new System.Drawing.Size(374, 13); + this.labelProductDescription.TabIndex = 17; + this.labelProductDescription.Text = "ProductDescription"; + // + // SplashScreenBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(401, 251); + this.Controls.Add(this.labelCopyright); + this.Controls.Add(this.labelProductDescription); + this.Controls.Add(this.labelVersion); + this.Controls.Add(this.labelProductName); + this.Controls.Add(this.pictureEdit2); + this.Name = "SplashScreenBox"; + this.ShowIcon = false; + ((System.ComponentModel.ISupportInitialize)(this.pictureEdit2.Properties)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private DevExpress.XtraEditors.PictureEdit pictureEdit2; + private DevExpress.XtraEditors.LabelControl labelVersion; + private DevExpress.XtraEditors.LabelControl labelProductName; + private DevExpress.XtraEditors.LabelControl labelCopyright; + private DevExpress.XtraEditors.LabelControl labelProductDescription; + } +} diff --git a/Forms/SplashScreenBox.cs b/Forms/SplashScreenBox.cs new file mode 100644 index 0000000..663a07d --- /dev/null +++ b/Forms/SplashScreenBox.cs @@ -0,0 +1,18 @@ +using DevExpress.XtraSplashScreen; + +namespace SQLIndexManager { + + public partial class SplashScreenBox : SplashScreen { + + public SplashScreenBox() { + InitializeComponent(); + + labelProductName.Text = AppInfo.Title; + labelProductDescription.Text = AppInfo.Product; + labelCopyright.Text = $"Copyright by {AppInfo.Copyright}"; + labelVersion.Text = AppInfo.Version; + } + + } + +} \ No newline at end of file diff --git a/Forms/SplashScreenBox.resx b/Forms/SplashScreenBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Forms/SplashScreenBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Program.cs b/Program.cs index e039e1b..9c7d99f 100644 --- a/Program.cs +++ b/Program.cs @@ -4,7 +4,7 @@ using System.Threading; using System.Windows.Forms; using DevExpress.LookAndFeel; -using DevExpress.Skins; +using DevExpress.XtraSplashScreen; namespace SQLIndexManager { @@ -37,10 +37,14 @@ static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - SkinManager.EnableFormSkins(); UserLookAndFeel.Default.SetSkinStyle("Office 2016 Dark"); - Application.Run(new MainBox()); + SplashScreenManager.ShowForm(typeof(SplashScreenBox)); + var mainBox = new MainBox(); + Thread.Sleep(100); + SplashScreenManager.CloseForm(); + + Application.Run(mainBox); } } diff --git a/SQLIndexManager.csproj b/SQLIndexManager.csproj index 8d865ac..541b2c6 100644 --- a/SQLIndexManager.csproj +++ b/SQLIndexManager.csproj @@ -92,6 +92,7 @@ + Component @@ -133,6 +134,12 @@ AboutBox.cs + + Form + + + SplashScreenBox.cs + True True @@ -199,6 +206,9 @@ ConnectionBox.cs + + SplashScreenBox.cs + ResXFileCodeGenerator From 4d7958dc470c5d1292e3db63635ed65f7a17c42c Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Mon, 11 May 2020 09:33:43 +0300 Subject: [PATCH 21/53] Bugfix during columnstore filtering, unused indexes and changes in UI --- Forms/MainBox.Designer.cs | 178 ++++++++++++------------------- Forms/MainBox.resx | 5 +- Properties/AssemblyInfo.cs | 4 +- Properties/Resources.Designer.cs | 6 +- Properties/Resources.resx | 4 +- Server/Index.cs | 3 +- Server/Query.cs | 43 ++++---- Server/QueryEngine.cs | 85 +++++++-------- 8 files changed, 133 insertions(+), 195 deletions(-) diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index 039c517..ca0a747 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -25,8 +25,7 @@ private void InitializeComponent() { DevExpress.XtraGrid.Columns.GridColumn IndexType; DevExpress.XtraGrid.Columns.GridColumn PartitionNumber; DevExpress.XtraGrid.Columns.GridColumn IndexStats; - DevExpress.XtraGrid.Columns.GridColumn TotalWrites; - DevExpress.XtraGrid.Columns.GridColumn TotalReads; + DevExpress.XtraGrid.Columns.GridColumn TotalUpdates; DevExpress.XtraGrid.Columns.GridColumn LastUsage; DevExpress.XtraGrid.Columns.GridColumn FixType; DevExpress.XtraGrid.Columns.GridColumn Progress; @@ -73,8 +72,6 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar10 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule12 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar11 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - DevExpress.XtraGrid.GridFormatRule gridFormatRule13 = new DevExpress.XtraGrid.GridFormatRule(); - DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar12 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainBox)); this.popupIndexOperation = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); this.Warning = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -141,8 +138,7 @@ private void InitializeComponent() { IndexType = new DevExpress.XtraGrid.Columns.GridColumn(); PartitionNumber = new DevExpress.XtraGrid.Columns.GridColumn(); IndexStats = new DevExpress.XtraGrid.Columns.GridColumn(); - TotalWrites = new DevExpress.XtraGrid.Columns.GridColumn(); - TotalReads = new DevExpress.XtraGrid.Columns.GridColumn(); + TotalUpdates = new DevExpress.XtraGrid.Columns.GridColumn(); LastUsage = new DevExpress.XtraGrid.Columns.GridColumn(); FixType = new DevExpress.XtraGrid.Columns.GridColumn(); Progress = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -280,8 +276,6 @@ private void InitializeComponent() { FileGroupName.OptionsColumn.AllowEdit = false; FileGroupName.OptionsColumn.AllowFocus = false; FileGroupName.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; - FileGroupName.Visible = true; - FileGroupName.VisibleIndex = 17; FileGroupName.Width = 78; // // IndexName @@ -341,8 +335,8 @@ private void InitializeComponent() { IndexStats.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; IndexStats.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; IndexStats.FieldName = "IndexStats"; - IndexStats.MaxWidth = 105; - IndexStats.MinWidth = 105; + IndexStats.MaxWidth = 104; + IndexStats.MinWidth = 104; IndexStats.Name = "IndexStats"; IndexStats.OptionsColumn.AllowEdit = false; IndexStats.OptionsColumn.AllowFocus = false; @@ -350,41 +344,24 @@ private void InitializeComponent() { IndexStats.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; IndexStats.Visible = true; IndexStats.VisibleIndex = 12; - IndexStats.Width = 105; - // - // TotalWrites - // - TotalWrites.Caption = "Writes"; - TotalWrites.DisplayFormat.FormatString = "N0"; - TotalWrites.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; - TotalWrites.FieldName = "TotalWrites"; - TotalWrites.MaxWidth = 95; - TotalWrites.MinWidth = 95; - TotalWrites.Name = "TotalWrites"; - TotalWrites.OptionsColumn.AllowEdit = false; - TotalWrites.OptionsColumn.AllowFocus = false; - TotalWrites.OptionsColumn.AllowSize = false; - TotalWrites.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - TotalWrites.Visible = true; - TotalWrites.VisibleIndex = 14; - TotalWrites.Width = 95; - // - // TotalReads - // - TotalReads.Caption = "Reads"; - TotalReads.DisplayFormat.FormatString = "N0"; - TotalReads.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; - TotalReads.FieldName = "TotalReads"; - TotalReads.MaxWidth = 95; - TotalReads.MinWidth = 95; - TotalReads.Name = "TotalReads"; - TotalReads.OptionsColumn.AllowEdit = false; - TotalReads.OptionsColumn.AllowFocus = false; - TotalReads.OptionsColumn.AllowSize = false; - TotalReads.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - TotalReads.Visible = true; - TotalReads.VisibleIndex = 13; - TotalReads.Width = 95; + IndexStats.Width = 104; + // + // TotalUpdates + // + TotalUpdates.Caption = "Updates"; + TotalUpdates.DisplayFormat.FormatString = "N0"; + TotalUpdates.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + TotalUpdates.FieldName = "TotalUpdates"; + TotalUpdates.MaxWidth = 90; + TotalUpdates.MinWidth = 90; + TotalUpdates.Name = "TotalUpdates"; + TotalUpdates.OptionsColumn.AllowEdit = false; + TotalUpdates.OptionsColumn.AllowFocus = false; + TotalUpdates.OptionsColumn.AllowSize = false; + TotalUpdates.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + TotalUpdates.Visible = true; + TotalUpdates.VisibleIndex = 16; + TotalUpdates.Width = 90; // // LastUsage // @@ -394,16 +371,16 @@ private void InitializeComponent() { LastUsage.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; LastUsage.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; LastUsage.FieldName = "LastUsage"; - LastUsage.MaxWidth = 105; - LastUsage.MinWidth = 105; + LastUsage.MaxWidth = 104; + LastUsage.MinWidth = 104; LastUsage.Name = "LastUsage"; LastUsage.OptionsColumn.AllowEdit = false; LastUsage.OptionsColumn.AllowFocus = false; LastUsage.OptionsColumn.AllowSize = false; LastUsage.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; LastUsage.Visible = true; - LastUsage.VisibleIndex = 15; - LastUsage.Width = 105; + LastUsage.VisibleIndex = 17; + LastUsage.Width = 104; // // FixType // @@ -502,7 +479,7 @@ private void InitializeComponent() { Compression.OptionsColumn.AllowFocus = false; Compression.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; Compression.Visible = true; - Compression.VisibleIndex = 16; + Compression.VisibleIndex = 13; Compression.Width = 78; // // DatabaseName @@ -632,14 +609,16 @@ private void InitializeComponent() { TotalSeeks.DisplayFormat.FormatString = "N0"; TotalSeeks.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalSeeks.FieldName = "TotalSeeks"; - TotalSeeks.MaxWidth = 95; - TotalSeeks.MinWidth = 95; + TotalSeeks.MaxWidth = 90; + TotalSeeks.MinWidth = 90; TotalSeeks.Name = "TotalSeeks"; TotalSeeks.OptionsColumn.AllowEdit = false; TotalSeeks.OptionsColumn.AllowFocus = false; TotalSeeks.OptionsColumn.AllowSize = false; TotalSeeks.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - TotalSeeks.Width = 95; + TotalSeeks.Visible = true; + TotalSeeks.VisibleIndex = 15; + TotalSeeks.Width = 90; // // TotalScans // @@ -647,14 +626,16 @@ private void InitializeComponent() { TotalScans.DisplayFormat.FormatString = "N0"; TotalScans.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalScans.FieldName = "TotalScans"; - TotalScans.MaxWidth = 95; - TotalScans.MinWidth = 95; + TotalScans.MaxWidth = 90; + TotalScans.MinWidth = 90; TotalScans.Name = "TotalScans"; TotalScans.OptionsColumn.AllowEdit = false; TotalScans.OptionsColumn.AllowFocus = false; TotalScans.OptionsColumn.AllowSize = false; TotalScans.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - TotalScans.Width = 95; + TotalScans.Visible = true; + TotalScans.VisibleIndex = 14; + TotalScans.Width = 90; // // TotalLookups // @@ -804,18 +785,17 @@ private void InitializeComponent() { UnusedPagesCount, RowsCount, IndexStats, - TotalReads, - TotalWrites, - LastUsage, Compression, + TotalScans, + TotalSeeks, + TotalUpdates, + LastUsage, FileGroupName, FillFactor, IsPK, IsUnique, IsFiltered, IsPartitioned, - TotalSeeks, - TotalScans, TotalLookups, IndexColumns, IncludedColumns, @@ -1033,13 +1013,13 @@ private void InitializeComponent() { formatConditionRuleDataBar7.PredefinedName = null; formatConditionRuleDataBar7.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule8.Rule = formatConditionRuleDataBar7; - gridFormatRule9.Column = TotalReads; - gridFormatRule9.ColumnApplyTo = TotalReads; - gridFormatRule9.Name = "TotalReads"; + gridFormatRule9.Column = TotalUpdates; + gridFormatRule9.ColumnApplyTo = TotalUpdates; + gridFormatRule9.Name = "TotalUpdates"; formatConditionRuleDataBar8.AllowNegativeAxis = false; - formatConditionRuleDataBar8.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); - formatConditionRuleDataBar8.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); - formatConditionRuleDataBar8.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar8.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); + formatConditionRuleDataBar8.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(237)))), ((int)(((byte)(179))))); + formatConditionRuleDataBar8.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); formatConditionRuleDataBar8.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar8.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar8.DrawAxis = false; @@ -1058,13 +1038,13 @@ private void InitializeComponent() { formatConditionRuleDataBar8.PredefinedName = null; formatConditionRuleDataBar8.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule9.Rule = formatConditionRuleDataBar8; - gridFormatRule10.Column = TotalWrites; - gridFormatRule10.ColumnApplyTo = TotalWrites; - gridFormatRule10.Name = "TotalWrites"; + gridFormatRule10.Column = TotalSeeks; + gridFormatRule10.ColumnApplyTo = TotalSeeks; + gridFormatRule10.Name = "TotalSeeks"; formatConditionRuleDataBar9.AllowNegativeAxis = false; - formatConditionRuleDataBar9.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); - formatConditionRuleDataBar9.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); - formatConditionRuleDataBar9.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar9.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(155))))); + formatConditionRuleDataBar9.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(245)))), ((int)(((byte)(164))))); + formatConditionRuleDataBar9.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(115))))); formatConditionRuleDataBar9.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar9.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar9.DrawAxis = false; @@ -1083,13 +1063,13 @@ private void InitializeComponent() { formatConditionRuleDataBar9.PredefinedName = null; formatConditionRuleDataBar9.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule10.Rule = formatConditionRuleDataBar9; - gridFormatRule11.Column = TotalSeeks; - gridFormatRule11.ColumnApplyTo = TotalSeeks; - gridFormatRule11.Name = "TotalSeeks"; + gridFormatRule11.Column = TotalScans; + gridFormatRule11.ColumnApplyTo = TotalScans; + gridFormatRule11.Name = "TotalScans"; formatConditionRuleDataBar10.AllowNegativeAxis = false; - formatConditionRuleDataBar10.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); - formatConditionRuleDataBar10.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); - formatConditionRuleDataBar10.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar10.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(155))))); + formatConditionRuleDataBar10.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(245)))), ((int)(((byte)(164))))); + formatConditionRuleDataBar10.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(115))))); formatConditionRuleDataBar10.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar10.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar10.DrawAxis = false; @@ -1108,13 +1088,13 @@ private void InitializeComponent() { formatConditionRuleDataBar10.PredefinedName = null; formatConditionRuleDataBar10.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule11.Rule = formatConditionRuleDataBar10; - gridFormatRule12.Column = TotalScans; - gridFormatRule12.ColumnApplyTo = TotalScans; - gridFormatRule12.Name = "TotalScans"; + gridFormatRule12.Column = TotalLookups; + gridFormatRule12.ColumnApplyTo = TotalLookups; + gridFormatRule12.Name = "TotalLookups"; formatConditionRuleDataBar11.AllowNegativeAxis = false; - formatConditionRuleDataBar11.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); - formatConditionRuleDataBar11.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); - formatConditionRuleDataBar11.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); + formatConditionRuleDataBar11.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(155))))); + formatConditionRuleDataBar11.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(245)))), ((int)(((byte)(164))))); + formatConditionRuleDataBar11.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(229)))), ((int)(((byte)(115))))); formatConditionRuleDataBar11.Appearance.Options.UseBackColor = true; formatConditionRuleDataBar11.Appearance.Options.UseBorderColor = true; formatConditionRuleDataBar11.DrawAxis = false; @@ -1133,31 +1113,6 @@ private void InitializeComponent() { formatConditionRuleDataBar11.PredefinedName = null; formatConditionRuleDataBar11.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule12.Rule = formatConditionRuleDataBar11; - gridFormatRule13.Column = TotalLookups; - gridFormatRule13.ColumnApplyTo = TotalLookups; - gridFormatRule13.Name = "TotalLookups"; - formatConditionRuleDataBar12.AllowNegativeAxis = false; - formatConditionRuleDataBar12.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(110))))); - formatConditionRuleDataBar12.Appearance.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(215))))); - formatConditionRuleDataBar12.Appearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(247)))), ((int)(((byte)(90))))); - formatConditionRuleDataBar12.Appearance.Options.UseBackColor = true; - formatConditionRuleDataBar12.Appearance.Options.UseBorderColor = true; - formatConditionRuleDataBar12.DrawAxis = false; - formatConditionRuleDataBar12.Maximum = new decimal(new int[] { - 100, - 0, - 0, - 0}); - formatConditionRuleDataBar12.MaximumType = DevExpress.XtraEditors.FormatConditionValueType.Percent; - formatConditionRuleDataBar12.Minimum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - formatConditionRuleDataBar12.MinimumType = DevExpress.XtraEditors.FormatConditionValueType.Number; - formatConditionRuleDataBar12.PredefinedName = null; - formatConditionRuleDataBar12.RightToLeft = DevExpress.Utils.DefaultBoolean.False; - gridFormatRule13.Rule = formatConditionRuleDataBar12; this.view.FormatRules.Add(gridFormatRule1); this.view.FormatRules.Add(gridFormatRule2); this.view.FormatRules.Add(gridFormatRule3); @@ -1170,7 +1125,6 @@ private void InitializeComponent() { this.view.FormatRules.Add(gridFormatRule10); this.view.FormatRules.Add(gridFormatRule11); this.view.FormatRules.Add(gridFormatRule12); - this.view.FormatRules.Add(gridFormatRule13); this.view.GridControl = this.grid; this.view.Name = "view"; this.view.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True; @@ -1648,7 +1602,7 @@ private void InitializeComponent() { // // buttonFeedback // - this.buttonFeedback.Caption = "Feature Requests, Suggestions && Bugs"; + this.buttonFeedback.Caption = "Feature Requests && Bugs"; this.buttonFeedback.Id = 36; this.buttonFeedback.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.Image"))); this.buttonFeedback.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.LargeImage"))); diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 9fd8952..498355f 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -147,10 +147,7 @@ False - - False - - + False diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 1bf68b8..0631c1d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.61")] -[assembly: AssemblyFileVersion("1.0.0.61")] +[assembly: AssemblyVersion("1.0.0.62")] +[assembly: AssemblyFileVersion("1.0.0.62")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 9bb3eef..e5fa2c8 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -595,11 +595,11 @@ internal static string TotalSeeks { } /// - /// Looks up a localized string similar to TotalWrites. + /// Looks up a localized string similar to TotalUpdates. /// - internal static string TotalWrites { + internal static string TotalUpdates { get { - return ResourceManager.GetString("TotalWrites", resourceCulture); + return ResourceManager.GetString("TotalUpdates", resourceCulture); } } diff --git a/Properties/Resources.resx b/Properties/Resources.resx index a08a82d..701d618 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -226,8 +226,8 @@ TotalLookups - - TotalWrites + + TotalUpdates IndexColumns diff --git a/Server/Index.cs b/Server/Index.cs index f79a7b2..f01d08b 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -21,8 +21,7 @@ public class Index { public int PartitionNumber { get; set; } public long RowsCount { get; set; } - public long? TotalWrites { get; set; } - public long? TotalReads { get; set; } + public long? TotalUpdates { get; set; } public long? TotalScans { get; set; } public long? TotalSeeks { get; set; } public long? TotalLookups { get; set; } diff --git a/Server/Query.cs b/Server/Query.cs index a1b14e7..17aee6f 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -7,23 +7,6 @@ SET NOCOUNT ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF -IF OBJECT_ID('tempdb.dbo.#AllocationUnits') IS NOT NULL - DROP TABLE #AllocationUnits - -CREATE TABLE #AllocationUnits ( - ContainerID BIGINT PRIMARY KEY - , ReservedPages BIGINT NOT NULL - , UsedPages BIGINT NOT NULL -) - -INSERT INTO #AllocationUnits (ContainerID, ReservedPages, UsedPages) -SELECT [container_id] - , SUM([total_pages]) - , SUM([used_pages]) -FROM sys.allocation_units WITH(NOLOCK) -GROUP BY [container_id] -HAVING SUM([total_pages]) BETWEEN @MinIndexSize AND @MaxIndexSize - IF OBJECT_ID('tempdb.dbo.#ExcludeList') IS NOT NULL DROP TABLE #ExcludeList @@ -83,10 +66,17 @@ SELECT p.ObjectID , PartitionNumber = p.[partition_number] , DataCompression = MAX(p.[data_compression]) , RowsCount = ISNULL(SUM(p.[rows]), 0) - , PagesCount = SUM(a.ReservedPages) - , UnusedPagesCount = SUM(CASE WHEN ABS(a.ReservedPages - a.UsedPages) > 32 THEN a.ReservedPages - a.UsedPages ELSE 0 END) - FROM #AllocationUnits a - JOIN #Partitions p ON a.ContainerID = p.[partition_id] + , PagesCount = SUM(a.[total_pages]) + , UnusedPagesCount = SUM(CASE WHEN ABS(a.[total_pages] - a.[used_pages]) > 32 THEN a.[total_pages] - a.[used_pages] ELSE 0 END) + FROM #Partitions p + JOIN ( + SELECT [container_id] + , [total_pages] = SUM([total_pages]) + , [used_pages] = SUM([used_pages]) + FROM sys.allocation_units WITH(NOLOCK) + WHERE [total_pages] > 0 + GROUP BY [container_id] + ) a ON a.[container_id] = p.[partition_id] GROUP BY p.[object_id] , p.[index_id] , p.[partition_number] @@ -94,6 +84,11 @@ GROUP BY p.[object_id] JOIN sys.indexes i WITH(NOLOCK) ON i.[object_id] = p.ObjectID AND i.[index_id] = p.IndexID {6} WHERE i.[type] IN ({0}) AND i.[object_id] > 255 + AND ( + (i.[type] IN (0, 1, 2) AND p.PagesCount BETWEEN @MinIndexSize AND @MaxIndexSize) + OR + (i.[type] IN (5, 6) AND p.PagesCount <= @MaxIndexSize) + ) DECLARE @files TABLE (ID INT PRIMARY KEY) INSERT INTO @files @@ -255,7 +250,7 @@ SELECT i.ObjectID , i.RowsCount , i.IndexType , i.IsAllowPageLocks - , u.TotalWrites + , u.TotalUpdates , u.TotalSeeks , u.TotalScans , u.TotalLookups @@ -407,7 +402,7 @@ AND [object_id] NOT IN (SELECT * FROM #ExcludeList) public const string IndexStats = @" SELECT ObjectID = [object_id] , IndexID = [index_id] - , TotalWrites = NULLIF([user_updates], 0) + , TotalUpdates = NULLIF([user_updates], 0) , TotalSeeks = NULLIF([user_seeks], 0) , TotalScans = NULLIF([user_scans], 0) , TotalLookups = NULLIF([user_lookups], 0) @@ -428,7 +423,7 @@ FROM sys.dm_db_index_usage_stats WITH(NOLOCK) public const string IndexStatsAzureMaster = @" SELECT ObjectID = NULL , IndexID = NULL - , TotalWrites = NULL + , TotalUpdates = NULL , TotalSeeks = NULL , TotalScans = NULL , TotalLookups = NULL diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 55815f2..8baf63c 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -183,47 +183,43 @@ public static List GetIndexes(SqlConnection connection) { DateTime? lastWrite = _.Field(Resources.LastWrite); DateTime? lastRead = _.Field(Resources.LastRead); - long? seeks = _.Field(Resources.TotalSeeks); - long? scans = _.Field(Resources.TotalScans); - long? lookups = _.Field(Resources.TotalLookups); Index index = new Index { - DatabaseName = connection.Database, - ObjectId = _.Field(Resources.ObjectID), - IndexId = _.Field(Resources.IndexID), - IndexName = _.Field(Resources.IndexName), - ObjectName = _.Field(Resources.ObjectName), - SchemaName = _.Field(Resources.SchemaName), - PagesCount = _.Field(Resources.PagesCount), - UnusedPagesCount = _.Field(Resources.UnusedPagesCount), - PartitionNumber = _.Field(Resources.PartitionNumber), - RowsCount = _.Field(Resources.RowsCount), - FileGroupName = _.Field(Resources.FileGroupName), - IndexType = indexType, - IsPartitioned = _.Field(Resources.IsPartitioned), - IsUnique = _.Field(Resources.IsUnique), - IsPK = _.Field(Resources.IsPK), - IsFiltered = _.Field(Resources.IsFiltered), - FillFactor = _.Field(Resources.FillFactor), - IndexStats = _.Field(Resources.IndexStats), - TotalWrites = _.Field(Resources.TotalWrites), - TotalReads = (seeks ?? 0) + (scans ?? 0) > 0 ? (seeks ?? 0) + (scans ?? 0) : (long?)null, - TotalSeeks = seeks, - TotalScans = scans, - TotalLookups = lookups, - LastWrite = lastWrite, - LastRead = lastRead, - LastUsage = Nullable.Compare(lastWrite, lastRead) > 0 ? lastWrite : lastRead, - CreateDate = _.Field(Resources.CreateDate), - ModifyDate = _.Field(Resources.ModifyDate), - DataCompression = (DataCompression)_.Field(Resources.DataCompression), - Fragmentation = _.Field(Resources.Fragmentation), - PageSpaceUsed = _.Field(Resources.PageSpaceUsed), - IsAllowReorganize = _.Field(Resources.IsAllowPageLocks) && indexType != IndexType.HEAP, - IsAllowOnlineRebuild = isOnlineRebuild, - IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable && !_.Field(Resources.IsSparse), - IndexColumns = _.Field(Resources.IndexColumns), - IncludedColumns = _.Field(Resources.IncludedColumns) + DatabaseName = connection.Database, + ObjectId = _.Field(Resources.ObjectID), + IndexId = _.Field(Resources.IndexID), + IndexName = _.Field(Resources.IndexName), + ObjectName = _.Field(Resources.ObjectName), + SchemaName = _.Field(Resources.SchemaName), + PagesCount = _.Field(Resources.PagesCount), + UnusedPagesCount = _.Field(Resources.UnusedPagesCount), + PartitionNumber = _.Field(Resources.PartitionNumber), + RowsCount = _.Field(Resources.RowsCount), + FileGroupName = _.Field(Resources.FileGroupName), + IndexType = indexType, + IsPartitioned = _.Field(Resources.IsPartitioned), + IsUnique = _.Field(Resources.IsUnique), + IsPK = _.Field(Resources.IsPK), + IsFiltered = _.Field(Resources.IsFiltered), + FillFactor = _.Field(Resources.FillFactor), + IndexStats = _.Field(Resources.IndexStats), + TotalUpdates = _.Field(Resources.TotalUpdates), + TotalSeeks = _.Field(Resources.TotalSeeks), + TotalScans = _.Field(Resources.TotalScans), + TotalLookups = _.Field(Resources.TotalLookups), + LastWrite = lastWrite, + LastRead = lastRead, + LastUsage = Nullable.Compare(lastWrite, lastRead) > 0 ? lastWrite : lastRead, + CreateDate = _.Field(Resources.CreateDate), + ModifyDate = _.Field(Resources.ModifyDate), + DataCompression = (DataCompression)_.Field(Resources.DataCompression), + Fragmentation = _.Field(Resources.Fragmentation), + PageSpaceUsed = _.Field(Resources.PageSpaceUsed), + IsAllowReorganize = _.Field(Resources.IsAllowPageLocks) && indexType != IndexType.HEAP, + IsAllowOnlineRebuild = isOnlineRebuild, + IsAllowCompression = Settings.ServerInfo.IsCompressionAvailable && !_.Field(Resources.IsSparse), + IndexColumns = _.Field(Resources.IndexColumns), + IncludedColumns = _.Field(Resources.IncludedColumns) }; indexes.Add(index); @@ -251,8 +247,6 @@ public static List GetIndexes(SqlConnection connection) { .Replace("]", string.Empty) .Replace(" ", string.Empty).Truncate(240); - long? seeks = _.Field(Resources.TotalSeeks); - long? scans = _.Field(Resources.TotalScans); DateTime? lastRead = _.Field(Resources.LastRead); Index index = new Index { @@ -266,9 +260,8 @@ public static List GetIndexes(SqlConnection connection) { FileGroupName = "PRIMARY", IndexType = IndexType.MISSING_INDEX, IndexStats = _.Field(Resources.IndexStats), - TotalReads = (seeks ?? 0) + (scans ?? 0) > 0 ? (seeks ?? 0) + (scans ?? 0) : (long?)null, - TotalSeeks = seeks, - TotalScans = scans, + TotalSeeks = _.Field(Resources.TotalSeeks), + TotalScans = _.Field(Resources.TotalScans), LastRead = lastRead, LastUsage = lastRead, DataCompression = DataCompression.NONE, @@ -404,8 +397,8 @@ public static void FindUnusedIndexes(List indexes) { foreach (Index ix in indexes.Where( _ => !_.IsPartitioned && _.Warning == null - && _.TotalWrites > 50000 - && (_.TotalReads ?? 0) < _.TotalWrites / 20 + && _.TotalUpdates > 50000 + && (_.TotalScans ?? 0) + (_.TotalSeeks ?? 0) < (_.TotalUpdates ?? 0) / 20 && (_.IndexType == IndexType.CLUSTERED || _.IndexType == IndexType.NONCLUSTERED || _.IndexType == IndexType.HEAP))) { ix.Warning = WarningType.UNUSED; } From 17021a5f4915afc060f148fda7562c7d4b3fcc75 Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 31 May 2020 11:50:53 +0300 Subject: [PATCH 22/53] Remove flicks when manually refresh database list --- Forms/DatabaseBox.cs | 17 ++++++----------- Properties/Resources.Designer.cs | 2 +- Properties/Resources.resx | 2 +- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Forms/DatabaseBox.cs b/Forms/DatabaseBox.cs index b933635..dd08e3f 100644 --- a/Forms/DatabaseBox.cs +++ b/Forms/DatabaseBox.cs @@ -60,10 +60,7 @@ private void ScanDatabases(object sender, DoWorkEventArgs e) { try { connection.Open(); - if (!Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin) { - _disks = QueryEngine.GetDiskInfo(connection); - } - + _disks = QueryEngine.GetDiskInfo(connection); _databases = QueryEngine.GetDatabases(connection); } catch (Exception ex) { @@ -77,9 +74,11 @@ private void ScanDatabases(object sender, DoWorkEventArgs e) { } private void ScanDatabasesFinish(object sender, RunWorkerCompletedEventArgs e) { - if (_disks.Count > 0) { - Text = $"{Resources.DatabaseBoxTitle} {string.Join(" | ", _disks.Select(_ => _.ToString()))}"; - } + Text = _disks.Count > 0 + ? $"{Resources.DatabaseBoxTitle} {string.Join(" | ", _disks.Select(_ => _.ToString()))}" + : Resources.DatabaseBoxTitle; + + grid.DataSource = null; if (_databases.Count > 0) { var max = _databases.Max(_ => _.TotalSize); @@ -106,10 +105,6 @@ private void RefreshDatabases() { Output.Current.Add("Refresh databases..."); _ts = Stopwatch.StartNew(); - _databases.Clear(); - _disks.Clear(); - - grid.DataSource = null; buttonOK.Enabled = false; buttonRefresh.Enabled = false; TotalSize.Visible = DataSize.Visible = LogSize.Visible = DataFreeSize.Visible = LogFreeSize.Visible = !Settings.ServerInfo.IsAzure; diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index e5fa2c8..ff6cf37 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -70,7 +70,7 @@ internal static string CreateDate { } /// - /// Looks up a localized string similar to Select Databases. + /// Looks up a localized string similar to Databases. /// internal static string DatabaseBoxTitle { get { diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 701d618..368ddc9 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -293,7 +293,7 @@ ModifyDate - Select Databases + Databases LastRead From 387dde79ce8b57f781b45bdde802dff980c2db9d Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 31 May 2020 11:53:58 +0300 Subject: [PATCH 23/53] Move heaps to CCL indexes, new filter options --- Forms/ActionBox.cs | 4 + Forms/MainBox.cs | 12 +- Forms/SettingsBox.Designer.cs | 201 ++++++++++++++++++++++++---------- Forms/SettingsBox.cs | 9 +- Forms/SettingsBox.resx | 3 + Program.cs | 1 - Properties/AssemblyInfo.cs | 4 +- Server/Index.cs | 5 +- Server/Query.cs | 8 +- Server/QueryEngine.cs | 65 ++++++----- Settings/Options.cs | 13 +++ Types/IndexOp.cs | 5 +- 12 files changed, 231 insertions(+), 99 deletions(-) diff --git a/Forms/ActionBox.cs b/Forms/ActionBox.cs index 7d3d5cd..958b0e9 100644 --- a/Forms/ActionBox.cs +++ b/Forms/ActionBox.cs @@ -25,6 +25,10 @@ public ActionBox() { IndexOp.REBUILD_COLUMNSTORE_ARCHIVE } ); + + if (Settings.ServerInfo.MajorVersion >= ServerVersion.Sql2016) { + indexOps.Add(IndexOp.CREATE_COLUMNSTORE_INDEX); + } } if (Settings.ServerInfo.IsOnlineRebuildAvailable) { diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 9f691da..4865740 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -605,6 +605,10 @@ private List GetIndexOperations(Index ix) { ? IndexOp.REBUILD_ROW : IndexOp.REBUILD_PAGE); } + + if (!ix.IsPartitioned && ix.IndexType == IndexType.HEAP && Settings.ServerInfo.MajorVersion >= ServerVersion.Sql2016) { + i.Add(IndexOp.CREATE_COLUMNSTORE_INDEX); + } } if (ix.IsAllowOnlineRebuild) @@ -691,9 +695,6 @@ private void GridRowCellClick(object sender, RowCellClickEventArgs e) { } private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { - var col = e.HitInfo.Column; - if (col == null) return; - if (e.MenuType == GridMenuType.Column) { string[] columns = { GridLocalizer.Active.GetLocalizedString(GridStringId.MenuColumnGroup), @@ -704,7 +705,12 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { if (columns.Contains(item.Caption)) item.Visible = false; } + } + var col = e.HitInfo.Column; + if (col == null) return; + + if (e.MenuType == GridMenuType.Column) { if (col.Caption == Resources.Selection || col.Caption == Resources.Progress) return; diff --git a/Forms/SettingsBox.Designer.cs b/Forms/SettingsBox.Designer.cs index a1ad69e..d298f1c 100644 --- a/Forms/SettingsBox.Designer.cs +++ b/Forms/SettingsBox.Designer.cs @@ -37,6 +37,7 @@ private void InitializeComponent() { DevExpress.XtraEditors.LabelControl labelControl6; DevExpress.XtraEditors.GroupControl db3; DevExpress.XtraEditors.GroupControl groupControl3; + DevExpress.XtraEditors.LabelControl labelControl1; DevExpress.XtraEditors.LabelControl labelControl3; DevExpress.XtraEditors.LabelControl labelPadIndex; DevExpress.XtraEditors.LabelControl labelControl7; @@ -63,6 +64,8 @@ private void InitializeComponent() { this.labelSize = new DevExpress.XtraEditors.LabelControl(); this.boxConnectionTimeout = new DevExpress.XtraEditors.SpinEdit(); this.boxCommandTimeout = new DevExpress.XtraEditors.SpinEdit(); + this.boxShowOnlyMore1000Rows = new DevExpress.XtraEditors.CheckEdit(); + this.boxIgnoreHeapWithCompression = new DevExpress.XtraEditors.CheckEdit(); this.boxIgnorePermissions = new DevExpress.XtraEditors.CheckEdit(); this.boxScanMissingIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxScanNonClusteredIndex = new DevExpress.XtraEditors.CheckEdit(); @@ -72,6 +75,7 @@ private void InitializeComponent() { this.boxIgnoreReadOnlyFL = new DevExpress.XtraEditors.CheckEdit(); this.boxScanHeap = new DevExpress.XtraEditors.CheckEdit(); this.boxDelayAfterFix = new DevExpress.XtraEditors.SpinEdit(); + this.boxMultiThreadingCount = new DevExpress.XtraEditors.SpinEdit(); this.boxPadIndex = new DevExpress.XtraEditors.CheckEdit(); this.boxNoRecompute = new DevExpress.XtraEditors.ComboBoxEdit(); this.boxStatsSamplePercent = new DevExpress.XtraEditors.SpinEdit(); @@ -106,6 +110,7 @@ private void InitializeComponent() { labelControl6 = new DevExpress.XtraEditors.LabelControl(); db3 = new DevExpress.XtraEditors.GroupControl(); groupControl3 = new DevExpress.XtraEditors.GroupControl(); + labelControl1 = new DevExpress.XtraEditors.LabelControl(); labelControl3 = new DevExpress.XtraEditors.LabelControl(); labelPadIndex = new DevExpress.XtraEditors.LabelControl(); labelControl7 = new DevExpress.XtraEditors.LabelControl(); @@ -136,6 +141,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.boxCommandTimeout.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(db3)).BeginInit(); db3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.boxShowOnlyMore1000Rows.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreHeapWithCompression.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMissingIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredIndex.Properties)).BeginInit(); @@ -147,6 +154,7 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(groupControl3)).BeginInit(); groupControl3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxDelayAfterFix.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxMultiThreadingCount.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).BeginInit(); @@ -219,7 +227,7 @@ private void InitializeComponent() { // buttonCancel.AllowFocus = false; buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - buttonCancel.Location = new System.Drawing.Point(629, 511); + buttonCancel.Location = new System.Drawing.Point(642, 542); buttonCancel.Name = "buttonCancel"; buttonCancel.Size = new System.Drawing.Size(75, 23); buttonCancel.TabIndex = 0; @@ -229,7 +237,7 @@ private void InitializeComponent() { // buttonRestore // buttonRestore.AllowFocus = false; - buttonRestore.Location = new System.Drawing.Point(12, 511); + buttonRestore.Location = new System.Drawing.Point(12, 542); buttonRestore.Name = "buttonRestore"; buttonRestore.Size = new System.Drawing.Size(75, 23); buttonRestore.TabIndex = 0; @@ -400,9 +408,9 @@ private void InitializeComponent() { groupControl2.Controls.Add(this.boxConnectionTimeout); groupControl2.Controls.Add(labelControl6); groupControl2.Controls.Add(this.boxCommandTimeout); - groupControl2.Location = new System.Drawing.Point(414, 422); + groupControl2.Location = new System.Drawing.Point(414, 453); groupControl2.Name = "groupControl2"; - groupControl2.Size = new System.Drawing.Size(290, 81); + groupControl2.Size = new System.Drawing.Size(303, 81); groupControl2.TabIndex = 14; groupControl2.Text = "Timeout"; // @@ -421,7 +429,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxConnectionTimeout.Location = new System.Drawing.Point(189, 22); + this.boxConnectionTimeout.Location = new System.Drawing.Point(200, 22); this.boxConnectionTimeout.Name = "boxConnectionTimeout"; this.boxConnectionTimeout.Properties.AllowFocused = false; this.boxConnectionTimeout.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -464,7 +472,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxCommandTimeout.Location = new System.Drawing.Point(189, 50); + this.boxCommandTimeout.Location = new System.Drawing.Point(200, 50); this.boxCommandTimeout.Name = "boxCommandTimeout"; this.boxCommandTimeout.Properties.AllowFocused = false; this.boxCommandTimeout.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -494,6 +502,8 @@ private void InitializeComponent() { // // db3 // + db3.Controls.Add(this.boxShowOnlyMore1000Rows); + db3.Controls.Add(this.boxIgnoreHeapWithCompression); db3.Controls.Add(this.boxIgnorePermissions); db3.Controls.Add(this.boxScanMissingIndex); db3.Controls.Add(this.boxScanNonClusteredIndex); @@ -504,26 +514,46 @@ private void InitializeComponent() { db3.Controls.Add(this.boxScanHeap); db3.Location = new System.Drawing.Point(12, 215); db3.Name = "db3"; - db3.Size = new System.Drawing.Size(396, 114); + db3.Size = new System.Drawing.Size(396, 145); db3.TabIndex = 16; db3.Text = "Object Scan"; // + // boxShowOnlyMore1000Rows + // + this.boxShowOnlyMore1000Rows.Location = new System.Drawing.Point(228, 115); + this.boxShowOnlyMore1000Rows.Name = "boxShowOnlyMore1000Rows"; + this.boxShowOnlyMore1000Rows.Properties.AllowFocused = false; + this.boxShowOnlyMore1000Rows.Properties.Caption = " ONLY WHEN ROWS > 1000"; + this.boxShowOnlyMore1000Rows.Size = new System.Drawing.Size(154, 19); + this.boxShowOnlyMore1000Rows.TabIndex = 16; + this.boxShowOnlyMore1000Rows.TabStop = false; + // + // boxIgnoreHeapWithCompression + // + this.boxIgnoreHeapWithCompression.Location = new System.Drawing.Point(13, 115); + this.boxIgnoreHeapWithCompression.Name = "boxIgnoreHeapWithCompression"; + this.boxIgnoreHeapWithCompression.Properties.AllowFocused = false; + this.boxIgnoreHeapWithCompression.Properties.Caption = " IGNORE HEAP WITH COMPRESSION"; + this.boxIgnoreHeapWithCompression.Size = new System.Drawing.Size(200, 19); + this.boxIgnoreHeapWithCompression.TabIndex = 15; + this.boxIgnoreHeapWithCompression.TabStop = false; + // // boxIgnorePermissions // - this.boxIgnorePermissions.Location = new System.Drawing.Point(211, 84); + this.boxIgnorePermissions.Location = new System.Drawing.Point(209, 87); this.boxIgnorePermissions.Name = "boxIgnorePermissions"; this.boxIgnorePermissions.Properties.AllowFocused = false; - this.boxIgnorePermissions.Properties.Caption = "IGNORE OBJECT PERMISSIONS"; - this.boxIgnorePermissions.Size = new System.Drawing.Size(170, 19); + this.boxIgnorePermissions.Properties.Caption = " IGNORE OBJECT PERMISSIONS"; + this.boxIgnorePermissions.Size = new System.Drawing.Size(173, 19); this.boxIgnorePermissions.TabIndex = 11; this.boxIgnorePermissions.TabStop = false; // // boxScanMissingIndex // - this.boxScanMissingIndex.Location = new System.Drawing.Point(287, 25); + this.boxScanMissingIndex.Location = new System.Drawing.Point(286, 26); this.boxScanMissingIndex.Name = "boxScanMissingIndex"; this.boxScanMissingIndex.Properties.AllowFocused = false; - this.boxScanMissingIndex.Properties.Caption = "MISSING INDEX"; + this.boxScanMissingIndex.Properties.Caption = " MISSING INDEX"; this.boxScanMissingIndex.Size = new System.Drawing.Size(97, 19); this.boxScanMissingIndex.TabIndex = 14; this.boxScanMissingIndex.TabStop = false; @@ -531,10 +561,10 @@ private void InitializeComponent() { // // boxScanNonClusteredIndex // - this.boxScanNonClusteredIndex.Location = new System.Drawing.Point(166, 25); + this.boxScanNonClusteredIndex.Location = new System.Drawing.Point(166, 26); this.boxScanNonClusteredIndex.Name = "boxScanNonClusteredIndex"; this.boxScanNonClusteredIndex.Properties.AllowFocused = false; - this.boxScanNonClusteredIndex.Properties.Caption = "NON-CLUSTERED"; + this.boxScanNonClusteredIndex.Properties.Caption = " NON-CLUSTERED"; this.boxScanNonClusteredIndex.Size = new System.Drawing.Size(105, 19); this.boxScanNonClusteredIndex.TabIndex = 5; this.boxScanNonClusteredIndex.TabStop = false; @@ -542,10 +572,10 @@ private void InitializeComponent() { // // boxScanClusteredIndex // - this.boxScanClusteredIndex.Location = new System.Drawing.Point(72, 25); + this.boxScanClusteredIndex.Location = new System.Drawing.Point(72, 26); this.boxScanClusteredIndex.Name = "boxScanClusteredIndex"; this.boxScanClusteredIndex.Properties.AllowFocused = false; - this.boxScanClusteredIndex.Properties.Caption = "CLUSTERED"; + this.boxScanClusteredIndex.Properties.Caption = " CLUSTERED"; this.boxScanClusteredIndex.Size = new System.Drawing.Size(83, 19); this.boxScanClusteredIndex.TabIndex = 4; this.boxScanClusteredIndex.TabStop = false; @@ -553,10 +583,10 @@ private void InitializeComponent() { // // boxScanClusteredColumnstore // - this.boxScanClusteredColumnstore.Location = new System.Drawing.Point(13, 54); + this.boxScanClusteredColumnstore.Location = new System.Drawing.Point(13, 56); this.boxScanClusteredColumnstore.Name = "boxScanClusteredColumnstore"; this.boxScanClusteredColumnstore.Properties.AllowFocused = false; - this.boxScanClusteredColumnstore.Properties.Caption = "CLUSTERED COLUMNSTORE"; + this.boxScanClusteredColumnstore.Properties.Caption = " CLUSTERED COLUMNSTORE"; this.boxScanClusteredColumnstore.Size = new System.Drawing.Size(160, 19); this.boxScanClusteredColumnstore.TabIndex = 3; this.boxScanClusteredColumnstore.TabStop = false; @@ -564,31 +594,31 @@ private void InitializeComponent() { // // boxScanNonClusteredColumnstore // - this.boxScanNonClusteredColumnstore.Location = new System.Drawing.Point(202, 54); + this.boxScanNonClusteredColumnstore.Location = new System.Drawing.Point(199, 56); this.boxScanNonClusteredColumnstore.Name = "boxScanNonClusteredColumnstore"; this.boxScanNonClusteredColumnstore.Properties.AllowFocused = false; - this.boxScanNonClusteredColumnstore.Properties.Caption = "NON-CLUSTERED COLUMNSTORE"; - this.boxScanNonClusteredColumnstore.Size = new System.Drawing.Size(183, 19); + this.boxScanNonClusteredColumnstore.Properties.Caption = " NON-CLUSTERED COLUMNSTORE"; + this.boxScanNonClusteredColumnstore.Size = new System.Drawing.Size(185, 19); this.boxScanNonClusteredColumnstore.TabIndex = 2; this.boxScanNonClusteredColumnstore.TabStop = false; this.boxScanNonClusteredColumnstore.CheckedChanged += new System.EventHandler(this.IndexTypeCheckedChanged); // // boxIgnoreReadOnlyFL // - this.boxIgnoreReadOnlyFL.Location = new System.Drawing.Point(13, 83); + this.boxIgnoreReadOnlyFL.Location = new System.Drawing.Point(13, 86); this.boxIgnoreReadOnlyFL.Name = "boxIgnoreReadOnlyFL"; this.boxIgnoreReadOnlyFL.Properties.AllowFocused = false; - this.boxIgnoreReadOnlyFL.Properties.Caption = "IGNORE READ-ONLY FILEGROUPS"; - this.boxIgnoreReadOnlyFL.Size = new System.Drawing.Size(185, 19); + this.boxIgnoreReadOnlyFL.Properties.Caption = " IGNORE READ-ONLY FILEGROUPS"; + this.boxIgnoreReadOnlyFL.Size = new System.Drawing.Size(189, 19); this.boxIgnoreReadOnlyFL.TabIndex = 10; this.boxIgnoreReadOnlyFL.TabStop = false; // // boxScanHeap // - this.boxScanHeap.Location = new System.Drawing.Point(13, 25); + this.boxScanHeap.Location = new System.Drawing.Point(13, 26); this.boxScanHeap.Name = "boxScanHeap"; this.boxScanHeap.Properties.AllowFocused = false; - this.boxScanHeap.Properties.Caption = "HEAP"; + this.boxScanHeap.Properties.Caption = " HEAP"; this.boxScanHeap.Size = new System.Drawing.Size(65, 19); this.boxScanHeap.TabIndex = 1; this.boxScanHeap.TabStop = false; @@ -597,6 +627,8 @@ private void InitializeComponent() { // groupControl3 // groupControl3.Controls.Add(this.boxDelayAfterFix); + groupControl3.Controls.Add(labelControl1); + groupControl3.Controls.Add(this.boxMultiThreadingCount); groupControl3.Controls.Add(labelControl3); groupControl3.Controls.Add(labelPadIndex); groupControl3.Controls.Add(this.boxPadIndex); @@ -626,7 +658,7 @@ private void InitializeComponent() { groupControl3.Controls.Add(this.boxOnline); groupControl3.Location = new System.Drawing.Point(414, 4); groupControl3.Name = "groupControl3"; - groupControl3.Size = new System.Drawing.Size(290, 412); + groupControl3.Size = new System.Drawing.Size(303, 443); groupControl3.TabIndex = 17; groupControl3.Text = "Indexes"; // @@ -637,7 +669,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxDelayAfterFix.Location = new System.Drawing.Point(189, 383); + this.boxDelayAfterFix.Location = new System.Drawing.Point(200, 413); this.boxDelayAfterFix.Name = "boxDelayAfterFix"; this.boxDelayAfterFix.Properties.AllowFocused = false; this.boxDelayAfterFix.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -662,16 +694,59 @@ private void InitializeComponent() { 0, 0}); this.boxDelayAfterFix.Size = new System.Drawing.Size(88, 20); - this.boxDelayAfterFix.TabIndex = 30; + this.boxDelayAfterFix.TabIndex = 32; this.boxDelayAfterFix.TabStop = false; // + // labelControl1 + // + labelControl1.Location = new System.Drawing.Point(14, 416); + labelControl1.Name = "labelControl1"; + labelControl1.Size = new System.Drawing.Size(122, 13); + labelControl1.TabIndex = 31; + labelControl1.Text = "DELAY_MS_AFTER_FIX ="; + // + // boxMultiThreadingCount + // + this.boxMultiThreadingCount.EditValue = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.boxMultiThreadingCount.Location = new System.Drawing.Point(200, 383); + this.boxMultiThreadingCount.Name = "boxMultiThreadingCount"; + this.boxMultiThreadingCount.Properties.AllowFocused = false; + this.boxMultiThreadingCount.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; + this.boxMultiThreadingCount.Properties.Appearance.Options.UseTextOptions = true; + this.boxMultiThreadingCount.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.boxMultiThreadingCount.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.boxMultiThreadingCount.Properties.DisplayFormat.FormatString = "N00"; + this.boxMultiThreadingCount.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom; + this.boxMultiThreadingCount.Properties.EditFormat.FormatString = "n0"; + this.boxMultiThreadingCount.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom; + this.boxMultiThreadingCount.Properties.IsFloatValue = false; + this.boxMultiThreadingCount.Properties.Mask.EditMask = "N00"; + this.boxMultiThreadingCount.Properties.MaxValue = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.boxMultiThreadingCount.Properties.MinValue = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.boxMultiThreadingCount.Size = new System.Drawing.Size(88, 20); + this.boxMultiThreadingCount.TabIndex = 30; + this.boxMultiThreadingCount.TabStop = false; + // // labelControl3 // - labelControl3.Location = new System.Drawing.Point(14, 384); + labelControl3.Location = new System.Drawing.Point(14, 386); labelControl3.Name = "labelControl3"; - labelControl3.Size = new System.Drawing.Size(122, 13); + labelControl3.Size = new System.Drawing.Size(173, 13); labelControl3.TabIndex = 28; - labelControl3.Text = "DELAY_MS_AFTER_FIX ="; + labelControl3.Text = "MULTI-THREADING_PROCESSING ="; // // labelPadIndex // @@ -683,7 +758,7 @@ private void InitializeComponent() { // // boxPadIndex // - this.boxPadIndex.Location = new System.Drawing.Point(221, 186); + this.boxPadIndex.Location = new System.Drawing.Point(230, 186); this.boxPadIndex.Name = "boxPadIndex"; this.boxPadIndex.Properties.AllowFocused = false; this.boxPadIndex.Properties.Caption = ""; @@ -694,7 +769,7 @@ private void InitializeComponent() { // boxNoRecompute // this.boxNoRecompute.EditValue = ""; - this.boxNoRecompute.Location = new System.Drawing.Point(189, 354); + this.boxNoRecompute.Location = new System.Drawing.Point(200, 354); this.boxNoRecompute.Name = "boxNoRecompute"; this.boxNoRecompute.Properties.AllowFocused = false; this.boxNoRecompute.Properties.Appearance.Options.UseTextOptions = true; @@ -724,7 +799,7 @@ private void InitializeComponent() { // // labelControl15 // - labelControl15.Location = new System.Drawing.Point(14, 356); + labelControl15.Location = new System.Drawing.Point(14, 357); labelControl15.Name = "labelControl15"; labelControl15.Size = new System.Drawing.Size(151, 13); labelControl15.TabIndex = 20; @@ -737,7 +812,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxStatsSamplePercent.Location = new System.Drawing.Point(189, 325); + this.boxStatsSamplePercent.Location = new System.Drawing.Point(200, 325); this.boxStatsSamplePercent.Name = "boxStatsSamplePercent"; this.boxStatsSamplePercent.Properties.AllowFocused = false; this.boxStatsSamplePercent.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -768,7 +843,7 @@ private void InitializeComponent() { // boxScanMode // this.boxScanMode.EditValue = ""; - this.boxScanMode.Location = new System.Drawing.Point(189, 22); + this.boxScanMode.Location = new System.Drawing.Point(200, 22); this.boxScanMode.Name = "boxScanMode"; this.boxScanMode.Properties.AllowFocused = false; this.boxScanMode.Properties.Appearance.Options.UseTextOptions = true; @@ -782,7 +857,7 @@ private void InitializeComponent() { // // boxLobCompaction // - this.boxLobCompaction.Location = new System.Drawing.Point(221, 135); + this.boxLobCompaction.Location = new System.Drawing.Point(230, 135); this.boxLobCompaction.Name = "boxLobCompaction"; this.boxLobCompaction.Properties.AllowFocused = false; this.boxLobCompaction.Properties.Caption = ""; @@ -793,7 +868,7 @@ private void InitializeComponent() { // boxDataCompression // this.boxDataCompression.EditValue = ""; - this.boxDataCompression.Location = new System.Drawing.Point(189, 50); + this.boxDataCompression.Location = new System.Drawing.Point(200, 50); this.boxDataCompression.Name = "boxDataCompression"; this.boxDataCompression.Properties.AllowFocused = false; this.boxDataCompression.Properties.Appearance.Options.UseTextOptions = true; @@ -807,7 +882,7 @@ private void InitializeComponent() { // // boxSortInTempDb // - this.boxSortInTempDb.Location = new System.Drawing.Point(221, 160); + this.boxSortInTempDb.Location = new System.Drawing.Point(230, 160); this.boxSortInTempDb.Name = "boxSortInTempDb"; this.boxSortInTempDb.Properties.AllowFocused = false; this.boxSortInTempDb.Properties.Caption = ""; @@ -830,7 +905,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxFillFactor.Location = new System.Drawing.Point(189, 78); + this.boxFillFactor.Location = new System.Drawing.Point(200, 78); this.boxFillFactor.Name = "boxFillFactor"; this.boxFillFactor.Properties.AllowFocused = false; this.boxFillFactor.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -860,7 +935,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDuration.Location = new System.Drawing.Point(189, 269); + this.boxMaxDuration.Location = new System.Drawing.Point(200, 269); this.boxMaxDuration.Name = "boxMaxDuration"; this.boxMaxDuration.Properties.AllowFocused = false; this.boxMaxDuration.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -891,7 +966,7 @@ private void InitializeComponent() { // boxAbortAfterWait // this.boxAbortAfterWait.EditValue = ""; - this.boxAbortAfterWait.Location = new System.Drawing.Point(189, 297); + this.boxAbortAfterWait.Location = new System.Drawing.Point(200, 297); this.boxAbortAfterWait.Name = "boxAbortAfterWait"; this.boxAbortAfterWait.Properties.AllowFocused = false; this.boxAbortAfterWait.Properties.Appearance.Options.UseTextOptions = true; @@ -918,7 +993,7 @@ private void InitializeComponent() { 0, 0, 0}); - this.boxMaxDod.Location = new System.Drawing.Point(189, 106); + this.boxMaxDod.Location = new System.Drawing.Point(200, 106); this.boxMaxDod.Name = "boxMaxDod"; this.boxMaxDod.Properties.AllowFocused = false; this.boxMaxDod.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; @@ -951,7 +1026,7 @@ private void InitializeComponent() { // // boxWaitAtLowPriority // - this.boxWaitAtLowPriority.Location = new System.Drawing.Point(221, 239); + this.boxWaitAtLowPriority.Location = new System.Drawing.Point(230, 239); this.boxWaitAtLowPriority.Name = "boxWaitAtLowPriority"; this.boxWaitAtLowPriority.Properties.AllowFocused = false; this.boxWaitAtLowPriority.Properties.Caption = ""; @@ -969,7 +1044,7 @@ private void InitializeComponent() { // // boxOnline // - this.boxOnline.Location = new System.Drawing.Point(221, 212); + this.boxOnline.Location = new System.Drawing.Point(230, 212); this.boxOnline.Name = "boxOnline"; this.boxOnline.Properties.AllowFocused = false; this.boxOnline.Properties.Caption = ""; @@ -980,7 +1055,7 @@ private void InitializeComponent() { // pictureBox2 // pictureBox2.Image = global::SQLIndexManager.Properties.Resources.icon_exclude; - pictureBox2.Location = new System.Drawing.Point(13, 49); + pictureBox2.Location = new System.Drawing.Point(12, 49); pictureBox2.Name = "pictureBox2"; pictureBox2.Size = new System.Drawing.Size(20, 20); pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; @@ -990,7 +1065,7 @@ private void InitializeComponent() { // pictureBox1 // pictureBox1.Image = global::SQLIndexManager.Properties.Resources.icon_include; - pictureBox1.Location = new System.Drawing.Point(13, 23); + pictureBox1.Location = new System.Drawing.Point(12, 23); pictureBox1.Name = "pictureBox1"; pictureBox1.Size = new System.Drawing.Size(20, 20); pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; @@ -1000,7 +1075,7 @@ private void InitializeComponent() { // pictureBox3 // pictureBox3.Image = global::SQLIndexManager.Properties.Resources.icon_exclude; - pictureBox3.Location = new System.Drawing.Point(13, 49); + pictureBox3.Location = new System.Drawing.Point(12, 49); pictureBox3.Name = "pictureBox3"; pictureBox3.Size = new System.Drawing.Size(20, 20); pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; @@ -1010,7 +1085,7 @@ private void InitializeComponent() { // pictureBox4 // pictureBox4.Image = global::SQLIndexManager.Properties.Resources.icon_include; - pictureBox4.Location = new System.Drawing.Point(13, 23); + pictureBox4.Location = new System.Drawing.Point(12, 23); pictureBox4.Name = "pictureBox4"; pictureBox4.Size = new System.Drawing.Size(20, 20); pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; @@ -1019,7 +1094,7 @@ private void InitializeComponent() { // // boxIncludeSchemas // - this.boxIncludeSchemas.Location = new System.Drawing.Point(39, 23); + this.boxIncludeSchemas.Location = new System.Drawing.Point(38, 23); this.boxIncludeSchemas.Name = "boxIncludeSchemas"; this.boxIncludeSchemas.Properties.AutoHeightMode = DevExpress.XtraEditors.TokenEditAutoHeightMode.RestrictedExpand; this.boxIncludeSchemas.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual; @@ -1038,7 +1113,7 @@ private void InitializeComponent() { // // boxExcludeObject // - this.boxExcludeObject.Location = new System.Drawing.Point(39, 50); + this.boxExcludeObject.Location = new System.Drawing.Point(38, 50); this.boxExcludeObject.Name = "boxExcludeObject"; this.boxExcludeObject.Properties.AutoHeightMode = DevExpress.XtraEditors.TokenEditAutoHeightMode.RestrictedExpand; this.boxExcludeObject.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual; @@ -1057,7 +1132,7 @@ private void InitializeComponent() { // // boxExcludeSchemas // - this.boxExcludeSchemas.Location = new System.Drawing.Point(39, 49); + this.boxExcludeSchemas.Location = new System.Drawing.Point(38, 49); this.boxExcludeSchemas.Name = "boxExcludeSchemas"; this.boxExcludeSchemas.Properties.AutoHeightMode = DevExpress.XtraEditors.TokenEditAutoHeightMode.RestrictedExpand; this.boxExcludeSchemas.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual; @@ -1078,7 +1153,7 @@ private void InitializeComponent() { // this.buttonOK.AllowFocus = false; this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.buttonOK.Location = new System.Drawing.Point(548, 511); + this.buttonOK.Location = new System.Drawing.Point(561, 542); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(75, 23); this.buttonOK.TabIndex = 1; @@ -1087,7 +1162,7 @@ private void InitializeComponent() { // // boxIncludeObject // - this.boxIncludeObject.Location = new System.Drawing.Point(39, 23); + this.boxIncludeObject.Location = new System.Drawing.Point(38, 23); this.boxIncludeObject.Name = "boxIncludeObject"; this.boxIncludeObject.Properties.AutoHeightMode = DevExpress.XtraEditors.TokenEditAutoHeightMode.RestrictedExpand; this.boxIncludeObject.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual; @@ -1110,7 +1185,7 @@ private void InitializeComponent() { this.groupControl4.Controls.Add(pictureBox1); this.groupControl4.Controls.Add(this.boxExcludeSchemas); this.groupControl4.Controls.Add(this.boxIncludeSchemas); - this.groupControl4.Location = new System.Drawing.Point(12, 335); + this.groupControl4.Location = new System.Drawing.Point(12, 366); this.groupControl4.Name = "groupControl4"; this.groupControl4.Size = new System.Drawing.Size(396, 81); this.groupControl4.TabIndex = 18; @@ -1122,7 +1197,7 @@ private void InitializeComponent() { this.groupControl5.Controls.Add(pictureBox4); this.groupControl5.Controls.Add(this.boxIncludeObject); this.groupControl5.Controls.Add(this.boxExcludeObject); - this.groupControl5.Location = new System.Drawing.Point(12, 422); + this.groupControl5.Location = new System.Drawing.Point(12, 453); this.groupControl5.Name = "groupControl5"; this.groupControl5.Size = new System.Drawing.Size(396, 81); this.groupControl5.TabIndex = 19; @@ -1130,7 +1205,7 @@ private void InitializeComponent() { // // boxShowSettingsWhenConnectionChanged // - this.boxShowSettingsWhenConnectionChanged.Location = new System.Drawing.Point(93, 513); + this.boxShowSettingsWhenConnectionChanged.Location = new System.Drawing.Point(93, 544); this.boxShowSettingsWhenConnectionChanged.Name = "boxShowSettingsWhenConnectionChanged"; this.boxShowSettingsWhenConnectionChanged.Properties.AllowFocused = false; this.boxShowSettingsWhenConnectionChanged.Properties.Caption = "Open dialog when connection string changed"; @@ -1142,7 +1217,7 @@ private void InitializeComponent() { // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(715, 544); + this.ClientSize = new System.Drawing.Size(726, 575); this.Controls.Add(this.boxShowSettingsWhenConnectionChanged); this.Controls.Add(this.groupControl5); this.Controls.Add(this.groupControl4); @@ -1181,6 +1256,8 @@ private void InitializeComponent() { ((System.ComponentModel.ISupportInitialize)(this.boxCommandTimeout.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(db3)).EndInit(); db3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.boxShowOnlyMore1000Rows.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxIgnoreHeapWithCompression.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxIgnorePermissions.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanMissingIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxScanNonClusteredIndex.Properties)).EndInit(); @@ -1193,6 +1270,7 @@ private void InitializeComponent() { groupControl3.ResumeLayout(false); groupControl3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.boxDelayAfterFix.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.boxMultiThreadingCount.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxPadIndex.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxNoRecompute.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxStatsSamplePercent.Properties)).EndInit(); @@ -1268,7 +1346,10 @@ private void InitializeComponent() { private DevExpress.XtraEditors.CheckEdit boxPadIndex; private DevExpress.XtraEditors.LabelControl labelSkipThreshold; private DevExpress.XtraEditors.ComboBoxEdit boxSkipThreshold; - private DevExpress.XtraEditors.SpinEdit boxDelayAfterFix; + private DevExpress.XtraEditors.SpinEdit boxMultiThreadingCount; private DevExpress.XtraEditors.CheckEdit boxShowSettingsWhenConnectionChanged; + private DevExpress.XtraEditors.CheckEdit boxIgnoreHeapWithCompression; + private DevExpress.XtraEditors.SpinEdit boxDelayAfterFix; + private DevExpress.XtraEditors.CheckEdit boxShowOnlyMore1000Rows; } } \ No newline at end of file diff --git a/Forms/SettingsBox.cs b/Forms/SettingsBox.cs index 1608216..0e65d5d 100644 --- a/Forms/SettingsBox.cs +++ b/Forms/SettingsBox.cs @@ -51,7 +51,9 @@ private void UpdateControls(Options o) { boxPadIndex.Checked = o.PadIndex; boxSortInTempDb.Checked = o.SortInTempDb; boxLobCompaction.Checked = o.LobCompaction; + boxMultiThreadingCount.Value = o.DelayAfterFix; boxDelayAfterFix.Value = o.DelayAfterFix; + boxMultiThreadingCount.Value = o.MultiThreadingCount; boxMaxDod.Value = o.MaxDop; boxStatsSamplePercent.Value = o.SampleStatsPercent; boxConnectionTimeout.Value = o.ConnectionTimeout; @@ -78,6 +80,8 @@ private void UpdateControls(Options o) { boxExcludeObject.EditValue = string.Join(";", o.ExcludeObject); boxIgnorePermissions.Checked = o.IgnorePermissions; boxIgnoreReadOnlyFL.Checked = o.IgnoreReadOnlyFL; + boxIgnoreHeapWithCompression.Checked = o.IgnoreHeapWithCompression; + boxShowOnlyMore1000Rows.Checked = o.ShowOnlyMore1000Rows; } public Options GetSettings() { @@ -91,6 +95,7 @@ public Options GetSettings() { PreDescribeSize = boxMinIndexSize.Value.Maximum, MaxIndexSize = boxMaxIndexSize.Value, DelayAfterFix = (int)boxDelayAfterFix.Value, + MultiThreadingCount = (int)boxMultiThreadingCount.Value, MaxDop = (int)boxMaxDod.Value, Online = boxOnline.Checked, PadIndex = boxPadIndex.Checked, @@ -120,7 +125,9 @@ public Options GetSettings() { IncludeObject = new List (boxIncludeObject.EditValue.ToString().Split(';')), ExcludeObject = new List (boxExcludeObject.EditValue.ToString().Split(';')), IgnorePermissions = boxIgnorePermissions.Checked, - IgnoreReadOnlyFL = boxIgnoreReadOnlyFL.Checked + IgnoreReadOnlyFL = boxIgnoreReadOnlyFL.Checked, + IgnoreHeapWithCompression = boxIgnoreHeapWithCompression.Checked, + ShowOnlyMore1000Rows = boxShowOnlyMore1000Rows.Checked }; } diff --git a/Forms/SettingsBox.resx b/Forms/SettingsBox.resx index 27ec773..b22528c 100644 --- a/Forms/SettingsBox.resx +++ b/Forms/SettingsBox.resx @@ -156,6 +156,9 @@ False + + False + False diff --git a/Program.cs b/Program.cs index 9c7d99f..686aae5 100644 --- a/Program.cs +++ b/Program.cs @@ -41,7 +41,6 @@ static void Main(string[] args) { SplashScreenManager.ShowForm(typeof(SplashScreenBox)); var mainBox = new MainBox(); - Thread.Sleep(100); SplashScreenManager.CloseForm(); Application.Run(mainBox); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 0631c1d..b301711 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -7,5 +7,5 @@ [assembly: AssemblyCopyright("Sergii Syrovatchenko")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.62")] -[assembly: AssemblyFileVersion("1.0.0.62")] +[assembly: AssemblyVersion("1.0.0.63")] +[assembly: AssemblyFileVersion("1.0.0.63")] diff --git a/Server/Index.cs b/Server/Index.cs index f01d08b..81305ba 100644 --- a/Server/Index.cs +++ b/Server/Index.cs @@ -62,7 +62,10 @@ public string GetQuery() { string fullIndexName = $"{indexName} ON {objectName}"; string partition = IsPartitioned ? PartitionNumber.ToString() : "ALL"; - if (IsColumnstore) { + if (IndexType == IndexType.HEAP && FixType == IndexOp.CREATE_COLUMNSTORE_INDEX) { + sql = $"CREATE CLUSTERED COLUMNSTORE INDEX [CCL] ON {objectName} WITH (COMPRESSION_DELAY = 0, DATA_COMPRESSION = {DataCompression.COLUMNSTORE});"; + } + else if (IsColumnstore) { switch (FixType) { case IndexOp.REBUILD: diff --git a/Server/Query.cs b/Server/Query.cs index 17aee6f..a68e68b 100644 --- a/Server/Query.cs +++ b/Server/Query.cs @@ -81,7 +81,7 @@ GROUP BY p.[object_id] , p.[index_id] , p.[partition_number] ) p -JOIN sys.indexes i WITH(NOLOCK) ON i.[object_id] = p.ObjectID AND i.[index_id] = p.IndexID {6} +JOIN sys.indexes i WITH(NOLOCK) ON i.[object_id] = p.ObjectID AND i.[index_id] = p.IndexID {6} {8} WHERE i.[type] IN ({0}) AND i.[object_id] > 255 AND ( @@ -371,7 +371,7 @@ SELECT [object_id] INTO #Partitions FROM sys.partitions WITH(NOLOCK) WHERE [object_id] > 255 - AND [rows] > 0 + AND [rows] > {0} AND [object_id] NOT IN (SELECT * FROM #ExcludeList)"; public const string IncludeList = @" @@ -384,7 +384,7 @@ INSERT INTO #IncludeList SELECT [object_id] FROM sys.objects WITH(NOLOCK) WHERE [type] IN ('V', 'U') - {0}{1} + {1}{2} SELECT [object_id] , [index_id] @@ -395,7 +395,7 @@ SELECT [object_id] INTO #Partitions FROM sys.partitions WITH(NOLOCK) WHERE [object_id] > 255 - AND [rows] > 0 + AND [rows] > {0} AND [object_id] NOT IN (SELECT * FROM #ExcludeList) AND [object_id] IN (SELECT * FROM #IncludeList)"; diff --git a/Server/QueryEngine.cs b/Server/QueryEngine.cs index 8baf63c..144a512 100644 --- a/Server/QueryEngine.cs +++ b/Server/QueryEngine.cs @@ -42,20 +42,24 @@ public static List GetDatabases(SqlConnection connection) { } public static List GetDiskInfo(SqlConnection connection) { - SqlCommand cmd = new SqlCommand(Query.DiskInfo, connection) { CommandTimeout = Settings.Options.CommandTimeout }; + List di = new List(); - SqlDataAdapter adapter = new SqlDataAdapter(cmd); - DataSet data = new DataSet(); - adapter.Fill(data); + if (!Settings.ServerInfo.IsAzure && Settings.ServerInfo.IsSysAdmin) { + SqlCommand cmd = new SqlCommand(Query.DiskInfo, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - List di = new List(); - foreach (DataRow _ in data.Tables[0].Rows) { - di.Add( - new DiskInfo { - Drive = _.Field(0), - FreeSpace = _.Field(1) - } - ); + SqlDataAdapter adapter = new SqlDataAdapter(cmd); + DataSet data = new DataSet(); + adapter.Fill(data); + + + foreach (DataRow _ in data.Tables[0].Rows) { + di.Add( + new DiskInfo { + Drive = _.Field(0), + FreeSpace = _.Field(1) + } + ); + } } return di; @@ -135,24 +139,27 @@ public static List GetIndexes(SqlConnection connection) { if (!string.IsNullOrEmpty(includeListObject)) includeListObject = $"AND ( 1 = 0 {includeListObject})"; + int filterRows = Settings.Options.ShowOnlyMore1000Rows ? 1000 : 0; + string includeList = string.IsNullOrEmpty(includeListSchemas) && string.IsNullOrEmpty(includeListObject) - ? Query.IncludeListEmpty - : string.Format(Query.IncludeList, includeListSchemas, includeListObject); + ? string.Format(Query.IncludeListEmpty, filterRows) + : string.Format(Query.IncludeList, filterRows, includeListSchemas, includeListObject); - string ignoreReadOnlyFL = Settings.Options.IgnoreReadOnlyFL ? "" : "AND fg.[is_read_only] = 0"; - string ignorePermissions = Settings.Options.IgnorePermissions ? "" : "AND PERMISSIONS(i.[object_id]) & 2 = 2"; + string ignoreReadOnlyFL = Settings.Options.IgnoreReadOnlyFL ? "" : "AND fg.[is_read_only] = 0 "; + string ignorePermissions = Settings.Options.IgnorePermissions ? "" : "AND PERMISSIONS(i.[object_id]) & 2 = 2 "; + string ignoreHeapWithCompression = Settings.Options.IgnoreHeapWithCompression ? "AND (i.[type] != 0 OR (i.[type] = 0 AND p.DataCompression = 0)) " : ""; string query = string.Format(Query.PreDescribeIndexes, string.Join(", ", it), excludeList, indexQuery, lob, - indexStats, ignoreReadOnlyFL, ignorePermissions, includeList); + indexStats, ignoreReadOnlyFL, ignorePermissions, includeList, ignoreHeapWithCompression); SqlCommand cmd = new SqlCommand(query, connection) { CommandTimeout = Settings.Options.CommandTimeout }; - cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = threshold }); - cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@PreDescribeSize", SqlDbType.BigInt) { Value = Settings.Options.PreDescribeSize.PageSize() }); - cmd.Parameters.Add(new SqlParameter("@ScanMode", SqlDbType.NVarChar, 100) { Value = Settings.Options.ScanMode }); + cmd.Parameters.Add(new SqlParameter("@Fragmentation", SqlDbType.Float) { Value = threshold }); + cmd.Parameters.Add(new SqlParameter("@MinIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MinIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@MaxIndexSize", SqlDbType.BigInt) { Value = Settings.Options.MaxIndexSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@PreDescribeSize", SqlDbType.BigInt) { Value = Settings.Options.PreDescribeSize.PageSize() }); + cmd.Parameters.Add(new SqlParameter("@ScanMode", SqlDbType.NVarChar, 100) { Value = Settings.Options.ScanMode }); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet data = new DataSet(); @@ -330,8 +337,10 @@ public static void GetColumnstoreFragmentation(SqlConnection connection, Index i } public static string FixIndex(SqlConnection connection, Index ix) { + int indexId = ix.FixType == IndexOp.CREATE_COLUMNSTORE_INDEX && ix.IndexType == IndexType.HEAP ? 1 : ix.IndexId; + string sqlInfo = string.Format(ix.IsColumnstore ? Query.AfterFixColumnstoreIndex : Query.AfterFixIndex, - ix.ObjectId, ix.IndexId, ix.PartitionNumber, Settings.Options.ScanMode); + ix.ObjectId, indexId, ix.PartitionNumber, Settings.Options.ScanMode); string query = ix.GetQuery(); string sql = ix.FixType == IndexOp.DISABLE_INDEX @@ -356,7 +365,6 @@ public static string FixIndex(SqlConnection connection, Index ix) { } if (string.IsNullOrEmpty(ix.Error)) { - try { if (ix.FixType == IndexOp.UPDATE_STATISTICS_FULL || ix.FixType == IndexOp.UPDATE_STATISTICS_RESAMPLE || ix.FixType == IndexOp.UPDATE_STATISTICS_SAMPLE) { ix.IndexStats = DateTime.Now; @@ -383,6 +391,11 @@ public static string FixIndex(SqlConnection connection, Index ix) { ix.RowsCount = row.Field(Resources.RowsCount); ix.DataCompression = ((DataCompression)row.Field(Resources.DataCompression)); ix.IndexStats = row.Field(Resources.IndexStats); + + if (ix.FixType == IndexOp.CREATE_COLUMNSTORE_INDEX) { + ix.IndexName = "CCL"; + ix.IndexType = IndexType.CLUSTERED_COLUMNSTORE; + } } } catch (Exception ex) { @@ -447,10 +460,10 @@ private static IndexOp CorrectIndexOp(IndexOp op, Index ix) { if (Settings.Options.DataCompression == DataCompression.NONE && ix.DataCompression != DataCompression.NONE) return IndexOp.REBUILD_NONE; - if (Settings.Options.DataCompression == DataCompression.ROW) + if (Settings.Options.DataCompression == DataCompression.ROW && ix.DataCompression != DataCompression.ROW) return IndexOp.REBUILD_ROW; - if (Settings.Options.DataCompression == DataCompression.PAGE) + if (Settings.Options.DataCompression == DataCompression.PAGE && ix.DataCompression != DataCompression.PAGE) return IndexOp.REBUILD_PAGE; } diff --git a/Settings/Options.cs b/Settings/Options.cs index b52c3ef..702e6d7 100644 --- a/Settings/Options.cs +++ b/Settings/Options.cs @@ -18,6 +18,7 @@ public class Options { private int _connectionTimeout = 15; private int _commandTimeout = 120; private int _delayAfterFix; + private int _multiThreadingCount = 1; private int _maxDop; private int _fillFactor; private int _sampleStatsPercent = 100; @@ -94,6 +95,12 @@ public int DelayAfterFix { set => _delayAfterFix = value.IsBetween(0, 5000) ? value : _delayAfterFix; } + [XmlAttribute] + public int MultiThreadingCount { + get => _multiThreadingCount; + set => _multiThreadingCount = value.IsBetween(1, 1) ? value : _multiThreadingCount; + } + [XmlAttribute] public int MaxDop { get => _maxDop; @@ -172,6 +179,12 @@ public int MaxIndexSize { [XmlAttribute] public bool IgnoreReadOnlyFL; + [XmlAttribute] + public bool IgnoreHeapWithCompression; + + [XmlAttribute] + public bool ShowOnlyMore1000Rows; + [XmlElement] public List IncludeSchemas { get => _includeSchemas; diff --git a/Types/IndexOp.cs b/Types/IndexOp.cs index 2f8b514..498880c 100644 --- a/Types/IndexOp.cs +++ b/Types/IndexOp.cs @@ -58,7 +58,10 @@ public enum IndexOp { IGNORE = 17, [Description("SKIP")] - SKIP = 18 + SKIP = 18, + + [Description("CREATE COLUMNSTORE INDEX")] + CREATE_COLUMNSTORE_INDEX = 19 } } From 4401b9d242f45d21c54276af2322425691e8ba4a Mon Sep 17 00:00:00 2001 From: Sergey Syrovatchenko Date: Sun, 7 Jun 2020 08:30:45 +0300 Subject: [PATCH 24/53] Resource optimization, remove export functionality --- Common/AppInfo.cs | 12 +- Common/GridMethod.cs | 4 + Common/Output.cs | 26 +- Forms/ErrorBox.cs | 5 +- Forms/MainBox.Designer.cs | 660 +++++++---------------- Forms/MainBox.cs | 164 ++---- Forms/MainBox.resx | 613 +-------------------- Forms/SettingsBox.Designer.cs | 8 +- Images/icon_about.png | Bin 0 -> 427 bytes Images/icon_copy.png | Bin 0 -> 270 bytes Images/icon_copy_fix.png | Bin 0 -> 281 bytes Images/icon_databases.png | Bin 0 -> 287 bytes Images/icon_delay.png | Bin 0 -> 392 bytes Images/icon_elapsed_time.png | Bin 0 -> 346 bytes Images/icon_error.png | Bin 0 -> 331 bytes Images/icon_errors.png | Bin 0 -> 369 bytes Images/icon_feedback.png | Bin 0 -> 359 bytes Images/icon_filter.png | Bin 0 -> 234 bytes Images/icon_fix.png | Bin 0 -> 470 bytes Images/icon_indexes.png | Bin 0 -> 283 bytes Images/icon_indexes_size.png | Bin 0 -> 267 bytes Images/icon_left_col.png | Bin 0 -> 230 bytes Images/icon_log.png | Bin 0 -> 255 bytes Images/icon_new_connection.png | Bin 0 -> 357 bytes Images/icon_ok.png | Bin 0 -> 325 bytes Images/icon_options.png | Bin 0 -> 355 bytes Images/icon_refresh.png | Bin 0 -> 385 bytes Images/icon_replace.png | Bin 0 -> 394 bytes Images/icon_restore_layout.png | Bin 0 -> 360 bytes Images/icon_run.png | Bin 0 -> 266 bytes Images/icon_save_fix.png | Bin 0 -> 276 bytes Images/icon_saved_space.png | Bin 0 -> 281 bytes Images/icon_scan.png | Bin 0 -> 300 bytes Images/icon_server_info.png | Bin 0 -> 289 bytes Images/icon_stop.png | Bin 0 -> 357 bytes Libs/DevExpress.Images.v17.2.dll | Bin 4739312 -> 0 bytes Libs/DevExpress.Sparkline.v17.2.Core.dll | Bin 89328 -> 0 bytes Libs/DevExpress.XtraPrinting.v17.2.dll | Bin 1086704 -> 0 bytes Properties/AssemblyInfo.cs | 4 +- Properties/Resources.Designer.cs | 278 +++++++++- Properties/Resources.resx | 299 ++++++---- README.md | 1 - SQLIndexManager.csproj | 39 +- Server/Connection.cs | 2 +- Server/DiskInfo.cs | 2 +- Server/QueryEngine.cs | 2 +- Server/ServerInfo.cs | 2 +- Settings/Settings.cs | 22 +- 48 files changed, 801 insertions(+), 1342 deletions(-) create mode 100644 Images/icon_about.png create mode 100644 Images/icon_copy.png create mode 100644 Images/icon_copy_fix.png create mode 100644 Images/icon_databases.png create mode 100644 Images/icon_delay.png create mode 100644 Images/icon_elapsed_time.png create mode 100644 Images/icon_error.png create mode 100644 Images/icon_errors.png create mode 100644 Images/icon_feedback.png create mode 100644 Images/icon_filter.png create mode 100644 Images/icon_fix.png create mode 100644 Images/icon_indexes.png create mode 100644 Images/icon_indexes_size.png create mode 100644 Images/icon_left_col.png create mode 100644 Images/icon_log.png create mode 100644 Images/icon_new_connection.png create mode 100644 Images/icon_ok.png create mode 100644 Images/icon_options.png create mode 100644 Images/icon_refresh.png create mode 100644 Images/icon_replace.png create mode 100644 Images/icon_restore_layout.png create mode 100644 Images/icon_run.png create mode 100644 Images/icon_save_fix.png create mode 100644 Images/icon_saved_space.png create mode 100644 Images/icon_scan.png create mode 100644 Images/icon_server_info.png create mode 100644 Images/icon_stop.png delete mode 100644 Libs/DevExpress.Images.v17.2.dll delete mode 100644 Libs/DevExpress.Sparkline.v17.2.Core.dll delete mode 100644 Libs/DevExpress.XtraPrinting.v17.2.dll diff --git a/Common/AppInfo.cs b/Common/AppInfo.cs index 7b2960f..85fd5ba 100644 --- a/Common/AppInfo.cs +++ b/Common/AppInfo.cs @@ -1,4 +1,6 @@ -using System.Reflection; +using System.Diagnostics; +using System.IO; +using System.Reflection; namespace SQLIndexManager { @@ -9,6 +11,14 @@ public static class AppInfo { public static string Copyright => ((AssemblyCopyrightAttribute)Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]).Copyright; public static string Version => Assembly.GetExecutingAssembly().GetName().Version.ToString(); + private static string ExeName => Process.GetCurrentProcess().ProcessName; + private static string ExePath => Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + + public static string ApplicationName => $"{ExeName}-{Process.GetCurrentProcess().Id}"; + public static readonly string LayoutFileName = $"{ExePath}\\{ExeName}.layout"; + public static readonly string SettingFileName = $"{ExePath}\\{ExeName}.cfg"; + public static readonly string LogFileName = $"{ExePath}\\{ExeName}.log"; + } } diff --git a/Common/GridMethod.cs b/Common/GridMethod.cs index 3f9c4ec..53115fa 100644 --- a/Common/GridMethod.cs +++ b/Common/GridMethod.cs @@ -53,6 +53,10 @@ public static void GridColumnDisplayText(object sender, CustomColumnDisplayTextE break; case "RowsCount": + case "TotalUpdates": + case "TotalScans": + case "TotalSeeks": + case "TotalLookups": e.DisplayText = $"{e.Value:n0} "; break; diff --git a/Common/Output.cs b/Common/Output.cs index cb31b62..ca08b91 100644 --- a/Common/Output.cs +++ b/Common/Output.cs @@ -1,9 +1,6 @@ using System; -using System.Collections.Generic; using System.IO; using DevExpress.XtraBars; -using DevExpress.XtraGrid; -using DevExpress.XtraGrid.Views.Grid; namespace SQLIndexManager { @@ -18,27 +15,21 @@ public class OutputEvent { public class Output { private static Output _log; - private readonly List _events; private BarStaticItem _control; - private GridControl _secondaryControl; public static Output Current => _log ?? (_log = new Output()); private Output() { - _events = new List(); - - if (File.Exists(Settings.LogFileName)) { + if (File.Exists(AppInfo.LogFileName)) { try { - File.Delete(Settings.LogFileName); + File.Delete(AppInfo.LogFileName); } catch { } } } - public void SetOutputControl(BarStaticItem control, GridControl secondaryControl) { + public void SetOutputControl(BarStaticItem control) { _control = control; - _secondaryControl = secondaryControl; - _secondaryControl.DataSource = _events; } public void AddCaption(string message) { @@ -64,20 +55,13 @@ public void Add(string message, string message2 = null, long? elapsedMillisecond Duration = duration }; - _events.Add(ev); - try { if (_control != null) { _control.Caption = msg; } - if (_secondaryControl != null) { - GridView grid = (GridView)_secondaryControl.MainView; - grid.RefreshData(); - } - - using (StreamWriter sw = File.AppendText(Settings.LogFileName)) { - sw.WriteLine($"[ {now:HH:mm:ss.fff} ] {msg}"); + using (StreamWriter sw = File.AppendText(AppInfo.LogFileName)) { + sw.WriteLine($"{now:HH:mm:ss.fff} - {msg}"); if (!string.IsNullOrEmpty(message2)) sw.WriteLine(message2); } diff --git a/Forms/ErrorBox.cs b/Forms/ErrorBox.cs index 7fd52a0..25a8d32 100644 --- a/Forms/ErrorBox.cs +++ b/Forms/ErrorBox.cs @@ -1,5 +1,4 @@ using System; -using System.Reflection; using System.Windows.Forms; using DevExpress.XtraEditors; using SQLIndexManager.Properties; @@ -14,15 +13,13 @@ public ErrorBox(Exception ex) { edError.Text = "Application has encountered an unexpected error" + $"{Environment.NewLine}Please send error detail to {Resources.GitHubLink}" + - $"{Environment.NewLine}Build: {AssemblyVersion}" + + $"{Environment.NewLine}Build: {AppInfo.Version}" + $"{Environment.NewLine}OS: {Environment.OSVersion}" + $"{Environment.NewLine}{Environment.NewLine}{ex.Message}" + $"{Environment.NewLine}{ex.Source}" + $"{Environment.NewLine}{ex.StackTrace}"; } - private static string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString(); - #region Override Methods protected override bool ProcessDialogKey(Keys keyData) { diff --git a/Forms/MainBox.Designer.cs b/Forms/MainBox.Designer.cs index ca0a747..136bafd 100644 --- a/Forms/MainBox.Designer.cs +++ b/Forms/MainBox.Designer.cs @@ -38,12 +38,19 @@ private void InitializeComponent() { DevExpress.XtraGrid.Columns.GridColumn IsUnique; DevExpress.XtraGrid.Columns.GridColumn IsFiltered; DevExpress.XtraGrid.Columns.GridColumn IsPartitioned; - DevExpress.XtraGrid.Columns.GridColumn colDateTime; DevExpress.XtraGrid.Columns.GridColumn TotalSeeks; DevExpress.XtraGrid.Columns.GridColumn TotalScans; DevExpress.XtraGrid.Columns.GridColumn TotalLookups; DevExpress.XtraGrid.Columns.GridColumn IndexColumns; DevExpress.XtraGrid.Columns.GridColumn IncludedColumns; + DevExpress.XtraGrid.Columns.GridColumn Warning; + DevExpress.XtraGrid.Columns.GridColumn PageSpaceUsed; + DevExpress.XtraGrid.Columns.GridColumn Duration; + DevExpress.XtraGrid.Columns.GridColumn Error; + DevExpress.XtraGrid.Columns.GridColumn CreateDate; + DevExpress.XtraGrid.Columns.GridColumn ModifyDate; + DevExpress.XtraGrid.Columns.GridColumn LastRead; + DevExpress.XtraGrid.Columns.GridColumn LastWrite; DevExpress.XtraGrid.GridFormatRule gridFormatRule1 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleIconSet formatConditionRuleIconSet1 = new DevExpress.XtraEditors.FormatConditionRuleIconSet(); DevExpress.XtraEditors.FormatConditionIconSet formatConditionIconSet1 = new DevExpress.XtraEditors.FormatConditionIconSet(); @@ -72,19 +79,9 @@ private void InitializeComponent() { DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar10 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); DevExpress.XtraGrid.GridFormatRule gridFormatRule12 = new DevExpress.XtraGrid.GridFormatRule(); DevExpress.XtraEditors.FormatConditionRuleDataBar formatConditionRuleDataBar11 = new DevExpress.XtraEditors.FormatConditionRuleDataBar(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainBox)); this.popupIndexOperation = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); - this.Warning = new DevExpress.XtraGrid.Columns.GridColumn(); - this.PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); - this.Duration = new DevExpress.XtraGrid.Columns.GridColumn(); - this.repositoryItemHypertextLabel1 = new DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel(); this.grid = new DevExpress.XtraGrid.GridControl(); this.view = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.Error = new DevExpress.XtraGrid.Columns.GridColumn(); - this.CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); - this.ModifyDate = new DevExpress.XtraGrid.Columns.GridColumn(); - this.LastRead = new DevExpress.XtraGrid.Columns.GridColumn(); - this.LastWrite = new DevExpress.XtraGrid.Columns.GridColumn(); this.gridToolTipController = new DevExpress.Utils.ToolTipController(this.components); this.statusBar = new DevExpress.XtraBars.Ribbon.RibbonStatusBar(); this.labelDatabases = new DevExpress.XtraBars.BarStaticItem(); @@ -105,12 +102,6 @@ private void InitializeComponent() { this.buttonCopyFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonSaveFix = new DevExpress.XtraBars.BarButtonItem(); this.buttonOptions = new DevExpress.XtraBars.BarButtonItem(); - this.popupExport = new DevExpress.XtraBars.PopupMenu(this.components); - this.buttonExportExcel = new DevExpress.XtraBars.BarButtonItem(); - this.buttonExportCSV = new DevExpress.XtraBars.BarButtonItem(); - this.buttonExportText = new DevExpress.XtraBars.BarButtonItem(); - this.buttonExportHtml = new DevExpress.XtraBars.BarButtonItem(); - this.buttonRestoreDefaultLayout = new DevExpress.XtraBars.BarButtonItem(); this.buttonAbout = new DevExpress.XtraBars.BarButtonItem(); this.buttonRefreshIndex = new DevExpress.XtraBars.BarButtonItem(); this.buttonDatabases = new DevExpress.XtraBars.BarButtonItem(); @@ -120,14 +111,7 @@ private void InitializeComponent() { this.buttonFeedback = new DevExpress.XtraBars.BarButtonItem(); this.toolTipController = new DevExpress.Utils.ToolTipController(this.components); this.taskbar = new DevExpress.Utils.Taskbar.TaskbarAssistant(); - this.imageCollection = new DevExpress.Utils.ImageCollection(this.components); this.buttonFind = new DevExpress.XtraBars.BarButtonItem(); - this.splitContainer = new DevExpress.XtraEditors.SplitContainerControl(); - this.gridLog = new DevExpress.XtraGrid.GridControl(); - this.viewLog = new DevExpress.XtraGrid.Views.Grid.GridView(); - this.colDuration = new DevExpress.XtraGrid.Columns.GridColumn(); - this.colMessage = new DevExpress.XtraGrid.Columns.GridColumn(); - this.repositoryItemMemoEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit(); Fragmentation = new DevExpress.XtraGrid.Columns.GridColumn(); PagesCount = new DevExpress.XtraGrid.Columns.GridColumn(); RowsCount = new DevExpress.XtraGrid.Columns.GridColumn(); @@ -151,26 +135,25 @@ private void InitializeComponent() { IsUnique = new DevExpress.XtraGrid.Columns.GridColumn(); IsFiltered = new DevExpress.XtraGrid.Columns.GridColumn(); IsPartitioned = new DevExpress.XtraGrid.Columns.GridColumn(); - colDateTime = new DevExpress.XtraGrid.Columns.GridColumn(); TotalSeeks = new DevExpress.XtraGrid.Columns.GridColumn(); TotalScans = new DevExpress.XtraGrid.Columns.GridColumn(); TotalLookups = new DevExpress.XtraGrid.Columns.GridColumn(); IndexColumns = new DevExpress.XtraGrid.Columns.GridColumn(); IncludedColumns = new DevExpress.XtraGrid.Columns.GridColumn(); + Warning = new DevExpress.XtraGrid.Columns.GridColumn(); + PageSpaceUsed = new DevExpress.XtraGrid.Columns.GridColumn(); + Duration = new DevExpress.XtraGrid.Columns.GridColumn(); + Error = new DevExpress.XtraGrid.Columns.GridColumn(); + CreateDate = new DevExpress.XtraGrid.Columns.GridColumn(); + ModifyDate = new DevExpress.XtraGrid.Columns.GridColumn(); + LastRead = new DevExpress.XtraGrid.Columns.GridColumn(); + LastWrite = new DevExpress.XtraGrid.Columns.GridColumn(); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.view)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupExport)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); - this.splitContainer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.gridLog)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.viewLog)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.repositoryItemMemoEdit1)).BeginInit(); this.SuspendLayout(); // // Fragmentation @@ -349,8 +332,6 @@ private void InitializeComponent() { // TotalUpdates // TotalUpdates.Caption = "Updates"; - TotalUpdates.DisplayFormat.FormatString = "N0"; - TotalUpdates.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalUpdates.FieldName = "TotalUpdates"; TotalUpdates.MaxWidth = 90; TotalUpdates.MinWidth = 90; @@ -358,7 +339,10 @@ private void InitializeComponent() { TotalUpdates.OptionsColumn.AllowEdit = false; TotalUpdates.OptionsColumn.AllowFocus = false; TotalUpdates.OptionsColumn.AllowSize = false; - TotalUpdates.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + TotalUpdates.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + TotalUpdates.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + TotalUpdates.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + TotalUpdates.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; TotalUpdates.Visible = true; TotalUpdates.VisibleIndex = 16; TotalUpdates.Width = 90; @@ -584,30 +568,9 @@ private void InitializeComponent() { IsPartitioned.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; IsPartitioned.Width = 70; // - // colDateTime - // - colDateTime.AppearanceCell.Options.UseTextOptions = true; - colDateTime.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - colDateTime.Caption = "Event"; - colDateTime.DisplayFormat.FormatString = "HH:mm:ss.fff"; - colDateTime.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - colDateTime.FieldName = "DateTime"; - colDateTime.MaxWidth = 90; - colDateTime.MinWidth = 90; - colDateTime.Name = "colDateTime"; - colDateTime.OptionsColumn.AllowEdit = false; - colDateTime.OptionsColumn.AllowFocus = false; - colDateTime.OptionsColumn.AllowShowHide = false; - colDateTime.OptionsColumn.ShowInCustomizationForm = false; - colDateTime.Visible = true; - colDateTime.VisibleIndex = 0; - colDateTime.Width = 90; - // // TotalSeeks // TotalSeeks.Caption = "Seeks"; - TotalSeeks.DisplayFormat.FormatString = "N0"; - TotalSeeks.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalSeeks.FieldName = "TotalSeeks"; TotalSeeks.MaxWidth = 90; TotalSeeks.MinWidth = 90; @@ -615,7 +578,10 @@ private void InitializeComponent() { TotalSeeks.OptionsColumn.AllowEdit = false; TotalSeeks.OptionsColumn.AllowFocus = false; TotalSeeks.OptionsColumn.AllowSize = false; - TotalSeeks.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + TotalSeeks.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + TotalSeeks.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + TotalSeeks.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + TotalSeeks.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; TotalSeeks.Visible = true; TotalSeeks.VisibleIndex = 15; TotalSeeks.Width = 90; @@ -623,8 +589,6 @@ private void InitializeComponent() { // TotalScans // TotalScans.Caption = "Scans"; - TotalScans.DisplayFormat.FormatString = "N0"; - TotalScans.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalScans.FieldName = "TotalScans"; TotalScans.MaxWidth = 90; TotalScans.MinWidth = 90; @@ -632,7 +596,10 @@ private void InitializeComponent() { TotalScans.OptionsColumn.AllowEdit = false; TotalScans.OptionsColumn.AllowFocus = false; TotalScans.OptionsColumn.AllowSize = false; - TotalScans.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + TotalScans.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + TotalScans.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + TotalScans.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + TotalScans.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; TotalScans.Visible = true; TotalScans.VisibleIndex = 14; TotalScans.Width = 90; @@ -640,8 +607,6 @@ private void InitializeComponent() { // TotalLookups // TotalLookups.Caption = "Lookups"; - TotalLookups.DisplayFormat.FormatString = "N0"; - TotalLookups.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; TotalLookups.FieldName = "TotalLookups"; TotalLookups.MaxWidth = 95; TotalLookups.MinWidth = 95; @@ -649,7 +614,10 @@ private void InitializeComponent() { TotalLookups.OptionsColumn.AllowEdit = false; TotalLookups.OptionsColumn.AllowFocus = false; TotalLookups.OptionsColumn.AllowSize = false; - TotalLookups.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + TotalLookups.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + TotalLookups.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + TotalLookups.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + TotalLookups.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; TotalLookups.Width = 95; // // IndexColumns @@ -678,75 +646,151 @@ private void InitializeComponent() { // // Warning // - this.Warning.AppearanceCell.Options.UseTextOptions = true; - this.Warning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.Warning.Caption = "Warning"; - this.Warning.FieldName = "Warning"; - this.Warning.MaxWidth = 90; - this.Warning.MinWidth = 90; - this.Warning.Name = "Warning"; - this.Warning.OptionsColumn.AllowEdit = false; - this.Warning.OptionsColumn.AllowFocus = false; - this.Warning.OptionsColumn.AllowSize = false; - this.Warning.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - this.Warning.Width = 90; + Warning.AppearanceCell.Options.UseTextOptions = true; + Warning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + Warning.Caption = "Warning"; + Warning.FieldName = "Warning"; + Warning.MaxWidth = 90; + Warning.MinWidth = 90; + Warning.Name = "Warning"; + Warning.OptionsColumn.AllowEdit = false; + Warning.OptionsColumn.AllowFocus = false; + Warning.OptionsColumn.AllowSize = false; + Warning.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + Warning.Width = 90; // // PageSpaceUsed // - this.PageSpaceUsed.Caption = "Page Space Used"; - this.PageSpaceUsed.FieldName = "PageSpaceUsed"; - this.PageSpaceUsed.MaxWidth = 103; - this.PageSpaceUsed.MinWidth = 103; - this.PageSpaceUsed.Name = "PageSpaceUsed"; - this.PageSpaceUsed.OptionsColumn.AllowEdit = false; - this.PageSpaceUsed.OptionsColumn.AllowFocus = false; - this.PageSpaceUsed.OptionsColumn.AllowSize = false; - this.PageSpaceUsed.OptionsFilter.AllowAutoFilter = false; - this.PageSpaceUsed.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; - this.PageSpaceUsed.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; - this.PageSpaceUsed.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; - this.PageSpaceUsed.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; - this.PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; - this.PageSpaceUsed.Width = 103; + PageSpaceUsed.Caption = "Page Space Used"; + PageSpaceUsed.FieldName = "PageSpaceUsed"; + PageSpaceUsed.MaxWidth = 103; + PageSpaceUsed.MinWidth = 103; + PageSpaceUsed.Name = "PageSpaceUsed"; + PageSpaceUsed.OptionsColumn.AllowEdit = false; + PageSpaceUsed.OptionsColumn.AllowFocus = false; + PageSpaceUsed.OptionsColumn.AllowSize = false; + PageSpaceUsed.OptionsFilter.AllowAutoFilter = false; + PageSpaceUsed.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.Excel; + PageSpaceUsed.OptionsFilter.PopupExcelFilterDefaultTab = DevExpress.XtraGrid.Columns.ExcelFilterDefaultTab.Values; + PageSpaceUsed.OptionsFilter.PopupExcelFilterEnumFilters = DevExpress.XtraGrid.Columns.ExcelFilterEnumFilters.EqualityFilters; + PageSpaceUsed.OptionsFilter.PopupExcelFilterNumericValuesTabFilterType = DevExpress.XtraGrid.Columns.ExcelFilterNumericValuesTabFilterType.Range; + PageSpaceUsed.UnboundType = DevExpress.Data.UnboundColumnType.String; + PageSpaceUsed.Width = 103; // // Duration // - this.Duration.AppearanceCell.Options.UseTextOptions = true; - this.Duration.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.Duration.Caption = "Duration"; - this.Duration.FieldName = "Duration"; - this.Duration.MaxWidth = 73; - this.Duration.MinWidth = 73; - this.Duration.Name = "Duration"; - this.Duration.OptionsColumn.AllowEdit = false; - this.Duration.OptionsColumn.AllowFocus = false; - this.Duration.OptionsColumn.AllowIncrementalSearch = false; - this.Duration.OptionsColumn.AllowMove = false; - this.Duration.OptionsColumn.AllowShowHide = false; - this.Duration.OptionsColumn.AllowSize = false; - this.Duration.OptionsColumn.ReadOnly = true; - this.Duration.OptionsColumn.ShowInCustomizationForm = false; - this.Duration.OptionsColumn.ShowInExpressionEditor = false; - this.Duration.OptionsColumn.TabStop = false; - this.Duration.OptionsFilter.AllowAutoFilter = false; - this.Duration.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; - this.Duration.Width = 73; - // - // repositoryItemHypertextLabel1 - // - this.repositoryItemHypertextLabel1.Name = "repositoryItemHypertextLabel1"; + Duration.AppearanceCell.Options.UseTextOptions = true; + Duration.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + Duration.Caption = "Duration"; + Duration.FieldName = "Duration"; + Duration.MaxWidth = 73; + Duration.MinWidth = 73; + Duration.Name = "Duration"; + Duration.OptionsColumn.AllowEdit = false; + Duration.OptionsColumn.AllowFocus = false; + Duration.OptionsColumn.AllowIncrementalSearch = false; + Duration.OptionsColumn.AllowMove = false; + Duration.OptionsColumn.AllowShowHide = false; + Duration.OptionsColumn.AllowSize = false; + Duration.OptionsColumn.ReadOnly = true; + Duration.OptionsColumn.ShowInCustomizationForm = false; + Duration.OptionsColumn.ShowInExpressionEditor = false; + Duration.OptionsColumn.TabStop = false; + Duration.OptionsFilter.AllowAutoFilter = false; + Duration.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.List; + Duration.Width = 73; + // + // Error + // + Error.Caption = "Error Message"; + Error.FieldName = "Error"; + Error.MaxWidth = 300; + Error.MinWidth = 120; + Error.Name = "Error"; + Error.OptionsColumn.AllowEdit = false; + Error.OptionsColumn.AllowFocus = false; + Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; + Error.Width = 120; + // + // CreateDate + // + CreateDate.AppearanceCell.Options.UseTextOptions = true; + CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + CreateDate.Caption = "Create Date"; + CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + CreateDate.FieldName = "CreateDate"; + CreateDate.MaxWidth = 105; + CreateDate.MinWidth = 105; + CreateDate.Name = "CreateDate"; + CreateDate.OptionsColumn.AllowEdit = false; + CreateDate.OptionsColumn.AllowFocus = false; + CreateDate.OptionsColumn.AllowSize = false; + CreateDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + CreateDate.Width = 105; + // + // ModifyDate + // + ModifyDate.AppearanceCell.Options.UseTextOptions = true; + ModifyDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + ModifyDate.Caption = "Modify Date"; + ModifyDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + ModifyDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + ModifyDate.FieldName = "ModifyDate"; + ModifyDate.MaxWidth = 105; + ModifyDate.MinWidth = 105; + ModifyDate.Name = "ModifyDate"; + ModifyDate.OptionsColumn.AllowEdit = false; + ModifyDate.OptionsColumn.AllowFocus = false; + ModifyDate.OptionsColumn.AllowSize = false; + ModifyDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + ModifyDate.Width = 105; + // + // LastRead + // + LastRead.AppearanceCell.Options.UseTextOptions = true; + LastRead.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + LastRead.Caption = "Last Read"; + LastRead.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + LastRead.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + LastRead.FieldName = "LastRead"; + LastRead.MaxWidth = 105; + LastRead.MinWidth = 105; + LastRead.Name = "LastRead"; + LastRead.OptionsColumn.AllowEdit = false; + LastRead.OptionsColumn.AllowFocus = false; + LastRead.OptionsColumn.AllowSize = false; + LastRead.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + LastRead.Width = 105; + // + // LastWrite + // + LastWrite.AppearanceCell.Options.UseTextOptions = true; + LastWrite.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + LastWrite.Caption = "Last Write"; + LastWrite.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; + LastWrite.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + LastWrite.FieldName = "LastWrite"; + LastWrite.MaxWidth = 105; + LastWrite.MinWidth = 105; + LastWrite.Name = "LastWrite"; + LastWrite.OptionsColumn.AllowEdit = false; + LastWrite.OptionsColumn.AllowFocus = false; + LastWrite.OptionsColumn.AllowSize = false; + LastWrite.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; + LastWrite.Width = 105; // // grid // this.grid.Dock = System.Windows.Forms.DockStyle.Fill; this.grid.Font = new System.Drawing.Font("Tahoma", 9F); - this.grid.Location = new System.Drawing.Point(0, 0); + this.grid.Location = new System.Drawing.Point(0, 27); this.grid.MainView = this.view; this.grid.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); this.grid.Name = "grid"; this.grid.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { this.popupIndexOperation}); - this.grid.Size = new System.Drawing.Size(1190, 500); + this.grid.Size = new System.Drawing.Size(1190, 741); this.grid.TabIndex = 2; this.grid.ToolTipController = this.gridToolTipController; this.grid.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { @@ -770,7 +814,7 @@ private void InitializeComponent() { this.view.ColumnPanelRowHeight = 26; this.view.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { Progress, - this.Duration, + Duration, FixType, DatabaseName, SchemaName, @@ -778,7 +822,7 @@ private void InitializeComponent() { IndexName, IndexType, PartitionNumber, - this.PageSpaceUsed, + PageSpaceUsed, Fragmentation, PagesCount, SavedSpace, @@ -799,14 +843,14 @@ private void InitializeComponent() { TotalLookups, IndexColumns, IncludedColumns, - this.Warning, - this.Error, - this.CreateDate, - this.ModifyDate, - this.LastRead, - this.LastWrite}); + Warning, + Error, + CreateDate, + ModifyDate, + LastRead, + LastWrite}); this.view.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - gridFormatRule1.Column = this.Warning; + gridFormatRule1.Column = Warning; gridFormatRule1.ColumnApplyTo = IndexName; gridFormatRule1.Name = "Warning"; formatConditionIconSet1.CategoryName = "Symbols"; @@ -963,8 +1007,8 @@ private void InitializeComponent() { formatConditionRuleDataBar5.PredefinedName = null; formatConditionRuleDataBar5.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule6.Rule = formatConditionRuleDataBar5; - gridFormatRule7.Column = this.PageSpaceUsed; - gridFormatRule7.ColumnApplyTo = this.PageSpaceUsed; + gridFormatRule7.Column = PageSpaceUsed; + gridFormatRule7.ColumnApplyTo = PageSpaceUsed; gridFormatRule7.Name = "PageSpaceUsed"; formatConditionRuleDataBar6.AllowNegativeAxis = false; formatConditionRuleDataBar6.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(125)))), ((int)(((byte)(212))))); @@ -988,8 +1032,8 @@ private void InitializeComponent() { formatConditionRuleDataBar6.PredefinedName = null; formatConditionRuleDataBar6.RightToLeft = DevExpress.Utils.DefaultBoolean.False; gridFormatRule7.Rule = formatConditionRuleDataBar6; - gridFormatRule8.Column = this.Duration; - gridFormatRule8.ColumnApplyTo = this.Duration; + gridFormatRule8.Column = Duration; + gridFormatRule8.ColumnApplyTo = Duration; gridFormatRule8.Name = "Duration"; formatConditionRuleDataBar7.AllowNegativeAxis = false; formatConditionRuleDataBar7.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(214)))), ((int)(((byte)(135))))); @@ -1164,86 +1208,6 @@ private void InitializeComponent() { this.view.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(this.GridSelectionChanged); this.view.RowCountChanged += new System.EventHandler(this.GridRowCountChanged); // - // Error - // - this.Error.Caption = "Error Message"; - this.Error.FieldName = "Error"; - this.Error.MaxWidth = 300; - this.Error.MinWidth = 120; - this.Error.Name = "Error"; - this.Error.OptionsColumn.AllowEdit = false; - this.Error.OptionsColumn.AllowFocus = false; - this.Error.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList; - this.Error.Width = 120; - // - // CreateDate - // - this.CreateDate.AppearanceCell.Options.UseTextOptions = true; - this.CreateDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.CreateDate.Caption = "Create Date"; - this.CreateDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; - this.CreateDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.CreateDate.FieldName = "CreateDate"; - this.CreateDate.MaxWidth = 105; - this.CreateDate.MinWidth = 105; - this.CreateDate.Name = "CreateDate"; - this.CreateDate.OptionsColumn.AllowEdit = false; - this.CreateDate.OptionsColumn.AllowFocus = false; - this.CreateDate.OptionsColumn.AllowSize = false; - this.CreateDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; - this.CreateDate.Width = 105; - // - // ModifyDate - // - this.ModifyDate.AppearanceCell.Options.UseTextOptions = true; - this.ModifyDate.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.ModifyDate.Caption = "Modify Date"; - this.ModifyDate.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; - this.ModifyDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.ModifyDate.FieldName = "ModifyDate"; - this.ModifyDate.MaxWidth = 105; - this.ModifyDate.MinWidth = 105; - this.ModifyDate.Name = "ModifyDate"; - this.ModifyDate.OptionsColumn.AllowEdit = false; - this.ModifyDate.OptionsColumn.AllowFocus = false; - this.ModifyDate.OptionsColumn.AllowSize = false; - this.ModifyDate.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; - this.ModifyDate.Width = 105; - // - // LastRead - // - this.LastRead.AppearanceCell.Options.UseTextOptions = true; - this.LastRead.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.LastRead.Caption = "Last Read"; - this.LastRead.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; - this.LastRead.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.LastRead.FieldName = "LastRead"; - this.LastRead.MaxWidth = 105; - this.LastRead.MinWidth = 105; - this.LastRead.Name = "LastRead"; - this.LastRead.OptionsColumn.AllowEdit = false; - this.LastRead.OptionsColumn.AllowFocus = false; - this.LastRead.OptionsColumn.AllowSize = false; - this.LastRead.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; - this.LastRead.Width = 105; - // - // LastWrite - // - this.LastWrite.AppearanceCell.Options.UseTextOptions = true; - this.LastWrite.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.LastWrite.Caption = "Last Write"; - this.LastWrite.DisplayFormat.FormatString = "dd/MM/yy HH:mm"; - this.LastWrite.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.LastWrite.FieldName = "LastWrite"; - this.LastWrite.MaxWidth = 105; - this.LastWrite.MinWidth = 105; - this.LastWrite.Name = "LastWrite"; - this.LastWrite.OptionsColumn.AllowEdit = false; - this.LastWrite.OptionsColumn.AllowFocus = false; - this.LastWrite.OptionsColumn.AllowSize = false; - this.LastWrite.OptionsFilter.FilterPopupMode = DevExpress.XtraGrid.Columns.FilterPopupMode.DateSmart; - this.LastWrite.Width = 105; - // // gridToolTipController // this.gridToolTipController.GetActiveObjectInfo += new DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventHandler(this.GetActiveObjectInfo); @@ -1271,8 +1235,7 @@ private void InitializeComponent() { // this.labelDatabases.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelDatabases.Id = 12; - this.labelDatabases.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelDatabases.ImageOptions.Image"))); - this.labelDatabases.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelDatabases.ImageOptions.LargeImage"))); + this.labelDatabases.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconDatabases; this.labelDatabases.Name = "labelDatabases"; this.labelDatabases.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelDatabases.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; @@ -1281,8 +1244,7 @@ private void InitializeComponent() { // this.labelErrors.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelErrors.Id = 29; - this.labelErrors.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelErrors.ImageOptions.Image"))); - this.labelErrors.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelErrors.ImageOptions.LargeImage"))); + this.labelErrors.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconErrors; this.labelErrors.Name = "labelErrors"; this.labelErrors.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // @@ -1290,8 +1252,7 @@ private void InitializeComponent() { // this.labelIndexes.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelIndexes.Id = 13; - this.labelIndexes.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndexes.ImageOptions.Image"))); - this.labelIndexes.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndexes.ImageOptions.LargeImage"))); + this.labelIndexes.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconIndexes; this.labelIndexes.Name = "labelIndexes"; this.labelIndexes.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; this.labelIndexes.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; @@ -1300,8 +1261,7 @@ private void InitializeComponent() { // this.labelIndexesSize.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelIndexesSize.Id = 33; - this.labelIndexesSize.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelIndexesSize.ImageOptions.Image"))); - this.labelIndexesSize.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelIndexesSize.ImageOptions.LargeImage"))); + this.labelIndexesSize.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconIndexesSize; this.labelIndexesSize.Name = "labelIndexesSize"; this.labelIndexesSize.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // @@ -1309,8 +1269,7 @@ private void InitializeComponent() { // this.labelSavedSpace.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelSavedSpace.Id = 31; - this.labelSavedSpace.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.Image"))); - this.labelSavedSpace.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelSavedSpace.ImageOptions.LargeImage"))); + this.labelSavedSpace.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconSavedSpace; this.labelSavedSpace.Name = "labelSavedSpace"; this.labelSavedSpace.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // @@ -1318,8 +1277,7 @@ private void InitializeComponent() { // this.labelElapsedTime.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelElapsedTime.Id = 34; - this.labelElapsedTime.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelElapsedTime.ImageOptions.Image"))); - this.labelElapsedTime.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelElapsedTime.ImageOptions.LargeImage"))); + this.labelElapsedTime.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconElapsedTime; this.labelElapsedTime.Name = "labelElapsedTime"; this.labelElapsedTime.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // @@ -1327,8 +1285,7 @@ private void InitializeComponent() { // this.buttonStopScan.Caption = "Stop"; this.buttonStopScan.Id = 19; - this.buttonStopScan.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonStopScan.ImageOptions.Image"))); - this.buttonStopScan.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonStopScan.ImageOptions.LargeImage"))); + this.buttonStopScan.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconStop; this.buttonStopScan.Name = "buttonStopScan"; this.buttonStopScan.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; this.buttonStopScan.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonStopScanClick); @@ -1337,8 +1294,7 @@ private void InitializeComponent() { // this.buttonStopFix.Caption = "Stop"; this.buttonStopFix.Id = 2; - this.buttonStopFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonStopFix.ImageOptions.Image"))); - this.buttonStopFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonStopFix.ImageOptions.LargeImage"))); + this.buttonStopFix.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconStop; this.buttonStopFix.Name = "buttonStopFix"; this.buttonStopFix.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; this.buttonStopFix.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonStopFixClick); @@ -1347,8 +1303,7 @@ private void InitializeComponent() { // this.buttonLog.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.buttonLog.Id = 26; - this.buttonLog.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonLog.ImageOptions.Image"))); - this.buttonLog.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonLog.ImageOptions.LargeImage"))); + this.buttonLog.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconLog; this.buttonLog.Name = "buttonLog"; this.buttonLog.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonLog); // @@ -1361,8 +1316,7 @@ private void InitializeComponent() { // this.labelServerInfo.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right; this.labelServerInfo.Id = 35; - this.labelServerInfo.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.Image"))); - this.labelServerInfo.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("labelServerInfo.ImageOptions.LargeImage"))); + this.labelServerInfo.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconInfo; this.labelServerInfo.Name = "labelServerInfo"; this.labelServerInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; // @@ -1389,12 +1343,7 @@ private void InitializeComponent() { this.boxSearch, this.labelSeparator, this.buttonStopScan, - this.buttonExportExcel, - this.buttonExportCSV, - this.buttonExportText, this.buttonLog, - this.buttonExportHtml, - this.buttonRestoreDefaultLayout, this.labelErrors, this.labelSavedSpace, this.labelIndexesSize, @@ -1402,7 +1351,7 @@ private void InitializeComponent() { this.labelServerInfo, this.buttonFeedback}); this.ribbonControl1.Location = new System.Drawing.Point(0, 0); - this.ribbonControl1.MaxItemId = 38; + this.ribbonControl1.MaxItemId = 41; this.ribbonControl1.Name = "ribbonControl1"; this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonNewConnection); this.ribbonControl1.QuickToolbarItemLinks.Add(this.buttonDatabases); @@ -1433,8 +1382,7 @@ private void InitializeComponent() { this.buttonNewConnection.AllowRightClickInMenu = false; this.buttonNewConnection.Caption = "New Connection"; this.buttonNewConnection.Id = 14; - this.buttonNewConnection.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonNewConnection.ImageOptions.Image"))); - this.buttonNewConnection.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonNewConnection.ImageOptions.LargeImage"))); + this.buttonNewConnection.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconNewConnection; this.buttonNewConnection.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F2); this.buttonNewConnection.Name = "buttonNewConnection"; this.buttonNewConnection.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonNewConnectionClick); @@ -1446,8 +1394,7 @@ private void InitializeComponent() { this.buttonFix.DropDownControl = this.popupFix; this.buttonFix.Enabled = false; this.buttonFix.Id = 15; - this.buttonFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonFix.ImageOptions.Image"))); - this.buttonFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonFix.ImageOptions.LargeImage"))); + this.buttonFix.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconFix; this.buttonFix.Name = "buttonFix"; this.buttonFix.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.buttonFix_ItemClick); // @@ -1462,8 +1409,7 @@ private void InitializeComponent() { // this.buttonCopyFix.Caption = "Copy Fix Script"; this.buttonCopyFix.Id = 7; - this.buttonCopyFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonCopyFix.ImageOptions.Image"))); - this.buttonCopyFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonCopyFix.ImageOptions.LargeImage"))); + this.buttonCopyFix.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconCopyFix; this.buttonCopyFix.Name = "buttonCopyFix"; this.buttonCopyFix.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonCopyFixClick); // @@ -1471,84 +1417,24 @@ private void InitializeComponent() { // this.buttonSaveFix.Caption = "Save Fix Script"; this.buttonSaveFix.Id = 23; - this.buttonSaveFix.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonSaveFix.ImageOptions.Image"))); - this.buttonSaveFix.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonSaveFix.ImageOptions.LargeImage"))); + this.buttonSaveFix.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IiconSaveFix; this.buttonSaveFix.Name = "buttonSaveFix"; this.buttonSaveFix.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonSaveFixClick); // // buttonOptions // - this.buttonOptions.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.DropDown; this.buttonOptions.Caption = "Settings"; - this.buttonOptions.DropDownControl = this.popupExport; this.buttonOptions.Id = 16; - this.buttonOptions.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonOptions.ImageOptions.Image"))); - this.buttonOptions.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonOptions.ImageOptions.LargeImage"))); + this.buttonOptions.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconOptions; this.buttonOptions.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F12); this.buttonOptions.Name = "buttonOptions"; this.buttonOptions.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonOptionsClick); // - // popupExport - // - this.popupExport.ItemLinks.Add(this.buttonExportExcel); - this.popupExport.ItemLinks.Add(this.buttonExportCSV); - this.popupExport.ItemLinks.Add(this.buttonExportText); - this.popupExport.ItemLinks.Add(this.buttonExportHtml); - this.popupExport.ItemLinks.Add(this.buttonRestoreDefaultLayout, true); - this.popupExport.Name = "popupExport"; - this.popupExport.Ribbon = this.ribbonControl1; - // - // buttonExportExcel - // - this.buttonExportExcel.Caption = "Export to Excel"; - this.buttonExportExcel.Id = 22; - this.buttonExportExcel.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonExportExcel.ImageOptions.Image"))); - this.buttonExportExcel.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonExportExcel.ImageOptions.LargeImage"))); - this.buttonExportExcel.Name = "buttonExportExcel"; - this.buttonExportExcel.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ExportExcel); - // - // buttonExportCSV - // - this.buttonExportCSV.Caption = "Export to CSV"; - this.buttonExportCSV.Id = 23; - this.buttonExportCSV.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonExportCSV.ImageOptions.Image"))); - this.buttonExportCSV.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonExportCSV.ImageOptions.LargeImage"))); - this.buttonExportCSV.Name = "buttonExportCSV"; - this.buttonExportCSV.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ExportCsv); - // - // buttonExportText - // - this.buttonExportText.Caption = "Export to TXT"; - this.buttonExportText.Id = 24; - this.buttonExportText.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonExportText.ImageOptions.Image"))); - this.buttonExportText.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonExportText.ImageOptions.LargeImage"))); - this.buttonExportText.Name = "buttonExportText"; - this.buttonExportText.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ExportText); - // - // buttonExportHtml - // - this.buttonExportHtml.Caption = "Export to HTML"; - this.buttonExportHtml.Id = 27; - this.buttonExportHtml.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonExportHtml.ImageOptions.Image"))); - this.buttonExportHtml.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonExportHtml.ImageOptions.LargeImage"))); - this.buttonExportHtml.Name = "buttonExportHtml"; - this.buttonExportHtml.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ExportHtml); - // - // buttonRestoreDefaultLayout - // - this.buttonRestoreDefaultLayout.Caption = "Restore Layout"; - this.buttonRestoreDefaultLayout.Id = 28; - this.buttonRestoreDefaultLayout.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonRestoreDefaultLayout.ImageOptions.Image"))); - this.buttonRestoreDefaultLayout.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonRestoreDefaultLayout.ImageOptions.LargeImage"))); - this.buttonRestoreDefaultLayout.Name = "buttonRestoreDefaultLayout"; - this.buttonRestoreDefaultLayout.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.RestoreDefaultLayout); - // // buttonAbout // this.buttonAbout.Caption = "About"; this.buttonAbout.Id = 17; - this.buttonAbout.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonAbout.ImageOptions.Image"))); - this.buttonAbout.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonAbout.ImageOptions.LargeImage"))); + this.buttonAbout.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconAbout; this.buttonAbout.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F1); this.buttonAbout.Name = "buttonAbout"; this.buttonAbout.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonAboutClick); @@ -1558,8 +1444,7 @@ private void InitializeComponent() { this.buttonRefreshIndex.Caption = "Refresh Indexes"; this.buttonRefreshIndex.Enabled = false; this.buttonRefreshIndex.Id = 19; - this.buttonRefreshIndex.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonRefreshIndex.ImageOptions.Image"))); - this.buttonRefreshIndex.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonRefreshIndex.ImageOptions.LargeImage"))); + this.buttonRefreshIndex.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconRefresh; this.buttonRefreshIndex.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F5); this.buttonRefreshIndex.Name = "buttonRefreshIndex"; this.buttonRefreshIndex.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonFindClick); @@ -1569,8 +1454,7 @@ private void InitializeComponent() { this.buttonDatabases.Caption = "Select Databases"; this.buttonDatabases.Enabled = false; this.buttonDatabases.Id = 14; - this.buttonDatabases.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonDatabases.ImageOptions.Image"))); - this.buttonDatabases.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonDatabases.ImageOptions.LargeImage"))); + this.buttonDatabases.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconScan; this.buttonDatabases.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F4); this.buttonDatabases.Name = "buttonDatabases"; this.buttonDatabases.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonDatabasesClick); @@ -1604,8 +1488,7 @@ private void InitializeComponent() { // this.buttonFeedback.Caption = "Feature Requests && Bugs"; this.buttonFeedback.Id = 36; - this.buttonFeedback.ImageOptions.Image = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.Image"))); - this.buttonFeedback.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonFeedback.ImageOptions.LargeImage"))); + this.buttonFeedback.ImageOptions.Image = global::SQLIndexManager.Properties.Resources.IconFeedback; this.buttonFeedback.Name = "buttonFeedback"; this.buttonFeedback.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.ButtonFeedbackClick); // @@ -1617,143 +1500,20 @@ private void InitializeComponent() { // this.taskbar.ParentControl = this; // - // imageCollection - // - this.imageCollection.ImageStream = ((DevExpress.Utils.ImageCollectionStreamer)(resources.GetObject("imageCollection.ImageStream"))); - this.imageCollection.InsertGalleryImage("time_16x16.png", "office2013/scheduling/time_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/scheduling/time_16x16.png"), 0); - this.imageCollection.Images.SetKeyName(0, "time_16x16.png"); - this.imageCollection.InsertGalleryImage("pagenext_16x16.png", "devav/actions/pagenext_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("devav/actions/pagenext_16x16.png"), 1); - this.imageCollection.Images.SetKeyName(1, "pagenext_16x16.png"); - this.imageCollection.InsertGalleryImage("apply_16x16.png", "office2013/actions/apply_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/actions/apply_16x16.png"), 2); - this.imageCollection.Images.SetKeyName(2, "apply_16x16.png"); - this.imageCollection.InsertGalleryImage("close_16x16.png", "office2013/actions/close_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/actions/close_16x16.png"), 3); - this.imageCollection.Images.SetKeyName(3, "close_16x16.png"); - this.imageCollection.InsertGalleryImage("copy_16x16.png", "office2013/edit/copy_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/edit/copy_16x16.png"), 4); - this.imageCollection.Images.SetKeyName(4, "copy_16x16.png"); - this.imageCollection.InsertGalleryImage("masterfilter_16x16.png", "office2013/filter/masterfilter_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/filter/masterfilter_16x16.png"), 5); - this.imageCollection.Images.SetKeyName(5, "masterfilter_16x16.png"); - this.imageCollection.InsertGalleryImage("showworktimeonly_16x16.png", "office2013/scheduling/showworktimeonly_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/scheduling/showworktimeonly_16x16.png"), 6); - this.imageCollection.Images.SetKeyName(6, "showworktimeonly_16x16.png"); - this.imageCollection.InsertGalleryImage("replace_16x16.png", "office2013/format/replace_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/format/replace_16x16.png"), 7); - this.imageCollection.Images.SetKeyName(7, "replace_16x16.png"); - this.imageCollection.InsertGalleryImage("article_16x16.png", "office2013/support/article_16x16.png", DevExpress.Images.ImageResourceCache.Default.GetImage("office2013/support/article_16x16.png"), 8); - this.imageCollection.Images.SetKeyName(8, "article_16x16.png"); - // // buttonFind // this.buttonFind.ActAsDropDown = true; this.buttonFind.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.DropDown; this.buttonFind.Enabled = false; this.buttonFind.Id = 11; - this.buttonFind.ImageOptions.LargeImage = ((System.Drawing.Image)(resources.GetObject("buttonFind.ImageOptions.LargeImage"))); this.buttonFind.Name = "buttonFind"; // - // splitContainer - // - this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer.Horizontal = false; - this.splitContainer.Location = new System.Drawing.Point(0, 27); - this.splitContainer.Name = "splitContainer"; - this.splitContainer.Panel1.Controls.Add(this.grid); - this.splitContainer.Panel1.Text = "Panel1"; - this.splitContainer.Panel2.Controls.Add(this.gridLog); - this.splitContainer.Panel2.Text = "Panel2"; - this.splitContainer.Size = new System.Drawing.Size(1190, 741); - this.splitContainer.SplitterPosition = 500; - this.splitContainer.TabIndex = 5; - // - // gridLog - // - this.gridLog.Dock = System.Windows.Forms.DockStyle.Fill; - this.gridLog.Font = new System.Drawing.Font("Tahoma", 9F); - this.gridLog.Location = new System.Drawing.Point(0, 0); - this.gridLog.MainView = this.viewLog; - this.gridLog.Margin = new System.Windows.Forms.Padding(3, 8, 3, 3); - this.gridLog.Name = "gridLog"; - this.gridLog.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { - this.repositoryItemMemoEdit1}); - this.gridLog.Size = new System.Drawing.Size(1190, 236); - this.gridLog.TabIndex = 4; - this.gridLog.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { - this.viewLog}); - // - // viewLog - // - this.viewLog.Appearance.EvenRow.BackColor = System.Drawing.Color.Gainsboro; - this.viewLog.Appearance.EvenRow.Options.UseBackColor = true; - this.viewLog.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.viewLog.Appearance.FocusedRow.Options.UseBackColor = true; - this.viewLog.Appearance.HeaderPanel.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.viewLog.Appearance.HeaderPanel.Options.UseFont = true; - this.viewLog.Appearance.HideSelectionRow.BackColor = System.Drawing.Color.Transparent; - this.viewLog.Appearance.HideSelectionRow.Options.UseBackColor = true; - this.viewLog.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.viewLog.Appearance.OddRow.Options.UseBackColor = true; - this.viewLog.Appearance.Row.Font = new System.Drawing.Font("Tahoma", 8.75F); - this.viewLog.Appearance.Row.Options.UseFont = true; - this.viewLog.Appearance.SelectedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(212)))), ((int)(((byte)(212))))); - this.viewLog.Appearance.SelectedRow.Options.UseBackColor = true; - this.viewLog.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; - this.viewLog.ColumnPanelRowHeight = 22; - this.viewLog.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { - colDateTime, - this.colDuration, - this.colMessage}); - this.viewLog.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None; - this.viewLog.GridControl = this.gridLog; - this.viewLog.Name = "viewLog"; - this.viewLog.OptionsBehavior.Editable = false; - this.viewLog.OptionsCustomization.AllowColumnMoving = false; - this.viewLog.OptionsCustomization.AllowColumnResizing = false; - this.viewLog.OptionsCustomization.AllowFilter = false; - this.viewLog.OptionsCustomization.AllowGroup = false; - this.viewLog.OptionsCustomization.AllowQuickHideColumns = false; - this.viewLog.OptionsFilter.AllowFilterEditor = false; - this.viewLog.OptionsMenu.EnableColumnMenu = false; - this.viewLog.OptionsView.EnableAppearanceEvenRow = true; - this.viewLog.OptionsView.EnableAppearanceOddRow = true; - this.viewLog.OptionsView.RowAutoHeight = true; - this.viewLog.OptionsView.ShowGroupPanel = false; - this.viewLog.OptionsView.ShowIndicator = false; - this.viewLog.RowHeight = 22; - // - // colDuration - // - this.colDuration.AppearanceCell.Options.UseTextOptions = true; - this.colDuration.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; - this.colDuration.Caption = "Duration"; - this.colDuration.DisplayFormat.FormatString = "HH:mm:ss.fff"; - this.colDuration.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; - this.colDuration.FieldName = "Duration"; - this.colDuration.MaxWidth = 90; - this.colDuration.MinWidth = 90; - this.colDuration.Name = "colDuration"; - this.colDuration.Visible = true; - this.colDuration.VisibleIndex = 1; - this.colDuration.Width = 90; - // - // colMessage - // - this.colMessage.AppearanceCell.Options.UseTextOptions = true; - this.colMessage.AppearanceCell.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center; - this.colMessage.Caption = "Message"; - this.colMessage.ColumnEdit = this.repositoryItemMemoEdit1; - this.colMessage.FieldName = "Message"; - this.colMessage.Name = "colMessage"; - this.colMessage.Visible = true; - this.colMessage.VisibleIndex = 2; - this.colMessage.Width = 1010; - // - // repositoryItemMemoEdit1 - // - this.repositoryItemMemoEdit1.Name = "repositoryItemMemoEdit1"; - // // MainBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1190, 799); - this.Controls.Add(this.splitContainer); + this.Controls.Add(this.grid); this.Controls.Add(this.statusBar); this.Controls.Add(this.ribbonControl1); this.MinimumSize = new System.Drawing.Size(950, 599); @@ -1767,19 +1527,11 @@ private void InitializeComponent() { this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainBox_FormClosing); this.Shown += new System.EventHandler(this.MainBox_Shown); ((System.ComponentModel.ISupportInitialize)(this.popupIndexOperation)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.repositoryItemHypertextLabel1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.grid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.view)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ribbonControl1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.popupFix)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupExport)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.boxSearchControl)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageCollection)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); - this.splitContainer.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.gridLog)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.viewLog)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.repositoryItemMemoEdit1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -1801,8 +1553,6 @@ private void InitializeComponent() { private DevExpress.Utils.Taskbar.TaskbarAssistant taskbar; private DevExpress.XtraGrid.GridControl grid; private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit popupIndexOperation; - private DevExpress.Utils.ImageCollection imageCollection; - private DevExpress.XtraGrid.Columns.GridColumn Duration; private BarButtonItem buttonCopyFix; private BarStaticItem labelDatabases; private BarStaticItem labelIndexes; @@ -1811,36 +1561,16 @@ private void InitializeComponent() { private BarEditItem boxSearch; private DevExpress.XtraEditors.Repository.RepositoryItemSearchControl boxSearchControl; private BarStaticItem labelSeparator; - private DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel repositoryItemHypertextLabel1; private BarButtonItem buttonStopScan; private BarButtonItem buttonFind; private DevExpress.Utils.ToolTipController gridToolTipController; - private PopupMenu popupExport; - private BarButtonItem buttonExportExcel; - private BarButtonItem buttonExportCSV; - private BarButtonItem buttonExportText; - private DevExpress.XtraEditors.SplitContainerControl splitContainer; private BarButtonItem buttonLog; - private DevExpress.XtraGrid.GridControl gridLog; - private DevExpress.XtraGrid.Views.Grid.GridView viewLog; - private DevExpress.XtraGrid.Columns.GridColumn colDuration; - private DevExpress.XtraGrid.Columns.GridColumn colMessage; - private DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit repositoryItemMemoEdit1; private PopupMenu popupFix; - private BarButtonItem buttonExportHtml; - private DevExpress.XtraGrid.Columns.GridColumn PageSpaceUsed; - private DevExpress.XtraGrid.Columns.GridColumn Warning; - private BarButtonItem buttonRestoreDefaultLayout; - private DevExpress.XtraGrid.Columns.GridColumn Error; private BarStaticItem labelErrors; private BarStaticItem labelSavedSpace; private BarStaticItem labelIndexesSize; private BarStaticItem labelElapsedTime; private BarStaticItem labelServerInfo; - private DevExpress.XtraGrid.Columns.GridColumn CreateDate; - private DevExpress.XtraGrid.Columns.GridColumn ModifyDate; - private DevExpress.XtraGrid.Columns.GridColumn LastRead; - private DevExpress.XtraGrid.Columns.GridColumn LastWrite; private BarButtonItem buttonFeedback; } } \ No newline at end of file diff --git a/Forms/MainBox.cs b/Forms/MainBox.cs index 4865740..76529f9 100644 --- a/Forms/MainBox.cs +++ b/Forms/MainBox.cs @@ -20,7 +20,6 @@ using DevExpress.XtraGrid.Localization; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid.ViewInfo; -using DevExpress.XtraPrinting; using SQLIndexManager.Properties; namespace SQLIndexManager { @@ -29,9 +28,8 @@ public partial class MainBox : RibbonForm { public MainBox() { InitializeComponent(); - splitContainer.PanelVisibility = SplitPanelVisibility.Panel1; - Output.Current.SetOutputControl(labelInfo, gridLog); + Output.Current.SetOutputControl(labelInfo); Output.Current.Add($"Log folder: {Environment.CurrentDirectory}"); view.CustomColumnDisplayText += GridMethod.GridColumnDisplayText; @@ -49,23 +47,23 @@ private void MainBox_FormClosing(object sender, FormClosingEventArgs e) { SaveLayout(); } - readonly Stream defaultLayout = new MemoryStream(); + readonly Stream _defaultLayout = new MemoryStream(); private void RestoreLayout() { try { - view.SaveLayoutToStream(defaultLayout); - defaultLayout.Seek(0, SeekOrigin.Begin); + view.SaveLayoutToStream(_defaultLayout); + _defaultLayout.Seek(0, SeekOrigin.Begin); } catch { } - if (File.Exists(Settings.LayoutFileName)) { + if (File.Exists(AppInfo.LayoutFileName)) { try { - string layout = AES.Decrypt(File.ReadAllText(Settings.LayoutFileName)); + string layout = AES.Decrypt(File.ReadAllText(AppInfo.LayoutFileName)); using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(layout))) { view.RestoreLayoutFromStream(stream); } - Output.Current.Add($"Grid layout restored: {Settings.LayoutFileName}"); + Output.Current.Add($"Grid layout restored: {AppInfo.LayoutFileName}"); } catch { Output.Current.Add("Failed to restore layout"); @@ -73,23 +71,11 @@ private void RestoreLayout() { } } - private void RestoreDefaultLayout(object sender, ItemClickEventArgs e) { - try { - view.RestoreLayoutFromStream(defaultLayout); - defaultLayout.Seek(0, SeekOrigin.Begin); - - Output.Current.Add("Default grid layout restored"); - } - catch { - Output.Current.Add("Failed to restore default layout"); - } - } - private void SaveLayout() { HideSystemColumns(); try { - using (StreamWriter file = new StreamWriter(new FileStream(Settings.LayoutFileName, FileMode.Create))) { + using (StreamWriter file = new StreamWriter(new FileStream(AppInfo.LayoutFileName, FileMode.Create))) { Stream str = new MemoryStream(); view.SaveLayoutToStream(str); str.Seek(0, SeekOrigin.Begin); @@ -98,7 +84,7 @@ private void SaveLayout() { file.Write(AES.Encrypt(layout)); file.Close(); - Output.Current.Add($"Grid layout saved: {Settings.LayoutFileName}"); + Output.Current.Add($"Grid layout saved: {AppInfo.LayoutFileName}"); } } catch { @@ -228,8 +214,7 @@ private void ScanIndexesFinish(object sender, RunWorkerCompletedEventArgs e) { buttonOptions.Enabled = buttonDatabases.Enabled = buttonRefreshIndex.Enabled = - buttonNewConnection.Enabled = - buttonRestoreDefaultLayout.Enabled = true; + buttonNewConnection.Enabled = true; buttonStopScan.Visibility = BarItemVisibility.Never; @@ -323,8 +308,7 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { buttonDatabases.Enabled = buttonRefreshIndex.Enabled = buttonNewConnection.Enabled = - buttonOptions.Enabled = - buttonRestoreDefaultLayout.Enabled = false; + buttonOptions.Enabled = false; buttonStopFix.Visibility = BarItemVisibility.Always; @@ -343,7 +327,7 @@ private void buttonFix_ItemClick(object sender, ItemClickEventArgs e) { UpdateProgressStats(); foreach (Index row in fixIndex) { - row.Progress = imageCollection.Images[0]; + row.Progress = Resources.IconElapsedTime; } SaveSortRules(); @@ -399,7 +383,7 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { return; } - item.Progress = imageCollection.Images[1]; + item.Progress = Resources.IconRun; _ps.Indexes++; _ps.IndexesSize += item.PagesCount; _workerFix.ReportProgress(i + 1); @@ -413,7 +397,7 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { sql = QueryEngine.FixIndex(connection, item); } - item.Progress = imageCollection.Images[2]; + item.Progress = Resources.IconOk; watch.Stop(); @@ -423,14 +407,14 @@ private void FixIndexes(object sender, DoWorkEventArgs e) { if (!string.IsNullOrEmpty(item.Error)) { Output.Current.Add(item.ToString(), item.Error); - item.Progress = imageCollection.Images[3]; + item.Progress = Resources.IconError; _ps.Errors++; } else { if (Settings.Options.DelayAfterFix > 0 && i < indexes.Count - 1) { - item.Progress = imageCollection.Images[6]; + item.Progress = Resources.IconDelay; Thread.Sleep(Settings.Options.DelayAfterFix); - item.Progress = imageCollection.Images[2]; + item.Progress = Resources.IconOk; } } @@ -519,7 +503,7 @@ private void ShowConnectionBox() { } } - public void ShowSettingsBox() { + private void ShowSettingsBox() { using (SettingsBox form = new SettingsBox()) { if (form.ShowDialog(this) == DialogResult.OK) { Settings.Options = form.GetSettings(); @@ -715,7 +699,11 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { return; string colName = (col.Fixed == FixedStyle.None) ? "Freeze Column" : "Unfreeze Column"; - e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle) { Tag = col.FieldName }); + e.Menu.Items.Add(new DXMenuItem(colName, ChangeFixedColumnStyle, Resources.IconLeftCol) { Tag = col.FieldName }); + + if (view.Editable) { + e.Menu.Items.Add(new DXMenuItem("Restore Default Layout", RestoreDefaultLayout, Resources.IconRestoreLayout)); + } } else if (e.MenuType == GridMenuType.Row) { @@ -723,12 +711,28 @@ private void GridPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { return; if (view.OptionsBehavior.Editable) { - e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, imageCollection.Images[7])); + e.Menu.Items.Add(new DXMenuItem("Change Fix Action", ChangeFixAction, Resources.IconReplace)); } - e.Menu.Items.Add(new DXMenuItem("Copy Fix Script", CopyFixScript, imageCollection.Images[8])); - e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, imageCollection.Images[4]) { Tag = col.FieldName }); - e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, imageCollection.Images[5]) { Tag = col.FieldName }); + e.Menu.Items.Add(new DXMenuItem("Copy Fix Script", CopyFixScript, Resources.IconCopyFix)); + e.Menu.Items.Add(new DXMenuItem("Copy Value", CopyCellValue, Resources.IconCopy) { Tag = col.FieldName }); + e.Menu.Items.Add(new DXMenuItem("Filter Value", FilterCellValue, Resources.IconFilter) { Tag = col.FieldName }); + } + } + + private void RestoreDefaultLayout(object sender, EventArgs e) { + try { + foreach (GridColumn col in view.Columns.Where(_ => _.Fixed != FixedStyle.None)) { + col.Fixed = FixedStyle.None; + } + + view.RestoreLayoutFromStream(_defaultLayout); + _defaultLayout.Seek(0, SeekOrigin.Begin); + + Output.Current.Add("Default grid layout restored"); + } + catch { + Output.Current.Add("Failed to restore default layout"); } } @@ -822,7 +826,12 @@ private void HideSystemColumns() { } private void ButtonLog(object sender, ItemClickEventArgs e) { - splitContainer.PanelVisibility = buttonLog.Down ? SplitPanelVisibility.Both : SplitPanelVisibility.Panel1; + try { + Process.Start(AppInfo.LogFileName); + } + catch (Exception ex) { + XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); + } } private void ButtonNewConnectionClick(object sender, ItemClickEventArgs e) { @@ -920,81 +929,6 @@ private void RestoreSortRules() { #endregion - #region Export - - private void ExportCsv(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"CSV Files (*.csv)|*.csv" }; - - if (dialog.ShowDialog() == DialogResult.OK) { - CsvExportOptionsEx advOptions = new CsvExportOptionsEx { - ExportType = DevExpress.Export.ExportType.WYSIWYG, - TextExportMode = TextExportMode.Value - }; - - try { - grid.ExportToCsv(dialog.FileName, advOptions); - Output.Current.Add($"Export to CSV: {dialog.FileName}"); - } - catch (Exception ex) { - Output.Current.Add("Export to CSV failed", ex.Message); - XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - private void ExportExcel(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"Excel Files (*.xlsx)|*.xlsx" }; - - if (dialog.ShowDialog() == DialogResult.OK) { - XlsxExportOptionsEx advOptions = new XlsxExportOptionsEx { - ExportType = DevExpress.Export.ExportType.DataAware, - TextExportMode = TextExportMode.Value, - SheetName = Settings.ActiveHost.Server - }; - - try { - grid.ExportToXlsx(dialog.FileName, advOptions); - Output.Current.Add($"Export to Excel: {dialog.FileName}"); - } - catch (Exception ex) { - Output.Current.Add("Export to Excel failed", ex.Message); - XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - private void ExportText(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"Text Files (*.txt)|*.txt" }; - - if (dialog.ShowDialog() == DialogResult.OK) { - try { - grid.ExportToText(dialog.FileName); - Output.Current.Add($"Export to Text: {dialog.FileName}"); - } - catch (Exception ex) { - Output.Current.Add("Export to Text failed", ex.Message); - XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - private void ExportHtml(object sender, ItemClickEventArgs e) { - SaveFileDialog dialog = new SaveFileDialog { RestoreDirectory = true, Filter = @"HTML Files (*.html)|*.html" }; - - if (dialog.ShowDialog() == DialogResult.OK) { - try { - grid.ExportToHtml(dialog.FileName); - Output.Current.Add($"Export to Html: {dialog.FileName}"); - } - catch (Exception ex) { - Output.Current.Add("Export to Html failed", ex.Message); - XtraMessageBox.Show(ex.Message.Replace(". ", "." + Environment.NewLine), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - #endregion - } } diff --git a/Forms/MainBox.resx b/Forms/MainBox.resx index 498355f..e9a231e 100644 --- a/Forms/MainBox.resx +++ b/Forms/MainBox.resx @@ -186,9 +186,6 @@ False - - False - False @@ -204,562 +201,38 @@ False + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + - 775, 7 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAERhdGFiYXNlO0RCO1NvdXJjZTtT - dG9yrLHqcgAAAIhJREFUOE9j+P//P8O7I0UgLADEUUA8C4jPAfEnJAzig8RB8iB1YH0gDDPACIiXAvF/ - IjBInRG6AXOQFBCD56Ab8A5NASH8juoGUOwFMyAmJRDN0A1IA2JPICYmGkHq0tANAIXBAyAGKYoDYl0g - 5kHCID5IHCQPUjcaBrQIA4ozEwiTkZ3/MwAAShbqQY39CKgAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAodEVYdFRpdGxlAERCO1NvdXJjZTtTdG9yO2RhdGFz - b3VyY2U7RGF0YWJhc2UD0nkqAAABJklEQVRYR+3VPUoDQRjG8RTpA3a5gUWKnEG0da9hKanSWHgFO8+S - xsJWJJ2X0CaBLQKZPH8ZJew8za7DDMIWPwjPvh+B5E0mIYSqbFiSDUuy4dfr6txMruRenmUjH/Iph4jX - ZDyjhlp66P2d5XbZMDYs5EHeJAxELzOYZXfZUMWNbMUNHYJZjduVBIgNbtBfbN2uJICKd53mHHZuVxJA - xW2nOYfW7UoCUNxpzqHXG6j+EVT/ElY/w7XcSq4fImat3a4kgIr5DrzLo1zL0J9iepnBrMFnuJcXeZI7 - uZFLuZBpxGsynlFDLT30/sz5X2d47DTncHS7kgAqHs9wPMPxDMd/w+pniNxnaHfZkOJoLkvhnPqeIT30 - MuN7nttlw5JsWJINywmTE1tx9TxqmfzzAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAOZJ - REFUOE+dkSEOAjEQRRezHrUnQKGA7A2waAQSxTVIuAJYTkCCQxDCMTBgV4HFkJT5zZ/SltJsEG9nOv/P - 3yYtjDGWy3wcMxC6ZMiZQ/dyAWehT9AHepuAl3Ai6AP9K4AhRkWpD57BPeUBrvHEqdATrjyDG2fQxPrZ - iQOsQWhYfXQGz88AsKUxBTTrCwImy8PIMz29PsZp2HEBnqEVx8XM1iCAt6jVlKHWGwcBAmrFPkelO36A - oq+Qw74CiAN0ec2aYsPqntJ+GKJCR9jz7IMZNP1RMkBvUworYUfQl/Q5bxDwH6Z4Aw8KWtAHjii0AAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAARdEVYdFRpdGxlAEJ1ZztSZXBvcnQ7sbAXPQAAAc5J - REFUWEfFljFOw0AQRVMgEkHDPbgGbaDhBtyAO9AAHUhUuQOUtHRAuhRwBehAAiGBZP63ZqPZ3W/s2MYp - nmK/nT8zcRIpo6Io1oqUQyLl89FeHTvgyt3zms7XRKg5RErVwLEJHkDhHK/vAc987RI1h0ipGjiOAQem - CxCe+dolag6RUjVwzEHVAo/ORag5REoLlU2F/whngk+Q9gpnkQ9IyeIQFH7tC/iPIIVnaa9wFvmAlMQF - p3Y/Bqfg27yCZ2dgbJmpedzqOVKSEDQOwW3i/oK1zCxd2j8gJQLR9j3AXnKWlCw2+liiHE7ULClDAGyA - V6AaN4FZ9lhtAWKhA6AarwJ7yBkkEyju87NPKX9RnuiGBUngP4iWSBeICsFL4trwBqI35mdWLRC+uT/O - dSF6un5m1QK8Ju/OtYVPIPQrnZ9ZuYDdL5xry8J61S8QYLG9zkKoAzPfM0VKwgA4sSZdYA85g0jJAOjz - J1l+qdWsTLDQAqpRF+QSmWCRC5F9cJ24JtwAZr3L5mWCRS5Qbg22wJ25JrB2GzDrn2Y2LxMWygK4ngD+ - 26n7R3QOJnX9ApnwgYqzXXABnsCXwetLwLMoY7nmCwyNlEMi5XAUo19RwjicG819swAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 - RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAHVJREFUOE/NzMENgDAMQ9EuyDoMwBKMwLXHbhf0JUBtYqCo - Fw5PCNdOMrMhMpyWYorvIQRQY/geQgA1hu8hBFBj+B5CADWG7yEEUGP4HkJQyznbQb6j+akGbx4P8D1d - A5e1B+ZttRqFnuz2wJfsJwdGyLCfpR37LNV02NfAHQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsdEVYdFRpdGxlAERvY3VtZW50O01hcDtTY2hlbWU7 - RGlhZ3JhbTtIaWVyYXI7TmV0Tg8qRAAAAMNJREFUWEft0rENwjAQBdAsyDoMwBKMQOuS7Q4cYQlFT4cj - Badx8VL8hP+vYImIUzEciaFcbs/YgR3CUDCSYYcwFIxk2CEMBSMZdghDwUiGHcJQMJJhhzAUjGTYIQwF - Ixl2CEPBSIYdwlAwkmGHMBSMZNghDKWWbpVS4o3v1CEMRSNDD5B2gN71YvgpPhq3GLYfdNj1nbYYth90 - +O8BevftiO/Wx/Vxj1/qP1v5Vm9f/a6aB8wD5gHzgPVxJoYjMRwnlhd3GhRitUujhAAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA - AAB8SURBVDhPzZFLDsAgCAW9YO/UNJ7IVW9HfU0hTwL9xE0Xo5HPQGIRkSlKrVVmOAXLtq/Ml9hPBDOo - ADcTxUJwpIK+Jta+xYr5b72Ac4oXRAyCfjd9MzbNMQg6LZO8FYBQYsVIKoHgcYMIE2TNgKcOXE0m8IQC - LgBalLPLAfMqYYHBumHwAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAVdEVYdFRpdGxlAFBpdm90O1N1bTtUYWJsZUPQEDgA - AAE+SURBVFhH7ZLBbcJAEEUT5QJ3KkgDaYJwo4EUwIEmEiEfaCElQANYSitBogIqQGxmR7PWePzteJ31 - kgOHZ1v/j/98rfbBOXdToJgTKOYEijnhR1EULjeNAstN+YEYy7sXuBdoFMgNKuDfiFG8/1kgiJqxvPBd - CQODmCFe+A7CoAJ0o/1N/xMcJEtiSV6AjwbQ6pmwb2JK1E5Jo2Yr2KCwFAU8a6KxOGBmGTYojJfYH37z - UCDxIt7c6BAOSlzgQkzE3yodwkGJC3h2aubLeDV4SJbE0lXA8yYFno1eQxfwb0SrhwIVR3UKn8arGLPA - QpZ3XsZagdBY0+WhQOFdfH/8Z6U34KDEBU7Ek/h7pUM4KGGBKzETb6X0VjhIlsSCCrzqghYwjwf7YsIO - xCOaC5h5Bg72BQXGAoP7ggLjKN0PwsUAknFG48cAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAFRhYmxlO1JvdztTZXBlcmF0b3I7 - TmV3O0luc2VydOGaT7wAAAB7SURBVDhPtZLRDYAgDEQZjQXcyTiV29UeoclJxdYYPh6t9XwQtYjIL9xg - O07JgvxMsCfQ+EJBCuTxQFVQnSyD7dgkGPRrEPYsAJUEqBFO0Aa95+AMJ+ATmOS1ZwG/gzQmuH0FrbZT - SBNgYfrNpx9nROMLBSmQd4JvSLkAx9RxtuIB+K4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAFRhYmxlO1JvdztTZXBlcmF0b3I7 - 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 - C+yVAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAkdEVYdFRpdGxlAENvbW1lbnQ7VG9vbHRpcDtIaW50 - O1RpcDtDbG91ZNPB28kAAADTSURBVFhH7ZbBDcIwDEV76lpM0KU4wQ3WYAKWKisYO0olE/8KNyKOkHJ4 - UfTr2i+9NBMRdQWGkcAwEhhGAsNI0rKcnzNzZ1aGGvNiZNasBW75YSQXLRBx8pJVC6CC5gyBIeAVeDCn - jOxrc4NXQBpJjSD72tzwNwJHP/VebvAKNGMIDAEt0P133ONCctUC25VMrkuo+JfAK1kNC4MGlEgdej/N - TksNuck3iY/hqA8MPajGexLm5KgPDL2o5qWEGS6gHjA8ghqwScDhAnofhpHAMA6a3n7KXEr4i47+AAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAJxJREFUOE+t - k+ENQDAUhDuKafyzlN9MYQkbWEdiAO5rNEEOlZJ8Cb17l77XCk07XqlFLyYx7/DOGtrJf/yoRCcWsd6A - hgfvKYCFQbgiB94YkgJIdcYnqIkB9GW3rSeA0wQ1NSLDcYa3AOgRmbATc5gI4JicmLOD+ZeA2xYyAmIL - xUMsPkYoukhQfJVTCKm2nR00PLEYjgGJD7/zGDZMp1TRLvGgqwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAahJREFUWEfN - lz1SwzAQhcMRSMXkCpyFPkeggg5aJjWTmqNQ5AoU3CC3yFCZ/TzejGQ/WZKNxxRfxuPs232RVj/ZNE2z - Ku3Hw+GzhJ2xN47GyTgblw6eecd3xBCrckSUGrg33oxvoymEWDRoVc6WnIEb49H4MlSREtCSg1yDGmMG - 7ox3QyWdArnIGdVJGSDww1CJ5kDOyIQywFCV/PIf48nYGrfdM+9UbAi5r9OhDDBfStjnGV2IvXvtxaSg - hjRAx5Y23DYs3uVgNFRsH2q0qwNdaIBlowSKOQaAWpEBNo6ada6m4KUXMwa1duhczO6lAlN4E9KANU0Y - sg8NsIWqoCU5hgbYx1XQkpxCAxwmKigJuhAVk+GMzsWcaCooiRd2VEyGC7p/Y2D1KahuQi/sqJgMURNW - L0Mv7KiYDNEyrN2ITDbbQLQR1W7FJptlYLAVQ81hZLJZBgaHEdQcxyabbCB5HEPphcRkkw0kLyRQeiWb - SvZKBqteSh0C/3IkyBUVhzEDwFAxX8WNKUBLjuuwh+QMOHQsy6ZmnyAWTdvtKUoNOMv9OV2PZvMLsfKg - vDjYoZ0AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAwdEVYdFRpdGxlAERCO1NvdXJjZTtTdG9yO2RhdGFz - b3VyY2U7RGF0YWJhc2U7QWRkO05ldyL7+ssAAAC7SURBVDhPrZOxDcIwEEU9AAWLpEmRHShYIAUlAzAC - 8hQobXbIAKmZgQlcsMDxvxVbp5McG0HxpDj+9+T8yE5EXFhv5AhG8ABP8FZwzffcZy7OkSTowQykAeZ6 - K5hUoIXJCoIJ1Ah/F/z8CQP4psTBCq7gBPZ+I3MZK2AHL8DhC+jAQdExd74vQvjsvee6vYOaoNRBPirR - gm1d7SAPlUiCUgfNglIHcT+hBuPxSRJUL1NNQHav8zZgBIv7AHjpyZ4z49LzAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAwdEVYdFRpdGxlAERCO1NvdXJjZTtTdG9yO2RhdGFz - b3VyY2U7RGF0YWJhc2U7QWRkO05ldyL7+ssAAAF5SURBVFhH7ZWxSgNREEVT2At2/oGFRb5BtNT8hqVY - pbFQ9gvs/JOAjYWtSLr8hDYRUghZ7wk7YZ15hOzLI4tgcWDf3Zl7B3Znd1DXda8kxX2SFPdJED5fb9sc - ijNxI57Es5iJD/HdwDUa96ihlh56114+xwhC03Aq7sSbqDOhFw+8Qo4RBBWPxFSkTHPAa+RzjCA0DSmj - XZj6HCMIKp675hLMfY4RBBUvXHMJFj7HCALFrrkEnQbo/RH0/hL2voZjcSVKfYjwGvscIwgq5h14F/fi - XOR+iunFA6/sNfwSL+JRXIsLcSKOxEED12jco4Zaeug1n7+1hkvXXIKlzzGCoOKSG4DfCp9jBEHFxdYQ - v8uHSW1wrqoKbU1qgGJriJ+FA+dtBii2hvhZOHDeZoBia4ifhQPnrgN0IXiBhUNL2zhA7t/wV9i2pAbI - 3YBiA+SuYbEBIGcNgxe4wNVzbxMaMGo4FkPBKnZdQ3qGWQPsQipA/A+wYYDJ4AfASXmXMk/6CgAAAABJ - RU5ErkJggg== - - + 455, 20 + - 391, 16 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz - c3VlwgbP1QAAAIJJREFUOE+lkQEOgCAIRb0gl+kIzUN1gM7TDRiBG8wlitrf3jKCp7NERL+wRc6ZFvAF - oyBieTYCfgEpqADOq4vEE5SCCqKEAm9nRRIKooQCb2dFUvVPn0AvuYG/uQJgrOm5D2CoA3wF0jwaaKgF - y8OMnWBrmCl3sD0s2P/cxS3OQ+kF2uLi3IrZfvEAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEFydGljbGU7TG9hZDtPcGVuO0lz - c3VlwgbP1QAAARFJREFUWEfdkkEOwkAIRb3gXMaNe9MLufMArj2KVxj5BpKh+dh2xtJEkpcCKZ9P01Ot - 9VBoMxPazIQ2M6FNME1T/RFU36BNgOHR+C8D5XpfRRubDcjLxYbwHA3TkjTEFTpADbBrGW2YlqQhrtAB - aqAnTEvSEFfoADXArmW0YVqShrhCB6iBnjAtSUNcoQPUALuW0YZpSRriCh2gBnrCtCQNcYUOUAPsWkYb - piVpiCt0gBpYiCI4LbC0HLii0wCWg/p6nLdS1hqgFyq9yz84scBAkRcBFRhk8Qvsulz4+g/svhxEBsrz - dtl9OWAGUi435gZSlwNnQBqpy8HcABseJVwOnIEjoM1MaDMT2syENvOopzdUfCMZg5IrCQAAAABJRU5E - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAFNhdmUgVG87U2F2ZdSrmXIAAACI - SURBVDhPvY/NDYAgDEZZkEUcgEU8MAJHEy+enK3ShjalQfAvHp4U+L4XcQDwCvrM07JnACl7mhvoO+yI - QEInAj6zd/8JmGsCBgMN+oKbfCzAWYOBDmNBSFEDCurg+ljAjARc8Gqu9iOBLVp8JTCsOdCT4Lk8YTPl - kYTKSPXLFg4VWCLlkKI7AOsCiV3t5qKnAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAFNhdmUgVG87U2F2ZdSrmXIAAAEG - SURBVFhH7Ze7DcJAEETdmSUiJ07pAQqgEQJKIESiC/pAchPAsWPp0Oyy/omzAemCJ3vv1jMvdRFC+Cru - 4ZK4h0uihv32VAoXIRA4Z/huCLuP7JI7rUBDyxEut4FDePsNd1oBuwy4vGsHeDvuPndmgSyQUsDD3efO - vxSYylsmd44RSA53ZoE+gdXueChSgCzO5s5OAS/oEzibOxcTiHAfUMMMAshRcB9QQxbIAj8lIFTygRfa - Ryy6CRuambWA+3buE5jCWcIgUMdg4VVi4PPaClxN8BQ8iTu9A1WOTitQCd6/wVg8iQe9R9ryNwG5SAlL - uOVgTgFgJVQ5UIMszEGUwFP1hRCKJ8gHxL8Yk0HaAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAgdEVYdFRpdGxlAElERTtUb29scztDdXN0b21pejtE - ZXNpZ247ql0pkgAAATxJREFUOE+l0b8uBVEQx/G9VBKhUHkIGo0IDQqFq1CIxJ8rRKGUaLT7AioqidIT - SG6nkgg6FBIvoCNB/F/f38nMZrI2EVF87p4zOzN77pmsKIp/qQ3+RdbM224Ez7jFJhroxxUK84EFlHWx - gczgFUrOLdaHc4t5kyWkGv0M+Mbo60pUox6L6XmB2GQFqcETJrQxe/DEQYtNQnkel0+s6uUN9N+3sA9P - 0Al6MQW9V0xfPrG17KrBYghEp4h38o45dOIAO2j4sedxDSXe4RJr8GI9Z+H5mlBae6CqBR1XxS+YRl1e - bQPdrhfr4lR8iDH8yK8G1vEFFT9iHEe2r04riZsNePEDRqH4MvxEmoamUtb5ogNvUNI9hlEmQZesKfhJ - upHexaRtnGEoxCJNQSc4hkaZ4tWk33ShHGEzb2ffBSESvKa3PcsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAgdEVYdFRpdGxlAElERTtUb29scztDdXN0b21pejtE - ZXNpZ247ql0pkgAAAg5JREFUWEfF1sGLTWEYx/GxIWMyIqWJktXEf6D8Cda2ysqGv2FmY6PYKWUzU7JQ - bEQICTGSNc1MtihZKnJ8f6d5bo/nPPe87710ZvGpO+95zvv7de65Z85M0zTbKl0cUro4pHRxSKMPp5cf - RMfwHl/xESs4hWx2KqUCcha/0Dg3sAs2sx9r8DPeW8zD79uqKSBZiZvYAZtRwAv4Ge81OiVqC0hW4gz8 - zB48gZ/xXmEvRufEAvrORwcT1+A3fI44sxv34ec8XaU5tPOxwEtcsIOJc/Cb6YrsRJzbh2/ws56Kz6JT - 4BN+IyuhoOw7PgQ/p40fIs5FzzAbC9idHEso/B7iJprzvwaFP0KcG+dWLHDZHdTmq7gI/Yz8iUaFa8J1 - ZePaF5yIBRbxc2ughgqWwu9CV+mqW2vD0eb6ArIMv0GfdziAvnB/k17CZ7ThkhXQw+UKsg09hS+gNtwc - 9H9nBcxJ3MZ3aMMfeIpNTBve0VfA08PFPh/GfwmX2gJe6YbTPZGdl5q0QCn8KPRvewnZ+R2TFKgNt7Wq - ErUF+sLvIIabYomaAqVw3XBHsL61FvWWKBVQ+GNkG1u4zU5VolRAIdmGMdz0lTiPON9bQC8N2Ubjws24 - Em/Qme8rIBvwm5TCTVbiOjqzpQLH8QF689EreU24UQl7v9C7xD+9FU8SHPnHeMdfBbZLujikdHE4zcwf - zcQBFTLbyB0AAAAASUVORK5CYII= - - - - 506, 16 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv - WHNsdDsT1nubAAAAd0lEQVQ4T91S2wmAMAzs1E6QHRzBHVzBTweKXMpJDBUN8cuDI6/LtZQ2VTWKiGbI - vYvBW/zVAJ0kusG0zFqhGQCjCK77ZjUw0pwGFPphzFl7rRmwgUgRF+Is1o83INkDvPb2DQCf80TARzOo - sP4PmHzylTPse9oOhn1G54TA0vAAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv - WHNsdDsT1nubAAABNUlEQVRYR+WQPQ7CMAyFOV+PwgE4QdcOiIGpMxNiZGJAYuIOnZA4BAzhPYRRcJ02 - paH8PemTa9dpPhg5596KORwSczgk5nBIzCHJ89x15AAywLM1rDuIOSQ4hBIf7hdFcS7LMkOrv/XQ+5jD - G51CgaqqTIlWgcli7vrAyD9mSVAAezX4LrkAoyWiBBirkuV+e+2Z0K4vwNwkTpSIFpCLpGfVz9LrXS3A - iATeZdhrFpAPsrJnWK131i4FGjhir1mAkQ9Lz+ojM0bvNoUS2GsX0JXxn/1fbO2GEiXQh7Z8hYD1Mlla - BWbjVQ0eShnrDozTCaymO15yhZFnHzXfoE0ngDN3Qr1Ub/4nAqE58jqBUNTeawRiQX5QICbe7ocLxMLg - TFqBJ/gMgS6kFlgD86IA67vA+3CjC4yA0LudSp2BAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEV4cG9ydDtDU1Y7RXhwb3J0VG9D - U1Y7YWha8AAAAHZJREFUOE/dktEJgDAMRJ3aCbKDI7iDK/jpQGeveKWVBFL888FxNC2PIC4AhpgZZuIK - svxVUJKmCtZ9w2xEExzX+YxQH7zPXpMmIGwlOvdNQoE2YPf3fZNQoGjuNQm/gdAG3kakCWYjqqD0t/+g - 9BAOs4SCfAw3wL5IE8xTgC8AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEV4cG9ydDtDU1Y7RXhwb3J0VG9D - U1Y7YWha8AAAATFJREFUWEflkTsOwjAQRHM+jsIBOEHaFIiCKjUlJRISHR0ldSokDgGFmQkscpyNcSwn - /EZ6snezTp6czBjzVtTmmKjNMVGbY6I2SZ7npicnMAE820L7BlGbBIewhIfzRVFcy7KcoHTf1aht1OaD - XqFAVVWqxEuB2WppYpHIjdkSi+k684Hx9AJMqARGmwLb46F+AaPV7ip7xhZgHhIXnwTGmgKM7H21rLJn - XAFGJPBMlcCIX0BugKv9XFbZMxTwcI4ScPvuKvtXoUSQgPbPGbkB90bsGV+CBWIIyVcItKhPJkqUAA+l - zOAC6/meH6lhZG/j9Hco7wIoWvQVwJknXbWsVv9PBLr6yHACXXHmhhEIBflBgZBYsx8uEAqDM2kFIvgM - gT6kFtgA9UMdbJ4C78NkN4t2zCHUgrNzAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEV4cG9ydDtUeHQ7RXhwb3J0VG9U - eHQ7Xuk4CQAAAG1JREFUOE9j+P//PwpuaWn5TwrGagCxYLgaAMREA7ABZcun/ycVwwDcAGQA46PTMIDV - AGTFMPauy6fBNC55EMBpAEwziMYmDwO0cwGMDaOxsUEAxQBSMAyADQDSlKUDII2CQYLEApwGEI9b/gMA - L8FFg74hBC8AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAddEVYdFRpdGxlAEV4cG9ydDtUeHQ7RXhwb3J0VG9U - eHQ7Xuk4CQAAASdJREFUWEflkD0OgkAQRjkfR/EAnoCWwlhYUVtSkpjY2VlaU5l4CC3W+QhD1mWAWbL8 - qF/ysszs7O4LkTFmUcTmnIjNORGbcyI2QZIkxpM7ERM420J6A4hNQIdo0QfzaZq+siyLqXTv+qhtxGaN - VyBQlqUoMSiwPR7MWDj8xyQJCNBsC+wFF0BcCbWAHa7dleOesQWQWuIJCa8/gNjfp9u1WqV9rhFXAGEJ - 2otp1l+AH8cq7XONQKCHB836CyDaP9AXSNDsOIGunl0PxUvAF01WIbDf5JELbTUCLaqTgTJKAIdCZnKB - fHfBIxUIf9s4/TOV4QSsiztrXq3+nwh09SnTCXTFmZtGQAvlBwU0+R4BLUhwAS10EbMOAR9CCxR8sZKi - EVgOE70BgPPRNJK60qsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtIdG1sO0V4cG9ydFRv - SHRtbDtGisTEAAAAY0lEQVQ4T92S0QmAMAxEndoJsoMjOOaZFE6S0EqCfvnguLSlj350AxAiIuhkKqjy - V4GmzBDs54FuyC0wcpOn86VgNhO/DgLiL+XZt9F6QW7jO0E3ZAi03/0D7RDbrLIU1CO4ANbDSqkk7UCQ - AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtIdG1sO0V4cG9ydFRv - SHRtbDtGisTEAAABHElEQVRYR+WQOw7CMBBEOV+OwgE4QdoUiIIqNWXKVHRcIxUSh4DCzEA2Ms6a2JYJ - v5GevF7vkicWxpi3ojbnRG3OidqcE7VJyrI0kRxBAbg7QvsGUZsESzjCw/mqqi51XRe4ur/1cLdRmz1R - oUDXdarEpMBqtzWpSOQf0yQogNkRfMsuwLgSwQKMe0q0d3vGFmB6iTMlkgW0WuL2XAFGJPBWYDZMQGL3 - 3FpOqRkKPOGE2TAB+/TVcko9FUpg9gsEUgjJVwhoj9mSJMClnNG+gfZdYLNsRsQKNOuDwd4NRmobp7/H - NZ8AdgZ8dzmt/p8I+PrI6wR8ceZeIxAK8oMCIbFmP1wgFAY7eQUS+AyBGHILtED9kId2EHgfZnEFnSLT - 2mhFPI4AAAAASUVORK5CYII= - - - - - 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 - gOEoRn8K5LVvQjKRrgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAhdEVYdFRpdGxlAERvY3VtZW50YXRpb247SGVscDtR - dWVzdGlvbuCTzJgAAAEQSURBVDhPldOxagJBEMZxwSImJIVC+jQpUuQFbNLZWeaFrPUdAiFlet/AJkEQ - BZE0MWAt2Gh1fv9lVsbJXiDFD+5mZofb2b1GfzCOejKSiWwNz8TIndX7lzsZyk6qGuSoofasAYFXKS0q - oTY1yQ3o6gtm0pUracmTzMXXsCY1YF/xs9+kKQ/SqaqKunvxNazpkWA4PoGprOz5kwbW5GCxbESQCftg - 9GKLH0McExIcU0xk73Iht8JcYn77VwP2eC0dWVosSg3qtrC2T38OcS9toTTE7EMWIealIZaOEV9yKTfy - YzHvdIyIFwnf0hZmsLGYd7pIqLvKe4lnj19XOTeha2k7GTlq0mL4Btk/fudx4wgWiz1Knj0FowAAAABJ - RU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAhdEVYdFRpdGxlAERvY3VtZW50YXRpb247SGVscDtR - dWVzdGlvbuCTzJgAAAH/SURBVFhHxZc9bgIxEEbJLSKq9Gk4AheIREmZMsdAqSNo03GEtCmQOEGEcgK4 - QUrKzbzVDhqb8XoWElE82PV+88PaMzajpmluSvvx9PoZYSzMhaWwEQ7CsYNrxniGBq3nIyGawKOwEL6F - JghabLD1fLbUErgTXoQvwQsSAVt84OssRl8C98Kb4Dm9BHzhM4lTSgDhu+A5ugZ8Jkl4CfCqar98L6yE - Z2HaMevGeObZKPg+TYeXAPPlGSoL9H2IZp3Z5BDDTYAVW1twUxushOg+MjsLMdrqQKsGQNl4BpZTAnL9 - wD3fOmaeTQTPXiFWq1UDGkekzgnI3OdzPbMJdD7t8xxijdGpmO7lCXN2zhhsbfDOp6ezzNGpmBbqiaKs - s+C1KYClTYA+7oki/AjJOpD7yHra2ATYTDxRDYJPsuCRXw8HmwA7mifqoxSccU+fc7w2gaQnyD3V4elK - JAkMnYJ9Fpzy9HR9JFMwdBEmZSf3fZ2vRLIIh5bh7g8SSMow2ogsW0NtF/RIGlG0FefQGUnAe9bHWSuG - SPNQkhLkuhvztB5nmxFEtmNlpcEVxjJNieJ2DLUDiXJNAsUDCUSOZHDpFFSPZDDkUDpkEYYOpQrCyJuI - gq8kOPQlALwq5iu6MD2wxcfptVtqCSisWMpmSJ9Ai0272ktEE1D+78/p7WhGv2vjkyGMWxPrAAAAAElF - TkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA1dEVYdFRpdGxlAEFycm93O1JlY3VycmVuY2U7UmVm - cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAANJJREFUOE+lkrENwkAQBI1EATRg0YFzirDI - SMgdIkeQ0wQlkJKZjH5o4tl9/Z5O6B6BCUY67d7tv33fpJT+IhR/wYr+fBctGMEEngXW1OjlvlrAAhxA - qnADGxAGrEAPGHICA1gXWD+AQtooYF8aGGK68zugkFG6TA7pmjlEDR7ovAn9SVo0LCwk8IyPJoeP18sS - dfUQfz2uiuIgzcPm4tswdd/APdPgj+qkO9+H2Of5Bj4Srkgh72vcAYXYnA8gfCQKidiC3FsLIPOe8lxC - 8XtS8wL/7IdaesUzOwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA1dEVYdFRpdGxlAEFycm93O1JlY3VycmVuY2U7UmVm - cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAAc5JREFUWEfFlj1Ow1AQhFMEmnRIFCgUFCDl - BNAlJ/BVUtImQkIcAW7gA9BwgHTUqSgouAK9mUHeaN9mXuwQ8VJ8Sjxvdnfkv+dB0zRHRYolkWJJpFgS - KZZEijmqh7cJmIMarMF3C/9T49pE1eaQYgRNx2AJPkDTAT30jlWviBQ9aHQLXkEc1AVrpqqnR4oGGpAL - 8AnUkC5WYGcIKRIUkqr9vQIW4h0swAyctfA/Na7FEDwT2cshRYIiDmcDH+IR3Cg/4Rp4ATHEUvnJlnBf - Pw9RYMMNC3ES/RF4RiCG4I0pn47kAMPPYYzDjcp7dwEvz0S8HHPlTQ5gyg039gnBe8LX1sq3+QND13Cj - Vwj4eGP6urXymbnvcCMJweOw3pfqoOIDQ/zWbxp4sMh3uzfPlC8C396XcasJgYEbiy9YKJ8C3q4QyZlL - ig2YuKv5Ij5S2RdQBN5ciIqPuvcmhQaM3HbjzseXy0j5PfCcAhWCw4fRnxx4UMAt1TcgDNH1Kn4C18CH - SE67R4oERfwGUNtwn83oC/gQcgaRooHCKeCWGkP0gSEugextSNGDBgzx1w+SO9XTI8UIGh3vk8yDpsf5 - KP1PpFgSKZZEiiWRYjmawQ//5PL6OeAKogAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFpvb207zwn+vAAAAKdJREFUOE+1 - ktERREAQRElHLjIQhAgcYrgs1PkWjp+Txuh3hdpadu+c8vHU1HRPzy4SM7vE55G3wxGpKEQnpgVqemjR - AAy1sABoaSyALRjf4iGyBWp6aEUsgKNiYsDX6KF1sQDui4mtvkYPbbo14PIVXgLTGsJWoP76EiuxDocI - fkZ/uBc//0j+cCPc8B1uwFOcGgY3YBSnhsENKAUhnGRnDLEF/I8lMzpgJH6ZZgx9AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFpvb207zwn+vAAAAWFJREFUWEfV - lsFNAzEQRUMDHDinApqgAqqIaAMENzrIMS0gLmkgJ06pJQWY/yJmNUpsrzIr2+LwJMuemf/XHu/uKqU0 - lOxkT6bB88c+wlpsxE4cxekPxsyxRsxV7lIDd+JFHESagRhiyZlqLDHwID5FTqwGOeSe60QN8BSX4j/i - TTwJBIAxc6z5WHLPOxE1wFb6glvxKHKxwBoxPocaIQM0kz9zCt+LXKyHGG+CGuuIATrairC1tSe/hFh/ - HJuIAa6VFeB8czE1yLH8XcQAd9sK0GS5mBrkWP4xYoAXjBWYrtMNkGP5p39pYPgRDG/C4ddw+IsIvoQV - MhO1nWDNi0P4VfwqfCGDreV8aTI6HRgz57cdwh+jkvgthD/HJfFv4XuiBDHhH5KS+Ltgvekv2Zz4IuYM - NBWHmoHm4lAy0EUccga6iUPOAEJdxCFnALyJZuJQMgAINxWHKwOjyE72I61+ARytU5CEG5+/AAAAAElF - TkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w - G1xZEQAAANNJREFUOE+N0jEKwlAQBNB4Gu8gWNqLkgN4AxG8QQo77e1tbG0sRe9g4RVEFLQR8TsbfnR2 - +AkWr9jszIZAshDC1+UwqQxgB3e4wRZ6UO6544YYmENIeMMUXMcNWOYxXMeOdLmjB/YUrrPmjh54SDjl - xB09cJVwypE7emAj4ZQld/RAB14UVvaJbe7oATOCJ2jZ/ok+uI4bbBmtQA/MoNxzxw1VABagB8bw94FG - 3HEDh4qiCIx33HEDh5pwxw0cwltzOEdD3nHHDRwyKLaMPv91QvYBcM7IysnHHlAAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAadEVYdFRpdGxlAFN1Z2dlc3Rpb247SWRlYTtMYW1w - G1xZEQAAAYNJREFUWEfF1UFOAkEUhGE4DXgKEyV6H88wZzDKkr1ncGP0CibiAXShiBtZtfUMZXraX5SG - zCy+hFS6qhkSYJBS6hWGXcLQXm7OyJFcyoOs1uJ1ZMfyo0PbhqEVQ2O5lvSHOBNnv7u0bRhaNnIoS6EL - SZyNzl7eQDzNQuiiTaLz9UnQtmFoKg/lTuiC/4jukLYNQ1N5ko3VmtC2YWgqT4uxGlPaNgxN5XkxVmNO - 24ahqRzfcRrdxoq2DUNTeZuv3m92egP3xViNR9o2DE3lWTFWY0bbhqGpfFqM1TihbcPQVO79hyjs8lN8 - ILhtGFqU13r9M7L4JOgysve/Y/sQujAXZ1o92jYMrRySZ6FLc0/S6tG2YWjlkNwKXZqLM60ebRuGVg7J - udCluQtp9WjbMLRyqBZtG4ZGY03TpE2oQ9uGodFYDdo2DI3G9JRv5VNn3qlD24ah0VgN2jYMjcb0lGN5 - zZ7aImv9AhptG4ZGY0EXjeRKlmvxekRnA20bhl3CsDtp8AnIuG9GnlXR/AAAAABJRU5ErkJggg== - - + 238, 18 + - 629, 1 + 324, 19 163, 17 @@ -767,32 +240,4 @@ 47 - - 254, 17 - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNy4yLCBWZXJzaW9uPTE3LjIu - Ny4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT - eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv - a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 - cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// - /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP - BQAAAAAAAAACCw== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAFpvb207zwn+vAAAAWFJREFUWEfV - lsFNAzEQRUMDHDinApqgAqqIaAMENzrIMS0gLmkgJ06pJQWY/yJmNUpsrzIr2+LwJMuemf/XHu/uKqU0 - lOxkT6bB88c+wlpsxE4cxekPxsyxRsxV7lIDd+JFHESagRhiyZlqLDHwID5FTqwGOeSe60QN8BSX4j/i - TTwJBIAxc6z5WHLPOxE1wFb6glvxKHKxwBoxPocaIQM0kz9zCt+LXKyHGG+CGuuIATrairC1tSe/hFh/ - HJuIAa6VFeB8czE1yLH8XcQAd9sK0GS5mBrkWP4xYoAXjBWYrtMNkGP5p39pYPgRDG/C4ddw+IsIvoQV - MhO1nWDNi0P4VfwqfCGDreV8aTI6HRgz57cdwh+jkvgthD/HJfFv4XuiBDHhH5KS+Ltgvekv2Zz4IuYM - NBWHmoHm4lAy0EUccga6iUPOAEJdxCFnALyJZuJQMgAINxWHKwOjyE72I61+ARytU5CEG5+/AAAAAElF - TkSuQmCC - - \ No newline at end of file diff --git a/Forms/SettingsBox.Designer.cs b/Forms/SettingsBox.Designer.cs index d298f1c..2eca7c5 100644 --- a/Forms/SettingsBox.Designer.cs +++ b/Forms/SettingsBox.Designer.cs @@ -1054,7 +1054,7 @@ private void InitializeComponent() { // // pictureBox2 // - pictureBox2.Image = global::SQLIndexManager.Properties.Resources.icon_exclude; + pictureBox2.Image = global::SQLIndexManager.Properties.Resources.IconExclude; pictureBox2.Location = new System.Drawing.Point(12, 49); pictureBox2.Name = "pictureBox2"; pictureBox2.Size = new System.Drawing.Size(20, 20); @@ -1064,7 +1064,7 @@ private void InitializeComponent() { // // pictureBox1 // - pictureBox1.Image = global::SQLIndexManager.Properties.Resources.icon_include; + pictureBox1.Image = global::SQLIndexManager.Properties.Resources.IconInclude; pictureBox1.Location = new System.Drawing.Point(12, 23); pictureBox1.Name = "pictureBox1"; pictureBox1.Size = new System.Drawing.Size(20, 20); @@ -1074,7 +1074,7 @@ private void InitializeComponent() { // // pictureBox3 // - pictureBox3.Image = global::SQLIndexManager.Properties.Resources.icon_exclude; + pictureBox3.Image = global::SQLIndexManager.Properties.Resources.IconExclude; pictureBox3.Location = new System.Drawing.Point(12, 49); pictureBox3.Name = "pictureBox3"; pictureBox3.Size = new System.Drawing.Size(20, 20); @@ -1084,7 +1084,7 @@ private void InitializeComponent() { // // pictureBox4 // - pictureBox4.Image = global::SQLIndexManager.Properties.Resources.icon_include; + pictureBox4.Image = global::SQLIndexManager.Properties.Resources.IconInclude; pictureBox4.Location = new System.Drawing.Point(12, 23); pictureBox4.Name = "pictureBox4"; pictureBox4.Size = new System.Drawing.Size(20, 20); diff --git a/Images/icon_about.png b/Images/icon_about.png new file mode 100644 index 0000000000000000000000000000000000000000..251d8dd04cc249f9ae1f40ba355f90082c59d400 GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGegtL5e~$OL9^fT=J7kb5rw55=%1k z^Q=8ma|)~jOH+$Mya$ud%wS+(6!3I$46*Q^dU<0OlcT_~!h=d`Dy>exOf-X@u;yI4 z8TqVr%~x3_#nh_%2hh$CfFzC zeUak!LorEpzr&foRp`n_M(KF*zS_27n}0oDp?>Z{lOu1O#T1_{Rh-r*7+<7m{wdk; zeMwJ;IOqLKVrd&T&M4pIv10eB>dy53_;5?}h1r?bl9pMQl76t=w6A+!_?Sbi+tzEI TE$d=nKr(o``njxgN@xNAFFmci literal 0 HcmV?d00001 diff --git a/Images/icon_copy.png b/Images/icon_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..dcfb2a239cfe5e9ef37bf6bb5e2b213372f12f0d GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehYL5e~$OL9^fobwARt(_8!imih( zlaliDtb?mS8vB=T#@MT{$fgQ313{oyEvfuXT+1#HZD*MXy{hsgI-e;Po^r~+C;?fh?y}kG? z-(D%F6_bP}I}}fy!Q$h2Z$G!i{)9;loU6!Ljs~J39 L{an^LB{Ts52U%XI literal 0 HcmV?d00001 diff --git a/Images/icon_copy_fix.png b/Images/icon_copy_fix.png new file mode 100644 index 0000000000000000000000000000000000000000..567c1e5d548f8bcc8bdc7adabb598ede1acc35bc GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehoL5e~$OLBlJib^t*b5gB+@)J|6 z{R>j_tUZg1OH&WAoxciH*yQQr7-HeSbRr{Pg93-^UWMr|InFwlHk`Z6E72%@Mz!nK z{d-1D%Qw5Y?BC#eZl>4=*2M}*m1azJjG8ML&aLh~B0QyuYf%eRe!8m=ln(mpKi@%r zXXE~zObKgV?&MEc!Cb?7$wn$;1?%a!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehoL5e~$OL9^fToOwXlM;(ltzDd~ zgY!#^l2fgNOY)1>Y)!w*l>58XZ)zH!t<#4 zh~p=P(u7(C9^(TX9n+aU)+-r!%oW_lSUf>Qp!xX%=?{FqjEaByUa;D4>Ffx+rq)zWh~4wdE(sv b#taNzVy_%~|8lGVx{1Nl)z4*}Q$iB}%t~Bx literal 0 HcmV?d00001 diff --git a/Images/icon_delay.png b/Images/icon_delay.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6ee18883dd1c110d6fd9fec732098fb11ffbae GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh2L5e~$OL9^foD*|W^HLIvtb>y? zQd3HEQj4sebMlk3t;6$+vaLfhb5pIo_V>jDH9hroaSXBWUpm>A>yU#$>-OMFRgC%z z<~fQ4t!x)q!6)oL#Acd85>nZw|aOylr=|d%X=-sK47B&iv`KZ;kuc j{SJ<@O-J7sKI44<(C(K1r1NeW`njxgN@xNAGK86c literal 0 HcmV?d00001 diff --git a/Images/icon_elapsed_time.png b/Images/icon_elapsed_time.png new file mode 100644 index 0000000000000000000000000000000000000000..37fadfbf6dbbe7286feda83cf5865243cb61834c GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeizK#D>#OL9^fLNaqxt(|l7le4YE z6HAga@;fY609Bmwba4!^@LxOmtYDJ^k6UK5okpY3iv!K6Claj}3eGAxre<-Y!7yJv zk*Tfu(L=-CCm+xL+vw)v7bxHFE&p;#;LNE<6MTB_y-H&Yf4c4jq|kF2Twxg66HH995r1JJpXd$;M*0I&3`u@IhlHcouO~1a!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehoL5e~$OL9^foOAMvQ>|SqGE1zT z5{rthgEEtn^7E|Sn0LMaD%|4f;uvD#zjl%%*C7W17F*W8;dPJPLzFyBeu&xr6sg}_ zrf=>2{!PV%3XLQ0UMjJfzyCYq+K2Lk!gFGm`81fD1~YamE}b)1#hh=c^nt@gqGxOj zKE$e4>fBA5%XQ+YtX!jf{OMc`gph+-3UgT^&DHL+oJ|&ItoJLI=G?WhaoyyK z#`;8afxR~Z40byAt^GXdS9!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGegdL5e~$OL9^foJ!NJgHj9fi%P6F zZV$ha z@#uspKhMs;H0@H3Kz_Q_|MU0NbbAb^ovx8F7TA??Vy5%=BF6NE{ukJ*W;aYPP)x1k}5{sPNZ+w2!ENSvL(8wV_m`gj+{lfGwmiYo7mdKI;Vst0GAGqT>t<8 literal 0 HcmV?d00001 diff --git a/Images/icon_feedback.png b/Images/icon_feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..f5669b35795f620cea05f4b41ec930bb0568c078 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeiTK#D>#OL9^ff=koWQ;SP7^Yg4d zQ&JPHeG+pEq+=olfvPThx;Tbd`1f8ib*k5t?o(870iNr9J#FDzRk_a z)p32F@KDr6WQ*WOYw5a@vLBpc>uA;L!D_1}k|I*voeu6srn&xASqE#0+PT zio+r?$9W^38O9v%E7`f2{hP?T&CmMeDm*Nn9+9;zm|AdZqIFe*^1~^r_Z%!D!s1o^kVEr`?V|=^V+m4*X{p+$lcJ8_FQIfc@Bq?~QJE3Ypux7IE~HgBY_4 wj`PYKiY~TrcfMB$WEyE~>#_S^>hz7V;M|E*Cy&bo0KLcH>FVdQ&MBb@0QZWDC;$Ke literal 0 HcmV?d00001 diff --git a/Images/icon_filter.png b/Images/icon_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..774e1d962c33bb963621b7b9ba03ca0e08e8ac57 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehIK#D>#OL9^fd=raHQj4tJGIKx_ zqe4&*P(H@f#WBRf|LFxst^*1@E`jUyp4mdYzNP3>dY zxz|La+Ck)@?A@&gcr=sEn5sJZZt^7LKQT@dYzRH@XE%=l|A|En)@f`v&f500e_?3m WOcda2GdOJjAb7^O8JE~nNk^le!JV``BR5(wi(Z4PQQ4q)R zy;KsRPq=Ck9*gODf!JgPslgK_v@v_|#6gQqLU|sSPps;5^L~cJ!j$hnowGMpsEEOSH&-w zMqOTQ1Kq9{>*7>=h%x-guLjof1r16mZJc2!#3D^WCpd;inc~%?-*llIVKZ-M-vuEOyr#E3%K!iX M07*qoM6N<$f~f4mZU6uP literal 0 HcmV?d00001 diff --git a/Images/icon_indexes.png b/Images/icon_indexes.png new file mode 100644 index 0000000000000000000000000000000000000000..15cb864a41715f0cea9561696ef25ac0bec4d43d GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh&K#D>#OL9^fT=J7kb5rw5tbG#; ztb>y?Qgc(ST{08XixP9KJu*{^5{s<;QcL{!wOoMuNGW<{ep(~`R0E3yP6|B!QHFm1!a3^;9h+i~CG zpDWq&<@i6?#xhUe%Kj{Ot5oZ}H{T9Sf1}Rsc4EW)rLw!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehIL5e~$OL9^f0y4|;ORR%SbFD)X zlX6m>F9=uw71VgTIEGmGpPlH5 zbSLi-Z3sv@>Y>&6ps<-kIOS}^a=sW}wGS;!dJIuhHlJqvtd-b!a9837pgR~mUHx3v IIVCg!0JKe9zyJUM literal 0 HcmV?d00001 diff --git a/Images/icon_left_col.png b/Images/icon_left_col.png new file mode 100644 index 0000000000000000000000000000000000000000..88e71d8c42fa405feb746d6e24ce058250e3bd8e GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeiTL5e~$OL9^fJo1Y&tMcgnalM-?n{K54KuNH`q) zZ@}}&`KX3DgScD@8-t-ofq)dlAp_nQGj_2#i1INrdmPeWo6vobt%2jy$9gsfg^l3_ U$@-rqfrc}9y85}Sb4q9e0P5&Pk^lez literal 0 HcmV?d00001 diff --git a/Images/icon_log.png b/Images/icon_log.png new file mode 100644 index 0000000000000000000000000000000000000000..07e3194ad0885df24dac0a51c453ba6acb81e075 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehYK#D>#OL9^fobz*YQ}ar!L-O-; zN-_(qJu*QYAj3H)zcl6Y!P_T+>JvR(978PplYjjGZ|^$e;Py;+W`Y0e!sZP;2hNJX*sy5{4{xMFZ%<>=J`b*mh8{BO_|`~9GPEsx^rEf7wAsK% pwo5IACz#`E%Oc4Z#aI7~f&OFeI`x?Q%~YUe44$rjF6*2Ung9byR3!ia literal 0 HcmV?d00001 diff --git a/Images/icon_new_connection.png b/Images/icon_new_connection.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0a9c2211e4f6ad81ddc5fb3bb8a0801f533410 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeglK#D>#OL9^fT%4?f^Gl18Q>}wb z@{6of5=#<`A$%7gGbyn+)!H#7#o8~mT!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGegtL5e~$OLBlJ3JP*6t^K{NoikFC zv#p&Hi;As-GLw?>^Q=>nPh;(JIws!GWV7gGoP|%M!N;7=^GNK zr6&FoTQW&Gqm%3K6j2LRo9?Z;>l-3IwK!L`FJgLi#x_LcN>Tf1Ph-Z2poCR9Zf;9~ Pu4eFb^>bP0l+XkK9Z+@P literal 0 HcmV?d00001 diff --git a/Images/icon_options.png b/Images/icon_options.png new file mode 100644 index 0000000000000000000000000000000000000000..686b9fcce38f6f5c986dac8741f2c54f73219d5f GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeijL5e~$OL9^ff>TRM3#^?>i%arz zGpnp!Qj0Uw^Q?iQC7F5Y)&WKN1*t_P7V=vaf!g+Yx;Tbd_^+L8$ah$Q$F;ae_-MeDVSxwa{eK&IEn=fz`t~shV zjVrq-Y`#7-tIzDlLO!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehQL5e~$OLBlJii+~ft%FjNON)w9 z^O946%(SA^;tcE1f|SG(5H}}3F~!=oA~_>5FFmzwORNXbfJ>e(jv*HQODApQJ>($3 z((A%#l5nxHxNE}+j}x*=?h`Jvs7{zPv!^cO(aqYw^ZZ`OHFCOHy}kE#f9?GxQ~oK5 z)F15nS0k<~agb#m>$NK{p6-h}z$D|as(@KqfNhNfzeEuebA)(=eS_02jf8k9iKJbh ztrtuP+~vdfa+akFuiT40oPRx|OmuWqKJ@gfwfA2?EmZndpx$;}*CU0qho3#VZBTmu zfbHc6{jZi--*3P1{3n~8&^iyr_t|$CTW`$aSEy0p>b%i(Cz@N~^Sn!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh|L5e~$OL9^ff>H}|5|dM{T~jhk ztTR{rEC5RX^>lFzvG89yaU)!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehYK#D>#OL9^f+>0_(tes1XOY(Cw ztE~MCN;32FimiiFOG+~H(u?K254{JfKjrD-7-HdncCsNClc9jCxQ@<|-4zoLG$kyZ z${sjv&IzY&V%6`HmM%EEC;wyx;q? zn67BJ8uZGSdv76QpJsS#6`T16R^z=+&w?Um|8l6F(qLM_@RQGM`9mS@7XRGxm_*xy zRm^cyX879ePW9k_$i1UkbwP`|0OP7BK^D%eHR*h|$)PbeM-^Ld2J|HGRXi`V@I3Hh ze*vqtcAqnI=Uvma#R6M+RE{?02MA!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehoK#D>#OL9^f{8B4QtOIfqE3F-i zit@{?gEG@IO00tlb3B0RN<3X0LoEE4PB_TfU?9MfYw$Lr!8f8w_r~3qUF@CaFPi!* zQ%>+H2D^yd+GPHT<&?2N9?MhN4N4lj52Uj^RsJC5$l0iEl%Ksbx}~8oD9%VmNa7pM z#Kai~G=6?%`g205#ac|`?nZ}~eXL&PIsv!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh|K#D>#OL9^ff)mS96+-f@LG+c? zGmC(-9iA?ZAr}67`_J+=DDb#NPH>fJaJ4aDau?R0H)rjoHnXLUAN1wsiTv0nUdZr) z>(`mfo6;FHt7l2Suzu6w;H1uEx4Ha3=ZtJ7HfG*mO|xrs4n#IL@+CWZ1Tu5Idhjda zKo3jIhpctqlpA%UYE%u@SYDX?V5d!@@zaSdr#!x%7UL6*Prq0;6&lW8Q Px{1Nl)z4*}Q$iB}FxX;U literal 0 HcmV?d00001 diff --git a/Images/icon_saved_space.png b/Images/icon_saved_space.png new file mode 100644 index 0000000000000000000000000000000000000000..245be469a7344b6b4af50d99349524368d360ca4 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehYK#D>#OL9^fLK2g5QmupX%dLY` z3sQ>`OY)1X{Zh-VJ@blFi%K5O^4|kgU+wAQ7-HeSb<#!N1_d4$$zIkwCoQJlzACry zr03CV5_WQHzt#wB?Kq)-C&Ak9WYZs?4eA$uI5~1X`REWDFjuGf?F|))FWCa$bQq?x ztPu3Oz_$1K10MAU!ZV(1O=sNSY@)WKmUZp6U=QJh#9wEZ%cr|M=4RELP~Md9v6JEW XmBMY07=Nq-I)lN})z4*}Q$iB}*K23o literal 0 HcmV?d00001 diff --git a/Images/icon_scan.png b/Images/icon_scan.png new file mode 100644 index 0000000000000000000000000000000000000000..619cada9eba41e84d52bb48b276338f11e10a2ba GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeinL5e~$OL9^fqVn@|t#eA=_j5jdymF<)|Gb`% z@$MtfCvHD1xKhJKeHm+3RmMdIo~;`gGBR}(^uZ_5IHt=|hr$;8`z55kk*}Sj&aHljxcz^Re+9~SKFH=B2%aOwW}YCj pyzL;b2CL$nlyshrtbh7djja+?>Sm_#)B>H%;OXk;vd$@?2>|JPZyx{v literal 0 HcmV?d00001 diff --git a/Images/icon_server_info.png b/Images/icon_server_info.png new file mode 100644 index 0000000000000000000000000000000000000000..d60e97dbe59ee2b8dfeb5ee38cec4023d80d93e2 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeinL5e~$OL9^fJoD1>t#gHR+knDz zJY5_^Ed19_e#q-!Akt#pmHB7$l>0u3oYE2QNeu6@O&s~APO9PDTRnZ>buM4)xRtK@ zYKHGWoRhkBvi{Es7j?0X_Zr&R-)lCsI_^+nzb7$?$)og``if4*FR9ztsyAF_F*Q{> zT-dgq;f3JL4Z_7UI3CQHGh=h}&*=@f#f+GexQ{yP*tu!!@(8Gz8qBeB+gw=_n~f5E gjGg@ZKTDYTEDyP;_i@2$pgS2nUHx3vIVCg!0L$iQasU7T literal 0 HcmV?d00001 diff --git a/Images/icon_stop.png b/Images/icon_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..e75d938bf5a024c17341dba55b245f93b869f164 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;%C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh2L5e~$OL9^ff>Lwy%TldfQgc#E zQmvg5i;As-GLw?>^Q?nQ67y0Li&CtU!#oUtnhtroIEGmG_fGcaVlotPDYi%qtK!sG zs1tCLS^v^gBs^DiiONgA)!po#e#Fs!AhNPM(56PC|{`g>9Lo0iLwR%=_kek&2=e^nKMh6Ss3jvU7G4yF38d6 z<}{O~QQ?jKY@Nk90s=BqT_s-Xas2qi*dl+sY~M6#ec7LpVi($!O@0_eDNkXwu{R2y xb6_!7W~9R6iRv>{ic+2*mOSx^(Jw9R-X(`QXVkoACjouK;OXk;vd$@?2><}-fX4s; literal 0 HcmV?d00001 diff --git a/Libs/DevExpress.Images.v17.2.dll b/Libs/DevExpress.Images.v17.2.dll deleted file mode 100644 index 66d804178084753cc5ad6ede7e022b0429f0f133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4739312 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

S`5Mg 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�`2Hn<^YLn+0G7{zOK8nPwFkr?DzQF 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 oN+WTZ{LBCn(&o4Q+jf&FG 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�K1P!|V{&%FI+=Uc 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
  • $w9tuwoYsrP6#8)%Ysc_%c-?7a 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 SQpGsaf%mP@)G%gbW& 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

    &Mm=gw->Ua`0GfDI9S}+ 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

    KV>2$SH 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
    MjzRsikCy7wR5S`8SOEw%dtS zDp`xB-$u{=cAMui`TbPzuugL~=TjBFZk3&_xFg`XPu6r+8Kw~5X-DDO9V}2P;rJxW zo6IKGh+viCC_a$YG)WsU=M-9zV#Os1Du}eOS>m~1u!Q9TXTD-;S(hjc%g`O?}`XQ3(;gz5#2a)yWv@OWlKu6f?2ae3HM6I4SL%07x~VtjOGQ- zx>^!5P~SV3qA1V?#K_>?BGALBO-&IVFV<pi)(3F_I`M(zWkCmER+?lFrU*mvTb-O@eEFB-&h7CC_6;H-O}ILuX>Dmi6@5 z*gb$afI8~IR~3>z%lNjpFc)4m- zolDsnMAs=6ry^erVIgE^d&bU(~tW#ogE|Bh0rt{UUy_I4#om zO259ixh>21=A6sJ!2N!2S84_S@nz1ne*Y{IvxkG$ga?s`WCq*YC5TPP{pwvt|IuX$ zhg>8-6=NC#I7IH;t)qW8 zJ2zC>{PJrgV-OEghVN{$@*LGLp?$q^|Z|JnLaycr4vo|!j2H$#iC7FZDEO8hs9 zmW!!5&nvyzAfLW#;*A2n&^{6NPbU3lhnvSuHW$;uNQ6Ll2o9b(;tyad{HK7O@;Xxa zCzbZS-C5D3xJ>Ky4`>6c5eXLB(CHD-A?qyiN_YUKpY8%8Pp$)FZKJorw%OXp2rT02plg6 zAG;Csi(_0o|5nEF{+-+g!T+mymb3S>w)%_TSTI6U`on3Y{Z-v-llzpeC9ph zq$K+YnhDjnW$}XG3MBf%3GshpRFPh2h#F{IP>K8~QaY85y;~On2LmMsUp1>{pPaRJ zXlgrR09CoN9;PvxdWgfKFLEjhPtHkszUVqlziQRz_H+|8h8=s%cQK}OYuf95rNj^& zDW53fgBU0wIblVaxWKV*8&0&1SWZz-5hq!wA9&zu+$`H6hhjlxKqHMHS(XQ!<=p>10d5+8I3ASsihMsVm%`RR1xA ztHqOQvy3uZS|vrt2taM!UvpIO!oaIFw7a2+i*6z$b;OHEviVItUizk1IOj{$!+j_E zkOdPHwV92C#WH{%Fmo*0zrIjSRa5X8ssw|07xm%xmfe4LWkWV=_c2aFMkod~cDwu7 zexJfA^^4(;M;<5YoRvsLOOng;J!pSOeFu8}J7CKAhws(@i1hkj1_r{v`1s}wS0^27 zlA+M^pIpsQxD7t4A7S*&^g{?Y6_Yz@Nq8Z%gUFh=~} zQW11Vgy^Y|?W>mPQyjj2LM;US4Em_(vQw1`&w?GKv*54%(%LdXIb(qvhk2gU*CGeG zSu!}%wOCSKWG8$QfQJyKCFC9_{ND(0Xy9iGqGX#6D2oyV;N9_Zbr6b&8cBEXB_01R zw7rWMOgYsaczMyjJ5<*_9xH!$5`zEZWfF|1qU`d9uRvS)?$z?wl{YGrtq<$Mf7UHa z;8MN>A5xnMY78x=lLJSDyI;?L-0C`D;N$i9;>^#^!(B%%o(u2D@3y-;HeUy0k=#u3 z6{RZOEHs;@cx-=|*J|rFs+#EXwxLn@batP5DvVKUI`{B24x3lcx&%X)?_5#e%SzBo zWD8w$0+w%GYLSlWx@~v{n3?wG@dh$j1ay%uRk`}6(eXDOD?M_P- zQ55m^4SFh~WnY9ljo`-@fr3v3c8aP+^*Y(2Pvs4t$kDH1q5Byk0Y6Gu<@)KoA>WKf z4gfPg`#;}|@a1LQSvH40?R$!MVrV$GJR83}+q3 zZ1O@T5n4`vf47$K^x=aLlcA!c)zIGE9VM6s=`qr(N@*4{gYh_saTJ(Rp%P#qDAl|i z^*{q411U^4SHLzgtUU|%Uk|JYE z<$Elr-i5|;WYn+l;#R^}D<)cnbwA@FQ|`3Y;p};&=W8JV6-Fr`65yVAqvK*X03VIDrh&jJF={;?SX%9Zef_2dMtpa0uL`BdC zSj_&cEZ`140<{M+yU$Cen541DNNq0C$bXw#Ug+~wpB}e{r@C1FmDdc?!u8OABsWv4 z#Qr+F+me&dCpOEHnnarh_gWA}kYF>zGpwjaDP}V1iN(r8f*1yXuX<(4f@JhofZPM1 zjEb0E)|O&yG**Bb2NqWBL4MLYxfhT>l~IdTY7x3CCQo(OU|tnY(`lsQuTDcM6oowE zH@xHO=oDplZ6&$X|#qWWAV{CSjmLhKVyl^b5GtQ*TO=4;XdFURi zsy~ML8HlhzpM;5m=C))`0!)mxo5$Nkf;~Q=t4gI@W5G#P^}%wY60x+;24gUy_&mN; zW7Igop;;M@XeM<3=gVE^$DdE-XiGakzg4LLXzQ1z#jwzMUe~G-bbk6S4leHLaebu$ zWCeoKT3j-(AsXU?=TgNl#_OU?Ge~KOIF)c+5?No~z?4nlSOX7jy9`@blSt0h|5mf3 z|D83P?Ek6Re}um}uF|e9Ue+#u&1wFpSgk~=YVQxx1@~9wc1{+J!;{2{+Muu%jar5R!Mh zTUVA^I4HRwo0Pnmjm5)T6)+E%icr{v`PVxpFC`4IgxcRw~JITEE)e{x-E)=ngi z!(kziYmdjZMZ=NWIT}4VGmn{ggms1ION_hQf&tA~vQ}~Fn~`EbI&N!~wDAjyg-%k@ z<3X_wwn2_1HdX~4hJ7@`8D=pHcv=^Mc<#b|aD?NPzl?w#BeCi*~jxf|p2;!X#PsQPxx7aTWD=SZ4^)XA5;CJ?*Y z)B7$klw5LZvDDSysu7r9f2fMFWi7f;8-uueV;w|OW~b_`%FBIR?%sGT@-{Ko zYHoO>)ms>qd3-5TU8UF#fJ{keC6ZvL^ydi#^}EDHvz$h$)_Y>|$r)j{EdDzRh;V9o zXM1*0k)z6otaxx#Z*@AVCRo1baBJ9lQ1oKy**QUkcRjJPHP2emTXPQroQTH&*jMh@AjGmkK zgx%g!GSydZ{z2u`Byq%r2Q98<=F;TBV^l&yYBO_BsMyxSN@mdl2&=NR$>==YW+&rUkZjuV;7i zJZucNj|3$e4!5Q2ZeX&!`5L=7m@#lAeHF?+^lM6n7L6rG&3w3zM%>eD19uLVV$iyM z$DlnjRY2*o8_IENn*>i$nDBdxaUANm)wjE$ny`~ZxF~@!3g}kV`moSb)AM+>)5_Lq zN!nwgC(_O9`|EMK7&=&JC(&*BvXK?73zrtLUVS4B(ujtfL5i@`M5DKTBveW-X0l1{ zT&Qo?hOTeE&Oi9isuB?hV@Vpyl-7b}KnbcG(A#;SphgFV*)1Hd7aSqZ49o|u2q8r; znU5_3L$g_BZF=JNsdu^Vl!_vQ}69YxP=HDzl8-4v1}HV%+u=Y6bla9%ZYK&YlYhPbjwj zU*hsj2gd&f%YOgPH^M*3w||oK|M@z=D(*mg)Ag_a0OaIEK5HBiypY_bYzhzB29_N- z_=x2QGLb3&?7VE+s0f?{NpKXdXfG~OeA(!GXIorsy<#-Nsa3E#tQXt@WFRAjoO!0M(X z!AA4~z=aoc2nDC)OyaFJ0k;T-wk!9)oqX79se}dHlSQcTOWT7X0qwH>y}Tq2f?vTR z#G27H)~8AoRYantZxMKiaiU4?6OgbUrVcBS8<^c%26kTS8EJw8e&vgu&Zrk(uY_@@ zfOsz{M%D-p-J$Wn(R?l@A`26$Lrd8c)}%c7c?4^_alQ>bFd>){jP;JGI$tjDY~(`= z?4zBX8yy~xgcLKcBbkhC#bZK?-aqPP`Iy^8p=ZEL`g?V}nEBoAV=w0#k{G9+pZTF` z8pAgUo2ckdNWy^qB|(ga-mxjChw*O#5<7n`P>{3+rZ7SYW&p-eG_QapR`?W)!;bst z`$w;`lA=m0tAvGI z_G=7M5XJn*I{=6_hBSK5Xp<{CPgi2{Hs(Lv@Bz{i3gXqGhJmEF|IVGh|FH)_?teWB zG*_+Pse@m~&*Y7LN=eYM`l+k(w1nU_f(fH&i$pJvdzh2LwDN0wH-d~snbdo_@*ojm zItB2ZYGsXerFD>^f`ZaAV;`kRj>Ynp+q1Lu>B|WRg)>o4lKxI^hnthE?6&L7b$d2h zDRBp0#=cLDufRAy#jg7~ARw_I2ELu0q9rVj=Th%is*X25yU+_P(&U=^oQ5kQi!RS} z`Y*?0vpZ&+g-F>%jdqTc&@>n;p_jGj;<&=tsa1(yf2}-BI_ad}b#LGNAOy*3XdrfLMd@We`bL#kEm<3Jp7r6AwWJR=#S2U;Uun9 z=b!%ZMTOY`f#dAX9wzhy8}dFrO?^>Rl3Hz=f8&N`c#_y~f^~adB`BLM&)Lo&I};jW z0r}Yt2Au|8TJ$K5vOy-R7IKx8-Dij{PziRAdc7vy+wf%d7ripc10+q4Kh-N>80j7+z?S4uwnM`PdUy z#!ae2uRr;8{Tx}IvGyZb5K}2Nh}>r{FH!3#5#|6ZdA$!9R-K3Jf=|eWtnGhk%ez3G z_jA)XV@#l&v-}2sMFcVLVehyQX>?Rb-qwcs13meJzVi2fC1-*dXbKi7W z79>bBk;!=5w%qjYb_9M-6S}hW`o5aEcoAh>!^2a@((xMp$W2s^w+WgZRRD`WOwR-o z%R~3JiM_p_-KP;@c=o=NT=#rU9SUxk?tq_{tkCg1!a6o^Yn41KYua_5aGn0T7CiW>3sjNU+=zLRuS%-Z*yR0>o@3#hP2n0N64{|0d8uBu$ z`;|8-#?|Z)DQnWw$I!D)vxCTPhNx zOrMt@x_yB1@r5-esus=p1pPu86hJUa*_h5%dZ|5zI$Mz!hDu}IZCyRkT&e}}EK9g_ z5mDYWnwrtlsh$^_!C?Zs*u7Hx8D_+-gumJT_6gK)ywq^!GbUKe69-XDT(HgaQwW!8 z8Uy444f`{qA0%yXg;(~UAm?_54ww~ob9>x#xk0v{_x#@Z*VOv{+PJ~JX4TOp@hAAZ zEc*0+mwylcfqgzo^44$a+(&?YI`a-q11bED{C@^SrbU&p46OOqP?cM`4eQt^TYkq5MZ*L_A~D z5SEJg2KnP>m3JAQ8Z~nKtqVe)eu_G98=gKO8Zs%Z2RGN02|aGzwVBnrQ;zsUXr13U zk*$;wgf7PJ76|oo3kPR(`9_D_{_oY}gV51)@h}C>*6-Okz9LKA=uz~4Ppm&jjR*^Y zEBMv@<_Z$4ARtVv2iZ~!1k{F|6AE1DGBG$W{q}qhv?-oi|JL0vCD_&TF!F9p zvvKQu#Fir0iZ?H;0OsZD&#kfR)fo@~el|rkz*rb&k3#o|6GR^MlyR$e!b?{!5Kh8_&eT?0Gatn#5H z`(SP3rw7bqH`!nkYr>0{foC|DtY}hW?+SYkG&{-aiSUtY9R5B_Wxym4pK|MWr_%H0m5p4oT#Z$uxk!z5bqLX#9U@SpWb2+5>I1^TIM z{%<&;-(Q9~%Q33L;s|qhUeJ3Pk4bwHCBuLa2INR;eCiJhD|Xp?3!shb9}H{37zv5)1a0`Apu6F+HbV3 zp)i~+F=jxGe4~4H!$kl@5ixSMzR|c_yfV zxZ=`b9k(jD`h5 zOdC_Q8b%&~P?F!vE}V+WQ$fzdB`Xr)#2CIlvND0|OC`K80RkUfwPdn3$kQT5S*W(b)sS z(yGIuaq4;Lv&!a6=Llg~(-FLXq56xP!?Z$)Vo=4WqYo>FfJiNbX_nvbXt5xqx0{ER zv!_D?NPua<;luv$=>DL+Wq5e{oMpoP5B!|G{q5!r31tJJBIY!{5UER$d4zgZUWcd{ z+5mbwLb@JdF9;!E46EuL&@_Fq-Y?9`wNmLR(xk-SJmZI$f^UEaB5y)}%qj^v$s9~J zb^<_{h7IC){y~W+!kZ2YqihDJ`sl-P{$u%B*=4!R^2YcA< z_hRFfqXXz$Aq`Sf_Mg{#c2>|Z{My+p!&YG zH+#bwt&RC;fVOWUISX5QsG9N@|2!B;N)8ryA~@_UqE)wTEUWdLJ6>;%RN-lV-kb}% zOelA8QIbhB1+l$fT~Zak-8vILjeiPN`SV}k`cn@^e^+|d&IIJl0Xl3tvQ zk~D^~qy^AwmhX^RHD*$I3fy`nh{M3Er-uw#z)~@i^`AA68N}zc* zQb5~~c)PB5O4vMlGYSyXsR$=~L&66a6DwBv!X$X}9u_2FK3*vi%r>f?eHX1>mPDH> zGnV}`eAaGH7#J5cL`V_dMlf5xdgpFEe~NbE-88Fwc-m^f7)R zs#Q~?Ty2f=`)&ISNMe(T>-ZDuT)Dr1{VTBsS`5`86nRm*zL?$9)1;HRYkl1lj{>1q zU+L(oI0vohAFE+|eNM-dwtJa=UtE5vxu(~&pFX7=BG3uhbqC{*T%Z{I3(W)Y&xAOK9%tvOG&zMh*Jpz!+Y1WsrynJ^V}NV{aRT zMoOZACZ89bE)1R*-6|TxT6NhUaiR!QC?F-6LjFvjY{|kIEmg-7j`+%H^7DRH$AZ3f z_G66n)~k)ln=ijm02tmMp%gomBEaTc5mOuqDm+lPP8tKpBpgAdf(;lNJO#2uhj;wE zi);c&#k{A^qbmgE=GS5prDj6 zL>^j`e!$xw=hFyPVJ+hA ztWZ}uiLO=~ICgW_T=U+oGx10Chs_|b5p+-U)#Y`Le?0GS4qKN3^PE8^?RuOx34Oj_ zf;((#66C*SVS#cR3ZcWbId{PaMRir%ef$1>ba0Oo3*RgWq`q4^2yg6bm(sPswe)MP zio+3C;tVP;-b*5tlwuPjn@>^$1_N)JgV((9FAgD?O~-E&Yj zUFYHL#r8i~hQe6;A>0gam zB4l9Z<5Pj?yE&5#uiMsz3{pZ@+$ERJ(t98dQEQqUpV6`@$BXlL`4Qw%6L>3hA1{XF zUf1bZRlTfsFEKz0Ed6~ud2Zr*idfTiXIY1mb~#a2F9yg)`V(jjdfrgUz12%iroVw@ zLHp9mm$1!*eDQ#_*d1K%hvdM+v{}7;Uz#GklNbiAEu68aLPo;2an@X*!wzmvEj&mI z(#?hGBU3MKgU>^}$U#oPWSc6LpgKvcfeMFQ40ED^3lLhHE@#^i^T5+ zlaNsNP#@X1^Y@3liK9pfgYX998q3(DZ7zmG%Znbs7c3DlQm+7 z$|g*D!~USAC1|^oq$$BL!lL-&*Vmg27NWZorHQrX> zZ>p?sNtoc5wKLhkz&vA89e6}C%Z8cdib)ycV#7mbC7Y@SOnQ30I;jo1I`kNqi1!Go zi%2EX;>L-QPD|;I=59BR>cT{6+0UKN=4)g8@5A9=hEy)aPU6lJ&bsb6O!I~+rSQfI zl=%}RS#$6adk6*!t_$Kd>$lcAbW;H;P!2sq(>T=zJgZcN@^`g2@3?R#{iDzwU*@hJ z#>YanFU%gfl5U{3Nid04mf_kOw{IN0EmTl>{EospNOfJ=NS`(bH+wQ9j!6#(l_qa? zuPq6;b1}mvSIzD1yy@F&E#DJF%b$7d?8xnPkK%h!tiyCS)6y*)^9&fv zm;^i@^e3_ffNo|P+Im;`&{)JGOAQ7?U2%jMzdC%de?s4QkA7y?a%Y-9KUxUl+^tR) zb5h^@aZOs@$mzIW{c#f~vImQgg=ze3utiQ}Y`46@vOvcX(P%;E;{YERj%_ArD99*# z-wP@{n9Z$cpkG~Ln&?TJvmq}>{lh^W}s@Hj;U){dx=+@F0^nO|bT~HvFQ?yI`;&*{}McckGA6uQuy8SRl|4 zX#zZ!rS;}2XYVfs;=nVQe2MUBb2nYy7%_MJY&N;$^7;|L2Q2b~_b;utl_jK}tlltY z{zMbU`ugb*s`ipOObx^jz~Xa9kG>%o1W0KsRZsQKAi_>o8kJ%MsHrVi0sU*ob@kB! z-G-HV3i|Z5$;qycyEbXb8QoT?$n~9Jgx?^vk^zVE#%_e=9EO_4u8r7rQ6OEMd|-b0 z*%5AWoqRaZ@Vx6$Wh;2eWeXF&(m81(aGV0V-ZT-M~z0I@ptL4fbt?3B6+1?9tGG;wO zEjNPu>YkSWq1)EVd`TSpYfN_UVo(#bKWY5xhY$M~cf;=>WwlT8-Gugj;WYqmU@fQB zAG$Uz=ONU2_#&0ATg{ETRRY$-F=je ztzt(6M?8Y{o%1(f49=8)li}7+p3xKrb|D11#+Kn_jxBt7h1}AxxOd;f8gIt7MY`XU zk!yy<;cr_!0WpwJ(Hz4bx zo;c})9?%H3$V1AMEL|qddInoL&N;*w) zH;@C8P?<2k?h*Uhwcc!ksgkfv6n1^Cbvn_o$H2- z4<~uMHIs~Wv&VmV$&ll1s>n*rKm0{?eXDG`jTArZIjC=aqkB8lb?o76z9p$%-K?y)cwDKL3}MgmWieVxDO1PgKzXpaAG*q1b51KU(v z1|8?ac$rMrAMSS;cmZrJVB^*IT3*;ZvV+t{LVq4*OK?;8xYip6GSgnyUBAEQ=o1s; zQyA7_U?uD;68B9zCo7(vYoy(b(n^*ZWK*7LHFRRZX{Y~Irz7btv zzpX3V*Z1f-C=tMvsBR>c`ux@ULQ-4=UlXVYocc*evr+L`ehp35$vD!rs!#TlJcHKl z!gUvLBKMqC6!Sy!-=OX2-zfpn{@3o+e~La8dv`wKruLvWW_0{7X6%unS4I{nD=fw_ zD4YF&F0y(D&9q*AN9r4BpzMYyZv=oMw-QB70 z2g=))D=ENnJPf~i=0*86NjQ6|!2gIEC-)@`FP;-dP26)<;NW=etkGGit>gp#0kJ;B zB!xQ~+f9ND6p>7V?2nVKR0ck=NvYp>a*EpQOJrA)mt({*8_L(Reig}yWHqdOsWS16 z$#bYG_hm5+InTFzZ?#duB20E?>m1<2sZzMZFO9b*v~6dKF_JK9-z#rd!_c#6k;U%z zV(V`vuwja_W8$q-`EyO~#2{A5C}l^Ft&}D)QW_0Er6_a&gM#KI_m}bSyRD9tkHfR) z`QP>6>d7$8ZETqe=PE_AMSe6Vt)@O~LBVpFm@*Jhai)}mt>dJWDBhQds0=HIXNhAO zW31^@TYMP`iV-agP~e>-7U>!tS*I4LCF7 zgb0T#bdF}S@*UhK>+~yp|8!MUkpZR)WVtM9B`Qqw;y^k5NJoEZg`&vhVO+&1F84r)REP{BP=s7sS8P`Y4ul{bUTBj?Z$Mwx+;tDv zXwVMa74GU4dq>vXz||^Y?Uc2zko^P}ln$5Q3g|*kMYRg7NkuTz%h?frD3ptXWAe57y$%L6ax&*5%aK`x9ep|Os0`CrllWPW4?vb4MdLo*2GlvSpcrD zJ$>d4BMOfg@egD(t8M)Ft}YpF)Aq}b=64XF#3^{HY^nUx&_tYzOD(No23@?7dUK}; zel@`SPHwX}k8%SiUW^3LEozS3FBceBbe_=UEX)oGXQWmwhG(3r)id#$xh~QU0(e6@ zyP6OX!T&$n(@s)t^Ymd0Q?|Ili30zW99qDaV`HoBNzq>#PH3RuyB7K|;h6 zy#D$tLr#=>I8S;*FksG^ZSP^0P#y?(5?r2~RHXtPg!M@;MmfmxSi+05wGf-}C-v_v z{gt>0%J@UQ_D)RNKI~zs32p-dDW`1Q>IW3iL;iWL;JR-|XR9Yx9-`zu<~b`d{)Qwj ze7yfJ{~KKqL+eM*P$Li6yh-<-wysyt-vcY|k%aG$6_U%D`=r0I)JT-5(Z=l^AN9@G z`w{ygY%l_vgf}mkVC=mv$k;-nVEnV;^SA)gt2ymx6#}rI!8eb}%TdeFemSpj@~P+5*vkrFg`in%MD2gmjJ2yIAdrQG^8;s*5ehDOjyI|~b^V%4t=&_>Ww3#V zE4O+&?I9$-K`y9``t}Z=y}!I{&_@9JBdHY+cjE0z)|*slV7%J+e%ISRbev*k_SdX3 zXN?K|e9a2%@4b%{2YqaYcoyZck=~+uwgCx3i(;XgP=4OG&u!Gkg zKk{x%)hH+~;MKgQn-?^coD}vuR4unGx6HHDGb9axYjDuFo`fhK9*#)_{J}aDz>%Vl z=MqPgpepDT_I5WX4H#B<_ZK_d%8k5b$XaV%ZBc5K)pFDfm@okikYam zAzDgqRnBp!32Ehb>4rzx;&R%DpM{*zlEQF{T`%Fn_6c_+Pq5!Ue$)m%lH32SWv2g~ zbn>sa3`puPdP(IgeM?PwOV@c!!-EOJlM9O|W5iIp2$52P62USdy#wf0+1lDP)S?sC zp{rpvVDvx=;=bhKybqz)7idOHGw)`}(fzzX|46dZ?s&{->P+NM z{wQejcqU-E%b{|DB#m3^bF%nMV|LH6A!RsD^5QMTN9+j_dd1y{F1@?%4_|p*YrC~I zBvjf1fit=6TGEr(J0;9ul1v^6N2~(C@&i6M9(1hKSWSUW(6epmuW_V zanU+hpdE0p0^5fA<{~c0id3W_U|SR?pjGD<>up%L*8={|@Eke|&+xnJK*+M54|?;r z5iA1zHg>Mja}dxHZwY3H5*|!0d`9$o2G|{AHgys%U)&^_9?=H917h#rb?4FoB!MtVWW ztRA;kp-(*b1l!f3Zg|F`6xW|H)|Mr#AUaqwDd<@3B8XX#nv^tiQL7V1V+{tOHZ52d zz#ayhYu?hpgRWa5NnDGDi4YGU)@C-X(m}k8AXJIp=UIIU{VgVbq{D z=(v(R`1q|+Cd`NdAZ8sbnUY3mfGNtT-Pf-mWRI9`V~~gtb3m9d_Shsh=_w8DJft+O zbv@ji2g(U_hR)Aep1iHB9aR>vG@=i@>|hAysG9R1N0{wUU{GmHs7yRjF!)$azqeG= zO^SFRk#+)4wlspghQPR-o0?$WsJ%lY=kM@`oTVkG6{0O&$`uFeAzL8q=_VCZ+s#Tx zT=VP;8fp2-fOD239d?FC^F1gyN-cm)T0`gjigGTp78GEPF1|F9MG~hjc6E9a(fXtX zueCuLyIJYhO?tzI_gflZRA-T5@lgrbUFqdFT(;It(NBOr$Z&{S07N-fJ0n%uRX$$c zD1rs2#UWtEWuHo{b=Ij;vDxI&;8RzuiI`}fc%7*FJgdfjvm#9FXa(7l7QSFg3PCFX0$iNWdksjn*F z4H^AcC|+aR(l(EU?Z2Vg+veN9l)n5g5#c{4!oC@>$bGUibN)wCSP!%^HjIFUL`5lT<9+Njog z^7eddn_QS-dJrzbX>z%KJQryUDz}%c}^xAotCzMH28gX&aRV7 zvj9b6k;c#T_Zd}uremZDX)vO5D6kk=VNl9=dQYF>^rFD5$`;ls=sfs}`>Mee6ZHC?&k02e*wpdCDXDwi zW5bK=1YXC6`h7*DDX^xzj+ob9+_i$IC9j*F3I>!=Spzqot`Iu5*aK5E4Rf|pBa!Ma z59+(4f(Bu^DI~2JBrHd49mEd=afVe)#wjspK8bF7@nWG6Y(82$ID0$Qk*xNAGuisC zkuq>46x7%`4j4{)T@X^{loG$ly+qoB`boJmhWKWa^G}03oPQ@@{ZEyJPW>;IQjC0C z;2iLqtNCKXCjP_@jfkPi1S96g)L&c;a@`%QfgDNVwxVlBjM|8Y_`jWC2QM`{<0AJL zW01XwWGjn8;>I%1czX*s9PHVFMpB3wopVj+0wv`Ne|+qd`kxyvf7VoAEX(c}JZ-F{ zjZAB8K-WTTRa5ZazV6#1jJdKxRiH7S2)KJb2Hbv`J0b$TePMVYlyq1rm$*FnTY7|= z8t6(;$~fmMJ(oRE`}0{QvmcxsIZKw{^~V0B(BsZoA>Rshnn7ZH&$-{K_ruIuY%b6u z;IkN{ANJ{HGisKhQdnGENi`U>NDXoWlObk>h0d6?S;QHCp}P+iCTRF(YnaSHk*j1*=-gbtK);$4PHWm{On1g?_#)|zHon}B3J5|i*sE#;r}M@MhRc+vG=5ny5O8o zRC9KafWDfg#cye2Z9Rad>Bm^Z5r-keolz;Og;@UO+PeDd^dS|425_bTRD{?`Mgte}{rJlB5!B0c)x8dg@GIkhNnc8WaNq_sHsi2! zCI!&u9y|)M99rI}q0CT*(FNRHtyGMqzZ^)da^2IoLr_53<;j~ zWfLilrSgW*7Ko%SwK(svQ;Paam0=oDsWgS-TylR8j53Zv1JqZbI%&2ff<|5#;<%bV z@my&{!;6*s%YQRSpExFi-eF+UZyn=rTa(9KWLA}(@0OZFKPr`#VnG&}h zNxD6u$w(W_CLWzwinH&uzi9Inia=w?q_{!J2)BOdZ`>lg*JPowl z@>E2?qx=s-uxnRA0g;6;&ujhb{&y~aF$fokN#Enx+AwyeAK{h!DDx1$*#wFOx+&m$ zkHRce=Fvzi9wjXqfaH878#LJbFVO#xyLR<< zeTeoK=*N#*V=ChfOfudh>9x2O61w}`Ye@t%d_?RNPTYdVHkMgdDlh~WR;k0&`E1ZP zmPt=9Y6MYMC21&4m)kyzVKJERtxeja;-_`MnfvY&cJl3aa~5BDVhZbl=sJZJ5jv#$ zogt|+C2gn!zRznhXj!YcXV9ThbXPsW=rl?5TS^02n6L(IO@R{~e5CO>E=FXZhRMI& zLbyMCWUh)pW#jn95MWLy^g}0eu1R+%k}K2H%vaU>m_q15U(Kdlt)i02Mg*A!6O5XC zk20T@vtk%u)|%kjj7BHaN~Td_Q}-kIs)A&vK6U*^iLGGzv!q~omF#E}n}@aZqVVH& z%{=b`#tMIR{FK>Od5x}bKl-CE^4uo^Mo^d|_xYr8*I13(uR@42U*rU{9>fJb6h@w} zKHRTd6~7LW5vE0Dh*HIzj7yxXeJA(4#d<8GK7jdAm_3Z0+3dw>#4B8fG4bv=aGxhj zXbokuso9}`u=8r`2eHTe)=ZiHod#H44(-aW3j0_3Q+I7VLUG3CB`4FW1|n#nPJKcl z@WTOLKO&qX>LL3h=k%tGN?CaNEYO4Zmfpv#@f<=J4xQy{1Z|X|ezUu02ztwBCGf5S zsX)7ih_LB?fkNdM8>r-+e&@bk4v~0h7J6!C4c=pS2X^omW28EkCyDvT(wu10Oxi3 zT58k(iHEtm<~(sew#37JoteJ+(-kZkfC~5OQRMs@LVUEj6d*b|@Z%gYq&MX|$F#!x ztqw7t&QQUxGTJFV>pBL{$b1_b?7wDIbb+t?mdtA&5ka_cPUjjL{D#P~?Ti+L>gAKC zClqqHOx7_d$4DCj5ec*YLx%6?`aC#yX7;rN*G-OErN+(bP0F_b-%_5GzWO*+lF-pt zh(?hybA=wL*(Ee+fD5s*XMf19a3N@94*K_H)n_4~)m|TZ^#{aTclB0RMZH5dc!aTP zv`Z@MTVD%Yw!MXY8fTleDNN<-HIcp8s?Y4dm|FaXx6A6`iU1xLF%n?Q<|S850iI? zX)(*i+_$fxmkBVAFQWrmY!5`Qf-nd|;^&f_&B$#{>qAa#QXXHnDgr650;VZTy<%AL zi9VXz3>x^p_-?>Gr}`-%J=f3*%K}$4{iM)kY5%0;#Gww|(k;NV56r|weHW;|Bm2n; z+fIoZP#<-$$v<7e7D4B6u0+Pc8%cnj8=;A3(w&OSVCIv$XTmO{WCfS_p227!gyuNd z%Kt_AtMX;CgyrHrAP-Lu(yqO;FS(b$88U9=03<-D|52a1mshq&3K;CG->YQP%7Mzx zoBgC~UMi!vsgF3jdkAP?%F9)6`V-eQOvy>LP+g04Ab(XWr3|AA??aB%xCmd2=Wu?Z zM~uFyt$~xBlaF5!e%A9TS$9<%H>oDrn}+<495Y5o>VCfCLJ;zgcx}td&)j(J+(=&5 z&}S{&V$D$9=u|E+M=fndiFzJGMKk>=|z1qDmt1BqoNXmX7#w(pLa<1mWW-yE2aeYN zbnWh=jlfZFsqh=2Ii-{IfzI;%81n4X6V7~- ztkH61nBInHM#xFTHkBA+rxy0T*7EAz+otEB_Rc094Q5q)x>Q{l?V_2R4h}Hw6Gnq0aFz)l{3`s3Q2Al7^MkCzcW>Hv=PwAT zob^N-cb|G0VbDxMK7!XWEj8>OVJ2z&q zq^}J7mNofHQW^zd^z$b!u}>GYu(QYS4jyH4_z!E@^)1H_qR)hJi*@ZVjhR#0yuI zdaL`F!wG{0Uw+OwFktii48@&NSxZfNY)^QLWe~wkrtA~0rl_mopWC-1=!?y|Y3l8h zcE*nk;An2`2AQmWcr_}QksSiJ95h{G~KC5s|Ao>H)F(mzFuEYAlFgc+a24}FICWFjkeGbLbiD58csa+#}Y&3(l-`}fH zY>WU=rQ<*76GJ_e5#ETOFZa8^! zgJ%(IJlE3gDV=yYvmMQDuJ;j%Z1N_o%#>1?%mLJe~%bbqwz*XruYtuV-IRP5~6 z+5tVWiQ(lPVbIkI#z%h<4XYr8*#$hUv!WK5Vn-raC+@7=NxVUTiWo~SZYY54@pE3- zBU%ca2~U%)9G)E2lq(t`=BjeZdIjKZ<#)^ARXi`$_J#TdK#ipfbVc#V{9Bv!{X13b z|JWuVvA<-irikU+a8=+sfr^Y26775Vb)ZV6RvGtWvy$>`0lF^OWwY8VpPtK6Rqa<8 zeJWz0nu%_qy4dH?xU*kSsnFXVo#<28%N;;j8O zilTadNMFbq{N>zl;p&mI*9_DEr~=4|Kao%*J+6Odgqv!hhnMSgIhlSmH!q3NF}tP! zLQ#xD3CE@dTgdsJrM+VcRFf`(My3 zdVa|_$>d@j^0A`^LgqW~i6;5oQr(bnbF-g;kNfVoF0YsSLbn}VPG=|pF8~K4&_5_! zvzyr_OZe2)5MfqC%Rhn4?bEY8a#MIh5)!EH^6fA@1=^gP@|0jKut9g`Dh1HdJ^RNk zo}X3DiCvfosxXzC4wr|X2OFK#g(=4HTgcbGA8y!?_$f4)bZ~l@Z*47Aigu5S)0j-z zdaT4nvRt~o-JGldLwPZsar{d!ka{zV$b;)GEup1fN|A_T^Pd1eNaL1fm!iOnt8 zszgvAmoCyJ%RtaauuaIRdz{Z=!vsf*zL-ys5JtQwMX8Rj?qcIzJQp6tqZf%!G&S)W z;q#}u!V6sicUm_yG>%PLB1ut1R`|3e>H0#r&=scCPfNj;S&Pd~QGRYGrNS}v!l^KE zhy-L%U&@2M`kz~ry-{VM6#BiIx<}Q>CAt&*&E~K`_=w!C$fb}Ijv^LGDsvucBtx4m zoT)iWIU?q>0qo+Eu_(HsGa*cIlqkEzg1}KIYXlB6SSg@uW;>d;{EklCHi@5lSlYnn z?2o+Psi0=F94xvJevp0Av*J;dR)D9d@_NeeAji?_mnEs*{PE!|DtkmxQQhP6yW${R zeBV-1`Z*Zjs@F}1Colyqjl@qQA>Wekjx@y`@v7i)HgbQSVQj?~y+!Qd?}^JY%YKae zRis~zg(XlNN`=fK*F(ePt9F!k7?0Gr;_*$Omp#T_?4XfUK)b@pL{JzWSz@adZ4;c1 zP69<`4WQkzGE2Y5pl|fz%;f#93B%BVhucQ>ZhZ#2N>TK>;H5;j)Id3#2fG`J`#8}+ zyah@3-qd%YMP{Gch#?pOR;Sh4NLimya1-$Gz)w zN#tasihI zD^!gz0XD6be!<^y?EmUqRs1iuQx%bUo2yo4L{(2tF?(nZ%RdEwu+Mo8z7N=e6BH)h zNea3T_U-miA!T1>8<#_KMhHV$8FkadRbOQQE(Sq6=GEviG|>k-2hrpmb)*Pr$1*_Z z!-q4_Vs$&(c-&dAJ(k+HkG8OAt+#uw_fQs6Eu^HUjqAK6#>P0IeVkem`tG+Lu zb{cV_J7Ym9o12UnM>Bm#yBXtMbV!L$z=FX?jNP+k5T*~9)CiHBN~=I_4HOB&D#j}; zMWY1rvPA~0>NIg8(jS>9*!8T>^e8a&p_YeGz^{tNGJNLfR{3c}ZOc4uXUilBa|YMY zgp8xbNE3L6-O4w88C5;9P~~rsFOwMpOR4ace9Fot;#0&tB|^b@NYkxig*JZ%q6#sYf(SOsW|J!^Vdf>n4 zNXQcFBRF?Sz)8|soMT5=q`=qE9*l)W5fYLdqM@O26F9d}^sN@$IU|F05^QJ&#(I0h zAn{RJV1YQprOLg3oMt+@v)6Yu#fsHRUES>2osExot&g=2)s@faGx=WZFs?T9j=uP$ zK9&1@;~AG3iGCFW$31_4%V&fkKUIr4Up2_eJb2fhxO;D7CMI3xOFG4?F(=b|gG7l- zuceZF>hqp+vFwkSa=Y&9_lNVRQ)}k1(o(2lDk?OAR_{x-*I}2~nLk(K)ERv4fs$4G zHK_+P_kNOFk0*0*bhZf;j5mKC9}YtXZqdRmzZNOMb<2Fejvg0YOMGeh{W+Q`D?Q%` z$lr{^h9a|caU#7;2L)mAhBfe=nOBlYSD`2>e3n+({lxrP0|rv33KNJ;Z7liDLft9R z*voNBP#v-G>;8?rIn%eVcK(yc_AxN+EA=F0N&U+QE!yfx6St?N+d(q)032oZ7^T&4 zLQzC1Iq|scT|kE?^e}!6IB!=2_2_2C25&%V)RCG33M7V zY@}sVeG2;QTPXi)VkoCh-eB_x$o61unw0WS^WiF&()#5Kb{kQ8$@e0{vztzoc#9ao4nRkHBXQSSpZ)dYCf-u3Tos)tB!zA z5hQk`k3UW|^9_L*pJ4*_z1(a%M1NAr?Ce zaMmvieslzfi=mQdWF0cG1~ezS=n?)d!UhkKA97_W0tZ>DXpWH4p@H$Cnm5)23N}U& zMDOG?S@5zHuol=tL#Ig&57V;JNYm-;2%4|HuyTNke9#SDHv2&*USkwcTH)iQ&Mv+i zDK5cDk{m|MhgLCqIPNWqadeVZFhTtSd9Ft~7_rTBiER)bjwogHo!n5`3)CH~fI-Ln z7h-O3cjx%s|pI8dbiyksaH{-Dia4-r-pX15lJi6e4lfc-<%9r=~bW8U%5w1 z3Utx5V-KFNu9~INux^;sFc7Ti*I}D-1ak}^1t{;aTCwpb`7UC^$ibnM&jvH*(h`&o zBkmioMplZ^{b5?_;iD35T@46^%nSBq4STPM=HXF)1CopXgM{$E&0PO$1u;6Y#|lT} z?eMcx-I%-CX=$_q^|&y)Jfo1jQB2PVu0y%@x-C zx=`inO<8Q*QK*9)Co#=2yVvIErC<%+6oNnBJRo7H;RDTry5C3K&HY@#tA$arhKcDL zE!16Ie-_aDEujB7Q5&50_UU^1$ZwsNSXV@CwQ}`84$}eRYucdSO0dBS*uoA?bJiU+>W0(@` z%+uTT$n4)gql3TW(lbsofyPBb9<7_jjtk-DYxx3WwM~R)>f!F43iKg{9@6eJ{fcz# zf!bT`OuZSx;j+24b@eoTJ;@dI$dBxk`uhBZsjJZ-K%<+}@N40n5JUGF*EQ*fAQ(jH ziN6({d;_vn|F)IURsuhILLgCbX10#j_D@MVBup^Ub zCBTG8B9#nSgh+ldtWM|IlV0xTH<>)~k?@{V*-HY>dza(ezbf4tA9&)=Vl|VWBb_f^ zTOIQJ?r&CxI?uUMvc>tE@0c#0DfgAp#?9*$HJc`~47edb@!z{KWuLw5^Lju3`9*fu z6L4Y2HjRor+F?5#>KFa&F#`UIr`An zU;}_vjYc&X{C?R|*)P?U)u@|x5^Yp4@)7|kLgPlEPvo0+O+{}t+lcPVqRzkX+k4xB z>vH=LQm2Itf!YLYAckHfkl~S-qkp?+c;~p!NHRQ3S|Za2^n|YCUvFHrhqO*Y}R)V|;LZlo!v{fr`%S~x{%C)tZ8t$AIyzCJd zYZ-!#u-#`w02Ju-J7&{W`6G@f6IsiN`8z;r#rLu{r5KqktVl>aUKNn^^sCb`KHWl| zH;G)8C|ncA$}20T4ry81vL7r}B2ll9KmHp;1c%Exd+*;l@9*BK``)Tkd#YBgTD8`H)6eti?x*|P{rZO?of8<;$uOQ2RqX@^ zKxbKokjSpg3HFW9qd^$Hn~TFt9@2Z&LZWuFmDitwmq@v;hjcAUBVa@Ft`I_r+0~&83UljW4(sQ!e-q%mUCcGo^1u{)+Lv|LVT#N!V z^IcQYAFKSGTq)(82)|88tS*{qS89!ISHMuT04v6&X*jj3a*}nD2Bn0Qj0&OND7#7V zY{lwqj4g|Am_+Bwzz=wcvV8b;@VMW(e?G0u`(0TRLh=b;dsI4Jy7r^D#mn>a{^e{c zPkJTeUC{ICB#&OQEz|eo} z5iyCqGA6=caRtGkAV2aT!7UkaaY|7~0TIXjK72Y@Dho zRLm5XXh-x+WC=x*&;Ovsl)YQ!PILT^=WU-HafLhu3nIcv& zYIN9ULcs0=F_vUY8#jb9u9`}r>BwvdXY9(Ep}M+SI!#T--NPfBDA&MYw5Hfy^SxC* z_x9oG<2C9C!X3ytjqZ}CvF8LT&{YAhXVq!zFP6ajZ>2^1zi9E%<}KDZwNCPXmB2MG zv{V#uq!9)qY}1jGK@Wt$VlDWSk4fSHg}osyqcXiAABCw1g)f)!DA-hn)4y3y5t+l2 zAB4zmlvK3IXM3(^mhCNDKlWv8>X$#lxsC{u0xS)>UVc~Gt+j5@D+%g)bB;VpBPkZ@ z*WCWxE?YH$0xX>xo%KC+?HN?lWah>q2ciK&s^>3Zk?CeLv`a#Fy@pKDOF~vQ?kAkr zS}39mV2MVGN-4&^r*{pvbOp^I)Im~7GhhMSzrEgiT;qPspd?lBgoOwg1fa68%Mv58 zb5&0acX{JLg>F}-0Wcb15sQ)(-9WNbT)bi6T{0lZ*&i7|`zkzt^g9BYnD$8gcM|GE zaDwJwB(+4KQF#Xdj4~!Y2m6ulB{<%dF`z*b6u9&;011cstN&An`wa&ks>M!~m{dt+ zPeBJ)Db@u~G-GZ$wvM#0&fE2%j9my_!elPw`SA}^CT}Cw>kWv z2g5WgCME`h$-#^TGf3LX*3x-uzj{dG+4H8}m429BR-SX_`1^G?pElA19S|-U-ZSLQ z0KUXidUmc|)2D|s=)dppP$CfJ3QPlOWy~WU`y(M^;9<(^>Z4;-f(_Fqta2q3<3{ICk7r?>-hbY`xV#il zOQG&kCyOu4(?G?ufqc{&q7wT+xXL}vYzf3`C#=5x42-WPr~ zoTx;rL=DdH&k$($j)^2XKNJocB3n6}6u~nbdlb5!bLDDIRV6ka%W^T7p6zP-`qSd@ zHwP$fP^Wd1^ur112L0Xm*P*!u4Da&58_PR*e~^DfD15B{WSZa7Z{1e6_^)DZXH+v4fP(8@#T#ly71dDO2`<{ zO6x5uGmu1aF>kypNotkd>$38fHu>R%)s=o86%{?T=S7!{A!m-D;e+lP8CPfix-iT_ zE$_!ulX-Twe)d5F%{w{eQ;i3Vl!xb+{Z-6%G-}VM)nm2$<>Sja84*^VgbThl{kUOh zdwlKkb@l4=$4qT5>F&_#vQhKsR_p@mPOSyYg(Ug5HdbX@vLX7$rqXJq*(tGca~7{T z&p*F6;!fIWNeS$wXfHmA!9rIn>d@@Roh$Oz(SyE#nhOxW#@W*aq8WnhOY$Vgq*RB* zS3^*7iUOY4kNMArZ>=G%Rw=t8&;BFp(04NwQ2`_xgAs?%+*7ucK{} ztVkzZ`BUYMNfkhvMVy@m)m=7b0Elvf!XNV9TH*!^UP*6Y11ry7(K#{B)wbXpwP;bp zu~QvdJ0eIzwkaCGW^wM3ck#4n?KI=g9SlI-%%|uDz!zQqPVXG8&Y{Rhkz0{Z=WCts z9a1WEz(er?5k~slapN|Ti_~G#WP;Hz+&e-qbS1J^~sCP7*aHHGE za-9gnxnS&#r>t7ZN`A4%$WXRUN_PGU{8rZn9^g)dhcj3eTfmx_WGd` z-I1L<{MS>f&ywpGadNC|4{ThX4*51?jqsJO0Y-@bvR)II8f_E{-CYlwz7FMC+>%B~ zwK~p{0#r$;{^>TCQG*OwRQ$@OM=YRL4dw`;M=Y1{3U17j3E4D*a)DhFPTrYKeAN>K^@RHu0v|H3 z!lGd{G~|{wIBOZGhk``u^9VcREyai9qYxu*2_)(p(_9b+`;`t45TU`C*y3qY&$ihF zX!<>l>JmA2H97uz%mKCPv0Mc)ugkuSn_Z8-1aq-jijWbGP<5cPP@Z`uwIbcfV$Dq> z6I6lZmr#Zv3szk}2_5zV`mg`eBVe5X%(uS3x8MIK0UPi?$rFOV_DKD=z(n4` z-i!~+GzRPK)c*OO(Mi&ON+E{k;=_q+LSsXb6MXPU96*bv3qcQ6IN*qjqo)9zo<(y(NTYuUcgd*ClvZ!~?ce5nM z_PJ*N7dMFpj3NNpWTf^z@UiIg>Q%+!?{w2=Nx!G>yH1}-$h*U^L1HBD=9{g*`g5Zz zjo)$+9nsMe9Jynu_AX6k)_MskOJO9Z-cUg&$zs8bmUqF+++Q$TTMU$Ef^Lu{C2wJU z70O-^&aGF{K?N&3gTr@EW+`XQE=MM2+FTZ&v*t3=i+!Jhe=20FiIGEtHM|4EQ;Sa4 z>NjdDR1bc1D*UOI)^@0EcZ$f*rh>(J7ap#Wr#+zQzG!~wgGN1-MD$_cd!~6;T;G5e zjt;-IhyKEd2&Ud1m=y1E9ul(ag?4}6By43G+%P-9?>i7MCf<|w2_wlY1jGWPzGY$& zV($=ByoN?Ar*F6xV zIV+O38zRMn)dyaykXP1j*uv_*8V&^n(Nn|L?|nJt-$x${N>elQ)^E*Q1=2r`;e<~anikIa>E4ge>*vQ z_Bm(2%9nuVI7;tN`pO2=)O3jKy?2+-@}Cq20Qlj-5%+b|W;6dIG6Vxw=zE*3x_>XK zwl1`ty2D~uYoc?~4vK=_Y&aYlC9Vemk|w8kvMtmSXtA=vsttqt%iQEW+)nVWO|J~e z$LZ=HPb!c0cpEyi&W5m3pK3z`sNOLFaF&w^Gq6GLp|ycJQN&2}R-%0YC#J45#!W`( zsDZYz9~T%vN5Z^72|Jfo_T*%d#{3JVPz)ZmJa}ry1RxsM>qwI4%*XM0S}e4H!TrcwD0NPXR?F(5-+^So{`=_gIng}mAB{Z7dgkZ?aeoUz zN9(sc41zS3`IcwkL;a27B{u4J#}Fby#b|So3$hg7J^F(WAr@Dlf6$pNzspD=CIj1~dOaYVIp?T5Y`88ekb1Iwz|$VVmR6 zZuz{&K6gkzm(EV&nkBho-QC>`Gf%QP+^;g6FuAAtg1<6JEK{u#iu!&)z}e3~8&Ol0 z1L@c4KFfJF%8349Z$TrI@s2y3y_{Trku$H1J!*bsEBfjzqihZRaAy;$>9WJXN(`K% zhL2u|xNx{3ylvvr{Y*f#xWIsx;%6iYv}_@}kC=1I67jZrAuoleX<9sJSL#fXo-LBR zbFX@YA~p6Rv{-!@2Kf}Q$TZL=l=+^_nPUEHgdYr6o^GmI1b9NaC^jh?s}V3Me54wy z0q92CspG6bF9ltRq8qt|t~%_Wj$+nW%w1__6>lON*gK*oZoTqw<$l$mpHf(hnVcrh z#u%M;!!xziA(v;l4er-Dgu%DpbxJpzh-ck(Sy7{3Q0YSJ*jsxzxp0Bahz-KBy{xIS z@Zu)nUsA}fEQ#(VHxzPxAQ5-6F?)`30ux+A6hoIT=|! zi-mUJY{5Kp59}OdG@R?g@*NS~c1KtfkAT6oCUTP8(1pZ%$S#o-nH+L2$v2PuF-5KZ z5_u`A;sNQobX!=8usFlt&V)Ei69WbtdL#Gw2fTveXHzWFf+QruF66P%e&!c5%_Bwg zO_hz7X^Ly_9ruBqe9TU`khMM>YIDPr3Li^-m8i=X;loj(SG$4D9~3Aj{4Jy?OXyY1uopv>L!>;?TI$fr!ePZAtyn7>-=`6F(5@nM_HxgY3_t!M!00s@{Co! z7tF%z3^(uQ7e1uNSA0jp6x;>%7=L~5+xZEpe#u^pl1M`I8N_^I?Al#&0s$nMp$5qf zD6$9Q3am!uUU}$RUU~JNq0O{-(a3!KSZpD8ek#I*&Uhji9?4K+vN-I89+N7BXJoIV zl+AMPivoi?0eJ53#>P6GdypwR*_{>?-J6dCM@gW^3<_a^!k;_wHSb?Y*gM*xW~Hz` z8MI20JcQb>Il(@GRRhwTIiSZBb4`Y>1m3(zdbWhHME3}+>Q19Y^N}lXs@FW?P;ICx z$k0u{HYnTPw*=94v{yY~$>GPU)sVa%Z`0WcoSxiw1inaoVn&dmB+Cq!WBc8S1r`kM zF#}df`r0JC9LgdyUJE8Vv>}V*qnl8Q1jWocPu}-DZ1x`#3-3ftPzcdu%EV@cu?8&( zc^gk`0@)}MU8HJ@7llBzgcMLVh6Co9R++f0OTrG)qo0!a{J*dzve4yI&Bh;xP^{df z2SpHP`9jI|3ZbVV(G;xj3?#)eb$wX1l_wk@l?MN6x6_VIu!WDp3eURzJZ~KF&1yJ#Ws!=y9Z$)TSd&9+lxjAls)6MyBsZ~WQR|jW46&E|c z{}jX$odI*d^*Ip#0~;aAa+a8Hf>@mPw1FWq3D+mW7X>**dEsOtI@^;;k_uIkf{I`) zZ80qR@W61yBRMSobUU>fMy!GN>J3;}blMBlLs;y3Hs6oD9*43$c8rp@dM^0?_*_kL zIV?dLUUmQEhVB8g0A5~flE`|;3CQtG5>27EHK!1Uq`$YXfE(sadJQ>;$;oSLFWA~E zY>307;L{#4@_pp!Hf3gYcj45VYrge~wJ4>1M}_P{!^fi*pCg9)$E8p$%rVG*i7g%@ zXDw@hcWx*#s%rnV#fBv)nfBa9FYaxSRW*j!Cs(T*Ibc*?wY#}b(8en4Ct>8QJ%cAY z`gHAGE~Rag8gjufUfp2QbG52$vI5uc`AB6hAill5)XDWbTMF>}m4u!;tL`(@22U=s z(e)*=^~bT(gTV^cA3mkqVtzQ5Gc?0Ip1jG!Sa5tzl`hGAXkY8Bd|H| z>XyjAtgb{%hJ`x18IX99_|(fwsXGu83AR+h^+b06Njl@l5j)BIa1Z^>OIOo+AZ=%62pj8QrK!{UnB1Z=W=9N7rD3IQMGcVm=sryTR ze~@tOND^pziqT?CC}hHh8f+lg-Tw8Znd28=rW=U!$>ARPM`YYzY>)D9Iye6}+k+YV zhwT-o8d>IOU=RE4dz@ut98xHq_b(1=RI{4H4DEJ4!xTsvn^!?uL>P; zrj>F_d_8DT6%5ZTCA|(}a9*k^nX=Q0s;q$MHB;;8td&UfPDV;+ewgN$^k_}(7e)Sf z5uADTf$KKsQE>Wx^R*Lw{ptRd3pio$ygK0+1PE`w7s5Hx+0ncSW!Z$!eVzL37OMWp zB4$5%Fo9gZv#98ln_o7KtUCFaa_uH}CDiC^W^aC!$@F@iLk8i6Zw70h8l2ya7``6e z{z+IGR$Kst>>Kcp$5tJyI5NwTD01lYy5^iVSBk1wIA6%>KHWCqqUCxM;OQRFL5n?T zRGpZZ8pHOmDUcYNdQ*27TBA~j5Oy+WcZD18vA}9DK_&U-83K_25?Av&M{Hs105Otz zAVvJ1+1W1ltP>WZ5Du*2401fqs2pa|wXFxLyOq?B2~6f+ZyA^+M+J#91e1&pd55V? zU+8R6w$gF^>EU~ja|AuVgnGCdI=(z%70D9bXfQ`#BBgfx@jzx45Qw>C1T@tIcy-sN zzkhFjRlGADCfRE8NX?9962HmA{-KY!*$yP6oV&YKT)ThxvEzU@D4ZQ=sk(p=N(LYL z&fiodzy_FRNDEM+V0oVi;Q9dHo`%e*UCxQq-rMG!l?LhPP;!E~ zGWHJH9*?35&wnnM{A~i-R01sw+=KQKcIBBvLnWDGbi0jU=GoLNE>~sB3Ja_U+9XW7 z3_Y}h3&3MD1%8u=6Pih5WMmS%Dtz{ajMmz-MD4vZ7t&`>2QCA62+9_%;)}dKNuqpZ zOfUTCiap}UbNQy$s{G4r?zfC>+Ij;AM|ekg`=j&`!6HY~D2{U?l@zJd9YalzT}T8# zsH%W)E9eTAw=?`x&q}r*+Ii)sNGt?L<#2QBiRr45q!L^Gje$o74$L0jX_%tJrR4-w zjZpH1b3fAvHlTF)%tqSb;-T|gcgGVt{d2sR9xda4MljQ7ExL`9yXJu%%e{#GD#I5*-#Vd%YWCAO;ifH>dCyIRT z3%z#Bs&n23Q|0M?wK}ZzxGJgXyC_pcZ<+HhRNMtnNI}!}Cn;CqS+huU1B-HbO%Rn> zT<-pQ*g@>sR7~vP$iDu$Vso2Ga7DWD9G>)rDcrgwQ)T+Zczz>pPR%*#7oy?z2N31S z^RDQlKa__~(ca$qPYs2+$DU?CL77nV(EI^BEx%L52Mq)q3SR!v)_FV5#E<)kQ2`zZ z@I6F|Oxxx}{&;FvjKY&GPWP-|Z~1#eIoObGy8`M={LBuvut*<=NJK1+wB){7BFJGp zRJkZ=Tzy|Sm-$>@-_dxBP_550*aOGu^t445`&4B(?z1Ucyfatq#+qQ+sO{Xmh9w?R z&I8CaxGuRzw+58^vZYso(X9(UdGOm#Q~`(<&Dw=tS*mwBZ*dcdiTy=1l=j<+8k z>-<;%elag7=Pu08NT*t1KZdO~etr~05GQQtGY+wW&h9s!d|UQ;85Q}{Sx}IVK#0F7 ztO-~|y3UpDvHO)z@$)H{IJ#o@_Yf2v_^SAufsZ}g6G^ev!Fqaj_D^H><*SHtk-J6p z6JA0GM`tA)^GU*q6JNAJRmZKD%kr@|2A?M%X~zS*ewfW5QTykb`PLU$(MSxQRx z#6pG7>p8hwDXV$Cu$X?9iZo97n8gQ-e`T;VOgkEErjZwf*9AJ)0i0T_UmZv`GK1*= zgBY(`9C`9l(>(rzIN^H2Dwdvj3Kg z`A5elFzBCY7?p9E0Y&7_W}HEVj1-D9m`g%vw`wtTbR}W17{n`EBGN|#7e>3WD7nE1Mqz~ zCc3?;rQz`EoqU_>uw=KXe7$-;!#7+2H#VD`bwH7Uy5Ry`cq8iT*m`swfj|U|(NRYPV7NbkWZzq&UB!h>?M6k-!LTT) zrO~skxuomZVDb3J6B|R+71}c6xnKOe<~NKI4To-@w35R!m&7p>NP+sVXO7>zh?7@O zmlrRmUdJBiaa;yBuP+_m&t^BKuR}+IKkPW?*!vM3-0G`@cloF7ja)aYpNUQs)aVhzGk8LhN^#{Fx<9>Vr}tDOJawkkMFzj%3TcE9MJTDBJf+ zr?q0`X0E*WMOn#^Hb}aVK&Tk@K+>Edcq*eVywr5=N8%`=sP`rV(D2Hz(>~^0TuMxc zlOZ*sgwYT8iMFh%*xb;J+*7NCM#%Vai_7_kRvX{b00L6z`_7;kbykS`7sLLtY^8Zq zTdn!hnCOJTM0|ATxLSkwUD5uytq?@6`>wYP!&}VzvIlLC>$}_Ps*yM zLM3Q&LMlvc&*eJpKvl%wW!Y(A_^b5BR=Brx^=yyTtojt&0h9plCFBLhp8l-B8H`id z4$E=bK3fW1AK1G`v)jnSaG=bDUhS%Vr&$5#27mLS3Tv`5$p`hM>_KftON=1dWffCl z{P92bY)JUb4k8-({q^d|GmkKf*hSglu99{0#mF==*?RH9Am};*oxx8de>`y&mAh!u zddo;co3+0!p2{|j3Z>g;KZtw=&)uqL7>ASLCOGLVMOm8*VA1sLCIX>VF;6QB@(|*i z=A`DWcmh*+9VHqZr9(cQz{T#-3wy?8?}hq@B($4|PY|IYUB;8P8hIcj`?PG?|%Q0dB!P3sLn= zPT-$a@6a3(lw_V42@?XRmRR67)H6UxqBe1AxBBHQ)sU0SJ!J=IMsL4qfB90w&Nw#;kfkBT9GGAkatGp*VvLjDqvar3%M<1k#6_rIK6l~`&-=g66(kjy&M3KZ zZV|!8)A?#y3m>3ks`1a^p}P$9eD#~;;#k*pmjqtwU$gv{Bg*Z*xZE%yUcQ<()xo_9 zll`}N82R6dnwWo~rdLKs3Cw?cql9oBrmI%>(XVi8Dg~^&A}1R45nV7ZS1~y}e}z%E zZRu4C8uL6$g_X^b)M2-0d;)>TVrrrzIm#gJR&V)K8n8tg&Re_FvIsO(f6eyZ;6Kn{ zI_^B2WsLX6nl4n_15v&B-e2GgEhjnkd73D`hqva{vV!p5-vLdfT&xg+9X);bca8<8 z?Oh(OaL6ycE_d!sIdADnld69t1b!23#7o;lpxl6wlSd}%W_b@iAuSw_?A$Nhz$FY_ z+EWRw)dQYH{}x5*1`(G;WS%V^@$NamI-3i~N>)!N#^wkI zRzEWeC{bWfO40Pe&0je9r)p}?x&q^OH`dr#%4Cx?lsz>d0~PW9`k1x{Oga&K!sq-` z+hEMR3tF*%plF807GthST~Mt~qZHkIJ)~CmlvlkDNKrP&~pW)~V+wK99_qllJ=5 z?_R>b>{G6Ei|Ln$G%m&6p6Pcl4$(Qdc8_(xbo$;F_iE{!{(%}b?iB~&KxV^XDpqd& zj+mv}Kl&Zp)c36yTQ0q5sUE7z!@9*-P};!^)8k5sE=g!9a0z83LpRaXpnAQbyxtF) z^rJ_++d6LM$kVQHdN+5^vvSkst7Rc$bLV4c)y@6Ws&BgBW)P~frXhflxqdLk489yr z3eV!CBaMhBNmXpv5eZ2&ZuH%8FMzsQwj>ydZD=7y>54g&t z!jLrpWA+BCegz(Oz{em^TO85v+hZ2~h|`Ca;*+*-u|I<7yZOG7^@ot#uocX5#DwdhkroHR+?9jrQk zVP%)(q7&5|F)kfLqc>Gk9vGI-2XS~2kbwbC3d>qWOb||h;}}khKNSoa{g&|ys;i;5 zvATNqLA{$$RGiiVo|i69x- zx}qowZ{@w<*(?+oNP-oP;y~V+ObYozK@ND(6}{CV2p`nRYf&m3c_a{sr_;-ch@MQI zCKVFHIV6CHsR+xuhqya}6YYUtN*1T?&5s8^Ul6SHWJ@NK?wpKlsuOKT}{E}F4eE5+_J`X40d?sDoc?fkXRa<)%}}k(gffj&JtDz4;7YnW`{+QRfg^C z8X3rzu7sChoEMy9Wi)yp<5P_gv(GPFmoJO1FoRpP*KA>(sKG@_`qJ$2>dM1YaliI% z0kxt(;^#QcmomjP@c>5?pT-ZKo~lhG>#d=%-UU*)VNwT=ICbfs0|f~RSVTA zg01{}NWwIv%B3mEgI2W?iX-I;jDo_CUB3FXp(em$gje4p7`@{cA#mpZ65gdiAZ8YC zY2Ivk$w(dI*MQ@%_Gc>Z!wPgIaCP5Eg!d12TE9o|vW2J=CSL8xQkgHD`t$J5*vQy8 zS8>Ou=ge@0os=l##c`s0M9-Wiu*9(FRtv&iCAlX3mpF@5w?}r_bKy9E;Hyac@?vhH zsY-2C4y`T0CC723PB(Cds(I+E%Lm@SSb@*K6+|!pihjE7^~AwLZuYj4SXdp%R3ZiW za!GJoFmpOG37`ma3=X*$I=LPHcwJ?GTH0FX4~U5|gTS^VH3f_3GW`eQs~x-(K^ME1}*$ zJ|wxj{?@rdJ~+%|0}(r2P=ap){ag8D@tw%~L=-5n-?bw4N*vNVQ_duE1!^oOr_|E= zkOTw6$~col4mst#SoN&GAW^{$3)q~q@kMO)TYVb&C=EcRKNz8>{@hu_b0#p9`d(gA zRnx~kyg4Vl^;a?ni$D(7mmadDvGyG;t~kSWW=gKNQ&ARy=WjXw%apEgz=A%9T%3Yx zaiu=t1$byEQ_*eZ{^M_GCgr(56j9nhT*VjGL;w&&64L^QQ~ac_J4PF^HXf6wQ{8E z`)(g|8(9=KtY@sREOMl``_tmBABo^yho0`uq908^ec>akQ7Sh+s%%!Bc!!tsOxM#x z1HZ5PdEpbpiikA?1#F}J_2ZVLYh+b+zq2;#(iOa!48W38&N$=uKF$T?>Q%gLrK? z_%#_vJtt2CAKk9u)?h&t>%d148-y<5 z`>`7#Sh&JGwBu{3>PzFngXxD<{3U%?D{* z!Td0bCnRV+jSA0@tlCgr+o_VWJS(%{$};ra&3@MRDS2%58n|^mPG+w3uwjn zV2=De0%R#N*ag|eG`_UqDJ4h63)5W9A*54Sq;G)oxV{zLEE2!Zm-ZhbP zuaQO(W{FZ2MC9%W)PqI6<_sl&o;@vFe&mOyK`gWQd44Vw?YJ|e&$Gf+rvfc$^Y|$^ z%5cajDTX-61V4R)6Y`iq#H&A6b-~@ zf&6?WhlBM4V8%xc@gCYZ{)K)9fAg&Hf6n$`*8YV+9b0uZoMFFXZ;d>EO@!|aU?k;J z0FJ{z8W=lz2|w_y5DJggpA0jG%-S3L3yM1FPKZ_Est1Z%o_sVoK&Ex!fVm-?AR&3l z>RqQ25+<9NB07>?_u3EN`u1t9`zfd-*#eqX9ItMv$>rzMhyP_;9f7H#j&d8cfzH-?@ozFPMG2l(H{-mkw5OUxCzY{IYu`lt=}+9Js8 zegkQv)s+6m1&KBtLqupk(sO{24!?hH@ai2-6m*1tXtA3R7C#uS?Tb+Q0^0F8^ko80 zqqm#?@n(qCh#qMVyGu|(&SKIye+aEu}nhJNEJhHrlQI4JS6e}!6S%%yT;NoW6 z@Q+JyHc9zJ%(r!{o9!u==LdHczK`r8?)>JdcF7@k$?ul+ie2TZc03iM3lW(WrJ)Zi zA+5o+6TP9QFENLTEGEY!{#vT7FKSd2*1jw#Ro$NSv5NHb4Ji$R#EbY%VGLGid%6l+ zYT18D7UX-NJcse6Y1D^{$JJ1C zt^5KVzUm-F&~U~}QDO~rsWjN=X<-MS<%w;=Am%_4wyM8o-g{bSbcsq@d6!3w<_i#H zl1hlBJslx05xnI9$rhhL<2jpRtm%DavwxPVXBZ*U?lbHj{+iK1=mEr0)r>(xPSy`R z;tu2J>H@1H1FKAZc!&HvLKi1d>&+fWhqgHJk@*z9aa(qS-xV#yq@pLC{c@!&q%<^= zx&?#}A7aAKo4yb3RO}ftuapKW&rU@GnKOX8gstik+*tA3Y;61-qapnaY1Im4271Gj zy+H6yb+r+K$!RXLHY@#RM})0w6J0iUr^J4@W;6Sw(ifUnd~)Mi`3MOpXi_B?5W-#aewNa)KCU%hRgKa`Et)+86_^#ku^MxjvGCvTYf;)aGS(6BQ6I_0@eVX8G=$YC-2N-neT=-!os6lA2mb zQip<{(u7?PT9idOwzs>h^I)|6vyB)OV0WQ(sC3EmZCLzv{72MXjPRJ>^0%0zz z(tyfG-F~ka-N%vVAm(Sbyc*n;0pdchzc5DbO+q?CQC<=SkpS`S1&XwknDW~l{2$kU z7Tc0uy&Ane{4K^{{a4AihJ%x-hLe%wKg7U)Jhw)^)k{tPgDxS7cCyM2ctdd=rRm17 zcgnQX1%`;!w2avy3GhnlX;*e_@LozF@l;M4SnWM;>93vdAQKIo6rj+sp=1nFMfhQviDECW!svMb=Ph_?7N-q`=SmlI)nS7$T?a(O;K(k^}ZO1V-J#w zI2CQdpAgqr0CyF&+>I!3&g1|&<^7jrrDNF9d%k#O4-=T_1EOM>Us#%)a0A=U9iYTm z9ZYdgKKL;>9Px*>in2EJa5Z+B+3)h=$9sUOUe1E&hNFB>qg}A0+UauQ$A>KPPN;1T zb+NDH@Q3Vk@9?y^^RV&x^&E27J`cf+YFB7$e%DK>b`ud%TK=Fd%7oMK;WfYI;$%NS z;{00RmnbnsqykOPK`(|4`2a^O%C#B`#FJmS^cZNmS+m_eCD3_gRCmUnuC6m^X{3eLC!za96CI^c@}K3&$b-e~6X z7OvmlZMUF3`u1whsXH5T1%Mk=ng^06zm(%$Oz@aHG+VU)^_&T8WL~6!7FUUXcY*Te9-7Ukk=wr z$UY;K*kkGQ3*g!@|L5SYWE68N^wvG<*2Oa@X$`KmQ3c$&Jg0zS9DE0*7*x3X!92q% zf9VF*UEDQ%^i(@;qKV(^W9BjK^-Pte`fCO-WeO}2a_LgPE?P)ynj}i~BJ!mY^9l)m zH(Np?ADXqfuE@^SnT}oyZfHW}8~Ov3UUPmcQ7Yu|ZGHS#b>Rlw|8Ye@-oE*NFJJ$^ ztSC5xf2^qDR0Ks;Ns^&3uL5{jqhJ=xcu0`0FnAa2W|VROA_0o?U@>Q*BD&jwp(xjf zX;W)Q$Rr9FsmRHd#1yx`;bDGhVI;?Rnp=K_}5V*f7h@^moQzqvg= ze?33Eg}zR!|KJojLMB-xR3uATWV{@C&2{+=zPIN4yDd0>X)AL7{+hiK{W5vi$M=TK z&7dZ)_lD@2@Os1HH$;I1QKxQ*&L>}Ch2+x7OS%2OnH?m^u5ElZ#B{-EYM1Zx9R74r z70XC2@LufqLYn0fU|myIjKXZTyPo}bg`ajvO5X>FpQ)1N=*Zj%Ci4^bJ@7Jp>MUWt zZjB6*fdSwu*}kMZs!AqM5}jvgWp<3}wmW3D2|0C^m>)Z_})MLdG-eTA1Z9sB~IOWeoE(2+Zi7X@X@a%i!@e z&(JTUQ(0tS-1U*jJl)O_bM3C30g(X;{hqNY8?W@Y`9c#uOgv%5DCh#1EQVwAqxt*G zZg{I7aIY$wL>*ing|+FSVfu~AVTHUjxhN4B6T)b2t2H*+l<<283on_x{mVY{E3Q8W z2B{eBCk6N>N;Zz)6O@}vTS#F zKc|?gkN`(0=yrPi10ypy2~|IJrBpnyZaUL^%@ee+eJ&{fdSXpuFW?hG3ah_8)|rd0 zHgj!iXPSV?aKjBCdG#6>St3Ysr^?}RKfis<gqtCi%b6K3=!#1A!--@x44&}CA5ZOW1XHRw%K-BJs- zdEPXw>?zx#28L*9mT7}WRz2*CWPi)j6)5KR0YPX{RN#yjK%rp{HEEpDYa>1Zt?ID; zb(B5nne1IRu%fccA^+FC7RQUs^S2SxrqZ|)v$cyaS`cHi2~4uz2kH7+p? z(~Iw{2pZ5uHHg#p1K7s;xASbOKfIA|55~eiu%Px(aYal9r^<=zv1|1EY>s}DtK07> z*u_-*9L1fH;@gITd(Pj#EQl(iz6M+_{SBMJs9>o4$eE(yJ!u&uJwP7!Cb*cYcUUkR z_$5}jv<7(!1!<~fMdwo?p~X3JUdJiIA0n$EQqa}BWp^h7fGNPSx-Q7wL{@x0VlVeX z?)J0$fU41+Eq{<%=CAb^JpC-QIs)*$BydA_UJ`encjv%Vmt3~xaAb&?V^9HcBR-cggWUk z_2_s>g5Aot+a>3?j^$hP_;b!*dWP3?*(8wFx)HZ`Mz((76JT>2_ST4#efJXqmGfq6 zCdD3_)OsLMF5M+@6GrQjrc4^@Vp3+Dv+P~XAI?~x&9J`XIK}Hzie&HGH2uOYhgXrQ zMt!2T?@(GMT-$UG{WL#6&J%L6~omM6NJh;Hoy6oB%B{So~F<<~u!>O?;g^%ue){7s)3^S|6-DXY)U4o)6?(#~df zeDVBLZ-d65;{U;Jy%-ePWEZ00?&(fPCN#HoBywG0mXEQi4Y1#(oX$!R0z*vG5|t_% zSvN-LH*_r-Fe6ifm`6~D{b(h#`vt2>Q_$~V3An_OKX*aV}W<}MttQw(O)>(ci zq5Z?}j3^n@rq3SOUsC~wVnoAa!)dh|B@2x^`_#k7H!{emkBDXo`>Dac-j%{>o+qP}nwvCg$zg4x@TXpK}_f)N4_s{v`9@iXWUK(xLm=nAj zLkhP;Ok&74E^@yY{fha(Mr+`Si>bD`0F<>KHs9N;X+b;RxkKWgsn`ZUtDM-c%rbz@ zs^Ure1*5R3o^THgylUzE@#u!x?=Mg<7J`GxjzML2BP$MY?t)MOE*d9QxiwF^26-m7 zbRT?Jo9YlYmZVTx`69kDJ_ilJ#^5l!q>Sw?Si7sIoM6T3s<(@QI$p5Mt)nDks~0~a z3Ih~_iNxK?7|OBP>Mde9B^0PY-H#U7Z5y;~8?b4Ls0}TI4RHb~Qy9DrX8@i1YgUIn z?wJEpk!i0~A7r%{mpY*#fI{i~S=XhUQrh_%6LN%LmROD?Xpq|nRXeRK#kWvLij^2; z-yakYgtT|~LOjVX*7nAtRUM8mHm&tfz65^i2ofJxcbDDM-V#GR8m4al&G)S7qV5_A ziak3AglD9f5u__{9Rddpbl{fn?~DQdAV|cuLVoj4HeX^4ban0ClfR?cizQj1fBh5( zbk-)bdyfbG#Lezj)1X|f=fjA$93S8*erM7sQK4Nw;xe0D*pkSU`tcKl38kYJ5Gte16DE&u+<_Bv-7FF_&A4?uzy*W@7RCgOS?HQK-`|6G_}_g)s^ z#IkbeOQ)o6dYo!(!v8h0vngZQmMxylE>jGmKY~I(c+x2sTjlVey>hTJ3$-LIN6N!)d zAHnVc{qN-b|97xMll~{z`<2~o6z1_iCOpq>k#ClyYs7yN5&820g!#&`6y~T_B8U1U z<{NVH-wPcbUaIPS`O6(w5E{@{swd_m6GAC+73ZjABfMqN(C`K1zl@F`hXXZ#rh2Zm zKW40MrnL)R8mJY$7bZX3IT>FrUvh3&S$pZ3Uu8rPXwVIhNI?8Vt?B`k*3$e5?Zs(ib8F7FmPR1h+*o#X#_=Zef15;D z+M`~ypn_K%P#O)j)2<^vDlbn9oQWo|Y6Pj2>^5ld9@YScC}8yFil=?c96AO+U%uWA zBJgtF1r51{jyXdY^_5(dA|n@b=5D`j&|zCx)F5!p(qGoN{0o~ZtEmXlf9^YgJut&T z?f@(0n9C?1+K|HC+sxo$u~vGq_X6 zO);Y%2&mWUY{c~J_4iHJ68#?l&3JtYsQzNwOajn)!@~PL?Zc-pKbn1^j3L#j;4$WA z!oxed?`eQFD!*TUvnb$V`~1Q4B%2J9>MFak#o^8q>-AP!n}ZVn93paS;$Cb>fx!9h zqY=s&qpYZz@e^~Ls8tf{0Zq?u&;EYS=vV@JRG2TVzmm;hxs6 z+%$rf5_DuF;X{mu7`IC3#s^L>jTReeJ3re=tjh_AfN477hhQoiP{D<;Ny})$6Lv)D z^T%ky$h*Z{0~2Nd)@-DfqK3+LPr&gus*1e%P6qWz^#|^crb=$#u+d@?ne@KV%1hBu zj$UTq@~*JC{diqX;4?2EYh~XU0VoW~oUWe~EWhkq<;GR6`y_=>91ctdJ`clfEZIVt zIf3!EG=Ga)v!(3#(<`7++k`GXtKVcM2Ybjdq95~($8OKJ$6Mg1-{a%`Rtm(Hd!v?b*lLQb z77skFnK-$)UMDz2;z>^$Hj7EBR){MyH~|3%El!^f+_cHk@7k?WYQWG096b!tjVq|& zuBue*e&BF6uCN@Vz6~{o)A{A#43^F5yuF-~60sP3E4(RZQto%IZ|FQxxXN|@*K0u} zVx;8AFfU&YH~n(+UZCEXP%rF2`X4Y!;(HJdZsn(7abe7m+%OZQOgd^Xu&KCPw{Bth zx>xr8V|qE<{Dcf(uqDJqM~^yM(%$3-FdtcvK3N3ObL>tCb@m`qVSe^jnRrwEY8Hjn z3P8pDKg^S6J*$uqNEJzeCt_GNG_b_vIiyEnmq3^bnM_F=RTv`$2%9Gxn1~4EAzIch zS;N*zJWCbQ%ta&temaEYHkI=bQ2~%?ia_zXg7o#K)0XC^vnispm0O~fM4ImU(Fz`C zI%c-QggL@E&~P9+5o=8|h}0~~tuHgg86188w^o`$Tdr1DW!t$FZ#lSpcs~C*l+r2! zI|7+MPY_1hi$0c>AJ`FI8nDCkS(pyKL^?+t-9qyTo>NCmR(44}WZA#%0+B91-x5L% zH@!?v7RKBfNyU%2op79g(B@t-6dB~_41rKBU);A$Z7zmQ#u-o5n}VL;;#?mm5)^Db z^SKjAGLo(cR)W90KyJy;@A%KbCk1AJZl(G6-#oXS=vdaZiOXw>8NvCNmLmVK4N;>) zL8Vp|Tks0~p{_O14~vo8{w~4%bFLc`$``phsi>eycbR0luQ(6lv$}i7-EN3E0(mKI z0utr-;>|jQ!rlv1CwH3c0jf6iQ#u+0r zX)erpXa zgx6(D-(sl>85Tn`^e?q?R&jQLiqt^YIpOHeoHq~x7OzBdAY%i}?39?8lZ3?9ByN|} z5~xvgDFKG%>8`c>lOtu0l-QwFAxUbWA{V+zQJAgDYMo`{9^58sq*8WA z0bHdAvwuSilG!NN(}f?e(CwWXGwVXA4TDmeXZUKP*+2*!;cftRVXUjg250a=APl{? zFQ>PK*emi%L=bL(O7 z0**iap064b4m3nZ&nTD@hW;opM0vPgnjnoYzAp$w z%LNTqlk9uzQ--F8CSvJS0e(a-#=#Cv$QUg454ad> zi0JxXh=rgsm{2yT5*TaM7uT|R2djxRY4H8K$gCw&4c@iKc;&7~Ex_I?LP@w9Dv~Y7 zu&<@qYgg_DNd+P6tB=I4FMIay*5#gHU8({b&q)_(TWCbc8va{lsa|bVvg>a`G)nj; zW~P8Rv}=;&$FW+*(8BBz_?;@m?U-be!cA;W=>>$tefaxdgAFn$snex81xPf`K0 zCt}M*R^bDU&*+mM?aeuMDXldnAY^1jE^V|;>$H2f;Qy;OC@r&fCySR$vKyEn-j;E+ z{1LV{UBLsu7U&lL!vp+1O0-IL4Pn00vtPcbc}iK_As4GT%O2M&6+22ZD`wLhY)|4P zFA3k7e6-$7V*etxCetcHpVpu))}?@K10@GdiwnbF(`||MAnpiEU3%8P?*XBu@n6mx z1C9bOTs*tAhd;qIJjbR9QA7Ue4>I;II|2Wj^@qHnfi)+;ot?Ear?7#k1Lu)kW!YEx z!S=tBrE%tBzjd(&wd-eSg$R6k?z#oS1#*p$P6bT`62X5+IW*G->r$_$8R?mrh4m9h zB(t&5LFdof(NHbg)erpipT_&UU@qm3S@>Kg);@mUcngG+T;mCcA^NYFB8C7e%csno~qY*;U=n}oJtBBR&MDCHto z3a;5CEvN`><=_Hp!cpbj@dLobf>(=H%UF7Y&CKoWT{Mx!PTW#W=|VtW_SJC|S{1jB zpCu)xOZ=-%gmCd-e*wp#*|9(_BM-OZ1+$Bp8NO+;H_>5Vf7#CMhlVSBdswT{$Tvf% z)A8MLx9>@Tnpb}Uy~Sz15&rSfrv(sj-O83%3kKeWkg=btff&Ym&IXHJhm=Nz<(K@S z|MTEuIDkmk`PzN(AehMs!0`CPz=C*!3{t0WKV_Qg9S>6udrFLa9IIxRsa)Uz{&JmZ zc?dyIcNik!L3Eihei*@EANJ^9l9De^;4!;hOtx9Q087*Pm55gG z)N4nDD`2?}tU|@TJ524cSn^kGhhU|vSqArvqcmltd*^Acgj}Al<#Yfl50^|<7OCIh z^DYk4ly^pmAbJ|2Y%DUnDZWHRq>ZH=p}#POf}-JSb=WB7{Vvg`Sj>p-jsX2+6RV}$ znw@Zzho7C}pIiIf|7C&T{|abG!v6qz|9?Fyl(9e8MV)S!)&rAtda1!AgW zy`mHjP?=ulhlCGq#4~)iakVFc`)Ju{N0Zl3mjdaXX4>#u-{yu!vtgjRG4xJO2s~^ zampbnvNK^+AP>RN1gZ&1z}d|)WHKKE=H9qPOFo`=L5(p$q7`^!UPXQgBq@OeRQ-Z8 zo0)7g6iC)WK`teb799{Aj#B=ErQS+i>EWg6I( z(zj#)-(pC*5wh7aRe+j}XJ@>D&eeEc{RxIy zf1sAp&am;k_t?OG7TK<<%7oIH^z6E1p(NXb1S5w8LIJaHn1|Ljs%jvHwd+YM34#ZW z(w6R5RA!NUbc*{le%$!SscZ4%!5(CFlWH(3<1>~)6P8pQjF9^_j@5W##O0~IOqeO5 z+-5@2@bA_mD%cyEKO<;(P{5B=Vjc2rL^-&k5z+z4qznt6)@)SAdwl6$(Dl`QF(x5D z>$m6DQlq?l%!4w`crNb#$PjVg?QQRje4r7;Pi|B;elKqw2YG&aA=fn_KK@A?B>S0f zeQkH~;NSuCm zBB^y<#jb7;7-4$8C(cmHoN5LTJSF6PL#sI@_Z3ly7H1O}3Q{;)Ky*!G$4^!kORes> zUk0iJZ+yy+SZFzhtl1%EMLKiKWxmspzm?F0q{1+#*XP4#^Xq-SWnLm$&KGW8v1sG} zoUD)kxY~WFv>5uaUT3c)Z6I-P`k*z? zc^`+r7?*ZjtWmG%yd;GY)YEg}@&PLizWxC25%37op(S>lH>X@GbVq?E1siBNS*IZj z`;?&uyAD0iSrsz91HGV*@L{|u&}=cFQQ)`jieV#IS4BbNa)Tf)T0R#Xp3{GF!{8F#PuV68hrgMs9aJ)7m^S1-ZAu*IGGZ0@&N{)fi z&Lrq2^x>8fF^|LitE`bdd>xaU4o~*VaWc69iZs)m+(8Dw5GE>_YqY6ovNOn=e3Y2& z-y{HTEix4lIE4H63lWM%6lcZTfZULnH&$k_+pEE#lYONTpPLjkN(AEy+ntMMYx_O_ zcm=S-0?L@vpuH<6>YzPhq5F$-KiQ@i?e;O-3I0Aic;&p3AQ8XRLA8}_BhI5o@8At< zXL7&VW8pv(iRd+H$cHtoZs2M*(*9{Ie`#+R(#5<8pE+B0+HQ094>0zWP9d@5gic%i zEW=-s9}|M*_M^G6EW)w$XGa}}0en+wyghm~Unp0>H@DAf%Y$gdRkwB-`G{q*8Jx#7 z#Q{)Q;TlOH=CydbeK6m8NeD^Uw`FI7{w_*|@#c|^my>OGv2J_&i6}8L%zf>%Tm_!i9>Vb)ge*Q-nUk@Mi3BCh;3F_ET646S9vMW6Uhl@OT_f z%inqzj_EZQ$n=ZaO3{6gsMcDcWF^gJyz$HYfCGsQiojhy{u`~yQ_5?MaGUC#VH&oU62J-Y6M&JM z%iF6hk^>!$Gsin>Xy8e(;Q8tLVJ*uVu+U!EEcK6!UgQ6NL8)l(^qFzz4oR%b}T=bX0-i(!R2i7*7$L2)}mwhR=;K zei|;o_SX6ORs}LRHqMT(si!;hMI$h4Tv(lAew#OoPu-PDF(jiXTBM1sT zDN7P{!O(l5?~T?zz7c{z@#UMgQ&fFda|?ClY594zQ9iy@r60;is0U^e8H~1yPtbA2 zC3L;@JfT=<#qG7W!Yh!lq6JbV#z(2l#K;MnoV%#~CKocZvQ@Xj>G9js2O7qPE14=& zR=C#qPE6B!^5djpSC!p85f~inN8@<0X=l3c*ncEo0 zJM?Utc9Mx8w>84Q0qhITXm0s+0#sLev?y!hBgl*{8n8%;X~87d;pmg}Xa8pQ zS7-W{Lo3g2z4g*XlZG8MpDdiL0ebpuae_&TV_;qR@+xC?xKVf5vacAx1%wZb4Ax{9 z{m2eZuj_R4uvzs_VhC0;V{X+zj#i9pJLMu)YR+ue^mg~%qqRyKGlIBjh}e7~UpKu< zIXQEk%OIqtWpZq~mW#BNK|J|t&g@0m@kA|m&iVIN3ij5yCh|=!J&Ka^HIFB!E0se| zvpX*`^;cXqW3wl17_sqIiYSo^k^E)5m#Kl9AXEUxgrnA91Ln%{CC7f(tYb13R}cgG z#`ai{So=~^RgrI{T_C`pJ89^_l5|C8wG9ZeFBuQeA}~Y6vGGHq{2Mws?b~ktP;;{`K`TRVhN6A;fb< zRZt)j!U5G`GiU<1|pxw$*u=& z_8q-%8ISCnhR6Vy;+IaJPsg^K_&-lq(liGSI}#yXk1(al5=$2IgiG99o+WJA^a^Pz zYoY*LC+V?bF+!QDlB77qd7f+1pSAZc4|Lr1HA>){M@N$OG zR+F^Fy8|DQ5-u7axQhsSd8hcclcn*O=Jf!_Rpr<7p*s zyx`VH=n<$guQ|aJ5q?Qlhqk)$^{H8pRH^m)yX;UYoFN64WSNEeuG6*x!^zEAL>i6f z4^ngDU${#IF}!@6=t*Z3p<}J~!oLFwGI(e&IKhmf)e#{bYKz0-2Ba7r1*GL;tgtv^ zCJl~+tn?u}icLjzf3ucwx@8Zw2EFT!^f+4WET5TVbnx=T?IB=2Da3|_8o@3)DjE}5 zA&Xg(C%3pj4R;aZ50Qw`{uYF^!=aH~P`7EH@HJPol#S;Sir)w?@+I#>W8wc57=}a8 zD_FqjwMFDiI@gpfTEn^b;te!@r1-wLEB;s4)Nm?=L&X`7G>A}w+CN@8s|@mdsKoM+ zW4y>zaE6zFD6s3$k$kA$Xh=-H9Qx1-$5uvPsHbuK=|b+i2l~pzI3%$W1L^|lnv5}Y znf{pu*Gb*q7VJqSZS)VxNl zDSt6vk)jAFWn82JM!p;~p`!?qA**CL9g83en!!4|)J3jS+cT)4t?M^bKAg*{W&7?F z?i&j^6O5gEh`zrlMO|?0j$-S!ReP6e(RY@x6|pgFCp-x|9Yw6DLt?U^69=rsq?O3V zH#j!rjlgbFBgV{(1m5QYjLzp$=RZ9u-`*0+-p_Wn)T5jqPio5lcxkmBwsn6O3G$!u z2_|8gOCRv=t1)T{oxQ3sr}%l+33fP%ZUZY3^h<*%XAVC4HwxSz3Du~qQ%9(=3PC<4 zd^BMrv5NJ;TOZhrzNDe+C6#t+v%auk=IsdWN;m!Eg|6TqkovEJGo#4T;#DeizX#Q$ z^0%Zp3;S>JcvUSMFRE;&$v0;udAK~CpPiunH-_2%Iw8ikL4Yjw(A@%M4CZ!(jD9du z6Yx{Wcyhfqnj2Lcu^(JIXW+hgM2h(lj-G$INPJd%Q4w3uk)+Hl-87OmTo-zLM_uBX ziC;z__(96lec6&``5yMU2sKhfii)_EuH?6CIuE6^z@OrXDdV0ipfZDZ=)BsC?cyI; zz@NhCResp<=x+M@kF&s?>GcGoKQI!NB(Z{k;49<{+6qJ26c%nK7Uns5#^!S zFC=O!X)x()Y7aAN#A8O0sEH)_}8(>T0>*dk>q? z;vfIPvSp69FSRBrYX`k>!Gqa7gF>@{!iC4?hSMOW^hCjHFhF1X+i2poxwm1e2GqFL z=4ceAMSQf{>QeZD!9}ym=JyoTQjv&DM1ylth$<}W3LUBl)~|u%?Mx+~`?%6s4#xTJ##|1XgyVogs3!f+?b>Ek)%<1p%aifNT%G#7VgQUFA z3e7wa_mp!@m2o4dh=r#VR)z%T`H5$PDS`*B3d8y>aD>y}%#q9?%*kH1&{~1etK9^Z zbf#@Rr~9AwFLZk1AYMs5Qqun*I^TcUWAU&0lCl0zBZi2DwX>A2tF@y8=YM@rf8Twr z+yMprhYuBF-7VsU(fYk^&qbBhN<@(L>k2{;i;6>us0Fmm39|a;sEX@laaw1D)QDg; z35N81o^o*J{6)|j3YL^$)CE1}=LA|&;)5Zi$55Umf#~M^Vyk=&?;W`ehOF()j}uZ8 z$-~KO`br%etU5GN1pZ$qH&sB8oQ`5}zpH6yUaR~OV)T#R?OXZDrJ#p9dSh)$(bd3L z0f_Ev9F%z`+43Z%TkYKHPzM5a!nQ`M19=@HV2EFK-rS-1XAbQ z%~v>TD;>MNi6drq<{l1e+%o-b|!ZHbMiEg7&~C+%J!jgC1ctK1Xs0`~zE zgQB3N)f+!i`}RY7;>{O?{$Rv8;zvleEwaX@zXs+ax&U5OX2I_JLc`ix8lQfz-Nb~>lqFWw7Kh|zf-nf}ITuo9Plh$ekiG!`F_auu zd8O-yn6_u)0cA{V3$OuJfEWRiyXL#@!$v`43gE4e=d=&^M%8oHT=S<*O*d$^IJVTb za0v0MicCLmA;*+TU%#dspip`paL=&#F9N6N_4CnO~-jc}og-$|^Q8(Yaj& zx}Eh(5WL)=#A+k};*iSj zjF}U^&nEx{R%LB3K@;TY@I(0r$1Tjqb5bq3V8ulbQ*ZrOARCsgaAhI^M=?8cxyc%tdsx|UI!f@wb z<|_ZE!VpsDKVg`k_?6P!#~$$7WH)9dLh7*ui0>=ql?$JT|L)t?GiyQ^s{_Fhrd2Zs z4Y$OvPH&jyjpsd4@D~WfB4hBz4@lrG7c51C*)gFD1{34k!;v8L_cx$3eoVV`Z)LZ4 zny^TaNX{6m-OO0Nv}Og54xltEumV= z4c!a_5W)zhdYUWCWW2{IBVI)6g%Jr`^M!9b-jq->0iaRD3ThR3)p$bGn}0HUD1ftt z7&M$Df4_iK918`>dty619zT$JJ2sx75WNev4EQRfo^&;Vr)^rVZzQKIRf8UUnJ z>4He0s=wlfO!OiHb}7)dR4^#6>iGeitW6o&Tvqx*0E=93*4>yPGYLHEU}bMhbv`WW zEo{G3mODCIB+^U(0zd@GM-H9g<(_NJ1T1?A^e07XQ+ZW~>hLL2rl&TUJ_LtB9r}u- zn=6_u%xGxL&6eGaXin4+wRi9oYr#_eyQSJhJ=i1F9wyne{Vg6;Sm)#IXlsM@sCg)% z+&H=zj~E|VhUP637`+}0dNlnIR&M~)VR5PE@3Xy6Q1gYdT)jSuXo_S3aG~g|2@H^? z4rnu{QDxhLw!0k>h=?bYStG8YfYWaxfb2#PUy6W{Y&{$BFpP4c=$s&lI}~x;YP&~n z=bJNo>fnAoK-qWKpUhs#1M zTw&ScSU_G6Qb(K0S? zXDSzRB_NnwmeMU;zy5Zk#%HD9w23uh)-Ca%PpnNnWk*g7{Pk;T2e=B&_0moV#1Q&Sxn@#V=qs8~1=uquQhLKnhe+QH4 zTYPT|e@#1G<4F>z^UXMl7t}D%vC!Aqk;WA$POrso&CEL}2srA4dwlt)p4iXVdWVCu z;io4Tce=E=;Dtf`43xiS_h^b~NU*1IJtIOfO;m_{i+EwhqR)#(=jM^M9q>dS*~QS4 z;>)-Lqk)~Lj=}s>YfPmhI*YXJVh$r$;@uWS0!N3;!($hJ&>OKmTuU04?CmkBz2W)M zFTI*+ZS{Ekzyh+y(4}{{fIpVb8>OO(tvusvoDt#_Kk%DRmBk036ymm0^&_G+PXFOWU z*knom*M5>*I372UkVn^nUHgJAPg0ujeg44;Z2MR-YPQPp`yf?n^3T!~T~7)2Octz| zqSgaR9k^~tHUChQ{-Hmi1p~Qh!@A2iLGHo!Hp}mYk0#c?_QWD@j(MXP4>?(aoGeQr z!BNId!E7W(Ty}=@J*qwltrx7m4A-8+3FL+y%PFk-XF#*P@I(^S)7WN)mJ4=iG#lt` z+=$bmeZQsfCJrWYhwm^>NKvp`;;=~#!Y0(;49Paxe_JIyMAB9`*X_0x zdmlo4LxN+++8$p#x#Es`e|>~3BW%a9t6rmOfv4Bm(#cSL*RMnVcv$3S&NMk_-SlEK znbqvTcYGED@&hS(X_vxG{^GIipo* zi({vtvF6DsZV?`5V4+gwK;Ni|*)1h?dkmy36vntEHi%x_FS+cVzhWyoU2U(n)O?Ga z1oe#HS>HK+`%VY82E~(rr2e!tdhmVr*so}9N~t$Jp9)sF10pH1!QbAhR`F3PED`5e z2HdDO_|;edI*sekzxDZ6tE(xE;A?;4AWo!8n|Au79W#=8fKvGK=EG?0A}xpb7*-b* zY(L+&!XpKsL|S?PWkZ3UyTP_o3B7G(qp~oxPR~o#Sm+E@@#qg4NR)Tpo6{TZkLBf% z9sNHvRwmCtXBIhIAJ3N__|d1CkV6iTggJb#Yu$l#+Tki-WjVn;?jcHTvRKsNibOeP z=mW4ZNy|trM~BZp_ymfe8d1Kc&mpg$@R+2eqHF&_^Tq!%CHk*u9{2yK?cWZ%`sRiP z{}kNRcuVtN$`MJhgIRB+S{p3@ z0D(q5ok+#-XIsbNQq4IG%nN<=JbNPb=Sa%0v_22e7aNZkG%~Za+u^zK!z2vD z5@j9Rn!L(I31s^MA3m0snG~Rd$$t|jl)@fGm%wORlWsztT{zVDl#L-VpfD4Eo6B5d zb6c@p`}^GdQoR8k-Loah*cTE+u%931x+NZklRv}J=1Sj!iRN@Khn4kiG&jn+7^I!9 zLP;OrS0{Sfa{_ zgEGKCj2uJwofJvKdnpG062|txHnb}g-pN(nPH}eKNpW&< zb540ZG6d>l5`#MbrTr!9+F?i~csZU)(-pX>AWV1^{sOpbp7hFq%rD?>cxRR5!}x)t z;dXjl9cQieb}U+cKi2^@JPAfkOq=d*bjJ28+)(FT$@pdLxH?DO)Mtm_fVT0KE@F|D z552V zPErVgggE7rG!(-?KH{Zq@Rnj9wLCuapZy0Eq9dMgh%<2ASYUm41SnljbOBbrNcI+a zEQ25>koYk-DkJ(#8SeY+0HNktu`+udD=QkiWh_-$k~a5UJqsFQEcq!(WI{u2T*Zap zDwRr8K0KYR#LW-2m;1;2VhI#J`*kNFLWgLkPgzE%^qS@<6$9@BUe`CY$LVkK3Xoz` zO}})$i{-=+##2a%B-f&2%UX}scSPlw#3G1ks!HIbI6R*pk`s{HK^a^V3UJ8tY`nnH zXDNSfBzqi>8L0L`E{S4dd@u7&v$^0#!Q36u?*1LLA#4D}%Bm_6LU}q_OSxAS&)g(k zgzIHN za)l?*K*|LRh$*|52aP6{Jx)9=FffN%j8e1#laOx|(-BG6Q1?-$3&WbaTjmqWnT9PwAHSi%mAY&Uw zlK-{~00 z(^O8zqf+%JXfPVKgFHecO5Lu+oq*-mXJu%SPHs&C-EyMn5hXn`4DpKi14LJokn2 zSGPC`KIku&IQM14;3J&qe*FM6&zG%T^vFyGYY5CIUMN2@>#@rZE3)`YT($2zdJm>L z|L#yCk`(99+f&-3AOXb1{GF{J8d@q!LWH2I6V-YR?Qs2+qgVifCB*nx$x~^35Zci& zo2|SASsuJd7t;w&&Qw;`jVd!f6MgOofD0E1>^xK7?dJ=hPMP$5lMSX{3i2iP zcG&KTLu{&kxDc#mLkHJLcZH*BjP~IZDalEjx(@|C`4ZOdTu?0sq_2AFbmgqajtDd z=o-8~owy0DKV2X(fOf6833WO`&r#8VWPrJToH-wetXvO~-BVYPjr+7p z!apw%q9X4qb8Xy}CRCCAG95&2bpz{M~x zC;ks z$W=1lR6a8~L}~Y$+Z2BN`YUai$+yQh)Ut7BZOa5{`&3fbIRJUpB{bgy5-Ld-Pl|=Z zcgJEPox}|{6?Fp|PCb}aB3C?GX=#l%JNufKnC9g))$Wh+T&>gfJ;SK;vzVCbQ{z~s zd?z`^cPC27y{Ct7!8^Pv zYDohXUdQ78!OtS#|88XFU#ZD|168oz|6=DvNpmtqq`}j><5XOIw0At>TG=suSu{~3 zH0Ksw0u#Y=f?3E`zJEB!iwc(Tnqo--e3!loJk* zEQv=wq<>G`kF@VQ?Jk}-LrI9Acsn&nCOap64>sd=z!L0alKUxPpA4x?~T_pXRKO?w9lW-{TP}hlpJ*7Wp!6L8nSRfO2O7 z7fu)roHCb*qiq-LsdnTAVc7u?HHxypV8ClHrGi*hlKW6Q=p~+kDm(-!f;S3s0hzBc z8n%3b%3GDcHr~JU`!PeUu%q8E^(KMS~1&sUyBpoo}Mw-=)1xa_zba6tGLRZcRc^%63i zrr~R+s#8;2G_DT2a4z+E%R*${*!x;C{#c*Cy?dfDb!>vGWdZ}o3%!q!Mu290_h>K;nq?54QUrax&wj5^Cnk3*$@{sB zQ@O!w+@nJTAJwLSmo|SFtHkbc2KN`w=R#rU=Z>fKJpsbU*bjKa=GW`gU)-Pt9vsl- znA$vXO&C+t{nx{bjeFVc$7sshp8L}m6ZL3$mc|dGsXcD)hz3JX-L~H10mxZLITI^^ zb6osh-Kof~0=kmiyT$qu7v{S5*56{6=|p$@{V4I^V6TA;xGZD>XhbK`!iw&F+eQ9< z-E(U+s6?-RAP7N*<4R+JFJesae^U}`3KhM)*j2m z-U*EcX{;2AjG0>-7Gc67++DRsp^+8KD{?^vhvK6(Ig7t%gN#9g3-J%7G0nIU=?ZAP zQ3aU8H+| zs7(@I4Q^SDsSs2>({z1Z3#;^Wc>kVBR|ar2_F4Y9msJwlUb*3Up?VAS;zB6Joa8M) z8ej2ROpBZg?r5qe#+W!83Ai=ZS=hys6Xhc6+MoP8F6|w8;2gORRWNC9+!Zb$`My>* z4(rZbtTVPvn1Pa5roQN{hyOfx$2XM`EYwxxE$%ZlivL98HwJW3#w@!#I#S3LVfykK zBjv=wpwS}F30KuJm=Fil`Xfa%!x+H|btNDksWyZ_g^?)O18VN%BbZ8 z&!O2a>FnLz_l~Ju3dvQC$C_qUr@#aE_gvZ@dl$z4#%cEX7h^HSg;eocRU`XIj{KrE zuyDK-s-yQRISz*<3XF>Rs85|t!26B74VDBtNqrE`Nfs81`cxVE=KNsIrW4cbJ`B?K zkE?X!U$Xvx+Y`cXWo7MXrEkdj+s07We0xdI;)}}z{&PVF#A=G6$zcUc4?C~!mqNj@w%r=<1O z&Aa5TG$;9nSnPC6)-*J)dSR2ya6JGwOxo|$-j4+n^_IK$5uyd6TDJ6unT)& zDW}*x!cX(wXZu1#(aiL68*_9NDLKgx4EFW$JTP_J1>#!`yE~=KH8)pK@{vH*@x*hg z9Y>rnxjs>{gg~@B<=R_{OjjvVAvTJT2?e)`f5>q@HNa}LK(|M#u)3kZ2Pts4SQSYO z7aGn(y-HcO>VhvAOuGZ5Bozrf`2?aUMnvHEHn3{_5Ok1y6%AWUczLP2hOOXFC1Ev= zIe7HnViEpgAB9*BB6yEuFlUfGopAl06~yJAx^Oa@F+y7*iABjm42Sub?2Fb{yhn~P{*b5D7_a$g&Au(`7(P+38Xdw(HBTXoPY z+M>vaEz{E07W>wI8XK?%0peR;jWR6cC28JjDT1V)5!I?3UCok=83nS>{=<33`5KZ7 zRoyUI#smEy5TAqkcWUAP0&yt!|3JK4=|2;;7y8=bKcU45iGV0spaH~nv2s{u>eyI+ zIpz*2*gSR2^AVBHmqtu>Ut-{SRXbXM!mkKe>K7nwu`n{KbzTzMOVE|yB7|{)aMc|9}vdOf}dNsdHi;2d4R%dI+@C{F@@ zRF>q^SuVF@dyjb{C}i}&raJBPOLJa<)TRPiswH?bKObv58Cf2+=L>C*hQ!y}U4R|; z5v#~J;au-;f#-r>rH=iV{4ndm2WOtF<71%BncF9ph%BQQEh868($IGT52$ha>yHl!e+YpjW+H;;XV=pV^~V*Ci_V+Z%>)}%B6(`@ zktoT~!Q7e?v^O9@n-(3KaJNsdB1JMi0$E&W^xwbj56hU1W%~@9o+jJUsM$P?MuIIg zqmTOr;L{$(pukRo8dASqjb34cyys*rZ2QA8K25>h6-9HczYQICVfRvCKt5Z)qT`Uz zq{PvaE~579h0IGDN?IPJq)flYM|==6umnT?MYw97_c+7gWVFcLuFKn<+X2a}_+}lG0z>*?4|Na5j-e3y zqvO({RUu?DO8m;)2v7JZ*&K$0qT>V1yND~)cbANoLu%4FOAtFsfrO_IX$3R5muH)` zSEu%go;?Sz@{-@7va5dJdWVhaAlX|b2h#mY^*v~?lFDQRibYF=!YvYs3AX~5LPuI* z;^o7=WkbdK_%8X-Eb;vgIZ|;iR_m`rlw@*Hc4XioW_7S2JhbSzz6Br`>W?MSNMZ3J z1O)7EJ-Q)9)gFFBR4`(s@ZdqbRg8g|x0@iqdtFBv>=QlK6%>UDO;Qv8iaMY;=+yYvtSm&8MwK!C(-k=smzi~2~aU6yR6sq z&&|P2?d{xBO9>%0HzzY0(RrMSlk0?;p}L1p4i3r)chU9MNrjJ(4kW*XNkt>pkY-mA zLdr=Cn$V|+Q8Ed1F(%rHbU8rboVrb6-i3jN6CQ&Fzccy**@Rq?x=u^XQ9Da0w#bXA zdbWwK!tWm7>4AT2);L}z=^aqh+qe6Szygo6iU<=Ead)C%5QOx|+d@Is?PAAr(fD@q z_du-o-4s@ByO5!t{KE>4_0ErR{e##eyXt7_oFB+o!_C`_xqQ`;pk#$|$w5j&oAw1z zDjY~jDM@$au~JO0`Q~dZ{KlJDe{2OwLS;ICd>CUx@oy)~aaUPDHdyACI)9DeqP6G- z%jd`9BJ@v1BPhmZCnGqcEn~yO{IDXdIL35|9uc86!%`|RVUs`>gRS~y1^NQfL!%_1 zMhMVk)uHcB`APZ|EXhZqi+wD7@}N5|{3{XmM@cslSr*nj6q>9ec=a}gUW`pLmSDol z#gI)I1<5+%C{YrFCl$gs4qEv$S(r{`VdjGFIq4$^An0VE37;lYOlZQNpl3O_-@#>? zzzjJegRIud>z$Cs4KxrM!Ok^adKDa~JpO7+wCZKAy=*cQ)AO!?0V4w=@M&K9_$670 zpwpHi0#*#uV_;rRtt(dOBIqi(1{F#ElMM}Q0YK|=AGBjnKqxy>m;voSA!0P<+ig9(OMjwqoL z2*=K@N+CXzTUDvk=7Y**fG(in$j8RzYPaA(X^grZTqv~H5q~KXUN|AU2!1@C$_@q{i*?Z0Qh&jaq@44O%Nj=)YjnDM5L(89a2)m3AEihC&74&-L}5T?YGoC~8y(Uu%iF@C_EY&| z_k0sTj{;(l_;PV2l>)ZQJD$YOP2jmr!ABP3Q)`T~_GA+r7V&*(*f;YccYgI7c+iT& zhg6%xM$S#`eFP%rFFd*yv>H+gR&vhZTj@mIRxk#Ujb$g-(dynyJ3CL(003z(>Cos1 z-w<&Ur#r`ro4}5^xjLra^b#*G$IC`DvX{)C{fHri0JjbHmu<>CW3VoM4dw9VGu2t! zJrfqVbw2mgez`r)4+WW|ka36gG7BzS9RA9%;r?AYh3FswBg=D5nx8G0-f?W~%`1P$ z%Gs()TROITLK+^v!672{GSlQiz6JL)C-`90)iYa{Q*Dk9vwR)ty?Exf%yoJPz5X1s7?AFqCJ>S-LJx8F*1`NKe6>A-&MLABlcfkohEtdIIgylS$`M3Ui`zc-JUS35~W>Tqw0BaCV^G|3OGCh zrJJq$&x`Aarwek%a*<)Gx{B8HW(Dm8yh{Uv zv!u5b9db4q^GU_CvUTP8&KjXoqz7s7y*AI!`*o^1$h<1H8Q;+bIh>{Z^%J8^-%|88 z3J;~sYCN43PCDCc4T|YV9(FDF`h^OM6V;!$NLGD9;xDaVm zD=?k6&MF?;dip+JYo*V##cux1@f9NC2`eJcVueE3g6`}U3ffXl>hl|JUH+?B_p|z& zEk{Me9{$sgj3I2MBpitH*}D;N{9t&UFujL=NVS{e{+_-ScZf?y>)CzDER#s%H?%h%s3>L%8-Mk8^ji7q;jW3L5L!)6+WAdo8G zbyHav-XEiC=DjaFPq-S~E!Vy+`zIUR4kgp1kZ{x-C_o4KO+d}Ro3A_gY(8vytqZk( zoA4GAxcj!Dnr%lntp;iR48Eenji%(%GO$)O1ema^4C&PzvX2;*z5Q zKd+&p8h+y8ys<{-wuK2X*0@zJ*-_QtqzlQhDayC%J+D`ca=9&R@6!@;qKa;CH47(v{LffqZ|eDET(=JMCT`=NN1$N&jorJ8`1pQNa(0j19P*mhq#p1!%D#w>JmhIq(D_k*H)VnTsk zNQh*1_?jr$T+me5_gcvf2n5kW1{t03IL2?r`8vG!Pb|I;(_6SX^!|pbI|xR7i2eS1 zURfjHp53j*puX+Yg{b{nHzXwFJ3tiw2zmp+u5ra=>TH7SxYm+kNczOs;ByPHR2Jah zj-=N247LU^aamIqgs4|wNyz9tEuc!pkjN<@rLB-LK%0TZ5h}=KqdGSto>DsO_&YqT z{3lkvb65OY?l0G}gXHj5MzXdTga@(}m-n6(kH79IOU@$H-}2DX@WLw3N+C#mPT)25h8G3_il1gwudvc* zsACC0Vo+gb0Y<9S+B&Dzw<|K^{FafhC_q^RH8)UF7+%z3#_vbF;oR*3oEL)=?` z#??^<(Lj*Vpl3@#s3|L?LzWb_d`ud8IFE7MGmo!Vg^MA^V1g&L5i|{h9-ESDZ1-st z(*=euF4&GGX_Ylf>D6h1R3Y-FfIt4^VB?oX@6Y@R(3)__`&+i=>zOG*CO1+oW0dzP zp~}rJo$L3pO=GsEm~NVWWh@{~5Y12f(6vX{Fhk#Yit|)a=Nz$E!_un+0M!%QJK4&4 zp05i{p`EMD-a2my;UU4!M?7IF^)t2OL0?mA+01iprG>HyI-(M-jn=W6kDQ)jR$RPv zO(_jQ*;UZ*X#~Tu(St*du`Gpdgowo@_9*2JJ{^wJGHWIlCcKG(LIxiAb>}B%Di#@Q*wK3+~giv#;j?e7WDb z-WMPf1Y;*X864a9(}DKKgLX#C&yi6m6!Cq%snSd5CHQndtf+JFQ)Z6|%V`YfH2^A zfx420#Q`FOr!L1wQrO8mpHQI5qFd@X45xCvbV$xfq!U9Jc5i`~EvkLOG}`zAYfA-l zVfrw4ppvFBtLV;g(KaB|GOZm~>V$?SD3a2$lgAYXsi%;MM*UWw=6iPl!o9$6WKxkN z_cEYkh)SwUb93?i1+M)8J;YOvI|x^>%eV?;%rFzO-pTNOomcHMR|MZ4VDtW=aTuS; zrhl6EE*WmPPoSN;0@?2{gTQ_F=15AI-cil=G;(?cqZIwzFXglEY4LojZ3q)6 zc}zfdGug@!6W2u9bs=@Pa`{0bHMia08IB0x@Ia_=iXK0m> zJ6KgPsYOlXtPehi3+HETS+@xd+s^@teT3|fvrG<(z+zAQjV;-wPxFaBe3^miCIwoG z+S}wa5D2xtFGZq}?Ab(eps>F|*G$haW(M8V4l;hYOKK(5d&b<>zoe(eMk8b?JcyD1Q4zQQP{sUTRRrAce^tb4vbA!83`wY$IEZMR5)IS@ z34tLk4Hv{1#F!2b9|RHwQ<0Gs5`8$IQSy*A(2-;Za>Ky|@YQgfoivhwE{NO*G;E6t z+>&}8YqRbjCYLi(Hd?gJ?d?w;W($t~l%JuzzO4DVchCcZF8qf5wy)vQw=F3_Q=RG2 zTmGKP0uK}V+(tx<-AH&KzvT+4KxN7wp}x??`77rL&F|xib z6cDuTMg^h)Z?*xFpK(a3Ds>{eOafa`8?LkWra8Xf_Kxhn#E}}A9Dl=8jpd^*4;Sd>~m{Fr47dezqZB7dUvJ{c<8*% z!N6sAS5&tG=Mz_;qqi!9m2@St@sEXJ<+~e6l1AX)<}-or?S4QAv=f>M9!0;W`jG+c zx$dmed#$p|E^n{W?~~Mq@=T8^vLnNQ$bdKO^_@>o{ExKN6aB8no=LyiSAH(D8Sx2Ckoc&ykM>6F%M?BNR{?zscQXDF2m#^|g`i#4t!?I1^je z1pcRIAVB3D!+LSm?Jm~Xp_?EGF1ZCRQ} z6B*wX0LC^%vk{xN=f}9v--25f(dJg$zKASRvslZ|8IbY)m>{iSvFqx*=w)5WS*`CA*(jzz#3f8ty;Afno%ZWDq#y$`R&G zDbet;%R(s5C|~C4;^!hh=i~Zzq(o($Nt;ih%K%Y$N;WeBqf%R}lCCf?8YlekIv zZSo$~IeoA%^@d^t9gHn-Pc?uejtI zI<4})b~|U;ZJAjDij)w$GXwyKI$E$sy4{x4ulpEw|X)jb=n`` zXtmpXOk?!GhG**UBu@EAX<6)FbaPoceEDv&JRftIk2%RAUG1=WG9U%{$;7s?k;sX| z4Om`;6$I~&4y4jRffSL*QY87}G00NlXG~vu$=Jw|V>26v6ESkqxyW(-qv~Ey8ezQC z>kyAjnLpp%w}VKX7f8(e~7N!$YTNKX(o8K)2KMjkd$ zu^7flm9rNBZ@$XsDXm!3c5y+>OlW|w^>(JgZ^Ow_!`z)tar#}N zbe$RYEHmJ)H2oWFy?pOF_x()A14iwglHvN^260Spx%RkBpDGueOjpqjRY@2`WjcLv zz0xye+n-`fa$eOMi{rAE3b!z3I85i1)@81I>=1Q@uHILd*kS?rQ@rVKUIpS9t31z% z#Z7>+B6`QMQ$ftw1>})M8JkX7RdR$|I5y}M1&DeY&M_iXaoEsNM#CCsODViBIQrIQ zEE_0p#f3?zev`x8o0f92Ocq1Y{yVoENw{e8_`$;#Ihx^ASF#8I+cQV&y01(Z2N> zW@Ood(K=T+_IuX_5NNVFD7k>Q%)ssIDGFJT)Nby;9{#XnH6>LbkqXD_pq|i=ovMx$ z-IhG^D%ziaCv*8soWm}J;Ml>G6=$gY*vZ*hjb-x}E(Dz;Twx7lqgGouBn>u4ah5DU zul?BToY5(&aDT#Hm>FSCEp`g)h77);1px{U`q;Oa1R#OxrW36uoZdtTG23&7jWJ^^ zd~I0ESp!q^UZ^@dl?wUU~Wf{m14a7MhNQc`rls%_OSk zJ+TEOp@}EP2fZbM%WZ0gzxW(cMdv0H-rDY`+OnHMDA>K)X06}Pa=%2$f;QYkVx^XuH7T&TR_HPVz zH{L&W3Ii1F%ajygQ^5bhd_Hp2{!xMu&42Fg(ybWT@(F=J;lei;V~M}Bd0*Z-0_ zmCc=993A*S?Oo}7Y!Xoay-84Ov&B+Ddmp>HQ&gHF3Z;1m*#$i)M50XrOMv#%bkb=x zv2c>;T{H~zeZ!LIx!KkM8EA}x&J=JMeNbv)Nl_k;6hA&j1d`9kSnkn9pkXccxg9+? zu752`0U!arPc3L~Oh3kkR*tuhElwCObpz0|Jj`DzK@sp|i> zy>1`}sS`-*Nf*|f3+KMspa}a)(qUck@J)sSz1+W@WC5spD!mD&Ur!)TQ$-HahpP3B}}KY5O6SK$Bw*;nx05NTN)6z6cM5+E6z~Tgpp56Y|Z#o|fNK{f5@w7=}5f5gD=9 zjn=pInG;8AYPJr$Nq<4!>CDydnaLCLE0ZAfP%5FEZPD!dmaQqit{xNb`{oWuIvuH~ zk~_RR&CzJ5nQi;`_EE9CsY`1wpW4Vvy_gk12fI>v>KJ(kZ*P>X1{9W=p3!zQveV<9 zS{RS!==E?PN0}fdUZET%YU)SYk<489I+;d)f&F{e7jGS%{ke@m`=nAX`xN9tCj0fE z;NS_gIMN`v%6u}T=~pt-$)^nbn)Ti$WwIX_lbyjsxc-Brv=ga-JmybpbWkWxqoH+? z7Oi7IG(y9*bwk=3mEP8OF<%H*cj@C=w#uddfZzH*lpOz$;Ro&dFZlIo*@q=bVEOL( zRvb4sr&yQJ&81nRTL&1KR|os&P)PR`Lo?o#6baw<2*1W3CC5Rjq)Gd#SkTk|OpIV* zv@a(-da5HRIc{Dme*W6PB*$8+XDWv2-uJ8xYpbj!cqKKNR2+3eaapZ-K(^yh9v!kr{iCDZN8X z|3kTpZAcV=N8_Zf1n@(_zHkv^EO)!#kW{Jwl%{@(>Z`kEbCdU^yYLUWi`Ct6?$tB& zuJ2!zt^oo*VXX1d!@jh)lP3KC2t!}dWApRpmi z#6sK&EI~sw&dmbNv5;)pywDoFo`W1Sd!RZK}kd#)^X3k+kAQGItT<9V4^tn2<+caJdUaVEW7DNghRuLp* zi)xw*2XvGIZ4OgQjfJAb6xxar1ekceKA?;U@SF}`sovlnT^f!je}REkH48^=39rp$ zrDJPKl<~SqboEG~`X{e4@8mK0r_fuBeK<3S`ZGL}Q>4TO01l?4hQ*4LE31E#k{NGs zPoJ0rlOVc&Yaa6>*DkdwMfhALFCHGE#eM=F0)GrbiN^HyM^n5J1u8TZS?*+C)#)+m z*Q1+rzyf>#;1~$xJ$ZhEWBGE_Yg_Vju)^E?5z~21)&y7rMsnLzE&rMb;TE-J;zgSx zUwIg^X3+iD_plfW7SHg^;j*wTh7_q(=aH(hw-$a6kRVlvwWgsMA;qof%Vk2PN4AIgmk|D0m{moM;U zRf6^h%^3UFIv*8pZ`Y5+Ns(U1U>BpABn+E2cF=%Y@I_wR3byLMg|fU&L^h9yXgt(y)hB*0bnY2xnHX-{=IlcoS+{ zhk(ylR}LdU6S6oq*4|$dL!V_S6FUTS<8QSA2Fu*W1TY9#d$3MK5NyqBo{;>zWlC&otnfm+L#9LE8mkp#D5v~TCLc%TA>_huY zNtzTXITjol1J5B+g3rLv^CjD+z6vf^% z&7=^mk$n%SQuMOaMQiipW0@8(6Q~hRehAtSI}m#{)Z|~j^N^~4Q+c&lf=ry7;Z{I>y~*&s+tgc9)%(+; z8KeZ<1(8i%a)w9iy0IW%=$ey@I2-A)fO)x|Y|VN&+Bh8c+}x}DPESs}3s6&*zYtxl zTOAFdK>fr@!7CmXZ1=oocOxP|0#bwFwLu6@^*E`;2na!tFeS1*OokX+EJqHOdohf^X!xA225 zk&O?DkIlYAyYla0ErTg_S+sJx8=hG@dZ9ih0y&*Bnn(~B9UVSdKUN~5+{=2vz^tC znt~jYqzG)Wd!#7p?}g|!J(G-MWyCsO(K9$eN&s{iC72FAkda#D5c%uE?fe28RGbs6 za#aEQO?DQ1NMRv`sAQ?6E+GGvJX%wQZFYSGCX7chQk2&PES(rGewkRt30q46!ve_1 zisL5B?pClZU(bbt68E=)7e5EuqldRbi@-O>{7zxsf}6Z}HVppd=1-Q5j~@ndtQZO% zXwUw$I56L?w;40AYj(8|2|2BrAQJw2rQm*C;-ySv3LKG@QsjvM^J7yi9%2i?kH=|m zFS2snpqV0vi-lI5WI7aIO{s3!nv0(;gO{4xH7ya-7t)x6O?cp|52H=~>kin`)Kn39 z7W=wXJH~GaEeaMl0qKFL2pZ<~mbytp?I3!)Y+7~;{T|m^pG)5~6U3PwPt-8c{EyA4 z8;>U9-=7SdYAt3XV6)PhIY#a}5EgU+*f3fFV%C4cUEQ82h2}=vWC9y0x$x0VR4-F` zF~i0WHfE}B7taFC)H5jD7oGV~6XPDQQy=CWzyEQ4Qc7`uILO-emwuAT+JG!j7_wBm z6cMK%KrX=E%7MME%iaPwEcw7d5tshh#Qze4tXNQ99zHj2hVyRBMSNb?V`v~2z!;qP z;>FwXZC?(g^5Oco4OvSds(1(2N*`Wpn-BrgmBlcXG|xqYMKe<2SpbPsaEUIa3$(`c z~Vc=dePLG5=|Rg+7R~u=hk$s(Jope-9?qr(Ho`y4pXvs zg3NB^8x4}LR&#RXIkl)5{kE!&=L2_z%f@v@_t))Vzo7Ve&Da_I4OPp5w2p?lGAQ+4 zNWLct*HsRrQe`;m0Q+Mm9CEaSu3Dy*GY@fzh_l=#%pM6syjmN zggP;#rLx9dfP_S#qZgFdP%!Nn4pCEXZiZ}qKi{62H8j2aTjPY^eM3)aUG9-gHNh+S zS{i0#N-whRdBT5ISbSsnvY?(PT$^$dE^NO21jmz&^~3~6pD$OaygnIJ=3gc|dE&kRuhL6!dChxgvrYv24g|}|ivK!mWB<72S?m6Sdl3#Y3!qTY zeN!7$$S=XlI`wCRh=#o|A)%f@TuBL4VV7_)y2R{edmZfeMw9c4OS<1|{A@u+t6^h^ zaVOJIAZ8#zx@Y!tZY24s1L_psB&=M8_3g}L-Bzjt|0H( z!3+BI)pkTbfWSS=2JH3E9DRoscn9&mPrlw(jF*6VRX7CKX7Z`yplDZG=_tppF~EGZ zL#Nj5WkU^Qy5OZT2^_~0E}mVr|lQS?wm zU>DrB)h7UxTo`OGO0X_L`9sLA88W`dEo35In7t`<;0)T@$7uSbgesH2`=!pSsofl9@788Z>OJ#R6FbLe{JfiRIG zzj0b5g*AJUPZNSM5{Nf`@favyC76B*YD$MKtx4f<{{`%d!yM%3Mr%PFXyk_0h^c zDO2Nl5^mP`_EsUbx91TepTk3uW835Sa*_h0|J^&}cj?ch*}FTqgH{G@jJS|m9K2er z8%-Zy4SbckGVr~92j(<%cDcQHTP$1K(Ve+p&QGJ zHlwPycS~mNG}RyPK>Iy??0ixr+xPNI(y&Y&M!{#vnz1EUTMb&eEJ$U9Px#a#IiP}f zS4G)b4Ns?)ibM=R3BW++knxXxOnF5>q$~{<8!2?^D1vZG+A_icNE4JG8ei}AN-Hg& zvlp`YRhZ$5wzpu2VqKgM5_JCf9dWKY0UNZ0!{7=%b}GVHE?Khj<7$TNd4htH8=|vb zO$l;m4#oi-E)38!()9n=eY^hIMQq~KjsaNe;TypMlgq7Bndp(PFt!*S?ls`4<_;>alpZF1xC zSOVz7);AHlTmi$1`IAM$26VdY39XPS#lt1(m$4eojY|PXP+6(xaQvAMcw=}!R-k*hG&wA->u%sAAF7{O@5f{fYw}g<(`VOTkS^gzSe^wX?5F8$5!NkE=lVZZ0KL_e*+yH4$RCFHw=V%C zggJYIIwWsyL0!>g@b2uV_JRA${ae<~83WW@ovSU}?`em*IPlqn*Tng|CajJpSKI4{ zzmIpkm;_9x-;NLZ?qrTljVx}4710;`hyg%0e~fHSO!bbfiWsDuw{jLvuA&Ja*5cJ& z-emBnPPjS;+L@#6GSR@o@uusVsFQ~q2OX8ZJE`t3k$jBT+?o-CF)_(otDOnlT7-~f zePR&rfKz89e~m%g|C~uq|A+ng|9$bmiT_&@Oh&Xz`Y)=x?p`ifScq%o1+tD%uIz)S zNM=tlg*jK_h+=WkDOijoz)fc3nu_ZCI<(R&J2^`2z^4OB0XJJC9nfg2Q&7O=-yqn> z)u*qq?$4cjpFcA_UhQ%UX8h8tK9N~#Rcd#6e82L`+V@(YM?-(h+Jt693QT8vSPwG8 zM8`EME{Y>IWQk;@FLfa+fONGtd>m8me5r#N5eJ}$Vtoy-nIL=Sh5YW!!rP?zbl@Z_ z_?9H4NbDp+h1&^;6v%p%eS6VRam>S_LOdSF1OT#WOKX`e8`aAjVW!6IqEMKVLbjLv zok4zazyg2qwnys8TM zVT6WO7f5b6@c=xMgo|3Z&1yLRmuyNixUdY7UTn8etJA&gBxG6VV{;p1t1<}WCF4Sm zQ+hOL@R7af$ybaFQudWA_fa#Bzx$FytYcD%X=rYCuxPl-fr8OSPBgRJ6Ox%5n%~Ljvil> zI(sfe;YqY2B!Xj8pp39gBSE|H3^wWv9WEiq^NF6Sr*v(5RU00ThwAq2EJHkX%LMqV zj^}H}#TG8x`b%vGq)9D0! z5{s4|u0A{z2tCo0<2+~TibXZf#fc19#7i>VUg0mJ(pAe#TC2TMYMI}z-_9cd*@`cQ zX)b<)5}Cm>iRxD7a3zIu6tb8_z0h3wF=30rT#^00+);R5anIgk)pyK6?1aE763Te^ z=eW1>ht9(epRR3|?)}**_t#TfM@K*+ZylnYG6A~8^0PuMvE81$0mr`ZX?6#52-i=^ z>7F9BiCmP5K1WpJG-XxYNKYT;S4#BSvRG+q2K}yq0jQGsf%IomGuQRw(Wkj@P(Ewl zyyi=NA=zlLb2I}MaF&>Rtz$Tw%@FwK#P_Z#Z)Q4VMLfc~Q=t#qw+|XRl-7{>!!UCm za-F|xIgqVZ<2x3`&nx|$)@w~`A=MrlH1w5wai#R-5H;J}ojG5)b}`!Cp;jhP!FO6N z&L)F{1Tc70yX{hxQm<3`Uf{CtqwBIv^;y)n?vS6 zAR$07A338T?YQ$H6MLL#jm=_+!W;2S0(+Lsmo*dG_8?|es?r>hBrAOOipKeJtXF7N zB4<&)kLws;_?d`$=+kHb;lkapm;S}PQ6XVH5rLf{sy2A|D@X})us%UBfX^`0=MAl0 zLfDNDB%d((gA~JYS&nLpdOJh%1jKA?h?~Uy@pC>1%t>Q%P36y=d8dxM1r|J+PN04% zS`T9M?GUEgqXJNeRil~nQ*y=U7FH!^76{P}jK}geLsPmzp$U9pwdq>b&XH|y@q(Kk zqMjG-@_7Ez|9o846H&DO%wX8Cwo#9t_37d9Z45+EnT$I&&*#pM!z|tJObkZ%BJp$= zLg*ZPRzg>{2NZ?a7nPLv*4xiW$Q{}&C^S-K@p8Y$e+0A-A#oZfGHuUfuJ&#Rbg&Ia zX>fSlQ1?SX57HY_yMaviaB_Ggiiltl9F}E0##Jq`R^FI$Yk`GNin)mt8H!WxR|=vM zp6aXBnN`0hVh@G_h& z?h@FMp#r4`m2~OFp|B%k6=@F2z2dqb(2LI&1_uY~7G4YEQW<$J_vgcC$(5D6%_H_O zq|+sC>nzOcXV*+i%gf{RWS?mu%nZfp2q9)dkKxLEF~B>p!eWfUKlDYH{MZG*`H_8c z4SQT)9K4YFg&)JUMQ=EMnc>Lx69+QbT))2Y2dI^J;(>RN*JoWoFvNby3{acRfwLqi zZ^nljzgXYBss+XWDKya!XMbrtj+AfW<=nw&W748@!P*;p`ZoO6jcz}0{c1~( zaX+Pu!+QDqn@L|&;!7^jB@g*807%ZQE;%U=qg-ERdN}3E8H?MmA;lO4j1~U10Q%A8 zyBSTJS?Kj#roCEtsmZ)~G5*@C2IF6y%JfA;!S~5UAlywp3$_RBs&Bk(fu!7M%osHY z1%@fzL!8r1wBtgimk0z<1QeF0sTZV-a{xzmow?eW2V~slFjE>*diYV$NMR9JP0sRX zsm9YO*`4Nio$)E)vJ|`Xvy8-S6H=q8z@mb zSJIN^sbq1W)C6gHuNP%>g?Rg=9fj?y-jcsq$=X4N_`61XoQ+8X7wXfTxe|zC>F4V} zUv?Cge4&MP8!%Zo3rb!uJL*uV-CDmDy!#m0b$elXTcXdkTQ@*qFhKA=bju*c2X&b55O zpJhN+sct6zk?z0LX@>iqQ!D)Qs3IY|Gt)N|g-6QO9k>Eo;yL3t{)URy7mnAVIj{XiXV=4#@c2=Hbxp~%vxhdxMshv}ho%6>o0@~i zr#49(3s%}>bd-hNsWd}XX3&fPUCTU-AVtHAj1Er-mlSPFJSf4ZEV0**21*XXmESO|3XD}3+Q{EpRnU& zLOXh>g2H+O7;LNm8T}{|h8S*ZiA5Yx!6u zY2dwQ-22+OyXX;4BjFe5xDZI%UDxDe78X2y81~5c2ghys`D|nhM@|OOQ5?kN##cvT z#bYQSr5AB%)8Y{5)5-M8(x?mMropL_aFT&G_n zSoFUy_Vz~+t}6I4z46n9qF3|iLY<`ga*CfNaRRdiG{eMaARSgc?Tlpvs-OdYbwQR2 z0Wif%^1gG^Xm$X4Mvt-O-AcWRSjA*LKP3@3tXDdCN@W6cFjP$2r1N*~@)2p~HMNq8 zB{FHz!ac$~NcyM4;M%FsYMfQxJEi|Nv?%%jvrz!pUY*CXs`lqG`<2$WcG5Bz;hPCT zVDVnehHyGn(G?wH3z)ces<=Bq_B_HzK1hS<;w)m_DcI6%TNLsljP1G0#{2y*zCfD? z-!LY-Sw56?GJ`FoRgN^h9OBBTL>zjIWE_!<>A=}vs}rFZyHlu?>3XAa3Rs6 zL9&Ut4ClV_d5hKH3vejSyr?P^afX4_dM#!}g#p440ZT>_f-V%r0Y3}K@;VESC#j#( zh$6p$8r*|CVIrf!yw$rW(@ZM6$M)M7lEm)@B3)=X@OT~;G>t_J!xwEZ2R#ta20oGI z@l@9nI7jEYOGUrxEc4*1KRfPDD2>klNu^DGc^h%iVaURC(7l!NEdjII+lukrk&N7kwL1v*P>SrmAR`zp(RQT zkYC00x5SH;Cr35nQNT+M6O9+=qx`z9Nl@leNS6UoZ*4hJT5=n)r+~b2ejz4;juhx+ zS(E?*S2dTBq(;VMwu>-1mQBdTsz~%f(ehf$9c61?#zBZ}!m@A_$Cf);n%ml5!H z7B*f&M4RESwC@YbPoJycYJJ)1p9yPj)Nzmz5_TJ@U`iAnyrpL5W(7^TJ4JT3`%!l~ z{F9!+b$sm0&yIp0*;WOUo!#1h0JY0HuVuzRYvmb>MZ2MXmn2FCTv&*6aewc^o|V3H z4eVFymEu?0Hd$9t*GSwt#kDjRZ3?wLZ}%@Qu!t4zY0RuTpA1%>2@RN3f$!9+{S4+I z0wR&QmsL9~@1`AXDh#xX?t)Np`aff z<=v*U$uz_2u%J-TFSJfqUm5Psq9MYt&K6<2_uJtVOO@;vu3RdV>*4( zMGwQflkR_v0GL5Mxbxc)I8V<)xR9w_g`6NKo5T(wREr$I!Fe&bO|*nk*0I`0w=lu! zoyj_}S;IH8$BhL{apwqh`j->Qx^k!}^NMwRMy8HQ1)DfB8>}s%E!ax+p;W#EC4~|< zRiPQR0BK|?a2WNkBVtpD!GsAU7gq3WfYc!izO|*+LXDzatT#2=0A<+_tWTUSP4ch+ zzgj5udhfe67eK%miSp3TxqS?v>FaLTWBVl*i zg?a7-20eY?P@`R#t1kuxGLwk#ErI zT*uq%j4v-YO}G~sop|JScK%ne(xz{l^PjW>DYIw|>5S^AF~c;&RHW6r&i#<5K2<-V z5C0wP=9r8y6Gsms@8|K~Z-E*nW9Tn};&_I7HiglR+4_bmc8KF0ji`|UdC8ZDEXmcEpEIaxS3SwK?^I>(N30z zC*kb*@>grh7*UqKRBjW>4n9$28ZLvT_nd@si0`q68%~Z}CV34*X_fY*HPUY&qCPmD8cV2(p49bQUO3biT z*$s#>4zb|6Xtn1*EXm>93|y56Xh(E75m2jOX?`n|D(ZzlBwBMb$+>VFfFA7? z8s?X-Xr#0%%6~vr{U0{J{|!}?E&u?f3!*X3_Vj-XRhZ-dR|_<-Gmt_b@N3!k^;>9v zD>_|>R+vtNBu@;o9Gl(jyAP9h!pFt`kz(fXn zC~9VA&L7ghK+0R3G6t2~{n4url-qE z;f9D@F}`n(VvZ2o7IrX`934x7iw5H_($=rzt`WHCXaR82+GK~VRnZ29B2Z}X1z2yb zVUwSn@1nT3TO1nQpJKpNfaZwBfrxqEY8(x22sFh7#gUAImwYqI5KTm=&Y)K~?XUad zRtBkUido)A>_$**@PObliE1bgsmBTvpor_%B$?J+Cm!2pa1HT>#Nds5cC4}-)7!l~f_z*wh(ns4*G*dW40BJE+p za42Bt{Dr${2-QWr!{3XaIMbeWehEmsyb&QZ%y!+>y-CHndOOQUprP5@!i0{;m5OA=d0|V%%y5?FzV9J= z8msVNZ?tjk+?!WsG*(2oAT&Lov@SLh0GY3BTjS95!l3^Gj2kuyy))@|9N2qi*PPUy zTGyj_pW@dkbuf7fuHd-Lgh+Jj3bRp?s={F>#^Tv#K@t6~!yQT_d-MH{?fV&=n;ohA ziijG8c(y7_w!2RNv~7x@8!P4VQ|mGiPGs?+%-YHnaSH|}`u%AFu)_%LoG)M?COFgo zG>D4`Fd{fWREpK(3vYWPQJ;z65+%>d_nQ~O(PUN0d}SA$R|g_%lBFVl?hTm+V^nQo zW6IsxS|%6^z4IR>pt5VV2K%+LO+0p_=TucIrqv&f(dSaa(v`OVP(=WXlFLnGvaJ;_B{;|i$Z+EgEY@MZ!c8uzQ-0>x_B*GtCFLJHI<(|@-9p97(*EsUiVM(b zlizD%RZDrHKMo#)Q~tAKy>i98m)V#U$KLu3kr-YT0J|YzRN5h^>3w8TlV(CLW?0s{ zH$~7x`v0)@mO*hfT$gCmxH~iwXfy;1F2Ndi5AN>4f?MP65FkMCAi>>TgG+FC_uz8* z=KZGLd8_VBJ-6om?5flM);?>Uz4qSg1?`^CZ}|Fg2GZ8vRMWau;JSwIhtqyD+T^YXf zvEJdlEc8Q&iJ<0dcJ=cgW}s=1gu7)w5EUzemmpQ_hZz*ScXZ2U3qU*WjarK+{!(DJ ztSZ2xMALGXE+_QxNoUm2DHsXvx>$11?wRzjE;$OF2E$0~YX8I^gOCJ6G_F=ynMaMW zpZ*DB0ou=m58d{IWW12mURYDBco}=e@a~s0N5`to<#hL4>C zslW+W6|7a5!YI3D*B;RI_4KxWYkE{IV8EoTqkl2lz$lLltq3)AVzib$;P<-ux0)pp z(y%`5KQLfcQ0s)Xt;1=>p2z(G?$B}xH*Ti>6JJw@K1=nuUH$AX1D58Cp)pRZ!{ zpQdKK?BPuG>{w~j+E!CcOrD|*_|^!xKZ2S)gmmiB*uAd`txlgY{4s>HJV;GM z{3ms8J#QnB(spXFz;Q&)V;5&dJ>PG9Ax*}3kC(iSCYXIH7*MAVlDi=S4*N@uCL*o} za5h{?hu!Y0@m=HLY9MZkmmDr{Ol6iUVoR4HQpFI6auJH49 z2Py63?G4{$7iJ9nGC3h9H`^|IhUS}rVBkHU(XVUV{8ehhyZtLk=0mw*18VcmDKVqn z2^R5+#+;7dKFh?5BPO;OcD|Mmb%IiEk)ZjBi2F29RM{h8SrqUWB6dHQokPwY>zrqY zq*b{MaZyrkio9pRLi}4tyom$+9nw<9zs&{M!@vn3H7rNWcs)k{#qn*8_Fs>!uDr~n z3Dcsn*^cLWO8Whzw+~Qtb%V6XGZqFsVy$g&CZc&SHsaVi!;S)(r zq$RG|Ec$;j;=eT@)ds8TNPX7B zdl_@=pJ7J(An+NpK;W~C2#S%VhcrhOgaYS*1_>vK#eP~;1-ln%QJmTm!s<=R zrUMYilZNt0d?F^L=|7#WCcUlTqu|E*Bvw^hORR9SN~Bu8JoJH$h#XQ#ElTzAOD#76 zj1tivT9CVxGF}8D&dglB+4Sw2&$Z(!UJPeH;|E!s8B|)N5WbX|zFv7u)KB>EOl(b+ zm1tS@XfW6U6C5ESV~K*4V7yJe-Fi$WNNvi{kE^gB8SbSVcIU-q$-Dfb+fS1+v-W?s zzj97TS;Rfqj(+7?GlZ}7aV9*B|Hb9ft!wpaT#lA{S;O3ZOdc@G3dOG=iLyEmv#i1F zoMMMlHB$d`w{=-}aq8rCtyGkNQgm)P>POe29=as|7gVp%b%G+I=920b%wn6?zw*s9 z!=_a7ra+qxMPUH#YXAyQw?n-fls!8L@x1itUCEJ?5o>JjCztoWT3J0`)Ra7jLFxJn zEbDBda6eh4NZIz4HxxtuPI@I3oQQ-Nk!Xft>GzsOu|vJAvC|&DW;D&AhBq0Z0xJx< z;ErZ0VOU3eADRka`>O=+g&J=$uZt0@xZh)fV~7fIi3(9F&)mso3nj61 zGlITX>*(9G!kCce!*>SgSKcF2hdj+^c>xh4er1<62A?xLosNUYph04l69lkn>%!!z ze(39@f^(qOn!F8Mgp9$JPI_jO>6|} z;q!eyV>wVwIg8WC-t`2M*G?dMcyI@a`DR;Eo z|0ol!f2cqIuge5s^XVW7;WRRK zp(G;T!8WOrkB0YeJ3?PLp(G*uAb%|DqTq#8+> zr+VG$4?9|%Wi&M*htrmunq_9R+-k4gmeq}qahAx``LiNGnL3`RC)@wt3m^=(*R+}V zC8XA&fLe1{#;9cb!WuLAF~EnwB<(x(B}r!0OJrWaDw`0x?t3aO^ng2 zSM{>svwfa1*sTVPtFWfCRd8DOBjEtKC`gAeJf(<`568Hj@C{Iq3Eny9nC;Pw4wpb^ zQ)Nx0haR82KDEW;{Ir`(VQ@Y!U{cCovi%NZug@O@cT*x`vqkx1p^3^#JUaIC?=Rz+ z7Yn@s1HPW)deH^lZZ$KdD)4(j8%JjKH<*{_&ujTjR-aT)dY2xRI4TKu zIoc2>hTItdqEtQJuff2L^jy5z>zPob$ZTT&Niz{)F`fQu~_OFfDP zk0;D?ff5-Ofz39@UYA~E(2}l*34MZ_A3Q@om|sje+Pdq)m6NcQ;PK!w^HY=8J#jw@ zydut8#f$p+MKVfN(7jvp#bXoBzzRzzg(4NX)l$xM4A4iHOV7%+Y*vr2W-Nsi6jWEpY`Ig9nYABYL zNS(nuH&CVV*mVDFhZdy|;3xtxp`Wxq6|&b}W3V^m1PNmkUMpiUWRJB-z?Zz$28jMw zV|BJLzp_-urGIH>#m(uSY$Ug83I?10JzgA8{v>YkkYi17{&JJg$dK!GMqP_GPlNL}AKY&J|=p`f(*ft{uH#$aeNIX9xp7is|{%zRlW)x?h%S!2S&!N z!2TLc6!l-0VwLr-NYVEGpU#dN_#<|=VKL3tzGXSM7zUwjC?r<7992|}T`H@BMcbU% z36^^$$(~3E)vBl_26a^;!SO*G9sfhpi>CSJ4F7h9I(Bew5kuZsfDE%iqXV8<>mDFl zR{JERAkH3(TqNOe3*RsOLEni5&XBfNluC&N zuShV&5uqE4G6!ipFzGErxkMCSGy6Mh1f7R0P&#O_rIQMc32dSCC}&E2UrD(!_=qHz zEI@7!z>c&&!P>3Q(EIW?aEF92fv$@K=rDFMW_Z?_@$Dx9Ki@g4 zX%Sf?sS-Zl;L^{}2Ikl!1uwsNHYnF~fxx6k3EK9TOXtum1srV(HUQ^^jSRrhSTJg` zq}hW)RJYh8fX6zpjcO;<9~tuV<%AwV(Ld;Q6pfqf?b;m1>1IeV1nt#86(X{|wype* z=Rv{V?myVoANc?3R$;w8g!Mn%D)OsWqqiSq|JIlPJKvNzKJjh06iD_j7A;Vfx5O33 zds#Kd{Y8sHX^bs~NuYhLLWg9mS{#AGOQf71uo&2IC@$=opk4JAt`!gfmmDCYELI%G zbT>`;;*TT)&&e4d!Er$U&9ZqRbMN?wOIG|Mj{9-ctHyrUYwh?Li#-pAT`5Ny0(`J} zS?ec`VAl0{0NZ|-AL$%%1%7;I`V);BI%nH*eWzs8`gWZEO8&$y{Vm#agPz$L_kJVG z3B7wfH#(*UHkvI;d~fS!T_?ZBW1o~%GH08oQkJ+prp`@n=?vOk!_{ zn?t}#XR{7OO4ju_>1eBM5Scsbpoh(zEJ|S*bLwf2wlO>>O*-FzpYos|M%SYTRf&4w zWDv#^akB;>R5eJ^hoT`VKZfh$6@r#aFP5!l3=5;lwS+<6jlK}KjEN`w*G~+^P1~+L5fKB zTO>97#>yi$pH?&wKjtf)8ee&_zkR>a`1!{@>dvJ6Y>ElYJxUKY8jJ%{r!M+*2kvVJ zs=t^{p5}$i3wlC3Ex%LLmgs+=u=^i+rvDg)2nPQ`;Yo^)?dO5FNkiu`&x^&?$TPTB zuKq>^JGrFAq-G4{pR~1*5*#%d@sbj2<>`SEMYSQ>KlFCw+I4DI6LjhY>SE~mgau6; zkZhi8D128O56C1D4#;H~<#tl%*5+mY>7mx<y-+5eBqU$H?KeJ z$IKICI2qrcqz$;8plm}}+A~{%hLF~yZoVL8hpda%nu~*Ca^Jlp0ZEwgl;~CIg3M>k zFD1XqO6XuZm1R_}*EAPFwS`Q<;X?~C9j$E7lG$VvO=vuXk`;4;^)-6@b@~A?1Imr% zfk!;#qm{F!y_Lc+adNF#gt!Ojr`q5&pl#!YPB3{TOR6~B&e9dp+|I% zy^b$F=25JcOr6uju)ugV413JjtJ4Wi8Bv<;W9A!(`~&mt_}h`8pRrvzN5_YD1sqDf z0ed-hbSahu@_Ay8%zc9cnt1iOYkMYK@!OqiJ1p>$4UJB(A`UIP>R!6_mW#O}pjsbV@D5ter5d;d9%D zogIs1c7fQ)FZA%GIwt+Cjmlio=6xEE%pmg45@_MZK_f`i9yH7b%Vh4w9VZ!!$ICJb zDy}&{yGvBr=;+`#dDxwat{ zav}1ISNz#yNmbdaGT|iQ?wi#U|KfIk@zEeZpRto_=`^pJGE4pJGbHd&gS6Y1#jRX)cugVB2FrwPG6Zip4bGAj>e6h{p#535I!cW z)lzm&%HEBkYsxqYX8cO*>6?4NQjS;hX$hIwYDzpn`Ry;-6Vh7 z1{*9)cHJ=9O(o^_y0{-q@M5&PM>PMromg&-h|aR=?&$7gC!U1OHWg`POVj)gbK+53 zRt&K@uf;B@v5Fc0X=S4|belE*Tf@zTg~xqC;=v-^{nNK~ug90p_50ytkJ|JB@@Ga& zmpYb|k!;j!5dZkOl4M&!vmu(9D*1<>Jg(^;eqm3X>6(x{%{Df%Pk9H2wzQTud~B}K z@BKWXO-;OS_a5JCcO)zxBH56XTo5)z>Hq27lKw68v|TZA&2(5=Mx&~f+${POym!%l zb3!^U5pV9wEb1ni6kLngiK27#xI}^!EMplqE7b%nfLYq1Q2!Ie3bF1o(evTm3#Fxo zLaOW?1q&a1CDj~yR1jx%KZRI*iQ~xO7)lzL`I_*fypFm|gyj;5;zByhIg5pyf>UFL zgb4fQd>W$>NbI+|w71oL^Y6l>dG4Dx ztTHPC!l&QV*qh4{c{DWxkhw<=8tm5((PF)G)F>NdwjJZ)2AxX_(6o>+vGSl|AJeo) z5D32a>V7XN8r+JFG7+PM zC3-LP8D)5b$&~TWwf1}8Ha}?9#e4!8Rz*i^f!0)tTtSU8c%sRYx{vtlY?#Fafwm2A zWYpMEApgB7o4kY#*;UrOV@ zi`mKQ1dM+3yE@i7{P;vQ{F=Li$?Ei+Kgc~7oW_4kFnLvxTbsg63oQDFk-bYPAe*%;>_8{?$Sy;&lFW-$3`Onulr( zXCoPDSL(1B1&x=%m}9$M?(Udb@x3xCooojk?c@~HMgVChh-42!j~wvaQ{TeIXk)2YnLnng3wmR*7gNQ z`oO2V)!U2`(Y@4nhejrj*t56O0gZ_u!$2g8?!n19p{P0vK%y$|%`CU-g#{V+x9Z|c z@H9D@il3X4{9GCii4O42Up(M5eP8>cb?#svJ1_hAh%NxK5KoJtdzigxi3<%E83uN` z`-b6yt1L9kfJNo>0~D9OVjewa-BNOPLb7O;G5N6LsBySP`*$3d_yFmsD0!vkI?#KV z5EmPb$pwKVZ#&?i*Egxnu{PKK{tgO2_?Tpc$KPE6!gNJgEZ*}cKqp7-=(GJgX;hQ~ zz?fnz{9u{%-Wy`HVZDvkPR`8Qd1Y7Xv9;)7iYC>IZ3saMpP#xqPSA0<>ey}hXxcIb zbO1tt@vVvaB1b~7xqdK4N29oZQGFQwFvC@msEHW__tx;usiip4skr_FYcv1waLfM* zYya~&bl*3<|LS-R_#KTQqK!!DJg~Bf8C6o&W)|0GYw9e83C4kta?Ob=lfF+#dT->= zfBosB?oliZA2fwz$0^<-5EsA&<}xAWw}HBIUE64BbrtCSbFIx&R$oWvyq|tu)W)egmoBXo|$Qi z_Heyb(F~L5Xiu+EAP)!AXN{?GKR*GBwFLxq>F1{c(xvL}TH{YsantulYG5Nk#qptg zYi{l)jUfRfpY9eF#&wI!P4S1+bAg_N(|aU5K?BQsWO`qy+M2%vv(wkT2e!Y$1zfPU zSHBR)y|3cO|IDqa5w;mmnu#ro8kq%!s@gx1lArF>7}&$0k)KjEc>_^l)Mn)e`d6fH zPv2d)Kbxmde1b(u_q~n1E~asIAQYJ#01>78;}LYNqDXW_{SbPJ%E3JuNqq$bA0li1 zad%K+i;C6VnEwHbcAa4lTb39l(@7c^^jk~Z;)ezi+a4B2l+%#mlO68HsTVY9s*jo4 z=r;~-UE)!rN&bEl@A@gAF_5Sc5ET3wp9@{|LJ04gIp}!2wawr3++NPgnzCs*Fu{0+ z5AOVc=vGOK{o>vqw=Kc)7o1$VQ<`)L+*~>SLfdWDb=JG>?sYSj@U&=Et-ELsxrZ4s z2MPvU;k8wRiPw}AtlW+*FxY%N6UE&_>exszK8R%l$QiFBqVj$o;keU z&O+DEG0xq%0h(L_G-l$d=pj4~WY12xI)0DuxAni}Xv(-B$N$vK@4DHU`$Q?*xr|6$ z^yMv6UU^S?({N(BIz&LD9Plv&paN!z`$jW3g%v$bTvYaJ;~CNfmv~6)aCTkHL&*Z*o|cq4C0On7>0AMSD+~L|1_Ph)HTR-i{%m!|XQXepK=9SjauR`i4;~~)t&%m6@uYIC@@TX=7jD(QQm{8{Z(}VY;ov#e*ZQGgF%M?C_sfR)UdaoLl~jWky}7&QW{~?SE2qr`@4o5i*JaN-~IF&)87~k z$Oxwl{}~p)N^v0Qq654}2vjkIqYJ64R?Y|slYw3g2}3V&w%=V2A;w8IRz~QA0~Z0VB1|!&5PW;Yd3HeT%+k8g(X7{B1VicJm7WoiK+MN~|#+(q)boiS%EI?ue zwFaBC1#1}3QSPhM=+^j!d%aghTl*&+YMM)}R_{vYAND?xbxC38oU2dj5#TT+6r4IT zOROBScm$Y$(!g0}L zPU76h^&BPnXu764O~RKyBn21l(Fk8lC(FIIYav*(!%N{}<7l;u*-f~j6}AyTqx=2@ z`4#mLolz`0CT>^L2P|RY96jT1mHIHKQ}$mtWQte&o>JBBkzT!W7-KfzKJ3zI+hkOI z3E=Isoa?(9`Ho$>!*@QRkO7fkE~e?o)(b7TAWLw%c>r>=iGbPH*0{^Hd;-R)z$~76 zWtM4HWfYfg=y2dE*9ATpk25-(8D+Po_LJ0^og!3bMYSYru2cBB{>#erB zlS(1XK7K~Q>O|PQ>y#voG;P`sBL4j!SQq$*-roNa>j=C5!g^hbpRJk&(SXod)85OA z@}kO@$O)$Py8^jv%9T%uj%Ir6+n#r7y;1uX$xH-)21ixO)C^cEx|j zD;bW|5b50EhlLI1(O_AH`#R4W@El=_vkwU}%{BuV-;3v$Ei33bhn~W{M@^E^J~BrAo5%-xg;6W*56%W4;$2Or$_%XSTBcn+YMo+ecmQJ?^T14qwDJr3}LPoEPWTY z!zb37Y^F1F5~O@%e?SfZ6%7mNY8Xp{@oxFkSZh<@>Y8uX{Vii(c!AO+oH67HStf7q zV9702Hc;aege#IxSA+*;s3k2;$(@0kKm_h2ubaN!i1tgaxi{LO9*!eK_=} z2-rd_3e_w#^QO{hz~{Og5KJCJ?{mu<1>nLKi0>#hXC^)V8)uw4AQ6`HmBK(G=N9}U z&G2T$ZOec}?8zy$8UmSq;{U?7;#>U6NGVqiV}fSbso6L4WgmVLu+QKVX0X}c)X+5h z>Xs3%Ix{|=Xf+6yQ04K3qMo(dg`>RkqaewukHN?l=zC(~V;n-t2pwMupwKeuC-+kRFE)! z`MA6O_#LqUtufE93x^LLh zIV$pTwqiRPTVuAuO&_Kd&@7A?M8i{v7VG?5$*AKa7Psmu!t?hoE;wzJ(mr8yc)r_u zg@p#Tc)}Kzz!{?D`lKVs&HLuQ1}6;|UE}F4BYr{H%TwIs5)zql863AWH$AB!^7Rpj zKIAB8U9PH4_F%HR3nt5GmLRArGdjEZu?G`18wMEsthXM>h18u^?in- zK|<#oLvnaXDhD3Rr2JUtoq0>l2rB>#iljED6aQH*rzW_jbyi_=g?O?TqF}7*tck&QtUfOTmRC;!G_m zMc=OAdQT1S^^)l6)FM3Q?}h}aF>A_k0wNugZmdSFMyQ)9gR&27VBC+Iu*)cXO~RP#pa&7cz7>N&)g{NIZbwp;GDSzKsi;i83mCL^e~?m4;MzPweGxjy zClXi-ZjQ2C>mRL3N6T#OR$8lkx8>z7=^N9$42v|W8FiUyQ`KGPfAxsnn~?V8bnJ^A zb=EZlq;>NL3Aa|e0Q^~BnG>>J$p9vgeiFKvfNVuuNp(LQJ2;C~VvsuwfatUj&c-Ky zgSpbA>yzpBY=lxRArh8TtP4(=6&zT-1ApP31{Reb>Zk%xu1@HtAQQgE;r2?(<5bnHX|)~kyF%o<>k=99-i3*AU3 zLmenY9+9$JxD&LW-*($wUpqgU_{Ygg*g--tsq@p9;wT`Ee%~oen+cKn8BC&Juv?uU z&+8i$Jc&{Ib(a>SJ`kLMkfi+g3Q#}Hm!m^O>h`jaFYw4mkU6)DA)(4wU1N6c}ypXnl8`{5cwFNFMx20)5XgNBxhWEN}HseF2N_MkY~g*ag7?RXDR|n&pVn55N<1JFgRbuLzfzxJl)w;rD z>JmC5EU}Y>=f^Oqtyq%?{P7U_W~7Ya4^ra|H^gWCo|AOiMZf1u7G; zCAAx&@h!1y@3D-Fa)Cuc5!E?hxyfE!DM4ck6Fzp6ydcy_4=+9iTA*g8-r0<6)Jr6$ z+t_}ESR!+))$Gu#jZ1bD^`xI8E(L^i;QYFe#mfy3H+p;1L%)*q84O)~ zpOPVAyW$SEkCh_)xRrV-x!rWPEr`V>%fIWV{_^z08mdVRF8E-)*OvF&qsY(B5IUFx zl@KcSQM zT$lFT-7)@={C&s&5IB4ykUv0M{HZkUsaXV|JG=`-3Swk%4~AR6N3Mf|(Ve3LBe|oZUX7EK-}H01LvoQK{Ki2r1km#b^!HEcgHPf8OIq4L70Z|(l0J`KJjmXblwf51-a9}2hsE$k5f{tI>|DPC^| z-P^F0vs>Fuc^em3KP|!>XAFD@MCP3gvOfq#9zubfR8OfaiVT;VU7{xQD;xUZL);WS zofri+1qaH3C`9VBm<|$LixM80c`I^Sz-CYdL;h*-oFtxNBO3?`K)?jOxGaEE?-Q5CaFP`}%AoSwn zq2I<<7!Kz&m>3L{9%Z)paPcgE@6KuOtr8muSn7{nJ~Rv*!F_1J3V8iP%>CIP0gIYY zn~Cpv*Ik*b!<@Hsh`XOj^vHUBPlZ11T+<$NnIOG-&-%dZTSCNB1;3WhG3NkKzH87* z_6zAFEMTXG+rf3K#uEKhzjM|O3wwx{lktG=GDJXbTm1?rD1A9+tI^ez1oC~@Al@Na z0oc*-*HEo_;1M;5ESSL3*p8oh?AmZ>HectAqTUEq>bPvUZU)`b^>!s@bJSpo0`l}@H?BzV{@5yR#dDa zLsW%F51awVM_KHHdydo9kp)G!j!)0e->fw2@w zDArNMY;K%S-;MsgdVeQ5s&mI)o+~KTcVDy4hYp zePE4_m=##~3|y?jy->huEG)%p;C8+kBTV-FI(na#b_Z)^Gk1op*i;{R-4ux&V&^*d zLl~eaPaeFMCEV*eF%cP-h7Bz5@2oiSLzI`P6_rGXQxQMh&SAK4KyfCo{u5z}M6c)_ zHtiDpm9do!GggkYezG8v89_6%62Kj;zqYpcERH9Bo&9 z`l}@Haily~F($V1Bs;N+(0yvTcI9xluHn_T+I+WG`Ky%l^M)tgBQqH~dZC~MZv;QtfR2%<;;&vTB%^Hl@2+$Y)=l@oWrKDpxz5h|Vn$Ol#1 z{o@!mTL(XVU6%N?STz+5jq%}M^^t>R z{J2Mwu621x5YPoq>|c?*NO@45ufPnHdDxJ4p7d-(HQ3>&tf$0_0j`fq<$EmLINx~xpW4W`pT_2^(D+^-~ zht0Fq-#9;ghC*0~VO;~EW9cVfpUnu7y*B5{_J6EYGL#NpHpk20#7HeJ_Q-+Q!z!6z z?C3Mom?FJoQH_m9^79zPV%B7R^=Ty%Y4=zQ$pmZTdR&-(3Yzvx>FPCwQCPgJ)>sLT zi%?IDr18(^j}+`;{8RwRxq*!z{Au7&G9L<{?M-Rd@&JbDek@2|_}er>@-4pdl@`_W z6+7~elAf{i#M)Ij8SiyBz8P+pzRu8zNqjEMdfo0ghZa3e0?lq9_WOk6C`x8+)oS@N zh|O_P&)sCf@xmIEp#@V?ay&Q>wQmn+FwUrXO>->oi0gZzY%$Aw4Fq6u60)eVCgmSg zsF)s$7*5WFHqkpdQl0*+A3njSvM|tbn$FbbwZzp)IWQh;M63`wDvXQ?7u-(?B#4%I zNaL`-7zn2)F0tMuVkuCyztV2!=A$>0hKHTJrGY}!j<|?Xs9Ji=`ACEwqjy`#ED4M$ z%ivDmM~9p6s+sX065CF=T}nxZ=!kb?Q}0F$+R_>3THztJx8 z^*lNJ!B8-0M+ST0PC#mDTJ8cDA1&(amX}5p*GhMecXS$qvU>~f@A6WJU$n+%rJd|^VJ^Yh=d~)?w33{wT#xMejzS=AJ4byym-AXh!@D7 zNx&#YKjfJfu(x{t@F}#N*Q?W21uX777C5Dwco(k7lac3<7)Et!O{O#8s<%ZwlXy6C|Z((K0{mZsPvp0NB7_v+x1X}U#$>LxOgq%{V?MPoYdEe~(KLMlfV^ah6$FaBlo$$J3eiqQ7VSW(7GE?S&=W8(# zHa%Tw?^U>sL$j_O25cjpQab)}_7|J|#(eov7dIt!UVw*|qSyMW;q(O?8y4;tgP#l7 z4WS1D`jq)=PwI9Ve=kuR-5u7J<#pZ+b9QR){33sxLs9HV)6oUFFRy}n(&$VAOKSl_48_)dpx2sLTV zQw%bJc1`0HIC#RV>Dh`XNnOk;5$pR5CCVynrQ;}o#!zm+;d8v#`9&7=eG-;Y5PNf^Hl=I2s5 z5M}C9MI*hp?{%oR4$8Iw#KP8(Ry~{s57M;V9$>a(tlxILbou90bmf4v(Qeg&a}=Jb zSe(QtjKv>Wre$6*mRamE4mFsev@x%uPxQ1xWCB}Z3m?MzZK)GJJo&JO=uU7tU$WrW zRAVdQiuDE$f+z^Z#K2QMrFbj}{pf+=jUFCZ%EHBSNJnuho249@fDt+c4`N%)_fr$-Bb+-mAhOnR`gbF@c!tD&p1bd$> z1G|KH7C&C`Isq;Gctf4x@4F|m{B%3-uM!(8+6laFZcH@X5M{nJW1A25CR?gx$oD=) zPMBgLrT&BoE%`<7_;mG=T14(seSPt}K*Ti&HBML6czcl9LQzX0vCzvC1MT~dhLhbo z6EpMB6#dmmwcFX;i?_GTOco8%Aj`jG1eP;b;xFc>< zrdSRmuemR}ek=SzJ!lN4jp+DhkyR%{dea!C0Y<5Y?D>G@ZyDF0M9h)okLI%X>h#@w zM<3L?Vo49hrA^zV7M3@SN0=GK4!YCh6|~&zAJuYHYni`hhVGW+VM9&bPgtafs~0?%-Iu9zx5r{HjJV%MStsTK1Nd{^tB4_l*BI^V zq`08(Fr5<^QCbaEeS_Da?zb9t-TACNJd`A6(&w3t)u)a1x zR#p2A~)_5}?=&>QE zE_Q3~E}ql~coT?8DKWo0`3l$JM&Hpq^KTv0TX#LKk|m}(D3a+?yVh#hByISi8aiT( zWp0_p!^f8~3NE(lE}+jQas|AEF=FVv+8VE|r!sCI@Ao$R65p-Ao!~w%_4HLhQmk8n z=egp#RTS>$TiPujU?QOh`tdNjXxe~Pv}5V0ytG+8bgEdGGbT8*%Vas=QsVe?O1#$3 zQza3XQ6&ey(cgYsSibqMf2Z5Pad9UbsG-|>WE;~8Fd??WhZXW9NDtc;B8Idl554E6 zQw*~!={XT{B7S&3I~^XhJG;BIas*OzdTjt>D^iguQsj8LUoGlji>X%SuVWs>5ET)! z5#b;Yci{Hp5*T01a41p{;$aYVOSqzZt{7@{O38EFaAdYrpZ_{mUm#xrd%!TczrX&7 z%b78QHxQM7B%1e|B>9oH!TmCz^H8{b~a>fkQ zDYVwI;7J^zB?+@JxP3uA8&*%mDZ>Hd<<^_}CC7mPj<;QC93W-en@% z?DAUG1_4xlQKXrFIo%=k5B)k{KQwsB)jp-H)oQDCTR%E}{?*D#Qe1Bsq0|1eBdMrD zKE>hMk=sU{&P~PYlH*CmMmX>DZi-eLC+n}4rSg9Dwu$w6Rp<3?KOL!1xBG|hh4mdi z8!vs6MZWi2Q9s_L|5=?R5)ir!o#pWRyOe;x!vJFt1333yQ+-EvTr@R@>0N4J|59G) z7j`h&!s=rIE|EO#y`Hg@Q(R4*2;p9=JyR;caBJrWxU>7MW5@43j?f~U-QN{G^A{=x zVJnkT@la;)`bOVic9`>Q7Jk&q{KSCBpC7r?w>i299*y<+eG0D!qMDbede;Zi=q+D= z&p~kGP{|xNzE!QR9#?{T1{Ui4b6q7C~W{+^{WH;p+gs; zrPugZn>l&>-(x11zGn6?VJg9?X?_5?H2oM_vOvQ5H@qXElP1m396bFK@ri-n)P#h?Y6B7cHh&}&z@6=9i z7{K@vYTZ7kUzR)|aS9K(e4jIe`;m7xk9)>wxQWw3@TUOcwv+IT zA74sJvLQcEHEP0srPc+|hl$|5CC=v?ct7>o*@O_R%sT45uPb*|$7IsKy&t%-gH`Ed z{GrMk&>Z3XXaE42AYqg;!Yb_vaBBE?&!zaWG-em>#mAOv4w|l9D(Gnn)I!_af1LSV zc4Y?sP@@9o8V;kCe!UNfJ-KHDpmLvZ;h9@ zVt;;R@J{eyYP`K><2bxW6$+nJ{h@Q{Z3}n@^SCF&!-zeSt7Eqj=IOm zXcBcFmwU*^6ykuQ-1es3d~B+LHS<^hxva&alWia~*9jM;~8dDy8>>n@$d#1sYblI~LpUERYTpP*qdRc^eysG8-7T%7zen5!6~4 z=)rV(i7sFCmd5>4xNFQsW#%4BsHMg5`k>J6<0jQ#*Xvi~Kv{q^5VmNfLcas0ylEuZ!g9}o^ryVA)5DL{7D>=aqxr$lmH z_1_*_Fq?9fj&xyR%W#m^O(9O=Q4Vfc1>L~11Vpr zG8}9oQM6hON{+~7GJ3FzaVMUtB1;KI8Er^}@+Lq;*L6`O$zMuu$J@E@qmHfC+tWn5Y@?Vg9a;iJBEO{R!R?XIqL0 z@G?LjLkpXY2fzz-+LBCR=dT~1EYpUtpwM==oiT8GhYZs7Pm_suNB+0G6u(PucwfVkt0O3H(k^N>0q$=qP zQ`?U;o_tC%mX*nP3k}Py4__qxyc`Vac#KgY7ZBU)6c{-Z>Tm6vGugyTq)w%#`Emq4 zAvS&3C;MDI3+$dy5vGw8M@8rk=T=TaIh zRA6_xOEJZzf;Y@>{OGO}V4_vG3`-fngG}mEw*MSak?XOM#W7BfnS8&#VJpn74Sm1t zc9Amz{e-aWzZuY2fJB*d6xp`v_8Eo6-LQW+2gdRgMAsJ5j_8d`DTwUfZ!B080Ox86 zgIcQ|MJYoO{t+jK+TRhW4Gs@KDGM22da^XkZ-)k&3y_GLlFiK1{?Z+wp5DNfC4=;~ zqwV|m4+0j}SZ$>-Fp+MR15i18c@tc9C7|cb_e9-WCMaUlgAdg%2^8V#8#o^Vrbcd^ z83#K<(b145_`QlR&TSs`J?JC$nGvvxkf-r5JA>?^Ccm|cQ;PBwi$f=@3HzBj8-ica zf8K2g_j#d-J=vQ#Hh+kNl|SRsrGr8@UTsjq4DK;wc$w`F?W3>$gJMfy{@IEi>c1^M zRkJUqd_MVQb8kH#?SFA+L1LBlXW_TNf~FRod96ockt96fb0X>>O)-k(|A(`;aEim< zwmn;McMWbKxCDZ`ySoK<2yTtL6FfKsmp~x6yC%Wi-AQm6&OP_dykFJ4nsetr=&D}T z>(hIG_gZJhW+vE`c93pLnJoUm2y0OU20u)L_rntzFZidV?mudcjnT7tEt!{Jd|v`( z8W*TlN4*0)37qcTpO2){Xjx)_wLt#zQ}l%PL#oS3kDA<$?W>E}7ku4hDWe*cv63XV zbDx~Rd?jkD_qEPJuUu*xNk^tMqyqTWAU!Y19pnG;6Rn8OG9@A*W%=u~nPZ=)Mws^U z#s^kW1>us(uwX5{N^(`=P7|y}x6JM@To6vm+6`_naIr4Byi?{~kINrN6e0*W*bxc;Da~~^X!XHbw zT<&%RF94Py#kIMSZOMOpU5@|Zu;%~$>w^CGI`$;Z@m~@70|Aq~XJt=fN=4Ga2>1O( z4)aMDd%X+rM1{_Q_C%i*AZaE;1t6L+)I02V&~h3xHSj`DCE{R={ZN=VPSX#pZ-nC@ zU|?e(RT;hMe5re3RdM$9@|@!3Ha{<2EUkjYW6u}Cd5vL)Wtl8=QRq79-qJZp?ee#3VCz0hX_?soaK&skx9;ZOPiVvRbd7U7rWF=K0K2 z?;zV4qA+=BfGDLgHUc;hlC(y_`1%Niyl;Ibk=b16<)CE;IZoW-V|EH=(VU=rIM|fz zI{pm-H&%3q5XUX45u%?A3I2pp%M%&P=>qyP2E|N93KnPM)2@@v(#yi|&`Chd@g zD|rI=4^4b3QZVGL6FFx8?WaM!k8rOukL_H0^V?9%^uz;sP~FfNI~E~%yGg$RT7;lef2P zX*KZXJCjE=?Hx>8kv! z4<@d|JQ}*!N^Q18}x)D?o^&QCOO@o{&X5mlau<|YVy&>NbHf#L{@sYf` zox9E=UCqf{-qx#06jWc(w<*VsE+m`&Dy^=3Io0z_;x}R0CabWobBa5r0d#=GNR*No zW$!C&WK-dVzELu4Im38z6pd0quRolOS!B!8|&&aU=F9LY+* z^TfE^enp`ES&uu>zEfxXF5O zak>1+M81W2p3#+F(`GKMl{^F+($X@{U*GaORK{IBx6s11tkNXL*Pkx9>z}A+8hM7F zx_TM9@!F5>v2jg~RvHW&@3o3^d9AvhDD!<8eBasQvnK=|>X*Mnly22>m|sGT(U(?y zSxF3&@Uss%+#Sq9`?c^}Zke}4i-4tlT4b;{`e2go6HR$hp+Dl}@zKbYVPVA{mNWeC zx8mL&@Bw<47~rp$ZG8~5xtEB>v{s##1C5D4kI^49t^rhvsu%gwKsNFXeCI9|-P0E* zS`z3tVeb2&Uenp+j&f|5DV4r?Rq~jo0Y}ZbXJSK+bD?!7`h-4mf`fnj<{tcq8tlCihLFh^t;-LE0+6 z$yXU)cM8G#pc~v;JzRNXw#^LyMn z-4928vG%31YcsX0bNuFW2XD=t!=_V|&S^JWYySz&>1(AtvyWKa^{@Y6L~RT-)7+MV z$u!{O2k4xKv*J@%RowD*e}6W_EM*8X8}-)rBobWFJfjb3grhknE#q{-fqdy(cRuSmpQnD) zi9n&e6}Vj>hr+<12>>a~optYwi7ssLe_9DB{FDd_RpF*{<>g5D(oC3EBiOebFJULI z)Z4URWc6b{^2>tGInHiZfsQc&r4Eb(DDseT4m!5|?Noiu({hTou5Qn`_`zptzb1&v z413p~IS>&z;F$z-crA+QfE{FbslQo~!zHj$Oj|E%0sy4$;rOn9kn9)Z|El^HtN~JG z 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%0AIbD-sPZ%v2G?a2Ziy;qJUHJTuv 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%0D1BHd$;v2nki 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

    337UIzy_;y{@aa4o$z{5R zm@){9(_X2s=ObU9Njz43Y|L3NORpL<37$%vOU-)}DWX2N<`T!Gp^yl8HVl*SEMS#| zmyGRv4iLU&LGrlXNvg+y%aW5dt8fa1}woJZ2Wh0mSj(hff3W01IuuR_t~e zNQ8Ho1Tmx}<@|n!xOaS%CALaCP+YQVKN(QcuUu1I;_72%+c&!@Fz11-5yslJu+w}4rb?&Mp=4(R6ue1@@ zjQB&1LlVKJl8Q9DQm<*CPT}5UBjnw@?1FrL;bGzD&`6~kR@MitEkE5t`iYObm)g(! zkCNtm03GxUR=w zD!|=3GX7D=Na*OtD%Q#xYaOy{?zK(La*^JL@Lo(&qWAezQt9#?v&5!3#53Q%_0P^@ z*qa6fh!e9KedtPJAz+j>rqsv(-3_<4a&)3Up7CYlWn*njk&B2|H|c_=BSYYF+$`&r zZ5$OFC}HX+lsAj0DvT_=(Yw$a_(HB}E-c-DXMFj1b5i9|VBh6quKIoKa?}K)RtM8` zmM5SePi3k+Z@LnBYp0Hca}Iy;W!1(+d5cz43}KY}nydk#iH} zr>VnEh3GCVG)juhH2Y+OJe+uOt^yf^zVw(WN>5bi#-+WUzp^F1SEa z-`;%RPdH=`F)Yk>zg+I0b53=3^Nv%JkKv8hWl?6WgPhRImYbY1m!=Sar|~B$GN7HyD5^T=aRBzDoyVQ zW7Pc2lPE?H(*trSQhev}Pp73v?lePn(Hs{qPa5&1+ywge>q@eV+_9#tN1a*#{T=50IJcmaP%ZMZk#n2INgfB3Sc z@IoG9N0ICd9ja$!seW*p{FU@`InkaG&( z_J%Q&*>Q!~gtg#eqZ_GC~k$JxGw3FjL!)#W^Ne)5btrJwo| zFk8Gv{dd!8p@Aa30XzgymB#$`o5irbF*;44a_+0>`BSk!GR3sVh=%e7T?W6#&N6;U zqFf`CI!T8sQc(OgpF2by=)U1hFg`Rxc(l>@vjsTF(|35#vdYe6D$`$@dr;J5SI8>N*>=jbf-Tj|o2PV?4Ec=|P}KS>qTJea_4di&=p?q+5eimgu#>Qq_Pz zBn|uK9MfwQv7)Evs5CEx<#y`fLmj)+ZXW;C|A$=88b!mQ2|glB(u@Tt6}01+W=E$0 z%e}kSs&GBb9Q*C{;<3#K^&Bwd{Q&(*1!7BgMw}o&rXT>vS5SnhOW~&1qM{WJjQf}5 zZOKNhHnLdn=4u*#x$gR2>4OlqJHyw9w3taIqKvTgvqSj$Mw89+(S2^Yv0he1jBW@1VAQs;9zeUvUb&V zwd=@yWav#t$KLSn<@b{n_pqXV{`a-%_^bxklk%`UFnDtCO1J~K&9;N14%G-s=IdB@ zJ<9jlc;0zDSIY6W*zV4M^6_!!Y2=yta=j|Jxh9czBi5#LbL0v7I>82%*gtB1dGqPT zV*fXFF^ncw9*ut8X2UP+&$7*<>|g(_N{z9JfOIp873ccHU);s$9}%2jfDC~zMhfPd z#~2uO2*?+#q;`DEdHC5-=VvoPS9)bqK zum*9VF z9Rc}WP=pu;og#vysK65B+0i61_2kE#>ft!B2Wj5vOc;s_PnGt8m>5yG19OqBz}Y_b z<{E5aQ%Le9%WNJQq0yb@*7bWZtl1D!$}m}u<5Jo@Y(F)5iC?0nh;jKI?~`RiOHW7M zp|&&U+)#8$%BaZMwKZ{mOlX{lK#Sru)D44c=2!V*CL5hpF^kMl@B)_x`Lo-&a5(1u z87#5MKObH47K`7jc@}(El3;}Jt=UXW@C;?H=_VRJzgyv7iX;U5AAIKh-z*Z)?f;Fp zl&$p5abMGq#%N{^`h(e|X!WF2XiT0YS@W83UV^OpTAULN_}FNz#mBl6si*>w3%#so zG%BiWIunh`C0wc1SPU4bOwz{{_kMa+{A_DRl^kq~<-Xi|xZT{&@M=F@9jK!P8d(4; zGM^IfEKlCTNecrA$8tOzp#$1}(}yUpv#({&7=w)yNH5#Z=hxt0mwkv(FS+0I&mSHK z=k74BK`j4D_}LwDazioChe|&74Q?-zwK1DEVNP_X&qXtP-RyH0!wC6bAMl69@M?V*#!zlpk7mXIEd&Y=5Z-6 zyND3q7EJQnRu~*NWno>srEkT1`Ewj($OLW@m1+wVuDl#Szfb5Yi})gKG1ni2kkU%Q z9~VT!K}jSdV$t^vjqkycbtgQb_VGt&am&D3KH? zHa0MwA%J{U96p6Q?8~sYSwdk5XKyg3j!x74E{1NFdFgLCw=S@h2dR5p%B(-KhQB_k z_h)kKLD+CE#U{ld7!}7ML-ZK6dwSG|H4MX)k|M-Ku7;pQMkbDmMHrW}lXp|sphV$u>t4zV=e7W1y zsD5sHa?znZqsk8T>HyG3fqhem{f(tan3OQ zU$nhbbfy2ct~*BTjM%nq+h!#d+jdg1ZQGTk!isG>6|16(ZSC4?uGaSapLX_X^J1NG zJudtE>(AHmcFPvH@$usa{QXhU6bWNvf6pfI@b;g zc%{ydG2$pr@wdiX2rd$9tRF7U~=f{Oll~SV|HiGwQ@1Z*wI&zl@5&bmy zf^f77_SCL0(H~&545b4XE=E1ZU`ahl`+yAief&6c&=zlx3 zh`5;WVWG2U0|4OI|9Vgq67{6G@<(dUOw$ZtM2jm%1*e+To+xFH$7JXkROENJF^2Z%U&JSPhutQ>MA0Q-v(HD6=k33!B}r z0G}-UeR*d;jTB&za9x03f7yBCUF@^<(tIMriKa9S^E_xn-j*5K>Nk4>g^wC69Crce z5%752N4?a%07@TRVe)UYx`)?>kbVsm^9rUF>!szBgpNUui6937Gg=j*&^UnX&PF1<3I@LQObK<%&R#3cfG$ z7g?HviI73q#?_f!Y@N^4uqOr9`@v8HPNz2ye!|9F4t9 z>*&2+7izq@I(nT~H#-Y`jwQe1?Mwv;QUG?e@J=$nUoH(5 z!^ZkPYSnX7h0oA=fFe>Mk&q?7;bdEnL~ips8F!;eu`#TqAZ<`1AB)_pvyL^2eCAyy zyTNOrF13C0H>+{JHPe6)jx^Oe_*mpyI>oYBb3F5=YeovuBxBerIcfVv*S(pY@y1KI zP5=kZw{+`=2|G~g2ve|EQx}xN@we`~J2VGz&Wloyx`{#Kc8HX&u(*`-Ud9<$ygN$+ zP__YQC8A^SJd6dkVom7I2YTdtPIHws@vbjx!O9xMjifP-6hCRO2kj+}Tt_>?FhPLH zjpGDmaJB$L%{gXRA$X4_mFmlTzm}!Uf(wd5Av6`}Dp`w_iAJOUU@fZ3+&re(Vvqe$) zbSNGe1tiy1MD#1QcsiMK;jm*Snbl73Xj2%>O*vM?^JmvxLKqe_W=k=u#;u4a_fO6@ zSiZGalZ6H?KiO>!UBY7>6^AyLWM1BVnYgIJ5*BQJ3Kl-%v& zO3)WTC7>jmldjsOJo3~3h{aO&pNg$G1?w%4uYddVRmf!d(;9Pd|rD zgg8qBNU|uWD3b#m%~2%JVH|mS6Y}2vn2}gt^#9B>tgr4V~x&iYvDE{7acsTC?H zFH`!SatwY15zi11RiO-&=*5OEIHC?h8K;?EJyor~BP`tJGV-P3zj(_;8#k3fnuS~dl&qy;|`U&3;iA11+?rZI_B_+W3xRjr1) zd$GwjzYHfD+WS@570fFV>X|4zjnR7R6u!(%p;E{B_$ftd4}2M zT0Th7K1|Ls%|XAM+#&8lu#5HPgMPpL4;B4m`6L&h2Eu%XF3QA~!xv(}t>OVgfm6T^ z?5Il`dzSK+-pj9LdBxU@p*)vWHCb;)x8&y<0(~!}U#$!~nTXF)uDR$tqmZB(PdRbn z5dFOjFuBQ^x7BK;L~umMu%Er_9-YoV(7W*3zlnuH#)3XqSVWEJ`Ne<7=&Q}CFfVQ? z&D_^a(@k1`eZJchj9*7gmbZl&5%q*LgOk6RmQrd85`@~ zn2jMkNg7@Gs-DoY|KX&t8(7E3p5!TWO=B5{{zRKMp?9x*UBd7@^q3g9n^0G1<&GTWAuW`(A<{TzDc}8ZZId zxa*OAiV**?1dBGJ4$b;bo)#f%9BU~}7wU;9bllA?uGpf#iMZb*)9&o<@@{7&!x2*1 z>CY_6M>^;B-Tb6nX?H^C!$b9_a~n3FN6F(*F!Xdd0;i$p0fZXF{#l$~Bo?*!*lPdmyoFB*iB)hN$om3wRYg(U+EzW_wA*E|XH!rN zqON<3EL;?S{bFjz3H5V%njlKKNh+so@&fb51U={GpDA7=Qn(0haL~o~PjQ>j)I0)<;EFx4&imfg+oi{~52_w#`>wNAPXm`MwlM2s;3rxArk1OPLzc zycjTEh%@caxV7Ofd^epgx1N{xC?L|6;v^aHCeV559NYP`bhRy?3`CE!I{~50pII>lt)dEXOP+lykXg4&+z80?yN1Qw<4BLn!!xGCbj`1a z5YNJL4KL9c3i=%+8zGlgFidZVE)C!?fmbakExp`)y}0o6W9b@WqB`=Jc|LfX?wWOP zf%&uhwJQ`^uM09{cTwS#Z2Y>WrMmZb{`0E8(5f-%fY%q(L0eL>wl5`2Y;JIXrl1%z z3E{MZ^Ef{tAfJUjKBLJ-(ei|aw}4~mn{ ze8$Bl@;bX)MM67x+IO6)ypA+|(w-rUu$C$NfKUi)GOEgC<&b4OV@99%qT|r*PqX|H zK94@^aETZZ;c96HNl%QwtNsPrpl=F#f1~2&C>c06*Hy5`3t#P|kr0GNtpMDI zMu7y7XsD|fNeVx~!@~HITY7(E8GdA5w+}JkNl%{&(ix0IEdvvzB@Ut1Eh?o^5TJRvu)9Tka>thmg0QbUoM7lEEa(?>#D6|f997ih+D?avP z&bg-UyV~LQq-VR}^addO#JVCB15^)#c&|%hvnQF6bN7w_n1qgJS;e?|l{5|c0NZhA zgBWhE}?+Me|h*gXe``novz1vG&n5<%<;rfbK*7(YQyKOW`;oSLy zW-Z|dp5JUp3PU-Tlvx_zuMdxJqoQljT**^zVIITydhPA(TgDDGb?UC5=y&>h4UgoY zam6GJN7r&^gF6j;w7D#I$;(Q6#k8n+Z16D(l!F*Gt{+n^pDT7BP3H`{)rt=C)Ybe) z)6MU*VlD*Q$hd-U%{ep1iq*CA{#Ew*6BUuF`ZTqZ9C;l}UK)NZdd)S@A7#cza;1#> zSLiwzzSOmtC)h+uQq1t5;K#>)y#xNoe=h+1TRRi#KXfSi|BxSa{eKtEv=ANDmoNk$ zyWXdep^^;c3_;2vi zYQ5G+=|Wk;!Z=Zq;x7C6-qRla?^8AQ0OrX?%m74xMqnBEA6((3d9oWLrpwIt#0$gH zEJl>ka2zKm&&}U2&vyw}+qA$wlvaSJkwh>A%j~8Ni3vhyOH7iLlo&V&?JY`PI+FlU zSnb;+srcOxb7&zGsPX+&b50P)0mDCP0LZq)MY8L9swRkpvP;)xylu<@^$P`g?%3 zt$u-jLJLw@KF3cipUa#eG78~-M*;94aAgo9_ZTcS0%*e+011sG8l=S1MQ$N~sI6Cv zbO%X-9oHe*$QbP<} ztOc@PtlRHnM-mXRkjO=)Gzf9TEDDB>IaS6Y2D4)cI2r_lB!#NBWIrNCr-tnP;^*(r32oWgavB zq~K4ze@k5he|&w~#@n8YZWseHB8N z*WE{F_J9##moQ!e>~I9TsD)Y1qeXc}1LIiL%Dx~tiYfovXHOMw4gA$@8Zyw#!655% zB%Xc>IlxRjbv}oAbkNn|xxo#R9wTXTdlW96NtZB`hvoxhGC1l2kXS4F5R*%}9XlWf zVQx-;7&5O2p#TqJ$YL!Yu#J@~8p&*Wcf_s0lrfS`0g>itfDX*rIzR$BSO|geS)|Lk zNd#;o;TbSgA;?A=yOE8!w-;i6`-Qwwt^m7W=&vn3pw6fJ4V~|s72mhZQm~Ets$@fJ zzKVzQ)iPHZc?Qwu+tsv^iJi%>%REx!tjDrow4%2;nY(w_LW3!swtv66GnZiPmPabV zvWu6QK?w7?*)0JhNsKdPb398rQavjpO-gLB`V6sPFQ3khec>>zIpaxRK^yEKv#$N{5_SfI77<(9nYDO z7UF2fk+*gIAXAz7l}dt2Xv?>=vRQV6>vDO32^3zm*MHot@hssLuEqGCHge#K)RQ8r zl7AL*f?2Ko0MmNs>h*41kA3EA=Wy3((!J!aGm+Nqtjmwt!$%l--j_wJg7Vz-(JL3gi8Hw1tLrJ-sagf$->8uGW@wD22U!5Gs!Ny#1fXz{J^DkN zw-C#bpcFHm6Ra+p<}ebkK;r$uQ%F=f*R5S_9Ea540oy9{B-L6K=2erP=lQ()LaWZ# z?|E{tjwkv%hlmM?5mAXQ%n;DwhhftXz^A6?n~&mGZ};pMcnS;Fm87d3;t=Rp+yU?p zvaGVeg#$)He(NS%Sj19&N9HUb$a|8vqYqV&}i1X_*Pnemrl?+l0d)`bX1algf8-Q zpG7nJt`_EjEhON?laW`glUs^nkHMgOuPeOg_HUXx-<+q@Ot|d7Iq)Cs=jnlIhfKzEZxk!LP~M+C2Wc zwg=$G-R?WL!%|3JWGD_BkXX#>*?Z6AB&MUp*Keqwg0H^7l;LnwUyukeOex^ee_pzP z#kksc#IG9cf$sNrU=G_XklF6TgQ~A%M6;hyrbUjWi~mtd$vz`YZdqw42y)d1VAxdT zsP#^|qG!M&|0x!~Y)kh(Y(ANWKl`0q zLmpN_n>GMlDw}RWHBT(=4E~$*9@Z26NcQR{Q%$N@aS@E9-ak;l`#y> zhJ6?RJHAKvF9;}2HjqYFK_Bkn<4dK)HvWRMUTjoEu0mQ3Uj!2El3uCCLNuG!N3Cg<*)ug8oDTXet0(7_2_CI9%%JvitW+k5(nvV zZ{yM#62*wkh!unnK%hkZ9<8hxV@~e$1ZGHj>EITZje-Il817ikI@pS4#T=3^R6TYP zSjh-@5CT(Y-D9wT2Gn%s>VPQ|KjxE1blxxBSF!Xg6ads^WT<*{{`thsvceixK6Juwxf|tL*38jYviNyEu z)V;19r#3SeX&ST`7uLju%ov+`c$_S?2mk{g&dAdzAj#>Lr`K`pZX^@Etf@xIq*`HWn&rAxD1B!DITd~*pzO4jDg?Ax(q=n6>(0Ifi zs*Y6lxQ#?xYU~pSPAs$Z#EghRKJZk?gdA4&RgkQ+#H$wLCZ2Lu>wm5kV zEvNUD2|@rgpHwCzaTcp-vK?sOTLEYSSB=rkSQ_W{_N41N--?zGEI67|#_AH89v2{4IN=pIP@BmDCJ zL-+Cj*YJZ<{#W?@)bg{%(7^oM%cgJ08uW26<234+?MN zt+SMtp0wXE^?;3jg~pBPW52<`c#A1gKGm}NVu*qcQDpC_yhi%oP?|PxXRtlF;q$QB z<}qB!RBI>wKuPsD*_HhIn(K1G;}V8~f^9Mz{CwLRy!!$L34zK-=2?NMCac3LW?)je zvjec@phFb_ySUBdO8aJoD~S^LHB5dXm3K6Ij136VS@zkdg{gkE`Ewjal=<3^1;1|( z2b@}AM$lxhzmu5CKSsQ{S1(2fkXaIA>4DqmQG-b}|Hv+7VSvm$0g5>SuLxJ{FanH% zSil`a`v72r(*3PAqSVCBfe^g}2?^w_IeILORQ>g~SY(C@Cj`VKcO;^#mI+^7Wnh@G zp@>KSdLhN73=u;@5#=nhY1zabJW-aQ&Qj5Wkz+9bFtKHpL8O0sEr|(&Jq%C$N(fAc zS2|h)fh8{Tc=lgACNM(uH#{Nh)udm<)PbbQ3xXyLO%DpLZ5dAD&I24_f^PTeC8%?w z3ohWszEsSPwlVeD0HiTfrorE4kIUxc%4#$gCi2GN@oEhFp;(~i)}wSOH{&Mpik^O) z2tOC~XxM=zT&Y=KHKF5fBzfzA`LBH|`X(l01gmuRBkN}aJ(F#7AUP~^K?h;+@cv%j z?{LjaEONpv&nqUt3p*^!peXsgXD^jekNVQA;g@NCKA9rVrH1UrNq32UK+Y#8aZ4S* z14F3w0j+PSNFkg&velz*(`~o|8{qUQNJ2yO!yu5t#~22QOrf$#UtmM~b7^eNOJm)g zbsW+^?Y-ie+d_d7$wkS^umR9c3WGnl zoFp6txq-hSI&Pb==zNYUo7-m;mjslb$EObk`QSj{uorMWn&H{QA4th^hqZnl@9f)X zg@4q`zLR)_CXqr&H4%F_f_-hz#9!&jxs%p*$USd;I&Qg#r_Lsg0aB$MN>KMpE{ z%AgKW*lc^bpGX2o08oj0-g4xjuG$bp{1D$Lk}-9(;(T@;x89YGl)`&@I@`S;rSKDd zVNiD(kXDe+s_sYgwIg!QMqMV%F~xy(j`k>Izw=(-8>%H=L`%MW*EWmGnPwl0S)$k* zrf1B%TJuw?X7AGl{IKW7?i-Ezt!~B}+A$3TWDGbvHc*C*w^U6S@NO2K1Ty}#Z*J{X zCQnEy1Zmej*CBUX+wa=NPh^8^+`MWTOMUg+zZ5yQS2;|*g z%Mr=B{5;^rg9vkl{sx)97o@e((n>$m#58cyO5CSmkiY>(_1$=-r^S4v*=0EoImP6p z=2Q6#@+KZkkROCC z2LtDodmgz5qZl0wm%qt+I^#NigQ+il-%MLU=IWOC0w5oBw6l_abp4SX{?P42^WpK_ zy-kQH_*QFlm3;Q|K%Wc$+380@f$}K^; zC{2cooR;Kwn#)+Zu2EY~3jp|gXajq8Zy^8&}P z5U&fV-$D32Bl#0y_mmdz!C{RTQCQnRJFl6B!YB~c337V$vBB>rin~@Zn6wlBapYHx zJD+e6Zr-I?Adj-z_ipX}v@?wnIr*t~>lP__J?G#`9Aa!#dz$z{Y^D{Drs^ zSEEiBsAN#U8Qhak-b5XDHwOa_;txKsK>N&uX0mxacZdFGt%I~1Qqe2n0DflDDYB{j zB)&#snpnw*_1_UEWNJR5^Ybmfmu(UN*5La2{vWTO%060H)myGT=IBpOF~~6P@BPql zK**52PcG`GDjJO>f1I9&qp_7U1~YaUf?Vdu%={Epok%g@JX z@H4;nZwb>NDd`RVx=8+0tyqKA2^wn0bq{rMVKrpL4mu*MCA<^La{q??iZjh)(J2`; zQM8SSx3@csg68Vh9Y(bMIT~yf<0Fo+gTH$@4@PdQ1Kr$p=sOG|m8-63q)-;S)963> zz19Ref+Kd)YoXi&63ZJlAlD0%uwH#bb+=syYxXPimDuIo|MPZZZ={0HYJrbl1_D)( zhHANoC5BDFhP)1D6NiX?_NJIabWEj;3>LvKWx>83<^Y)q6Ls1ui}dTWgx#o;1{}AK zG>21+8^>Uf_%f+0e9jPa%m!)pNt2Xi7z{E4RKR{0cG#WpOYO(hFHpL$a^qKy3>Znw z;8_EY**><(Z;%A~K6t*2uMvnI!)V43cAad)@1ZuaAQh*EA zRw{W%NCq^kVHwZ2^$%6q{)e6a|1niT9sf5iru)dNYY~q4dtk4|80M6M^dp z&-QsFUl4VyTEb~yg?v|$uS#oXu3uwUXe_I0?XXMRTu~_gdHNC|dD?CoyaUd$IYf(^ z;s$MY1zE(s6EKb7GIRXA=`zjCHhCqLERgP?c)|1dc5(D5fP4s6ivEEtVKmPs5v2pm zB}`;o;G1#rW^(}`7!r!w#ASz+;I#fZX|h~4u{M!jEgj+Q=QNrB={4K@q4~a`4^W=? zND-qxpzql3>X%{3D56f{6@`h8YF~EYA0_1lpfB3vzNW=ouQf+ikC(!yVW=B$>pp9E z`SAc+LH!rpqCLD%J{2oB;D&RMW<<}|e=iOdGr4?3h%hIQnP{>~gQa{I4T-)5V)Um+ zd)8L3XXfSea{TP&XFyC!`pt!vGW9{xY~nAf-Yp6%g$!9BC536uwAE^N+1Z5(7L4|5 zTB3DO0K<+okZYN|d@y_Xa%xHkg3*D?v`Y{}US@clf=(XRSb;i3SQ{Wg0cb4C=woFv z8ThsN1%?HI1hx3a?E^_#3r07Vd z6kChN{f2MV+M(->T0`_-p zF_3omiy~)i&_>RkTee_!hZZl(QmbZo0?jZf!|Por8X_#soB`8>-uFu?zsVOQq5|1g z;lczSrY{b%kuMXIXHIkTke_xH7Pvoul2%m`Gco-t6@=q1SvwPOycQkcdKK&n@kR7x$BEgNL|4qq;loH z?0-_ZMn(Ef6%P?T^cMGsR^)s81zhxw#Vd31d+mDEmoAiL;6j8#562b@LOzm`j{|8! zn)Fh)j~cKbeT<>Rc)5V102R*jzO8+?uW{X0(5E$4J+w7sH^GJl3+r5ZJ(#KgOk&<1 zxNquRsX*3}H`I5H9%7>?1jDh9Tkw6u7@c3Ai=BP7psO5X76Sn{ojXQkl9sV4i_RC+ zS<#Oo3X50OzQWDN|7~m7Sao%qDPQC&0qJTW^h)1-v$3uB*CKp;$NEn90F>UedqiGI zzwbm-5r-NC#=vLG9|h z{vS70>FU4enN3|BuP;J@oAjE%bRcN zc|aG=YlS)SFh1HX>Y?cf`eBcdNxTq*2MQ!Mgd07C@!awfA!u%S~#%#Y7Zd z#<`v*_2mOEF7g0m3a=68x7tZi9vp>DO|M=;9|}9pI*8lLr3^bev#9G)z3KhqyP5wf z!xmFxOq5$+&NB;S&ldkVJOH}}6(u<8n4G^Ev=#0O@V%wtF9SzX4iVPlnNx|gi_>>(8+o0{@ zMCps=KsTf->O=;tOrwA?NEvOz7%;}q~1&^Mtg+KRZp&G88c=&$Eo(PmiMX2Mz z%>q5*zlPU=jtK$I-|ItO#J*N}8`lVIdMk^L&MInAU3K(9qfjuXfCnX5Ru`b6iYx8x z$Ht=ePc6E<8z_z2V2e*6BC%YVe5no%&||(MRj+UrHdT@-@VgJ_bUrg#l99i7BmfXMCD6M{)cU%B*DWNFDfW&T=(4e4!=WevtF{vLv z5CdAhJ~HpmXkH6HSzvap6Tm?q{y+*r0T@P#dMOifqTfi^T}Y;{yE<{qXWsz zU&Q5reR3oGUQG?K(PU;z=9aBbI@k)$J-3Q)KYP&PKJ}eb^7)qB0VYwLxW9mH8E2d$ zrFwib+UN+A{=)kGeMLm>=M|`}g*{kP4&n>LCyXJUk<3$WajIp=gI(hg$d_*6{ONAL zCn&Q1x>u1~7h5jB$0*&w$g5J5E?T@OsV6R_npJ4o{3GEC{ZC>n?*AzV%A1+Hs#;lC zy8au-ex+IE{mZc(|H`8hx;^G7J7tPv={Pq8wf zu}+aPc!SBEq2nY{HTt`)mbz9T$tnxo=X#DA_nMRMmNYs(Z~Zz7!XqaM6^|lb?}IY^{L}x$q<-MhW|N)tO|E;| zUx{{{Ch$1ah;)W$l(oB|`rhdd4O^ZG!PU;(97wLF=0ecE7Ii)vxBqp}3@f`OL^NfX zh;sP+s>E-0%PwQGgd$?P=Qk=U;b$ln?DO?_YuW30`1P?R%Zcuzk+n*NQ|`E&b(9Rk8_nQ0%ZCY;`0 zX@V{aII8vD?U`=+fw%?-MF&v_x{Jxea6~eY*1=QAG<14I%-nkY+Uy!y`SOozDrJ-@ zb!$7YJ%Ut-M+(nH*I~N18Tom|PT%C#OIE3n_6e4 z;A+)qUfWDJ)JLZ(9Hm__oC?;y4mT(E&2!o|5l z`mJ!_I5`klt&L5X5xR9z&l~(roQlVl^TylPHzJ=^8g4u7P#C8mfcf4V6oB$Psx!;t z0O?l3wPI^CQ@$Uj9kSm^ypI^-+W`|3^&vl%rw6YicwWkhDKHWrUtfdMA)=?`cAs*&&K(m|FB&7A3^JX zq#>yPKJGK5^_Nn2@v%cdoiaGk4%*nfQ7=(9K>{U?E~bisq0-cK-d)7BlXBobsMtd%AgO%@ zRAuzs5AE|(?3R^OIPe*NKunm_(YJfaB*d9o#^PpgRejn_RhPC#!$Qd4g#ctgth~cbCoBa8I5_*rJ{mZd(o_@_SN=23}8eCRBNwJ>dpPx&x4`@ z{<37>UNi6|h7CZ&CLyUCrLYju9&mw@aq%XF|D6gd&O#KYe%j`LS`D6p*!X*BqH=va zHGLc41tA%CK3|ex>MO!C@211^Vbc@6*~QL7;$pAPu1(Noh{pkjQiB=1y_i?=R7qg~ z;ZfnH%Z;RM$nz@{@N7yY{$Ucyg1TC*=fszs{MV33Try~N3sMt-(Q^x_Wf75T`tvQq z(;ia}nPf0Y2!#EI2^9okC&-?!pdfSj{N(vMAl}o`r>EY>6N9i}u{qu5lZ=XGT9qP; z-7MhZtsmb=SaqlL>!tcW0h zBKp^nItS1bKn<*n66j@Xu8KlM{oO!DcG#P+88Fj@tUV2k)d5%6XihWW+sa~s?x}u< zbBHF9U?K@ObuS`Dz%wLGP|!PUpeAY`rquUXmQn{xS}0Kl!*h zEwy9JGYL(}Fh2Y}z?86)v5(KC2?4`0{bhZk2uW^7aPanyUt_m3)M%BYaKWf|{usi+ zu36Yl<5R}X3-A6bwF*;Zzvf`t6^+M7AMYTaRD3|U?{s#;-bNp|rd=d$lmT`Y0WK~A zxF&-A>8{L4_LQdV4{_%cZf~>pQ2CQVSa6n!A=*#8ajYdQ(l_k0_DfuxCev>>JSc-C!CQ2| zRHir+=PKtr8NgFq*&vW|Yr!@?amHnWGQ6g+fnR$hBq)|Nxo z#XYB-1DNJ?7sV|`pMOq1GZh^@KXw?*Q-tGy+lkbUOfiOeCl-WwLMN5*4HSfkloV6R zk2uKUHUjDMFVMa_eO-bsJ`;u_OKlI00Opvb>DJ)#Lvh2IqiV$H-kk?~ApRWImJ$mr z<&&b5;Doez8VpH+i?Lx7KZPW}82br$J1_hX{JrNFJ^`ELJ4+1;h(x)7L`}sL^e_m(G~Z>fX3{#9|FWG*84E@@pDgv)#@!aQ#$C znE#rGrkR~p2$B4ZV|kIevrAy2U~zj@X5l?Swi-Le!$(?Oosl_7_rdm?>^_6C7;+J- zW90$!Ht}WqH40#;d;%-+_3tV)D_kut`(^b$^)$W%yX(&^t`p?Pr^+Lelcv2Aqf(p9O{4 z-R^}v93qo+kW*Flq7Usuja8B}E{_H>_$?eYh49+{07k+8pMdedVDW!b*R0!ep5#ZM`c- zEy5u}9Ay;-?k+Mlt4}(?jLTq49{lnNje=J`y;b$sRhJFCdok?N_tm-E?bq6oF2q?d z_YOY92Y-UPJ7wR`2AbvJj$?dg07O&%D00d#>byw$TATqVNV6iqksv)H{`7_mzkD&6 zc*>%SRWfOn^pN~qNP8f24vh!9FG6+MTNQ<2gLI8dwDvnoE>JXpxauXD+~p4d3Rp# zU?1X=wgY>k!=pu8$2!L=hFc--d$J-FnBTKRzWB_uGMAf#tgdT)UOS*ESAi2JUT}l| zVEp1o(6~#!4DzBD-?NaFg@vlJ!)c~&0VfW0%R}#~Gk!qz6aCamOLN)7RUo4~@Vo?ZXg!UFvI zD5}i(-CIfQYuvOl?2TzdV?yqjeN#j%Xf*p_m;?xgMbVxfYP%%OAknKueXvFAGO)I@ zY0_}Smw*^PGZzu3n&=WaSGdPBMYI^7)o&;IhlHU1CySi_#*6=V2|)$@OF~1Mf8DAz zus<(uMxmn`Is)iN<+Qam6Vn}vn{uuhWV+4ADO1C1lN79~Kr#;x>ED(KyK@LQ&4I@q{zCUqaY=kc7L#r9^mKiDl?-JhnNsRa;k8(b3}5-o0yC< zt3CL~j6Szu=KB!>JUPI>iVfs;j-lo0q7WqmCQ;cG+gXoZC{NCp&MyqlE5PB9&Xu45 zTq23Mfa!@JqrZiEzm^x=95fYdA&#err)4;2|V{eP8QL zkH@e7ZQ|{^QHjc2T=H1`4b`&RArKym4*tQu;wv%$$voyRfkym3I>R^-7zDKS<#Xgj z`mwn#Rpgg$Z2h#8mPLQUB#+8U8jA`8)@K9`++A^P$P^33qixU=zN5D$7Iz2wt?{h~ zNFh~NjZ>L_%A*Wg5dAVY5(n&h2Ex|h&yg5`15g&6>07^BnjGlh?kuV=ZR$b5$Z-Yj zh)A)y@_x7*TfF9Qy8|D(bStBPAwUxdb=x?1$1BdKrS@QQh;9-j!Y%iy{@V~SOVf6i zHK_*&=|94~+}=D}0lU42-`xPSIDGpY>PDL~XTH$+rI!8nO((Ycm zfSPDP+@<9E4MlMCYmG5r!Dx~?Ni+jy(XF>-nch_PPEnjjFi+QF7v<2Cou7er7#buQ z#M|pn-8(v6Apb@gC`R;7$;vX-gy*M`9C@%}cBe)k1KfzaD^29(qH|-N2S1VZXAxv zSC9f;a(kBt1uq&RCmLo39QcDFO=cTrs`zhWLs9iXNmSBD-l3mFjB zCLE(pUWQ+mJ@J#+XdZM<=MYbw)+UMd-r{!UkKrb1TE0WuM$94m0K z0L(?vN=;SywgAs#&ntLMM#?6qM@nIh=l6c5$E|`unF-Qb!I%vx%2zA0y`MaNyK54# z#iD&vh+^3_uxHX4ayeyp;Qe~15bq{@a$?wZmUWw3V4NdjhRNa~9=I^-de)5mYTB1z zLDP>p4v~Vm>F7DAgvao?e-ab+{KsgDF)h05i8NtT|=D$H+aD2js5NE3O|H0HqwHNmlRxuMiuXxGf7a~pxUSSDN zSI|RkPW{F$Q4<%~Ewk`u{si?fBPUPDFYRyzkeND4f(TY%C0wo9f+SC{vSs%TrixKZ{q8JHp&t`uQ z4gIxd-F-u$v+Iy?GhCGabPH2vnpmL`yfE8t5*@qX6#{sU29>u2>HSzkJHpx7DgApp zgZ0xho6@?xt8Uyfw~I7L5uaRRV9UDS)j;cIxE!i=-(xkhL-ng?SVoth@$iXD$lVut zD?EX9qRPt`ah24WOf$@%+H3L{m>8vx1yqSlr0kp}-(f!+TM5TL1K+^Y;wlKZ^HWa$ zkqZAuyXgORLtNd#QQX19{@++qUMaf&FH6q+D-r%z6Ws`1(7v(s09rl6z{NO`m`BLP z1);~ETt(Vkgd`*jPb7qsL6)^Nh+GI0r3ChYD%bx-B`^xtl$t{KgL(v01XsEehhkx) z>+wA2QGW_P{ITr15nuEOL1p7 zm(LB(fx@PjrBRAmsyB6xu)`9V^uZLsAgQ*LJkD@{FP@=0$$;sO}p zF&P5vcTR$cBGnX`;Hs!K0_@BDmO0NN^c`YG z+PZTj@@d6pdQ365ul8efOC&}RELGsj+;sXF_gST@vyQO00n?*?(4|EdN7Qj{lQ@`5&kX>f&Fj`g?2qZxbDNqz4|1Bb&4P zB)H_S6`(TVDR>n>Ic3@z<*>MxolR`><_kbBR@9E`yj^qQ7hs8#Qb9Mh!YO%a^GAmc z(W!}^M23j6Tq#O<1qQahhoQM)Uc8Uu%&DL`RGHPhm?Cz6+xF$_$M#-cBJ(h@3~B;J zB!QAU{vY_nnuOTZ4>LKiJ=7VsvUW)c{0O0|c(e3U&&r58Y$TeempG0ieL%o$U~M{( z3t))n$m-KiUct$dhHYUWlS>FPi0X^9gdW^&1(r8j?w#1JwJ|Au(Staglxi&K4SFUMb=8Chw1 zV=i+3vKDE&Ckj7@#_TWW!wqu-pbrZNVB<*9GW(uk6Pvwxb8N#pTx9<*&fYONvqoFj zexBI2Z6_Vu?AW%=j%_C$TOB*;*iJgO*|F^}yVm|{omI6@)w|EX`FqwFb6j)azV&q* zOY_)xNMYA|2?Qk@h>7t)qOV3^04y~A&;8=yVC$u#tHDbu9!AF!x8;#HFwzYyEWHPp zK)(^7WNN}%><$2235jn6tL^cwL2V=h<#?(qzgLF8=<02D;!bm$!hta0mgp`8E}w`f z+8C4grxY?%k-@tk=XyYNL?+wQ-%jTWm|KjWW@bnpd8s|;TFAKQSPrhJYZk%mXfT|e z?D+s!i0B*3tCb{a6_42=K4)6YLq@Xt+mTMVY5@zC9!wXYn)n3>Mf>n2VC5Z(g8vusI7p$U()aSwYy~T+n6EW2ZaBs^dlx z%69-~!l{D*)MYt718x=Hb{{mo4*7EHsZEE-KrRD`yC?9xud-1mK9dkpJ-`7^s*q?! z)I?T9Swhcsl*F~d06Mg^T#k2F7nTFb&U zrpjC|OsMC9foyJ4WF_nlNM1AsAg={MU}%L;nA|Tf>UGL(9I;O2Jcm*8u5_9@iMqZ+ zKoGgSOt26P;_{Ducd30*x7%(nS~!Q%>5}UXD0F`4`{pQ2+}u?^Lg=vTE12*%DHCJp z9=RQ?q!GwomqEAvMQj+%`rDt9JYr`vX)Dv05yICqAjm{KRKA7Co1rj3SkT?X73uB2 z<2MOI4L-bwFYgTbHu@jeiqMV~^Bqm@BVWF9G6hXr<#ZP6mx=jA{Ljy?_oro`GrB}} zqI3ZrsA*>X~Z*6dz{w& z%<_}qCFF~&D+f4$U-+GxT$R|r&_rK#Z)g>A`*UmSvbT;mJoj~L#cynYzh59=5#c(+ zG|UMsBba~x7WUQe#BE<&XYpYO1r6_)+P}v<$SApmyHMPr#8ET${2TlO9U~N^%JpG& z7-RUuivrU?2pxoFF+0<(mj6yg3kT2D>f^Xf5|Sy1bwz6b^Sq+fS&@OGFD~;_ayrt2 z6+AXw-9RzgH)=(3#beHMZHANtlfZ@VTG;vBzwF=>G&g)wh_uK*?t=&ZT)|I@!a-XM zE2~GtGv344Xp`9p{M~Ml{I?f}?z{Z3!U!XC;8bDHeS;6ebA)|EMqk!0G?f#Yah(W$ z+_}TO&e~2prmbND;WzqWC}M)vWf(P$rlom$>PL5R0s`ReSsxN_KNPx z@m*iKRmQU%%;$sTX462N1nwQHlT>TyZ@$RLW{vsx;vdhP%r?GBttM}nA%2p+*F&w7 z8J9I{3kHGu3mAJrgzKSR>Mw;9#N*^^Mt`2)!Tz2u4R>LF9QTVAYv*z{2{`Ft#bq$E z_HX8dUEHj~E*3ptEVY*>YRU}n1hr>ASpb6`yKiQ@auTwOHpxA}W=<)6Pj1My8vJtq zqv-xqRYUTB56MOB9e(f#8#+1jC|MdAeQkOwyBOM;7&@7J+49-jnc5<3X@4meHvg-* z`ouFwDGQ;APx-9Kk!18q)Ao*Ss*%M+x-Dwa+L#ls!UQf_1zPh zpgqdzd{(J9^?vpp>HVD>UTp>mGMSz2^!k^aVo%v*3rUjS&*gK>uOYWMh zWWre}*1EaY336n>Wu3lZLo6H>JOxt1pUgzf4p2CO?gS2lEGCE=&kKNpgH`|nL5L%K z!<#^C`H6#wghxtQp#rEBCW9e~ck1eb457e+8zDp#(dybsgTeT1&`hQdM9@k-nS=z# z&Du7Q{b>P>o_&cb^cJ7&!3y(%P;Og&?#LcIP^+g7orEs8F#{h-I`Q zcgD+2kY*q#=a0gaPKGB~!$1Y2jl!GZ{|J(Uf9QhozYP*_uYUzec8Yx|-U0fM-(hyE z*Bph60JK;nM%5CcqA{rjYS6urWTd1h6%~dkby1UKK6L>{^S92`P!cdSWJ_eU0Y(h8 znMjAzTnb^;#sTRC5?d-^D&fY}%yu5u%O9Q_K3~q38*)dQ5R(YwS>`#<+2)I6%w;d{ z{AGRpafEukHptLSf-c+vU@SxMSGn@)mn(j23*-KvFMs-Jg=77B>^H<{q|H)+p)0$O z4>pEMs;VNW*(DKhrz5Lc{SortSxPf z5M<*MJu^Y)eO}?S?&C6Ydz&g4ZU6zHhSgUJ@ePm0Zt^myXzDAvXXGlzujO5uDJ>^F<8Q!sS-dHgbaPwa)!%xA=B^Eec&GU z;3k@!c zb1btW*sX)~bpa?~#E&PJTCFFz2Sg#DaE6Xs=ybfT3OpS@)@-j}ZXJwx`tAH>J+?n{ z9InY3%6Ekuh?SW#-RW>n@%IYg3xo(3+9U|wpb^l_6mL&!aj>auFu&(Rvy6Z063#X)5IL=QUdy+&h*wNoN4WE zcN5%KnmmB{>O?{|(qkZaQ)>|3K;hyR6Z^3|KKtfc^PKfj3bI6<_(ej8J)Ub&Z} z1GAY-qlL2{0ioa~YH}-#uS7C{rfEW${DbLT+#Nu;{tR|;0{Hzp_NT-BjLdaoIx}}T zFs5&8!yKk(%?8|omr|d0eFHk=`T(BKuIt0;!^=rfbzwk!K4xw}(y}>+@RPzbXuc52 zkWAPF$od;VJ&gXG1z-gfs>k9V*=JFfc$dyamC@O_OzKJs<239k{_7)tSSND(?1uoMbiBYoiqimA_$2fMCC~qhQOX0E;>^Ec7#BmYD+cvQVkWhMtbhscU zf8xh;l7s#wP^L}Ra!rmmknJqyhepIua2O-mCP)abPZ+o}Wd|K|k50sLGWF8BX|NDt z>K7K|oDqB3->0(6+ZH-sb23BvCKpRY#v3QJ`7S|a z%GM5zAl*aFMMQo*O9#Qiw%JJnQqLr^Z=nzi<3L;q&HzvLN8(qY0s(Sf^>52?*E9=z zzE48+YW_msGVTfe<=QmKOA0`ikDE6F)|M8`l{)cl?x_{$< zyu*K;dpPrmxH^BGfLMC|&uC!EHskr#$XfZ=2VXbQ-eN%&Ygk}vWud)&tnS9LHX4hH8zViqU(iaMOVg&|EY8cY zS}iD`ZRO+G>hWWeOMZRp5@t4vampDXZ0h!%9}g(|+DZr+!~6{p83^KE4&X08Q7mwd zhpz5&ueJJBZf4|!-4LwJqokz{p?YJ}-Wf6HNj9(uWE#Ks1y` z^;`ir=?Oqah9hFQ0&uE!sAoC5WL@knN6a<)c?R_66KY7A3+K^joC1oD1#uyI!Z0JP z$Pm#g)o#|iRn(Fl4>v)wH!vk@z;^t5X#6$I3!wsTJyh#ek&yC#*yHncVm{khB#S^k zUb}uGrM`w)mafIRCV<-OG6de{pCbxf?2KKxf>?`;RMd0~3=EJtBhDrZGz838bJQ*x zb%OV_;t@gNX^u>s@w%I1U_H4d9~}5$5xj?_x~uJFDQRSx7&=mCUFa|fBM2gCl1yPG zj*?(trgHh-z{$vrtEk!aahtw8(A9NlwDctQiJ}pMh{lBPw3^GbGW#as^ORdy^9@w% zu1Qr=_jyU&jFPb1(H*=dZ;P;v25gP6AtO zNOUVYalgHNB8-mvghBc&xkQBqE`pMf!4T|OoNDuSHpepx2u!t0Y?j>4OLZNc6OV9~ zT&(}fXCCaE<<+iGk`v^Gh>ywZ$p~EF%?ZCA`rzy6Vhm}Tae{=XxmsDVJIQ>weZ9lG z_flFR_uE(f3pOIK?)l+Fm!rRj9*yKf0gil7mPlDj#b{`=Ps2g!TUd7>*V9lwh;y>$Da5J5+XSktn8-~)Nk zg0ID~-(nCaH1U%(I_-WFApi+F{r;M+VD;!fzKS@tjvR^{PwXEkX^U%VtsMj@WA0yN z{;5CQX4dR-8^n=!WR715^$(RA?acPuV^WkDT7ekRJ_0J2s6ZaEsSx%HueD+IJ@b zE&fP_po)|rAmttt14mLN-Y@FETD_jdvrY*VkuEGs3rpPQVYVgw!FM}vKY#VOvI>Ux z?@T8w@^-aiuqxz8-~4(0J)J&^3`We3(l>&vDI*+}4Sw~?0zNc&5$B4bIR80lSVay) zYKjmaKxNC43rAQjw@}8cyED8&L4zm}&cX(<7dOFIO`=>lq}?g0dLsAM3yGPI*5D z#C?~aIAt#M1iQy*{`wf=v_EtR&&fzwwAi935$(M4=Y+);Ij3}82JB*K(P~hFJ%~!9VPEnM(o#n&r%0Fm#Kgvjr{bxDF$U z6KTkTr&^?OBO4p6J-p9z$S$fyDYsI| z|AJXEhq4XU2=frTZHprh@b{;0MG%7(*@+F%y|I^k&uC9$9lZxJ}FVYMVr@rYnxeY-=ox zu-WOx1eWAG;SA>Ls;iW%i%a~U!$wrK&gn-nG=XR&gu@U3;c~C(|S0SX4@Uvd-7AXhf{Rg+yZ1l)do#!}NNS zx;F;UL1{{982kGz9F5`1R8S}jxO4foCikWGuoap17H$0s?+cy5HQQ83dQJ<$gx>~k zcyn)DGM@F*MO;n4{|n1 z^2jb$z6+pvJEkJu5ZM)KXyc)>T1uZ(F-F~@qHgvcE^PO}WsYwS-=xx(Lnem1B#@D% zO^_RoUKywBp+WtD|MA?Wgb!AOj~ool;d>PG`T*7}tu86D4|ID>H`($6Yp#Q&sV@TqE2{>X6F*ZJlVcT6JvPr5y zh*qHtTA&9)tcYSd;Iq)#`Ufgi3fGDAhfpntR{^c8YmE~aBS;gqisZoSHDa(7IFgC1 zKw;mN-JTS-F+i$%AfY{9lyF zQZuWQ;j}*>D4Vz0G~4kC_gH-5a%SQASmQ*})N4w5y+QaOE|SvLU4A;<4dRM^D!h37 zus9=`g4dY@xegggTF7o7ovK=9EMKUC+Gt+(2~>YdA=DHwEnU<5WQ|a%v$Eqm+*ZT9 z4Q>&YfuPW@OyIC4G&n29kH9Y9jK6mj%EH=F(t8-p;ZUPgam|K`u=z9BB~fF6in|MbGt)@wig7xCcJZKH`{S^Vato~THFCe&O3qg-ZS z8QG7Hf~VW@;(?EqMwNqUCoS}#2~5r_r7`R+CB% z=kWGQ(9f7%I*Wyjkx=q0z5ADlOt)N77aT;D7__&h+6?x_S&=iuRF3@aB%vR%wpLVU z;Mhvuf(~@HNaXli2dG{`Aj;N+{!4}Ey*wr20;15yH<ciE?H;1z8GkgI}Np$->} zwAEN~UbYOa?b?5u`40G_Q_pBud}ayP_XTH_09Ed|kWyw%eyyO~OyMHxG~sh_*HtV7 zeB~GixOx6$+6K4UAx-ecXlMCp>}ycwzkQkkR~!}*VR1J zFBim4aSdKQb9-P%DX;cL@|)ksB(7nIqUl{fz`~G4hqrnx_+810eliphu zzPh?>A`8(1W_Al@!|kev+0FtN?is) zAUT+HI1#!Tc$B7)t)jqpwn~40C}klvw%qFiC}Je50fA-G5p)lj??E4b9vb0CzArXF z#G2_bShg$%q|KigNPAB09SlIWLuSJ;@GM3CbSqGLsWvA15XDE$)f|?LO_AgMc>lTC z_Lp6BWD;g;IM{QR_^pS|&{CDw?FadtZ^NvYbT_3Sg?TJN_XKyWG(V=oM&7_+$tx6( z5{@wbC#JG8GT+iWrEsZ-=L4691}ws~UN;Yt#6TQgg=r?cc83JscmA3)&l{L;_wLAO z37FE9`2(MVZz6|2!y+;?_IbC8h;-*7KmBqntOUc3mwMcX8CYg4n{@o91FqIX%5FS6 zp6~G|bzhLXh;NuC-+Oi|dlV?UjSW?@QkHtzCUkf0dan=ZAB|n$M1L)^m{>I*qbEub ziUbyg+`!67FN%u&k!yi82|qGXu>f2fe&@F=*d4=|F7KEIx&8LhS|pH_>3gAMj}I!^ zk&!^AQZF}Uu-KEA?Nu-owKtZ#b?FVWP-CyCwg5uOn4ZQuBjF8&?szASjG1dXIJ0pJ zgX<=pE1%i44N1W7JDKs+)d)QOEkovFbZeF( z%gfy?;}(1G*;^O1?}+7ZUSpc=1;y?gs8c8*mAQQHDzQlb5zD9UTA}%o#~ofxM1(SU zYV8Dtf;3e3T0IYcfdc*J{n@v+oDUGnsTTJ+58Uozil+MD@OI`326a+5(z2oYiqS9tuHh9G`SssT;dKf>*U72*xa)dk} zeC%U)vUDfdHW73|KX$zn4_a;J76dZG%~=`tN69lrx7eed?<9}99Dkv@uMzGIowK8< zQjMIqfNLQV+!wrG%TTR()vo_Fn8Muqp+Ac&)Vc~$l73-QGU+z|Z5!Vy;~K42;(Krd z*5NzYYkecA_>@shO{M~k#P~Vn2t!LWY>f09gy8cWEESLbHp35yu-xE;74|mMm-mn* zw50P1b=Kw+9IO^LAnU64/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

  • %P6-EQn(8(+KYwzC9B*>yacF>Erniz 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%0A#uA1U7`ErLJSG-{Q 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