public PersistsHPartitioningsDesignDataCommand(WorkloadAnalysisContext context, IRepositoriesFactory dalRepositories, DBMS.Contracts.IDbObjectDefinitionGenerator dbObjectDefinitionGenerator) { this.context = context; this.dalRepositories = dalRepositories; this.dbObjectDefinitionGenerator = dbObjectDefinitionGenerator; }
public GetExecutionPlansCommand(ILog log, WorkloadAnalysisContext context, Func <Dictionary <long, IExplainResult> > getDictionaryFunc, IExplainRepository explainRepository) { this.log = log; this.context = context; this.getDictionaryFunc = getDictionaryFunc; this.explainRepository = explainRepository; }
public LoadExistingIndicesCommand(WorkloadAnalysisContext context, IIndicesRepository indicesRepository, IRelationsRepository relationsRepository, IRelationAttributesRepository attributesRepository) { this.context = context; this.indicesRepository = indicesRepository; this.relationsRepository = relationsRepository; this.attributesRepository = attributesRepository; }
public GenerateAndEvaluateFilteredIndicesCommand(WorkloadAnalysisContext context, IToSqlValueStringConverter toSqlValueStringConverter, IVirtualIndicesRepository virtualIndicesRepository, IDbObjectDefinitionGenerator dbObjectDefinitionGenerator) { this.context = context; this.toSqlValueStringConverter = toSqlValueStringConverter; this.virtualIndicesRepository = virtualIndicesRepository; this.dbObjectDefinitionGenerator = dbObjectDefinitionGenerator; }
public EvaluateIndicesEnvironmentsCommand(ILog log, WorkloadAnalysisContext context, IVirtualIndicesRepository virtualIndicesRepository, IExplainRepository explainRepository, IDbObjectDefinitionGenerator dbObjectDefinitionGenerator) { this.log = log; this.context = context; this.virtualIndicesRepository = virtualIndicesRepository; this.explainRepository = explainRepository; this.dbObjectDefinitionGenerator = dbObjectDefinitionGenerator; }
public EvaluateHPartitioningEnvironmentsCommand(ILog log, AnalysisSettings settings, WorkloadAnalysisContext context, IVirtualHPartitioningsRepository virtualHPartitioningsRepository, IExplainRepository explainRepository, IDbObjectDefinitionGenerator dbObjectDefinitionGenerator) { this.log = log; this.settings = settings; this.context = context; this.virtualHPartitioningsRepository = virtualHPartitioningsRepository; this.explainRepository = explainRepository; this.dbObjectDefinitionGenerator = dbObjectDefinitionGenerator; }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { try { var analysesForProcessing = workloadAnalysesRepository.LoadForProcessing(MAX_LOADED_REQUESTS); foreach (var a in analysesForProcessing) { var context = new WorkloadAnalysisContext() { WorkloadAnalysis = a }; queue.Enqueue(chainFactory.WorkloadAnalysisChain(context)); } } catch (Exception ex) { log.Write(ex); } }
public IExecutableCommand WorkloadAnalysisChain(WorkloadAnalysisContext context) { CommandChainCreator chain = new CommandChainCreator(); chain.Add(commands.UpdateAnalysisStateCommand(context, WorkloadAnalysisStateType.InProgress)); chain.Add(commands.HandleExceptionCommand(ex => { context.WorkloadAnalysis.ErrorMessage = ex.Message; commands.UpdateAnalysisStateCommand(context, WorkloadAnalysisStateType.EndedWithError).Execute(); })); chain.Add(commands.LoadWorkloadCommand(context)); chain.Add(commands.LoadDatabaseInfoCommand(context)); chain.Add(commands.LoadWorkloadStatementsDataCommand(context)); chain.Add(commands.LoadWorkloadRelationsDataCommand(context)); chain.Add(commands.ExtractStatementsQueryDataCommand(context)); chain.Add(commands.GetRealExecutionPlansCommand(context)); // horizontal partitioning design chain.Add(commands.InitializeHPartitioningEnvironmentCommand(context)); chain.Add(commands.PrepareHPartitioningAttributeDefinitionsCommand(context)); chain.Add(commands.GenerateBaseHPartitioningEnvironmentsCommand(context)); chain.Add(commands.EvaluateHPartitioningEnvironmentsCommand(context)); chain.Add(commands.CleanUpNotImprovingHPartitioningAndTheirEnvsCommand(context)); chain.Add(commands.PersistsHPartitioningsDesignDataCommand(context)); // indices design chain.Add(commands.InitializeVirtualIndicesEnvironmentCommand(context)); chain.Add(commands.LoadExistingIndicesCommand(context)); chain.Add(commands.GenerateBaseBtreeIndicesCommand(context)); chain.Add(commands.ExcludeExistingIndicesCommand(context)); chain.Add(commands.GenerateBaseIndicesEnvironmentsCommand(context)); chain.Add(commands.EvaluateIndicesEnvironmentsCommand(context)); chain.Add(commands.CleanUpNotImprovingIndiciesAndTheirEnvsCommand(context)); chain.Add(commands.GenerateCoveringBTreeIndicesCommand(context)); chain.Add(commands.GenerateFinalIndicesEnvironmentsCommand(context)); chain.Add(commands.EvaluateIndicesEnvironmentsCommand(context)); chain.Add(commands.CleanUpNotImprovingIndiciesAndTheirEnvsCommand(context)); chain.Add(commands.GenerateAndEvaluateFilteredIndicesCommand(context)); chain.Add(commands.PersistsIndicesDesignDataCommand(context)); chain.Add(commands.PersistsRealExecutionPlansCommand(context)); chain.Add(commands.UpdateAnalysisStateCommand(context, WorkloadAnalysisStateType.EndedSuccesfully)); return(chain.FirstCommand); }
public ExtractStatementsQueryDataCommand(WorkloadAnalysisContext context, DBMS.Contracts.IRepositoriesFactory dbmsRepositories) { this.context = context; this.attributesRepository = dbmsRepositories.GetRelationAttributesRepository(); this.expressionsRepository = dbmsRepositories.GetExpressionOperatorsRepository(); }
public CleanUpNotImprovingHPartitioningAndTheirEnvsCommand(WorkloadAnalysisContext context) { this.context = context; }
public IChainableCommand GenerateBaseIndicesEnvironmentsCommand(WorkloadAnalysisContext context) { return(new GenerateBaseIndicesEnvironmentsCommand(context)); }
public IChainableCommand ExtractStatementsQueryDataCommand(WorkloadAnalysisContext context) { return(new ExtractStatementsQueryDataCommand(context, dbmsRepositories)); }
public LoadDatabaseInfoCommand(WorkloadAnalysisContext context, IDatabasesRepository databasesRepository) { this.context = context; this.databasesRepository = databasesRepository; }
public CleanUpNotImprovingIndiciesAndTheirEnvsCommand(WorkloadAnalysisContext context) { this.context = context; }
public GenerateCoveringBTreeIndicesCommand(WorkloadAnalysisContext context) { this.context = context; }
public IChainableCommand LoadExistingIndicesCommand(WorkloadAnalysisContext context) { return(new LoadExistingIndicesCommand(context, dbmsRepositories.GetIndicesRepository(), dbmsRepositories.GetRelationsRepository(), dbmsRepositories.GetRelationAttributesRepository())); }
public PersistsRealExecutionPlansCommand(WorkloadAnalysisContext context, IRepositoriesFactory dalRepositories) { this.context = context; this.dalRepositories = dalRepositories; }
public LoadWorkloadStatementsDataCommand(WorkloadAnalysisContext context, INormalizedWorkloadStatementsRepository repository) { this.context = context; this.repository = repository; }
public GenerateFinalIndicesEnvironmentsCommand(WorkloadAnalysisContext context) { this.context = context; }
public IChainableCommand ExcludeExistingIndicesCommand(WorkloadAnalysisContext context) { return(new ExcludeExistingIndicesCommand(context)); }
public IChainableCommand CleanUpNotImprovingIndiciesAndTheirEnvsCommand(WorkloadAnalysisContext context) { return(new CleanUpNotImprovingIndiciesAndTheirEnvsCommand(context)); }
public PrepareHPartitioningAttributeDefinitionsCommand(WorkloadAnalysisContext context, IAttributeHPartitioningDesigner attributeHPartitioningDesigner, AnalysisSettings settings) { this.context = context; this.attributeHPartitioningDesigner = attributeHPartitioningDesigner; this.settings = settings; }
public InitializeVirtualIndicesEnvironmentCommand(WorkloadAnalysisContext context, IVirtualIndicesRepository repository) { this.context = context; this.repository = repository; }
public LoadWorkloadCommand(WorkloadAnalysisContext context, IWorkloadsRepository workloadsRepository) { this.context = context; this.workloadsRepository = workloadsRepository; }
public IChainableCommand GenerateCoveringBTreeIndicesCommand(WorkloadAnalysisContext context) { return(new GenerateCoveringBTreeIndicesCommand(context)); }
public GenerateBaseBtreeIndicesCommand(WorkloadAnalysisContext context, AnalysisSettings settings) { this.context = context; this.settings = settings; }
public ExcludeExistingIndicesCommand(WorkloadAnalysisContext context) { this.context = context; }
public InitializeHPartitioningEnvironmentCommand(WorkloadAnalysisContext context, IVirtualHPartitioningsRepository repository) { this.context = context; this.repository = repository; }
public GenerateBaseHPartitioningEnvironmentsCommand(WorkloadAnalysisContext context) { this.context = context; }
public IChainableCommand LoadWorkloadStatementsDataCommand(WorkloadAnalysisContext context) { return(new LoadWorkloadStatementsDataCommand(context, dalRepositories.GetNormalizedWorkloadStatementsRepository())); }