[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [@s4ai/core](../README.md) / QueryOptimizer

# Class: QueryOptimizer

Defined in: infrastructure/query-optimizer.js:9

## Constructors

### Constructor

> **new QueryOptimizer**(): `QueryOptimizer`

Defined in: infrastructure/query-optimizer.js:10

#### Returns

`QueryOptimizer`

## Properties

### metrics

> **metrics**: `object`

Defined in: infrastructure/query-optimizer.js:12

#### avg\_query\_time

> **avg\_query\_time**: `number` = `0`

#### query\_times

> **query\_times**: `object` = `{}`

#### slow\_queries

> **slow\_queries**: `never`[] = `[]`

#### total\_queries

> **total\_queries**: `number` = `0`

***

### slowQueryThreshold

> **slowQueryThreshold**: `number`

Defined in: infrastructure/query-optimizer.js:18

***

### targetQueryTime

> **targetQueryTime**: `number`

Defined in: infrastructure/query-optimizer.js:11

## Methods

### analyzeDashboardPerformance()

> **analyzeDashboardPerformance**(): `object`

Defined in: infrastructure/query-optimizer.js:170

Analyze dashboard metrics fetching (11 parallel queries)

#### Returns

`object`

##### optimization\_percentage

> **optimization\_percentage**: `string`

##### optimized\_queries

> **optimized\_queries**: `number` = `optimizedCount`

##### parallel\_queries

> **parallel\_queries**: `number` = `dashboardQueries.length`

##### query\_breakdown

> **query\_breakdown**: `object` = `dashboardMetrics`

##### target\_dashboard\_load\_ms

> **target\_dashboard\_load\_ms**: `number`

##### target\_met

> **target\_met**: `boolean`

##### total\_dashboard\_load\_time\_ms

> **total\_dashboard\_load\_time\_ms**: `string`

***

### analyzePerformance()

> **analyzePerformance**(): `object`

Defined in: infrastructure/query-optimizer.js:94

Analyze query performance and suggest optimizations

#### Returns

`object`

##### by\_query

> **by\_query**: `object` = `{}`

##### optimizations

> **optimizations**: `never`[] = `[]`

##### overall

> **overall**: `object`

###### overall.avg\_query\_time

> **avg\_query\_time**: `string`

###### overall.slow\_queries

> **slow\_queries**: `number`

###### overall.target\_met

> **target\_met**: `boolean`

###### overall.total\_queries

> **total\_queries**: `number`

***

### clearMetrics()

> **clearMetrics**(): `void`

Defined in: infrastructure/query-optimizer.js:234

Clear metrics (daily reset)

#### Returns

`void`

***

### executeWithAnalysis()

> **executeWithAnalysis**(`name`, `queryFunc`): `Promise`\<\{ `data`: `any`; `error?`: `undefined`; `execution_time_ms`: `string`; `success`: `boolean`; \} \| \{ `data?`: `undefined`; `error`: `any`; `execution_time_ms`: `string`; `success`: `boolean`; \}\>

Defined in: infrastructure/query-optimizer.js:24

Execute query with timing and analysis

#### Parameters

##### name

`any`

##### queryFunc

`any`

#### Returns

`Promise`\<\{ `data`: `any`; `error?`: `undefined`; `execution_time_ms`: `string`; `success`: `boolean`; \} \| \{ `data?`: `undefined`; `error`: `any`; `execution_time_ms`: `string`; `success`: `boolean`; \}\>

***

### getOptimizationReport()

> **getOptimizationReport**(): `object`

Defined in: infrastructure/query-optimizer.js:159

Generate optimization report for dashboard

#### Returns

`object`

##### analysis

> **analysis**: `object`

###### analysis.by\_query

> **by\_query**: `object` = `{}`

###### analysis.optimizations

> **optimizations**: `never`[] = `[]`

###### analysis.overall

> **overall**: `object`

###### analysis.overall.avg\_query\_time

> **avg\_query\_time**: `string`

###### analysis.overall.slow\_queries

> **slow\_queries**: `number`

###### analysis.overall.target\_met

> **target\_met**: `boolean`

###### analysis.overall.total\_queries

> **total\_queries**: `number`

##### dashboard\_performance

> **dashboard\_performance**: `object`

###### dashboard\_performance.optimization\_percentage

> **optimization\_percentage**: `string`

###### dashboard\_performance.optimized\_queries

> **optimized\_queries**: `number` = `optimizedCount`

###### dashboard\_performance.parallel\_queries

> **parallel\_queries**: `number` = `dashboardQueries.length`

###### dashboard\_performance.query\_breakdown

> **query\_breakdown**: `object` = `dashboardMetrics`

###### dashboard\_performance.target\_dashboard\_load\_ms

> **target\_dashboard\_load\_ms**: `number`

###### dashboard\_performance.target\_met

> **target\_met**: `boolean`

###### dashboard\_performance.total\_dashboard\_load\_time\_ms

> **total\_dashboard\_load\_time\_ms**: `string`

##### timestamp

> **timestamp**: `string`

***

### getOptimizationSuggestion()

> **getOptimizationSuggestion**(`queryName`, `metric`): `any`

Defined in: infrastructure/query-optimizer.js:140

Get specific optimization suggestion based on query

#### Parameters

##### queryName

`any`

##### metric

`any`

#### Returns

`any`

***

### getRecommendedIndexes()

> **getRecommendedIndexes**(): `object`

Defined in: infrastructure/query-optimizer.js:246

Generate recommended indexes based on slow queries

#### Returns

`object`

##### estimated\_total\_improvement

> **estimated\_total\_improvement**: `string` = `'32% average'`

##### implementation\_priority

> **implementation\_priority**: `string` = `'HIGH'`

##### indexes

> **indexes**: `object`[]

##### timestamp

> **timestamp**: `string`

***

### getSlowQueryLog()

> **getSlowQueryLog**(): `object`

Defined in: infrastructure/query-optimizer.js:223

Get slow query log (last 50)

#### Returns

`object`

##### slow\_queries

> **slow\_queries**: `never`[]

##### threshold\_ms

> **threshold\_ms**: `number`

##### total\_slow\_queries

> **total\_slow\_queries**: `number`

***

### recordMetric()

> **recordMetric**(`queryName`, `timeMs`, `isError?`): `void`

Defined in: infrastructure/query-optimizer.js:64

Record query metric

#### Parameters

##### queryName

`any`

##### timeMs

`any`

##### isError?

`boolean` = `false`

#### Returns

`void`
