You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 46192a2
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/skills/mssql-profiler/SKILL.md
+31-15Lines changed: 31 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,10 @@ Read the [profiler guide](../../../profiler/README.md) and inspect the relevant
15
15
1. Identify whether the request is diagnosis of one revision, a base/PR
16
16
comparison, or interpretation of existing artifacts. Identify the workload,
17
17
requested platform, measurement boundary, and reasonable run budget.
18
+
18
19
State the suspected cause, the expected observation, and what would refute it.
19
20
Prefer one bounded experiment using existing workloads over a new framework.
21
+
20
22
2. Use the supplied checkout and its active development interpreter. Record the
21
23
revision and dirty changes. For A/B work, use separate pinned checkouts/builds;
22
24
do not switch source underneath one binary or alter the user's shared checkout.
@@ -203,27 +205,35 @@ enable boundary, or disabled interval can be dropped.
203
205
Verify each process imports its intended package and native binary.
204
206
2. Confirm the workload reaches the changed path. Include eligible repetitions,
205
207
shape changes, and excluded inputs where applicable; unchanged fallback
206
-
timings are not proof of cache benefits. Read the actual benchmark registry
207
-
and worker, not just scenario names: ordinary SELECT fetching may never reach
208
-
a catalog-specific branch. Include unchanged-path controls for shared changes.
208
+
timings are not proof of cache benefits.
209
+
210
+
Read the actual benchmark registry and worker, not just scenario names:
211
+
ordinary SELECT fetching may never reach a catalog-specific branch. Include
212
+
unchanged-path controls for shared changes.
213
+
209
214
3. Define cold setup, warmup, and the measured sequence before running. Keep
210
215
setup, input generation, readback, and cleanup outside timing unless they are
211
216
explicitly part of the question. Do not invalidate a prepared statement with
212
217
housekeeping SQL on the same cursor between measured repetitions.
213
218
4. Run matching profiling-enabled builds for attribution. Record actual call
214
219
counts and changed-value correctness, not only duration. A missing timer can
215
220
mean missing instrumentation; verify expected enclosing counters before
216
-
interpreting absence as zero calls. For a diagnostic experiment, vary one
217
-
suspected cause while retaining a matched control and the other conditions.
218
-
Check the predicted operation/phase change, not just a lower total time.
219
-
Keep diagnostic probes out of the final release-latency comparison.
221
+
interpreting absence as zero calls.
222
+
223
+
For a diagnostic experiment, vary one suspected cause while retaining a
224
+
matched control and the other conditions. Check the predicted operation/phase
225
+
change, not just a lower total time. Keep diagnostic probes out of the final
226
+
release-latency comparison.
227
+
220
228
5. Separately rebuild both revisions without native profiling and time the same
221
229
workload/window using an existing matching benchmark or a small scratch timing
222
230
harness. `Profiler()` cannot run on an uninstrumented build; do not use the
223
-
profiling runner for this control or compare different workloads. Share setup,
224
-
values, timing, validation, and cleanup where possible; adapt only the
225
-
instrumentation. Report unavailable counters as unavailable, not zero or
226
-
results manufactured by a fake profiler.
231
+
profiling runner for this control or compare different workloads.
232
+
233
+
Share setup, values, timing, validation, and cleanup where possible; adapt
234
+
only the instrumentation. Report unavailable counters as unavailable, not
235
+
zero or results manufactured by a fake profiler.
236
+
227
237
6. Counterbalance base/PR order over repeated rounds. Preserve individual
228
238
observations and note contention. Do not run competing builds, benchmarks,
229
239
or DB-heavy tests on the same machine/server during measurement.
@@ -295,13 +305,19 @@ Return a concise report with these fields, marking unavailable fields explicitly
295
305
296
306
| Field | Required detail |
297
307
| --- | --- |
298
-
| Provenance | Base/head SHA and CI merge/run/job/attempt when applicable, dirty changes, interpreter/dependencies, native binary and ODBC provider identity, effective build/profiling flags, OS/architecture, SQL Server version |
308
+
| Provenance | Base/head SHA, dirty changes, interpreter, native binary identity, effective build/profiling flags, OS/architecture, SQL Server version |
0 commit comments