Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Query Store Service bindings on ADS side #24167

Merged
merged 5 commits into from
Sep 6, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions extensions/mssql/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export const SqlAssessmentService = 'sqlAssessmentService';
export const NotebookConvertService = 'notebookConvertService';
export const AzureBlobService = 'azureBlobService';
export const ObjectManagementService = 'objectManagementService';
export const QueryStoreService = 'queryStoreService';

// CONFIGURATION VALUES //////////////////////////////////////////////////////////
export const configObjectExplorerGroupBySchemaFlagName = 'mssql.objectExplorer.groupBySchema';
Expand Down
134 changes: 134 additions & 0 deletions extensions/mssql/src/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1680,3 +1680,137 @@ export class DidChangeEncryptionIVKeyParams {
export namespace EncryptionKeysChangedNotification {
export const type = new NotificationType<DidChangeEncryptionIVKeyParams, void>('connection/encryptionKeysChanged');
}

// ------------------------------- < Query Store > ------------------------------------
//#region Query Store

//#region Functions

export namespace GetRegressedQueriesSummaryRequest {
export const type = new RequestType<GetRegressedQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getRegressedQueriesSummary');
}

export namespace GetRegressedQueriesDetailedSummaryRequest {
export const type = new RequestType<GetRegressedQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getRegressedQueriesDetailedSummary');
}

export namespace GetTrackedQueriesReportRequest {
export const type = new RequestType<GetTrackedQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getTrackedQueriesReport');
}

export namespace GetHighVariationQueriesSummaryRequest {
export const type = new RequestType<GetHighVariationQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getHighVariationQueriesSummary');
}

export namespace GetHighVariationQueriesDetailedSummaryRequest {
export const type = new RequestType<GetHighVariationQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getHighVariationQueriesDetailedSummary');
}

export namespace GetHighVariationQueriesDetailedSummaryWithWaitStatsRequest {
export const type = new RequestType<GetHighVariationQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getHighVariationQueriesDetailedSummaryWithWaitStats');
}

export namespace GetTopResourceConsumersSummaryRequest {
export const type = new RequestType<GetTopResourceConsumersReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getTopResourceConsumersSummary');
}

export namespace GetTopResourceConsumersDetailedSummaryRequest {
export const type = new RequestType<GetTopResourceConsumersReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getTopResourceConsumersDetailedSummary');
}

export namespace GetTopResourceConsumersDetailedSummaryWithWaitStatsRequest {
export const type = new RequestType<GetTopResourceConsumersReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getTopResourceConsumersDetailedSummaryWithWaitStats');
}

export namespace GetPlanSummaryChartViewRequest {
export const type = new RequestType<GetPlanSummaryParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getPlanSummaryChartView');
}

export namespace GetPlanSummaryGridViewRequest {
export const type = new RequestType<GetPlanSummaryGridViewParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getPlanSummaryGridView');
}

export namespace GetForcedPlanRequest {
export const type = new RequestType<GetForcedPlanParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getForcedPlan');
}

export namespace GetForcedPlanQueriesReportRequest {
export const type = new RequestType<GetForcedPlanQueriesReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getForcedPlanQueriesReport');
}

export namespace GetOverallResourceConsumptionReportRequest {
export const type = new RequestType<GetOverallResourceConsumptionReportParams, mssql.QueryStoreQueryResult, void, void>('queryStore/getOverallResourceConsumptionReport');
}

//#endregion

//#region Parameters

export interface QueryStoreReportParams {
connectionOwnerUri: string;
}

export interface QueryConfigurationParams extends QueryStoreReportParams {
selectedMetric: mssql.Metric;
selectedStatistic: mssql.Statistic;
topQueriesReturned: number;
returnAllQueries: boolean;
minNumberOfQueryPlans: number;
}

export interface GetRegressedQueriesReportParams extends QueryConfigurationParams {
timeIntervalRecent: mssql.TimeInterval;
timeIntervalHistory: mssql.TimeInterval;
minExecutionCount: number;
}

export interface GetTrackedQueriesReportParams {
querySearchText: string;
}

export interface GetHighVariationQueriesReportParams extends QueryConfigurationParams {
timeInterval: mssql.TimeInterval;
orderByColumnId: string;
descending: boolean;
}

export interface GetTopResourceConsumersReportParams extends QueryConfigurationParams {
timeInterval: mssql.TimeInterval;
orderByColumnId: string;
descending: boolean;
}

export interface GetPlanSummaryParams extends QueryStoreReportParams {
queryId: number;
timeIntervalMode: mssql.PlanTimeIntervalMode;
timeInterval: mssql.TimeInterval;
selectedMetric: mssql.Metric;
selectedStatistic: mssql.Statistic;
}

export interface GetPlanSummaryGridViewParams extends GetPlanSummaryParams {
orderByColumnId: string;
descending: boolean;
}

export interface GetForcedPlanParams extends QueryStoreReportParams {
queryId: number;
planId: number;
}

export interface GetForcedPlanQueriesReportParams extends QueryConfigurationParams {
timeInterval: mssql.TimeInterval;
orderByColumnId: string;
descending: boolean;
}

export interface GetOverallResourceConsumptionReportParams extends QueryConfigurationParams {
specifiedTimeInterval: mssql.TimeInterval;
specifiedBucketInterval: mssql.BucketInterval;
}


//#endregion

//#endregion
// ------------------------------- </ Query Store > -----------------------------------
Loading