Skip to main content

run-handsfree-indexing

Prepare, deploy, validate, rehearse, monitor, or clean up the SQLCon EU 2026 Caldova Hands-Free Indexing demo. Use for Azure SQL automatic indexing, Automatic Index Compaction, the Hyperscale dashboard workload, index bloat, compaction progress, or the demo's Azure deployment scripts.

소스 정보

저장소
microsoft/sqlcon-eu-2026-demos
최근 소스 활동
2026년 9월 22일 16:23
감지된 SKILL.md 언어
영어
스타
1
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
run-handsfree-indexing
description
Prepare, deploy, validate, rehearse, monitor, or clean up the SQLCon EU 2026 Caldova Hands-Free Indexing demo. Use for Azure SQL automatic indexing, Automatic Index Compaction, the Hyperscale dashboard workload, index bloat, compaction progress, or the demo's Azure deployment scripts.
argument-hint
Mode: prepare, deploy, preflight, rehearse, status, or cleanup
# Run Hands-Free Indexing Guide the user through the existing Azure SQL Database Hyperscale demo. Treat the [package README](../../../corenote/handsfreeindexing/README.md) and [demo runbook](../../../corenote/handsfreeindexing/DEMO-RUNBOOK.md) as the sources of truth. Run only the wrappers in `deploy`; do not reproduce their Azure CLI or SQL logic manually. ## Invariants - Use the unchanged `demo.usp_PatientAccessDashboard` procedure. - The qualifying nonclustered index must be created by Azure SQL and report `auto_created = 1`. - Never create a manual fallback index, force a plan, add a query hint, or drop and recreate the automatic index. - Bloat and compaction eligibility must use the existing bounded insert/delete workloads. Never update surviving rows. - Pair `DETAILED` physical statistics with the latest real dashboard duration and logical reads. Never invent or interpolate measurements. ## Safety Rules - Confirm the Azure account, tenant, subscription, resource group, SQL region, App Service region, and vCore count before deployment. - Explain that deployment creates billable Azure SQL Hyperscale, App Service, networking, private endpoint, and DNS resources. Require explicit user approval immediately before `01-deploy-infrastructure.ps1`. - Require explicit approval before database initialization, bloat creation, enabling compaction, and cleanup. - `99-remove.ps1` deletes the entire configured resource group. Show the exact resource group and require confirmation before running it; do not suppress its PowerShell confirmation. - Do not request credentials in chat. Authentication must use Azure CLI, Microsoft Entra, and managed identity as implemented by the scripts. - Do not print access tokens or broaden the exact-IP bootstrap firewall rule. ## Select a Mode - `prepare`: validate tools, identity, configuration, and feature availability. - `deploy`: run the four documented deployment steps with approval gates. - `preflight`: verify an existing environment without changing it. - `rehearse`: guide the measured indexing lifecycle one phase at a time. - `status`: capture the current documented state once; do not poll continuously. - `cleanup`: remove the dedicated resource group after explicit confirmation. ## Prepare 1. Read `deploy\00-config.ps1`; do not run it directly. 2. Require PowerShell 7, Azure CLI, go-sqlcmd, and the .NET 10 SDK. 3. Require `AZURE_SUBSCRIPTION_ID`. Accept only the documented optional `CALDOVA_*` environment overrides. 4. Use read-only account checks to confirm the active identity and that the configured subscription matches `AZURE_SUBSCRIPTION_ID`. 5. Confirm the selected SQL region supports the Automatic Index Compaction preview. If this cannot be verified, stop and mark the gate `NOT VERIFIED`. 6. Summarize the resolved resource names and locations without exposing tokens. ## Deploy From `corenote\handsfreeindexing`, run one step at a time and require success before continuing: 1. After billable-resource approval: ```powershell .\deploy\01-deploy-infrastructure.ps1 ``` 2. After confirmation that recreating the isolated demo schema and loading two million rows is intended: ```powershell .\deploy\02-initialize-database.ps1 ``` 3. Publish the application: ```powershell .\deploy\03-publish-app.ps1 ``` 4. Verify the deployed environment: ```powershell .\deploy\04-verify.ps1 ``` Require an online Hyperscale database, Entra-only authentication, an approved private endpoint, a running Windows App Service, `/healthz = ok`, and `/readyz = ready`. ## Preflight Run `04-verify.ps1` and report each documented gate. Confirm the presenter can open the Operations Dashboard and Index Health views. Do not initialize data, run workload, create bloat, or enable compaction during preflight. ## Rehearse Guide one phase at a time and wait for the user between phases: 1. **No Nonclustered Index**: initialize only if a fresh environment is explicitly intended; refresh the dashboard and confirm `Missing Index`. 2. **Automatic Tuning**: run one 15-minute interval with `05-run-workload.ps1`, then run `06-show-index-recommendation.ps1` and `07-check-auto-index.ps1`. If the index is not ready, stop and tell the user to repeat later. Never loop unattended. 3. **Create Real Bloat**: only after `auto_created = 1` is proven and the user approves, run `08-create-bloat.ps1`. Refresh the dashboard, then run `10-check-progress.ps1` once. 4. **Automatic Index Compaction**: after approval, run `09-enable-compaction.ps1`. On user request, refresh the dashboard and run `10-check-progress.ps1` once per observation. 5. Complete only when measured telemetry shows materially fewer pages, higher density, and recovered query performance. Preserve the runbook's final presentation message. Automatic tuning and compaction are asynchronous. Do not claim completion from elapsed time alone and do not use sleep loops or continuous polling. ## Status Run `10-check-progress.ps1` once and summarize phase, index name, `auto_created`, page count, density, logical reads, query duration, and AIC state from the output. If no paired measurement exists, say so. ## Cleanup Show the resolved resource group, explain that every contained resource will be deleted, obtain explicit confirmation, and then run: ```powershell .\deploy\99-remove.ps1 ``` Report that deletion was started; do not claim completion until Azure confirms the resource group no longer exists. ## Completion Report Report mode, subscription name, resource group, commands run, gates passed, current lifecycle phase, and remaining asynchronous or manual work. Do not include tokens or credentials.
GitHub에서 보기