using SQLInsight.Rules.Concurrency; using SQLInsight.Rules.Configuration; using SQLInsight.Rules.Databases; using SQLInsight.Rules.Engine; using SQLInsight.Rules.Lifecycle; using SQLInsight.Rules.Performance; namespace SQLInsight.Rules; public static class BuiltInRules { public static IReadOnlyList Create() => [ // Version new SupportLifecycleRule(SupportLifecycleCatalog.LoadEmbedded()), new PatchLevelRule(BuildCatalog.LoadEmbedded(), SupportLifecycleCatalog.LoadEmbedded()), // Configuration new MaxServerMemoryDefaultRule(), new MaxServerMemoryTooHighRule(), new CostThresholdRule(), new MaxDopRule(), new OptimizeForAdHocRule(), .. SimpleConfigurationRules.Create(), new PendingConfigurationRule(), new DeadlockTraceFlagRule(), // Databases new DatabaseStateRule(), .. SimpleDatabaseRules.Create(), new CompatibilityLevelRule(), new FullBackupRule(), new LogBackupRule(), new CheckDbRule(), new SuspectPagesRule(), new VirtualLogFileRule(), new FileGrowthRule(), new FileMaxSizeRule(), new QueryStoreStateRule(), new TempdbFilesRule(), // Performance .. WaitRules.Create(), new DataFileReadLatencyRule(), new LogFileWriteLatencyRule(), new CpuRule(), new MemoryGrantsPendingRule(), new PlanRegressionRule(), new FailedForcedPlanRule(), new ParameterSensitivityRule(), // Concurrency new BlockingRule(), new DeadlockRule(), ]; }