示例#1
0
        public async Task ExplainAsync(StatementExecutionModel executionModel, CancellationToken cancellationToken)
        {
            ResetView();

            ExecutionPlanItemCollection itemCollection;

            _planItemCollection = itemCollection = await((OracleConnectionAdapterBase)_outputViewer.ConnectionAdapter).ExplainPlanAsync(executionModel, cancellationToken);
            if (itemCollection != null)
            {
                ConfigureExecutionPlanItemVisibility();
                SetRootItem(itemCollection.RootItem);
                TabTreeView.IsSelected = true;
            }
        }
示例#2
0
        public async Task ShowActualAsync(IConnectionAdapter connectionAdapter, CancellationToken cancellationToken)
        {
            ResetView();

            ExecutionStatisticsPlanItemCollection itemCollection = null;

            try
            {
                _planItemCollection = itemCollection = await((OracleConnectionAdapterBase)connectionAdapter).GetCursorExecutionStatisticsAsync(cancellationToken);
            }
            catch (Exception exception)
            {
                var errorMessage = $"Execution statistics cannot be retrieved: {Messages.GetExceptionErrorMessage(exception)}";
                _outputViewer.AddExecutionLog(DateTime.Now, errorMessage);
                Messages.ShowError(errorMessage);
            }

            if (itemCollection == null)
            {
                return;
            }

            ConfigureExecutionPlanItemVisibility();

            SetRootItem(itemCollection.RootItem);
            TextExecutionPlan = itemCollection.PlanText;

            if (itemCollection.RootItem == null)
            {
                TabPlainText.IsSelected = true;
            }
            else
            {
                TotalExecutions = itemCollection.RootItem.Executions;
            }
        }