Initial sets up of new execution plan comparison result endpoint (#18813)

* Initial sets up of new execution plan comparison result endpoint

* Makes query execution plan endpoint URI's more consistent.
This commit is contained in:
Lewis Sanchez
2022-03-25 11:47:46 -07:00
committed by GitHub
parent 0d3cec074d
commit 85b4bf13f9
7 changed files with 85 additions and 3 deletions

View File

@@ -1268,6 +1268,38 @@ declare module 'azdata' {
graphs: ExecutionPlanGraph[]
}
export interface ExecutionGraphComparisonResult {
/**
* The base ExecutionPlanNode for the ExecutionGraphComparisonResult.
*/
baseNode: ExecutionPlanNode;
/**
* The children of the ExecutionGraphComparisonResult.
*/
children: ExecutionGraphComparisonResult[];
/**
* The group index of the ExecutionGraphComparisonResult.
*/
groupIndex: number;
/**
* Flag to indicate if the ExecutionGraphComparisonResult has a matching node in the compared execution plan.
*/
hasMatch: boolean;
/**
* List of matching nodes for the ExecutionGraphComparisonResult.
*/
matchingNodes: ExecutionGraphComparisonResult[];
/**
* The parent of the ExecutionGraphComparisonResult.
*/
parentNode: ExecutionGraphComparisonResult;
}
export interface ExecutionPlanComparisonResult extends ResultStatus {
firstComparisonResult: ExecutionGraphComparisonResult;
secondComparisonResult: ExecutionGraphComparisonResult;
}
export interface ExecutionPlanProvider extends DataProvider {
// execution plan service methods
@@ -1276,6 +1308,12 @@ declare module 'azdata' {
* @param planFile file that contains the execution plan
*/
getExecutionPlan(planFile: ExecutionPlanGraphInfo): Thenable<GetExecutionPlanResult>;
/**
* Compares two execution plans and identifies matching regions in both execution plans.
* @param firstPlanFile file that contains the first execution plan.
* @param secondPlanFile file that contains the second execution plan.
*/
compareExecutionPlanGraph(firstPlanFile: ExecutionPlanGraphInfo, secondPlanFile: ExecutionPlanGraphInfo): Thenable<ExecutionPlanComparisonResult>;
}
}