Commands / Invoke-sqmPerfBaseline
Invoke-sqmPerfBaseline
PerformancesqmSQLTool v1.8.2+ · Diagnostics
Creates, compares, or lists performance baselines as JSON snapshots. Captures sys.dm_os_wait_stats and sys.dm_os_performance_counters. Supports three actions: Capture (save baseline), Compare (delta between two baselines), List (list all saved files).

Parameters

ParameterTypeRequiredDefaultNotes
-SqlInstancestringOptional$env:COMPUTERNAMETarget SQL Server instance.
-SqlCredentialPSCredentialOptionalCredentials for the connection.
-ActionstringOptionalCaptureCapture | Compare | List
-BaselineNamestringOptionalTimestampLabel for snapshot (Capture action).
-BaselineA, -BaselineBstringOptionalAuto-detectBaselines for comparison (Compare action).
-OutputPathstringOptionalConfig + \PerfBaselineDirectory for JSON baseline files.
-EnableExceptionswitchOptional$falseRe-throw exceptions.

Execution Flow

START dbatools available? NO throw: dbatools not found YES Verify/create -OutputPath directory for baselines Default: $sqmConfig.OutputPath\PerfBaseline -Action? (Capture/Compare/List) List List all .json files in dir Capture Query sys.dm_os_wait_stats + sys.dm_os_performance_counters Capture timestamp, metrics, counters per object_name Use -BaselineName or auto-generate timestamp-based name Serialize to JSON: BASELINE_name_timestamp.json Save in -OutputPath Compare Load -BaselineA -BaselineB or auto-detect Parse JSON: wait_stats delta, perf counters delta Return [PSCustomObject] or [array] baseline results Capture: BaselineName, Created, Path | Compare: wait deltas | List: file list DONE

Examples

Capture baseline before a change
Invoke-sqmPerfBaseline -SqlInstance "SQL01" -BaselineName "before_patch"
Capture after change, then compare
Invoke-sqmPerfBaseline -SqlInstance "SQL01" -BaselineName "after_patch"
Invoke-sqmPerfBaseline -SqlInstance "SQL01" -Action Compare