[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-sqldw-operations-cli":3,"mdc-i26oz-key":37,"related-org-microsoft-sqldw-operations-cli":3774,"related-repo-microsoft-sqldw-operations-cli":3969},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"sqldw-operations-cli","analyze Fabric Data Warehouse performance","Analyze Fabric Data Warehouse performance via the MCP execute_query tool and queryinsights views. Diagnose slow queries, SQL pool pressure, cache coldness, and recommend clustering keys. Triggers: \"DW slow query analysis\", \"slowest queries warehouse\", \"queryinsights long running\", \"warehouse CPU resource consumers\", \"SQL pool pressure window\", \"pressure events warehouse\", \"DW cache warmth cold start\", \"cache warmth analysis\", \"warehouse cluster key recommendation\", \"cluster tables performance\", \"DW performance baseline comparison\", \"performance degraded warehouse\", \"warehouse user query patterns\", \"queryinsights diagnostics\", \"DW optimization MCP\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,20,23],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Microsoft Fabric","microsoft-fabric",{"name":24,"slug":25,"type":15},"SQL","sql",858,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-fabric","2026-07-31T05:55:02.054771",null,237,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"A collection of skills and MCP systems to enable users of CLI, VSCode, Claude to operate over Microsoft Fabric","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills-for-fabric\u002Ftree\u002FHEAD\u002Fplugins\u002Ffabric-skills\u002Fskills\u002Fsqldw-operations-cli","---\nname: sqldw-operations-cli\ndescription: >\n  Analyze Fabric Data Warehouse performance via the MCP execute_query tool and queryinsights views.\n  Diagnose slow queries, SQL pool pressure, cache coldness, and recommend clustering keys.\n  Triggers: \"DW slow query analysis\", \"slowest queries warehouse\",\n  \"queryinsights long running\", \"warehouse CPU resource consumers\",\n  \"SQL pool pressure window\", \"pressure events warehouse\",\n  \"DW cache warmth cold start\", \"cache warmth analysis\",\n  \"warehouse cluster key recommendation\", \"cluster tables performance\",\n  \"DW performance baseline comparison\", \"performance degraded warehouse\",\n  \"warehouse user query patterns\", \"queryinsights diagnostics\",\n  \"DW optimization MCP\".\n---\n\n> **Update Check — ONCE PER SESSION (mandatory)**\n> The first time this skill is used in a session, run the **check-updates** skill before proceeding.\n> - **GitHub Copilot CLI \u002F VS Code**: invoke the `check-updates` skill.\n> - **Claude Code \u002F Cowork \u002F Cursor \u002F Windsurf \u002F Codex**: compare local vs remote package.json version.\n> - Skip if the check was already performed earlier in this session.\n\n> **CRITICAL NOTES**\n> 1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering\n> 2. To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering\n\n# SQL DW Performance & Diagnostics — CLI Skill\n\nThis skill provides performance analysis, deep diagnostics, and optimization guidance for Microsoft Fabric Data Warehouse via the **`fabric-sqlendpoint-execute_query` MCP tool** and the built-in **`queryinsights`** views. All queries are read-only.\n\n## Prerequisites\n\nFor workspace\u002Fitem discovery via `az rest`, see [COMMON-CLI.md § Fabric Control-Plane API via az rest](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#fabric-control-plane-api-via-az-rest). For legacy `sqlcmd` reference (fallback only), see [COMMON-CLI.md § SQL \u002F TDS Data-Plane Access](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#sql--tds-data-plane-access).\n\n> **⚠️ SQL Execution Override:** For SQL data-plane execution, this skill supersedes COMMON-CLI SQL\u002FTDS guidance. Use MCP `fabric-sqlendpoint-execute_query` (see [Tool Stack](#tool-stack)) unless explicitly using Legacy CLI Fallback.\n\n**Monitoring-specific requirements:**\n- **Workspace role**: Admin or Member on the target workspace (required for `queryinsights` views)\n- **Warehouse must exist** with recent query activity (`queryinsights` views retain 30 days; data appears with up to 15 min delay)\n\n## Table of Contents\n\n| Task | Reference | Notes |\n|---|---|---|\n| Finding Workspaces and Items in Fabric | [COMMON-CLI.md § Finding Workspaces and Items in Fabric](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#finding-workspaces-and-items-in-fabric) | **Mandatory** — *READ link first* [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |\n| Fabric Topology & Key Concepts | [COMMON-CORE.md § Fabric Topology & Key Concepts](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#fabric-topology--key-concepts) ||\n| Environment URLs | [COMMON-CORE.md § Environment URLs](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#environment-urls) ||\n| Authentication & Token Acquisition | [COMMON-CORE.md § Authentication & Token Acquisition](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#authentication--token-acquisition) | Wrong audience = 401; read before any auth issue |\n| Core Control-Plane REST APIs | [COMMON-CORE.md § Core Control-Plane REST APIs](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#core-control-plane-rest-apis) | Includes pagination, LRO polling, and rate-limiting patterns |\n| Capacity Management | [COMMON-CORE.md § Capacity Management](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#capacity-management) ||\n| Gotchas, Best Practices & Troubleshooting (Platform) | [COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting](..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#gotchas-best-practices--troubleshooting) ||\n| Tool Selection Rationale | [COMMON-CLI.md § Tool Selection Rationale](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#tool-selection-rationale) ||\n| Authentication Recipes | [COMMON-CLI.md § Authentication Recipes](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#authentication-recipes) | `az login` flows and token acquisition |\n| Fabric Control-Plane API via `az rest` | [COMMON-CLI.md § Fabric Control-Plane API via az rest](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#fabric-control-plane-api-via-az-rest) | **Always pass `--resource`**; includes pagination and LRO helpers |\n| SQL \u002F TDS Data-Plane Access | [COMMON-CLI.md § SQL \u002F TDS Data-Plane Access](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#sql--tds-data-plane-access) | Legacy `sqlcmd` reference (MCP is primary — see Tool Stack) |\n| Gotchas & Troubleshooting (CLI-Specific) | [COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific)](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific) | `az rest` audience, shell escaping, token expiry |\n| Quick Reference | [COMMON-CLI.md § Quick Reference](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference) | `az rest` template + token audience\u002Ftool matrix |\n| Connection Fundamentals | [SQLDW-CONSUMPTION-CORE.md § Connection Fundamentals](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#connection-fundamentals) | TDS, port 1433, Entra-only, no MARS |\n| Monitoring and Diagnostics | [SQLDW-CONSUMPTION-CORE.md § Monitoring and Diagnostics](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#monitoring-and-diagnostics) | Query labels; DMVs (live) + `queryinsights.*` (30-day history) |\n| Performance: Best Practices and Troubleshooting | [SQLDW-CONSUMPTION-CORE.md § Performance: Best Practices and Troubleshooting](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#performance-best-practices-and-troubleshooting) | Statistics, caching, clustering, query tips |\n| Gotchas and Troubleshooting (Consumption) | [SQLDW-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#gotchas-and-troubleshooting-reference) | 18 numbered issues with cause + resolution |\n| Data Ingestion (DW Only) | [SQLDW-AUTHORING-CORE.md § Data Ingestion (DW Only)](..\u002F..\u002Fcommon\u002FSQLDW-AUTHORING-CORE.md#data-ingestion-dw-only) | COPY INTO, OPENROWSET, method comparison |\n| Query Reference | [query-reference.md](references\u002Fquery-reference.md) | T-SQL queries, parameters, and example output for all analyses |\n| Composite Recipes | [COMMON-CLI.md § Composite Recipes](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#composite-recipes) ||\n| Item-Type Capability Matrix | [SQLDW-CONSUMPTION-CORE.md § Item-Type Capability Matrix](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#item-type-capability-matrix) | Warehouses only — `queryinsights` not available on SQLEP |\n| Prerequisites | [SKILL.md § Prerequisites](#prerequisites) | Tools, auth, workspace role |\n| Tool Stack | [SKILL.md § Tool Stack](#tool-stack) ||\n| Connection | [SKILL.md § Connection](#connection) ||\n| Performance Analysis | [SKILL.md § Performance Analysis](#performance-analysis) | Long-running queries, resource consumers, user insights, baselines |\n| Deep Diagnostics | [SKILL.md § Deep Diagnostics](#deep-diagnostics) | Pressure windows, cache warmth, cluster keys |\n| Fabric DW Constraints | [SKILL.md § Fabric DW Constraints](#fabric-dw-constraints) | **NEVER recommend unsupported features** |\n| Best Practices | [SKILL.md § Best Practices](#best-practices) | Monitoring-specific guidance |\n| Agentic Workflows | [SKILL.md § Agentic Workflows](#agentic-workflows) | Common investigation patterns |\n| Gotchas, Rules, Troubleshooting | [SKILL.md § Gotchas, Rules, Troubleshooting](#gotchas-rules-troubleshooting) | **MUST DO \u002F AVOID \u002F PREFER** checklists |\n| Examples | [SKILL.md § Examples](#examples) | Prompt\u002Fresponse pairs |\n\n---\n\n## Tool Stack\n\nFor installation and setup, see [Prerequisites](#prerequisites).\n\n| Tool | Role |\n|---|---|\n| `fabric-sqlendpoint-execute_query` MCP tool | **Primary**: Execute monitoring T-SQL queries against Fabric SQL Endpoints. Auth handled by MCP protocol. |\n| `az` CLI | Token acquisition, Fabric REST for workspace\u002Fitem discovery |\n| `jq` | Parse JSON from `az rest` |\n\n> **IMPORTANT — MCP vs sqlcmd:**\n> This skill uses the `fabric-sqlendpoint-execute_query` MCP tool for all T-SQL execution. Do **not** use COMMON-CLI SQL\u002FTDS\u002Fsqlcmd sections for query execution.\n\n> **Agent preflight** — verify before first operation:\n> 1. Confirm the `fabric-sqlendpoint-execute_query` tool is available in your tool list. This tool is provided by the `fabric-sqlendpoint` MCP server, which is registered either by installing a Fabric skills **plugin** (the path for end users) or via this repo's `.mcp.json` — other MCP clients may register it through their own configuration.\n> 2. If no matching tool is found, the user must register the Fabric SQL Endpoint MCP server.\n>    - **Global URL**: `https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fmcp\u002FdataPlane\u002FsqlEndpoint`\n>    - **Item-scoped URL**: `https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fmcp\u002FdataPlane\u002Fworkspaces\u002F{workspaceId}\u002Fitems\u002F{itemId}\u002FsqlEndpoint`\n\n### MCP Tool Signature\n\n```text\nfabric-sqlendpoint-execute_query(workspaceId, itemId, query)\n```\n\n> **Tool name may differ:** `execute_query` is the logical operation. Depending on how the server is\n> registered, the concrete tool name in your tool list may be prefixed (e.g.\n> `fabric-sqlendpoint-execute_query` or `sqlendpoint-global-execute_query`). Invoke the concrete name\n> shown in your tool list, always passing `workspaceId`, `itemId`, and `query`.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `workspaceId` | string (UUID) | The workspace GUID containing the target Warehouse |\n| `itemId` | string (UUID) | The GUID of the Warehouse item |\n| `query` | string | T-SQL query text (single batch — no `GO` separators) |\n\n**Returns:** CSV resource (RFC 4180) with tabular results + metadata text.\n\n**Limits:** 10,000 rows max | 300s timeout | 20 req\u002Fmin rate limit _(observed defaults, not a documented contract — the service can change them; verify against live 429\u002Ftimeout\u002Ftruncation responses)_\n\n---\n\n## Connection\n\n### Discover workspaceId and itemId\n\nYou need the workspace GUID and warehouse GUID to call `fabric-sqlendpoint-execute_query`:\n\n```bash\n# 1. Find workspace ID by name (capture into WS_ID for the next call)\nWS_ID=$(az rest --method get \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\" \\\n  --query \"value[?displayName=='MyWorkspace'].id\" --output tsv)\necho \"Workspace ID: $WS_ID\"\n\n# 2. Find warehouse item ID by name\naz rest --method get \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F$WS_ID\u002Fwarehouses\" \\\n  --query \"value[?displayName=='MyWarehouse'].id\" --output tsv\n```\n\n### Execute a Monitoring Query\n\n```text\nfabric-sqlendpoint-execute_query(\n  workspaceId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  itemId: \"11111111-2222-3333-4444-555555555555\",\n  query: \"SELECT TOP 5 * FROM queryinsights.long_running_queries ORDER BY last_run_total_elapsed_time_ms DESC\"\n)\n```\n\n**No additional connection setup needed** — authentication is handled transparently by the MCP protocol.\n\n---\n\n## Performance Analysis\n\nAll SQL queries, parameters, return fields, and response formatting are in [query-reference.md](references\u002Fquery-reference.md).\n\n### Long-Running Queries Summary\n\nFind the slowest queries from `queryinsights.long_running_queries`. See [query-reference.md § Long-Running Queries Summary](references\u002Fquery-reference.md#long-running-queries-summary) for SQL and formatting.\n\n### Top Resource Consumers\n\nFind CPU- and storage-heavy queries from `queryinsights.exec_requests_history`. See [query-reference.md § Top Resource Consumers](references\u002Fquery-reference.md#top-resource-consumers) for SQL, thresholds, and formatting.\n\n**Recommendation thresholds:**\n- Remote scans > 1,000 MB → review data layout, consider clustering\n- CPU > 5,000,000 ms → review query logic\n- Elapsed > 300,000 ms → check joins, filters, statistics\n- Reference: [Performance guidelines](https:\u002F\u002Flearn.microsoft.com\u002Ffabric\u002Fdata-warehouse\u002Fguidelines-warehouse-performance)\n\n### Top Users Insights\n\nAnalyze user activity and query patterns. See [query-reference.md § Top Users Insights](references\u002Fquery-reference.md#top-users-insights) for SQL and classification logic.\n\n### Compare Recent vs Baseline\n\nDetect performance regressions by comparing recent window against historical baseline. See [query-reference.md § Compare Recent vs Baseline](references\u002Fquery-reference.md#compare-recent-vs-baseline) for SQL and formatting.\n\n### Recent Queries\n\nRetrieve the most recently executed queries. See [query-reference.md § Recent Queries](references\u002Fquery-reference.md#recent-queries) for SQL.\n\n### Search Query Patterns\n\nSearch historical query patterns by table name, column, or keyword. See [query-reference.md § Search Query Patterns](references\u002Fquery-reference.md#search-query-patterns) for SQL.\n\n---\n\n## Deep Diagnostics\n\nAll SQL queries for diagnostics are in [query-reference.md](references\u002Fquery-reference.md).\n\n### Analyze Long-Running Query Plans\n\nSee [query-reference.md § Long-Running Query Analysis](references\u002Fquery-reference.md#long-running-query-analysis) for SQL.\n\n**Analysis guidance** — when reviewing slow queries, check:\n- High `data_scanned_remote_storage_mb` → data layout issues (run OPTIMIZE, consider clustering)\n- High `allocated_cpu_time_ms` relative to elapsed → CPU-bound (simplify joins, reduce columns)\n- High elapsed but low CPU → waiting on resources (check for pressure windows)\n\n### Analyze Pressure Window Queries\n\nIdentify SQL pool pressure events using `queryinsights.sql_pool_insights` and correlate with the heaviest queries running during those windows. See [query-reference.md § Pressure Window Analysis](references\u002Fquery-reference.md#pressure-window-analysis) for the two-step SQL.\n\n**Usage:** Step 1 returns pressure windows with `window_start` and `window_end` timestamps. Substitute those actual timestamp values into Step 2's WHERE clause to find overlapping queries.\n\n**Global recommendations** — based on aggregate pressure analysis:\n- If SELECT pool has more pressure → read-heavy workload, suggest caching and column pruning\n- If NONSELECT pool has more pressure → write-heavy, suggest batching and COPY INTO\n- If total pressure > 60 min → suggest scaling capacity or staggering workloads\n\n### Analyze Query Cache Warmth\n\nSee [query-reference.md § Cache Warmth Analysis](references\u002Fquery-reference.md#cache-warmth-analysis) for SQL.\n\n**Classification logic** — for each execution, compute `total_mb = remote + memory + disk`:\n- `result_cache_hit = 1` → **cached**\n- `remote_mb \u002F total_mb > 0.8` → **cold** (>80% from remote storage)\n- `(memory_mb + disk_mb) \u002F total_mb > 0.8` → **warm** (>80% from cache)\n\n**Recommendations:**\n- Over 50% cold runs → Enable result set caching: `ALTER DATABASE SET RESULT_SET_CACHING ON;`\n- Always-cold patterns → Check for `GETDATE()`\u002F`GETUTCDATE()` or volatile functions that bust the cache key\n\n### Recommend Cluster Keys\n\nSee [query-reference.md § Cluster Key Recommendations](references\u002Fquery-reference.md#cluster-key-recommendations) for SQL.\n\n**Key rules:**\n- Only `WHERE` predicates benefit from clustering — equality `JOIN ON` conditions do **not**\n- Prefer mid-to-high cardinality columns (many distinct values)\n- Maximum 4 clustering columns\n- Use CTAS with `WITH (CLUSTER BY (...))` — `ALTER TABLE` is not supported\n\n**To apply clustering** — see [query-reference.md § Cluster Key Recommendations](references\u002Fquery-reference.md#cluster-key-recommendations) for CTAS creation, `sp_rename` table swap, and verification SQL.\n\n> **Note:** Fabric does not support `ALTER TABLE SET DATA_CLUSTERING_KEY` or `RENAME OBJECT`. Always use CTAS with `WITH (CLUSTER BY (...))` and `sp_rename` for table swaps.\n\n---\n\n## Fabric DW Constraints\n\n**NEVER recommend features not supported in Fabric Data Warehouse.** Always consult this list before making optimization suggestions.\n\n| Do NOT Recommend | Why | Recommend Instead |\n|------------------|-----|-------------------|\n| Nonclustered indexes | Not supported | V-Order, column pruning, predicate pushdown |\n| Materialized views | Not supported | Standard views or result set caching |\n| Index hints (FORCESEEK\u002FFORCESCAN) | Not supported | Simplify query structure |\n| Multi-column statistics | Not supported | Single-column statistics on key columns |\n| `ALTER TABLE SET DATA_CLUSTERING_KEY` | Not supported | CTAS with `WITH (CLUSTER BY (...))` |\n| `RENAME OBJECT` | Not supported | `EXEC sp_rename 'schema.old', 'new'` |\n| Change isolation level | Snapshot only | Fabric uses snapshot isolation exclusively |\n| CREATE USER | Not supported | Manage users via Fabric workspace |\n| Triggers | Not supported | Application logic or Fabric pipelines |\n| Recursive CTEs | Not supported | Iterative approach |\n| \"Enable Query Insights\" setting | Query Insights is always on — there is no setting | If access is denied, the user needs Admin or Member workspace role |\n\n---\n\n## Agentic Workflows\n\n### Workflow 1: \"Why is my warehouse slow?\"\n\n1. **Check for pressure events** → Run the pressure window analysis query (last 24h)\n2. **Find the heaviest queries** → Run top resource consumers query (last 1h)\n3. **Analyze slow queries** → Run long-running queries analysis\n4. **Check cache behavior** → Run cache warmth analysis (last 24h)\n5. **Recommend clustering** → Run cluster key recommendation queries\n\n### Workflow 2: \"Has performance degraded?\"\n\n1. **Compare against baseline** → Run recent vs baseline comparison (1h vs 7-day)\n2. **Identify new slow queries** → Run long-running queries summary (top 5)\n3. **Check user patterns** → Run top users insights (last 24h)\n\n### Workflow 3: \"Optimize my warehouse\"\n\n1. **Review best practices** → See [SQLDW-CONSUMPTION-CORE.md § Performance: Best Practices and Troubleshooting](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#performance-best-practices-and-troubleshooting)\n2. **Find optimization targets** → Run top resource consumers (last 24h)\n3. **Recommend clustering** → Run cluster key recommendation queries\n4. **Analyze cold-start queries** → Run cache warmth analysis\n\n### Workflow 4: \"What are people running?\"\n\n1. **Recent activity** → Run recent queries (top 10)\n2. **User patterns** → Run top users insights (last 24h)\n3. **Search for specific patterns** → Run query pattern search with search term\n\n---\n\n## Best Practices\n\nFor comprehensive Fabric DW best practices, see [SQLDW-CONSUMPTION-CORE.md § Performance: Best Practices and Troubleshooting](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#performance-best-practices-and-troubleshooting) and the [Fabric guidelines](https:\u002F\u002Flearn.microsoft.com\u002Ffabric\u002Fdata-warehouse\u002Fguidelines-warehouse-performance).\n\n**Monitoring-specific best practices:**\n\n- **Start broad, then drill down** — begin with long-running queries summary and baseline comparison before deep diagnostics\n- **Use pressure window analysis** for root-cause analysis rather than guessing at bottlenecks\n- **Label all agent queries** with `OPTION (LABEL = 'AGENTCLI_MONITOR_...')` for tracing in Query Insights\n- **Prefer mid-to-high cardinality columns** for clustering keys — low cardinality columns offer limited file-skipping benefit\n- **Use `WHERE` predicates** to identify cluster key candidates — equality `JOIN ON` conditions do not benefit from clustering\n- **Always verify clustering** after CTAS by querying `sys.index_columns.data_clustering_ordinal`\n- **Check cold vs warm cache** before concluding a query is inherently slow — first execution may be a cold start\n- **Adjust time windows** (`DATEADD` parameters) to match user's investigation scope — don't default to arbitrary windows\n\n---\n\n## Gotchas, Rules, Troubleshooting\n\nFor generic CLI gotchas (connection, auth, shell escaping): see [COMMON-CLI.md § Gotchas & Troubleshooting](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific).\nFor T-SQL\u002Fplatform gotchas: see [SQLDW-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference](..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#gotchas-and-troubleshooting-reference).\n\n### MUST DO\n- Always check [Fabric DW Constraints](#fabric-dw-constraints) before recommending optimizations\n- When recommending clustering, instruct users to use CTAS with `WITH (CLUSTER BY (...))` — not ALTER TABLE\n- Report actual query output — do not fabricate or assume results\n- **Label queries** with `OPTION (LABEL = 'AGENTCLI_MONITOR_...')` for Query Insights tracing\n- **Verify `fabric-sqlendpoint-execute_query` MCP tool availability** before first operation\n\n### PREFER\n- Start with high-level queries (long-running summary, baseline comparison) before drilling into diagnostics\n- Use the pressure window analysis for root-cause analysis rather than guessing at bottlenecks\n- Combine multiple queries in the [Agentic Workflows](#agentic-workflows) for comprehensive investigations\n- Adjust time windows (`DATEADD` parameters) based on what the user asks for\n- Consolidate related diagnostic queries into fewer calls to respect rate limits\n\n### AVOID\n- Recommending Fabric-unsupported features (nonclustered indexes, materialized views, index hints, triggers)\n- Suggesting that Query Insights needs to be \"enabled\" or \"turned on\" — `queryinsights` views are always available; permission errors indicate insufficient workspace role (Admin or Member required)\n- Running monitoring queries without confirming workspaceId and itemId\n- Guessing at performance root causes without running the diagnostic queries\n- Using `SELECT *` in monitoring queries — always select specific columns\n- Using `GO` separators or sqlcmd meta-commands in queries (MCP tool accepts single batches only)\n- Unbounded queries without `TOP N` — 10,000 row limit applies\n\n### TROUBLESHOOTING (Monitoring-Specific)\n\nFor generic connection\u002Fauth troubleshooting, see [COMMON-CLI.md § Gotchas & Troubleshooting](..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific).\n\n| Symptom | Cause | Fix |\n|---|---|---|\n| `Invalid object name 'queryinsights...'` | New warehouse \u003C 2 min old | Wait ~2 minutes |\n| Permission errors on `queryinsights.*` | Insufficient workspace role | Requires Admin or Member role |\n| No data in queryinsights views | No recent query activity or \u003C 15 min delay | Wait 15 min after query completion |\n| No rows but data exists | RLS filtering | Check `USER_NAME()`, verify RLS policies |\n| `fabric-sqlendpoint-execute_query` tool not available | MCP server not registered | User must add Fabric SQL Endpoint MCP server |\n| HTTP 429 rate limit | Too many calls in 1 min | Wait 60s; consolidate queries |\n| Query timeout (300s) | Complex diagnostics | Narrow time window with tighter DATEADD |\n\n---\n\n## Examples\n\n### Find Slow Queries\n\n**User:** \"What are the slowest queries in my warehouse?\"\n\n**Agent:** Runs the long-running queries summary via `fabric-sqlendpoint-execute_query`:\n\n```text\nfabric-sqlendpoint-execute_query(workspaceId, itemId,\n  \"SELECT TOP 5\n      left(last_run_command, 80) AS query_preview,\n      number_of_runs,\n      last_run_total_elapsed_time_ms,\n      median_total_elapsed_time_ms\n   FROM queryinsights.long_running_queries\n   ORDER BY median_total_elapsed_time_ms DESC\")\n```\n\n> The top 5 slowest queries are:\n> 1. `SELECT * FROM FactSales JOIN DimCustomer...` — ran 12 times, last took 45,200 ms (median 38,500 ms)\n> 2. `SELECT region, SUM(amount)...` — ran 8 times, last took 32,100 ms (median 29,000 ms)\n> ...\n\n### Diagnose Performance Degradation\n\n**User:** \"Is my warehouse slower than last week?\"\n\n**Agent:** Runs the baseline comparison query and presents:\n\n> **Performance Comparison (last 1h vs 7-day baseline):**\n> - Elapsed time: 2,450 ms avg → 4,100 ms avg (+67.3%)\n> - CPU consumption: 1,200 ms → 2,800 ms (+133.3%)\n> - Data scanned: 450 MB → 480 MB (+6.7%)\n>\n> Significant regression detected. Let me check for pressure events and analyze the heaviest queries...\n\nThen follows up with pressure window and resource consumer queries.\n\n### Get Clustering Recommendations\n\n**User:** \"Which tables should I cluster and on what columns?\"\n\n**Agent:** Runs the cluster key recommendation queries and presents:\n\n> **Recommended Clustering Keys:**\n> | Table | Recommended Columns | Row Count | Total Scanned MB |\n> |-------|-------------------|-----------|-----------------|\n> | dbo.FactSales | SaleDate, Region | 50M | 12,500 MB |\n> | dbo.FactInventory | ProductID, WarehouseID | 12M | 3,200 MB |\n>\n> To apply clustering, use CTAS:\n> ```sql\n> CREATE TABLE dbo.FactSales_clustered\n> WITH (CLUSTER BY (SaleDate, Region))\n> AS SELECT * FROM dbo.FactSales;\n> ```\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,105,130,137,166,173,211,239,247,284,290,1063,1067,1072,1082,1167,1194,1284,1291,1303,1361,1458,1468,1483,1486,1491,1497,1509,1822,1828,1837,1847,1850,1855,1865,1871,1892,1898,1918,1926,1957,1963,1976,1982,1994,2000,2013,2019,2031,2034,2039,2049,2055,2067,2077,2110,2116,2137,2163,2173,2191,2197,2208,2225,2278,2286,2321,2327,2338,2346,2404,2428,2469,2472,2477,2487,2719,2722,2727,2733,2786,2792,2825,2831,2876,2882,2914,2917,2922,2940,2948,3067,3070,3075,3092,3098,3162,3168,3209,3215,3282,3288,3298,3473,3476,3481,3487,3497,3513,3522,3555,3561,3570,3579,3613,3618,3624,3633,3642,3768],{"type":43,"tag":44,"props":45,"children":46},"element","blockquote",{},[47,67],{"type":43,"tag":48,"props":49,"children":50},"p",{},[51,58,60,65],{"type":43,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":56,"value":57},"text","Update Check — ONCE PER SESSION (mandatory)",{"type":56,"value":59},"\nThe first time this skill is used in a session, run the ",{"type":43,"tag":52,"props":61,"children":62},{},[63],{"type":56,"value":64},"check-updates",{"type":56,"value":66}," skill before proceeding.",{"type":43,"tag":68,"props":69,"children":70},"ul",{},[71,90,100],{"type":43,"tag":72,"props":73,"children":74},"li",{},[75,80,82,88],{"type":43,"tag":52,"props":76,"children":77},{},[78],{"type":56,"value":79},"GitHub Copilot CLI \u002F VS Code",{"type":56,"value":81},": invoke the ",{"type":43,"tag":83,"props":84,"children":86},"code",{"className":85},[],[87],{"type":56,"value":64},{"type":56,"value":89}," skill.",{"type":43,"tag":72,"props":91,"children":92},{},[93,98],{"type":43,"tag":52,"props":94,"children":95},{},[96],{"type":56,"value":97},"Claude Code \u002F Cowork \u002F Cursor \u002F Windsurf \u002F Codex",{"type":56,"value":99},": compare local vs remote package.json version.",{"type":43,"tag":72,"props":101,"children":102},{},[103],{"type":56,"value":104},"Skip if the check was already performed earlier in this session.",{"type":43,"tag":44,"props":106,"children":107},{},[108,116],{"type":43,"tag":48,"props":109,"children":110},{},[111],{"type":43,"tag":52,"props":112,"children":113},{},[114],{"type":56,"value":115},"CRITICAL NOTES",{"type":43,"tag":117,"props":118,"children":119},"ol",{},[120,125],{"type":43,"tag":72,"props":121,"children":122},{},[123],{"type":56,"value":124},"To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering",{"type":43,"tag":72,"props":126,"children":127},{},[128],{"type":56,"value":129},"To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering",{"type":43,"tag":131,"props":132,"children":134},"h1",{"id":133},"sql-dw-performance-diagnostics-cli-skill",[135],{"type":56,"value":136},"SQL DW Performance & Diagnostics — CLI Skill",{"type":43,"tag":48,"props":138,"children":139},{},[140,142,153,155,164],{"type":56,"value":141},"This skill provides performance analysis, deep diagnostics, and optimization guidance for Microsoft Fabric Data Warehouse via the ",{"type":43,"tag":52,"props":143,"children":144},{},[145,151],{"type":43,"tag":83,"props":146,"children":148},{"className":147},[],[149],{"type":56,"value":150},"fabric-sqlendpoint-execute_query",{"type":56,"value":152}," MCP tool",{"type":56,"value":154}," and the built-in ",{"type":43,"tag":52,"props":156,"children":157},{},[158],{"type":43,"tag":83,"props":159,"children":161},{"className":160},[],[162],{"type":56,"value":163},"queryinsights",{"type":56,"value":165}," views. All queries are read-only.",{"type":43,"tag":167,"props":168,"children":170},"h2",{"id":169},"prerequisites",[171],{"type":56,"value":172},"Prerequisites",{"type":43,"tag":48,"props":174,"children":175},{},[176,178,184,186,193,195,201,203,209],{"type":56,"value":177},"For workspace\u002Fitem discovery via ",{"type":43,"tag":83,"props":179,"children":181},{"className":180},[],[182],{"type":56,"value":183},"az rest",{"type":56,"value":185},", see ",{"type":43,"tag":187,"props":188,"children":190},"a",{"href":189},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#fabric-control-plane-api-via-az-rest",[191],{"type":56,"value":192},"COMMON-CLI.md § Fabric Control-Plane API via az rest",{"type":56,"value":194},". For legacy ",{"type":43,"tag":83,"props":196,"children":198},{"className":197},[],[199],{"type":56,"value":200},"sqlcmd",{"type":56,"value":202}," reference (fallback only), see ",{"type":43,"tag":187,"props":204,"children":206},{"href":205},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#sql--tds-data-plane-access",[207],{"type":56,"value":208},"COMMON-CLI.md § SQL \u002F TDS Data-Plane Access",{"type":56,"value":210},".",{"type":43,"tag":44,"props":212,"children":213},{},[214],{"type":43,"tag":48,"props":215,"children":216},{},[217,222,224,229,231,237],{"type":43,"tag":52,"props":218,"children":219},{},[220],{"type":56,"value":221},"⚠️ SQL Execution Override:",{"type":56,"value":223}," For SQL data-plane execution, this skill supersedes COMMON-CLI SQL\u002FTDS guidance. Use MCP ",{"type":43,"tag":83,"props":225,"children":227},{"className":226},[],[228],{"type":56,"value":150},{"type":56,"value":230}," (see ",{"type":43,"tag":187,"props":232,"children":234},{"href":233},"#tool-stack",[235],{"type":56,"value":236},"Tool Stack",{"type":56,"value":238},") unless explicitly using Legacy CLI Fallback.",{"type":43,"tag":48,"props":240,"children":241},{},[242],{"type":43,"tag":52,"props":243,"children":244},{},[245],{"type":56,"value":246},"Monitoring-specific requirements:",{"type":43,"tag":68,"props":248,"children":249},{},[250,267],{"type":43,"tag":72,"props":251,"children":252},{},[253,258,260,265],{"type":43,"tag":52,"props":254,"children":255},{},[256],{"type":56,"value":257},"Workspace role",{"type":56,"value":259},": Admin or Member on the target workspace (required for ",{"type":43,"tag":83,"props":261,"children":263},{"className":262},[],[264],{"type":56,"value":163},{"type":56,"value":266}," views)",{"type":43,"tag":72,"props":268,"children":269},{},[270,275,277,282],{"type":43,"tag":52,"props":271,"children":272},{},[273],{"type":56,"value":274},"Warehouse must exist",{"type":56,"value":276}," with recent query activity (",{"type":43,"tag":83,"props":278,"children":280},{"className":279},[],[281],{"type":56,"value":163},{"type":56,"value":283}," views retain 30 days; data appears with up to 15 min delay)",{"type":43,"tag":167,"props":285,"children":287},{"id":286},"table-of-contents",[288],{"type":56,"value":289},"Table of Contents",{"type":43,"tag":291,"props":292,"children":293},"table",{},[294,318],{"type":43,"tag":295,"props":296,"children":297},"thead",{},[298],{"type":43,"tag":299,"props":300,"children":301},"tr",{},[302,308,313],{"type":43,"tag":303,"props":304,"children":305},"th",{},[306],{"type":56,"value":307},"Task",{"type":43,"tag":303,"props":309,"children":310},{},[311],{"type":56,"value":312},"Reference",{"type":43,"tag":303,"props":314,"children":315},{},[316],{"type":56,"value":317},"Notes",{"type":43,"tag":319,"props":320,"children":321},"tbody",{},[322,364,384,404,426,448,468,488,508,536,572,599,626,653,675,705,727,749,771,793,813,842,863,881,901,923,945,970,992,1014,1041],{"type":43,"tag":299,"props":323,"children":324},{},[325,331,340],{"type":43,"tag":326,"props":327,"children":328},"td",{},[329],{"type":56,"value":330},"Finding Workspaces and Items in Fabric",{"type":43,"tag":326,"props":332,"children":333},{},[334],{"type":43,"tag":187,"props":335,"children":337},{"href":336},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#finding-workspaces-and-items-in-fabric",[338],{"type":56,"value":339},"COMMON-CLI.md § Finding Workspaces and Items in Fabric",{"type":43,"tag":326,"props":341,"children":342},{},[343,348,350,356,358],{"type":43,"tag":52,"props":344,"children":345},{},[346],{"type":56,"value":347},"Mandatory",{"type":56,"value":349}," — ",{"type":43,"tag":351,"props":352,"children":353},"em",{},[354],{"type":56,"value":355},"READ link first",{"type":56,"value":357}," ",{"type":43,"tag":359,"props":360,"children":361},"span",{},[362],{"type":56,"value":363},"needed for finding workspace id by its name or item id by its name, item type, and workspace id",{"type":43,"tag":299,"props":365,"children":366},{},[367,372,381],{"type":43,"tag":326,"props":368,"children":369},{},[370],{"type":56,"value":371},"Fabric Topology & Key Concepts",{"type":43,"tag":326,"props":373,"children":374},{},[375],{"type":43,"tag":187,"props":376,"children":378},{"href":377},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#fabric-topology--key-concepts",[379],{"type":56,"value":380},"COMMON-CORE.md § Fabric Topology & Key Concepts",{"type":43,"tag":326,"props":382,"children":383},{},[],{"type":43,"tag":299,"props":385,"children":386},{},[387,392,401],{"type":43,"tag":326,"props":388,"children":389},{},[390],{"type":56,"value":391},"Environment URLs",{"type":43,"tag":326,"props":393,"children":394},{},[395],{"type":43,"tag":187,"props":396,"children":398},{"href":397},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#environment-urls",[399],{"type":56,"value":400},"COMMON-CORE.md § Environment URLs",{"type":43,"tag":326,"props":402,"children":403},{},[],{"type":43,"tag":299,"props":405,"children":406},{},[407,412,421],{"type":43,"tag":326,"props":408,"children":409},{},[410],{"type":56,"value":411},"Authentication & Token Acquisition",{"type":43,"tag":326,"props":413,"children":414},{},[415],{"type":43,"tag":187,"props":416,"children":418},{"href":417},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#authentication--token-acquisition",[419],{"type":56,"value":420},"COMMON-CORE.md § Authentication & Token Acquisition",{"type":43,"tag":326,"props":422,"children":423},{},[424],{"type":56,"value":425},"Wrong audience = 401; read before any auth issue",{"type":43,"tag":299,"props":427,"children":428},{},[429,434,443],{"type":43,"tag":326,"props":430,"children":431},{},[432],{"type":56,"value":433},"Core Control-Plane REST APIs",{"type":43,"tag":326,"props":435,"children":436},{},[437],{"type":43,"tag":187,"props":438,"children":440},{"href":439},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#core-control-plane-rest-apis",[441],{"type":56,"value":442},"COMMON-CORE.md § Core Control-Plane REST APIs",{"type":43,"tag":326,"props":444,"children":445},{},[446],{"type":56,"value":447},"Includes pagination, LRO polling, and rate-limiting patterns",{"type":43,"tag":299,"props":449,"children":450},{},[451,456,465],{"type":43,"tag":326,"props":452,"children":453},{},[454],{"type":56,"value":455},"Capacity Management",{"type":43,"tag":326,"props":457,"children":458},{},[459],{"type":43,"tag":187,"props":460,"children":462},{"href":461},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#capacity-management",[463],{"type":56,"value":464},"COMMON-CORE.md § Capacity Management",{"type":43,"tag":326,"props":466,"children":467},{},[],{"type":43,"tag":299,"props":469,"children":470},{},[471,476,485],{"type":43,"tag":326,"props":472,"children":473},{},[474],{"type":56,"value":475},"Gotchas, Best Practices & Troubleshooting (Platform)",{"type":43,"tag":326,"props":477,"children":478},{},[479],{"type":43,"tag":187,"props":480,"children":482},{"href":481},"..\u002F..\u002Fcommon\u002FCOMMON-CORE.md#gotchas-best-practices--troubleshooting",[483],{"type":56,"value":484},"COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting",{"type":43,"tag":326,"props":486,"children":487},{},[],{"type":43,"tag":299,"props":489,"children":490},{},[491,496,505],{"type":43,"tag":326,"props":492,"children":493},{},[494],{"type":56,"value":495},"Tool Selection Rationale",{"type":43,"tag":326,"props":497,"children":498},{},[499],{"type":43,"tag":187,"props":500,"children":502},{"href":501},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#tool-selection-rationale",[503],{"type":56,"value":504},"COMMON-CLI.md § Tool Selection Rationale",{"type":43,"tag":326,"props":506,"children":507},{},[],{"type":43,"tag":299,"props":509,"children":510},{},[511,516,525],{"type":43,"tag":326,"props":512,"children":513},{},[514],{"type":56,"value":515},"Authentication Recipes",{"type":43,"tag":326,"props":517,"children":518},{},[519],{"type":43,"tag":187,"props":520,"children":522},{"href":521},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#authentication-recipes",[523],{"type":56,"value":524},"COMMON-CLI.md § Authentication Recipes",{"type":43,"tag":326,"props":526,"children":527},{},[528,534],{"type":43,"tag":83,"props":529,"children":531},{"className":530},[],[532],{"type":56,"value":533},"az login",{"type":56,"value":535}," flows and token acquisition",{"type":43,"tag":299,"props":537,"children":538},{},[539,549,556],{"type":43,"tag":326,"props":540,"children":541},{},[542,544],{"type":56,"value":543},"Fabric Control-Plane API via ",{"type":43,"tag":83,"props":545,"children":547},{"className":546},[],[548],{"type":56,"value":183},{"type":43,"tag":326,"props":550,"children":551},{},[552],{"type":43,"tag":187,"props":553,"children":554},{"href":189},[555],{"type":56,"value":192},{"type":43,"tag":326,"props":557,"children":558},{},[559,570],{"type":43,"tag":52,"props":560,"children":561},{},[562,564],{"type":56,"value":563},"Always pass ",{"type":43,"tag":83,"props":565,"children":567},{"className":566},[],[568],{"type":56,"value":569},"--resource",{"type":56,"value":571},"; includes pagination and LRO helpers",{"type":43,"tag":299,"props":573,"children":574},{},[575,580,587],{"type":43,"tag":326,"props":576,"children":577},{},[578],{"type":56,"value":579},"SQL \u002F TDS Data-Plane Access",{"type":43,"tag":326,"props":581,"children":582},{},[583],{"type":43,"tag":187,"props":584,"children":585},{"href":205},[586],{"type":56,"value":208},{"type":43,"tag":326,"props":588,"children":589},{},[590,592,597],{"type":56,"value":591},"Legacy ",{"type":43,"tag":83,"props":593,"children":595},{"className":594},[],[596],{"type":56,"value":200},{"type":56,"value":598}," reference (MCP is primary — see Tool Stack)",{"type":43,"tag":299,"props":600,"children":601},{},[602,607,616],{"type":43,"tag":326,"props":603,"children":604},{},[605],{"type":56,"value":606},"Gotchas & Troubleshooting (CLI-Specific)",{"type":43,"tag":326,"props":608,"children":609},{},[610],{"type":43,"tag":187,"props":611,"children":613},{"href":612},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#gotchas--troubleshooting-cli-specific",[614],{"type":56,"value":615},"COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific)",{"type":43,"tag":326,"props":617,"children":618},{},[619,624],{"type":43,"tag":83,"props":620,"children":622},{"className":621},[],[623],{"type":56,"value":183},{"type":56,"value":625}," audience, shell escaping, token expiry",{"type":43,"tag":299,"props":627,"children":628},{},[629,634,643],{"type":43,"tag":326,"props":630,"children":631},{},[632],{"type":56,"value":633},"Quick Reference",{"type":43,"tag":326,"props":635,"children":636},{},[637],{"type":43,"tag":187,"props":638,"children":640},{"href":639},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#quick-reference",[641],{"type":56,"value":642},"COMMON-CLI.md § Quick Reference",{"type":43,"tag":326,"props":644,"children":645},{},[646,651],{"type":43,"tag":83,"props":647,"children":649},{"className":648},[],[650],{"type":56,"value":183},{"type":56,"value":652}," template + token audience\u002Ftool matrix",{"type":43,"tag":299,"props":654,"children":655},{},[656,661,670],{"type":43,"tag":326,"props":657,"children":658},{},[659],{"type":56,"value":660},"Connection Fundamentals",{"type":43,"tag":326,"props":662,"children":663},{},[664],{"type":43,"tag":187,"props":665,"children":667},{"href":666},"..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#connection-fundamentals",[668],{"type":56,"value":669},"SQLDW-CONSUMPTION-CORE.md § Connection Fundamentals",{"type":43,"tag":326,"props":671,"children":672},{},[673],{"type":56,"value":674},"TDS, port 1433, Entra-only, no MARS",{"type":43,"tag":299,"props":676,"children":677},{},[678,683,692],{"type":43,"tag":326,"props":679,"children":680},{},[681],{"type":56,"value":682},"Monitoring and Diagnostics",{"type":43,"tag":326,"props":684,"children":685},{},[686],{"type":43,"tag":187,"props":687,"children":689},{"href":688},"..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#monitoring-and-diagnostics",[690],{"type":56,"value":691},"SQLDW-CONSUMPTION-CORE.md § Monitoring and Diagnostics",{"type":43,"tag":326,"props":693,"children":694},{},[695,697,703],{"type":56,"value":696},"Query labels; DMVs (live) + ",{"type":43,"tag":83,"props":698,"children":700},{"className":699},[],[701],{"type":56,"value":702},"queryinsights.*",{"type":56,"value":704}," (30-day history)",{"type":43,"tag":299,"props":706,"children":707},{},[708,713,722],{"type":43,"tag":326,"props":709,"children":710},{},[711],{"type":56,"value":712},"Performance: Best Practices and Troubleshooting",{"type":43,"tag":326,"props":714,"children":715},{},[716],{"type":43,"tag":187,"props":717,"children":719},{"href":718},"..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#performance-best-practices-and-troubleshooting",[720],{"type":56,"value":721},"SQLDW-CONSUMPTION-CORE.md § Performance: Best Practices and Troubleshooting",{"type":43,"tag":326,"props":723,"children":724},{},[725],{"type":56,"value":726},"Statistics, caching, clustering, query tips",{"type":43,"tag":299,"props":728,"children":729},{},[730,735,744],{"type":43,"tag":326,"props":731,"children":732},{},[733],{"type":56,"value":734},"Gotchas and Troubleshooting (Consumption)",{"type":43,"tag":326,"props":736,"children":737},{},[738],{"type":43,"tag":187,"props":739,"children":741},{"href":740},"..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#gotchas-and-troubleshooting-reference",[742],{"type":56,"value":743},"SQLDW-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference",{"type":43,"tag":326,"props":745,"children":746},{},[747],{"type":56,"value":748},"18 numbered issues with cause + resolution",{"type":43,"tag":299,"props":750,"children":751},{},[752,757,766],{"type":43,"tag":326,"props":753,"children":754},{},[755],{"type":56,"value":756},"Data Ingestion (DW Only)",{"type":43,"tag":326,"props":758,"children":759},{},[760],{"type":43,"tag":187,"props":761,"children":763},{"href":762},"..\u002F..\u002Fcommon\u002FSQLDW-AUTHORING-CORE.md#data-ingestion-dw-only",[764],{"type":56,"value":765},"SQLDW-AUTHORING-CORE.md § Data Ingestion (DW Only)",{"type":43,"tag":326,"props":767,"children":768},{},[769],{"type":56,"value":770},"COPY INTO, OPENROWSET, method comparison",{"type":43,"tag":299,"props":772,"children":773},{},[774,779,788],{"type":43,"tag":326,"props":775,"children":776},{},[777],{"type":56,"value":778},"Query Reference",{"type":43,"tag":326,"props":780,"children":781},{},[782],{"type":43,"tag":187,"props":783,"children":785},{"href":784},"references\u002Fquery-reference.md",[786],{"type":56,"value":787},"query-reference.md",{"type":43,"tag":326,"props":789,"children":790},{},[791],{"type":56,"value":792},"T-SQL queries, parameters, and example output for all analyses",{"type":43,"tag":299,"props":794,"children":795},{},[796,801,810],{"type":43,"tag":326,"props":797,"children":798},{},[799],{"type":56,"value":800},"Composite Recipes",{"type":43,"tag":326,"props":802,"children":803},{},[804],{"type":43,"tag":187,"props":805,"children":807},{"href":806},"..\u002F..\u002Fcommon\u002FCOMMON-CLI.md#composite-recipes",[808],{"type":56,"value":809},"COMMON-CLI.md § Composite Recipes",{"type":43,"tag":326,"props":811,"children":812},{},[],{"type":43,"tag":299,"props":814,"children":815},{},[816,821,830],{"type":43,"tag":326,"props":817,"children":818},{},[819],{"type":56,"value":820},"Item-Type Capability Matrix",{"type":43,"tag":326,"props":822,"children":823},{},[824],{"type":43,"tag":187,"props":825,"children":827},{"href":826},"..\u002F..\u002Fcommon\u002FSQLDW-CONSUMPTION-CORE.md#item-type-capability-matrix",[828],{"type":56,"value":829},"SQLDW-CONSUMPTION-CORE.md § Item-Type Capability Matrix",{"type":43,"tag":326,"props":831,"children":832},{},[833,835,840],{"type":56,"value":834},"Warehouses only — ",{"type":43,"tag":83,"props":836,"children":838},{"className":837},[],[839],{"type":56,"value":163},{"type":56,"value":841}," not available on SQLEP",{"type":43,"tag":299,"props":843,"children":844},{},[845,849,858],{"type":43,"tag":326,"props":846,"children":847},{},[848],{"type":56,"value":172},{"type":43,"tag":326,"props":850,"children":851},{},[852],{"type":43,"tag":187,"props":853,"children":855},{"href":854},"#prerequisites",[856],{"type":56,"value":857},"SKILL.md § Prerequisites",{"type":43,"tag":326,"props":859,"children":860},{},[861],{"type":56,"value":862},"Tools, auth, workspace role",{"type":43,"tag":299,"props":864,"children":865},{},[866,870,878],{"type":43,"tag":326,"props":867,"children":868},{},[869],{"type":56,"value":236},{"type":43,"tag":326,"props":871,"children":872},{},[873],{"type":43,"tag":187,"props":874,"children":875},{"href":233},[876],{"type":56,"value":877},"SKILL.md § Tool Stack",{"type":43,"tag":326,"props":879,"children":880},{},[],{"type":43,"tag":299,"props":882,"children":883},{},[884,889,898],{"type":43,"tag":326,"props":885,"children":886},{},[887],{"type":56,"value":888},"Connection",{"type":43,"tag":326,"props":890,"children":891},{},[892],{"type":43,"tag":187,"props":893,"children":895},{"href":894},"#connection",[896],{"type":56,"value":897},"SKILL.md § Connection",{"type":43,"tag":326,"props":899,"children":900},{},[],{"type":43,"tag":299,"props":902,"children":903},{},[904,909,918],{"type":43,"tag":326,"props":905,"children":906},{},[907],{"type":56,"value":908},"Performance Analysis",{"type":43,"tag":326,"props":910,"children":911},{},[912],{"type":43,"tag":187,"props":913,"children":915},{"href":914},"#performance-analysis",[916],{"type":56,"value":917},"SKILL.md § Performance Analysis",{"type":43,"tag":326,"props":919,"children":920},{},[921],{"type":56,"value":922},"Long-running queries, resource consumers, user insights, baselines",{"type":43,"tag":299,"props":924,"children":925},{},[926,931,940],{"type":43,"tag":326,"props":927,"children":928},{},[929],{"type":56,"value":930},"Deep Diagnostics",{"type":43,"tag":326,"props":932,"children":933},{},[934],{"type":43,"tag":187,"props":935,"children":937},{"href":936},"#deep-diagnostics",[938],{"type":56,"value":939},"SKILL.md § Deep Diagnostics",{"type":43,"tag":326,"props":941,"children":942},{},[943],{"type":56,"value":944},"Pressure windows, cache warmth, cluster keys",{"type":43,"tag":299,"props":946,"children":947},{},[948,953,962],{"type":43,"tag":326,"props":949,"children":950},{},[951],{"type":56,"value":952},"Fabric DW Constraints",{"type":43,"tag":326,"props":954,"children":955},{},[956],{"type":43,"tag":187,"props":957,"children":959},{"href":958},"#fabric-dw-constraints",[960],{"type":56,"value":961},"SKILL.md § Fabric DW Constraints",{"type":43,"tag":326,"props":963,"children":964},{},[965],{"type":43,"tag":52,"props":966,"children":967},{},[968],{"type":56,"value":969},"NEVER recommend unsupported features",{"type":43,"tag":299,"props":971,"children":972},{},[973,978,987],{"type":43,"tag":326,"props":974,"children":975},{},[976],{"type":56,"value":977},"Best Practices",{"type":43,"tag":326,"props":979,"children":980},{},[981],{"type":43,"tag":187,"props":982,"children":984},{"href":983},"#best-practices",[985],{"type":56,"value":986},"SKILL.md § Best Practices",{"type":43,"tag":326,"props":988,"children":989},{},[990],{"type":56,"value":991},"Monitoring-specific guidance",{"type":43,"tag":299,"props":993,"children":994},{},[995,1000,1009],{"type":43,"tag":326,"props":996,"children":997},{},[998],{"type":56,"value":999},"Agentic Workflows",{"type":43,"tag":326,"props":1001,"children":1002},{},[1003],{"type":43,"tag":187,"props":1004,"children":1006},{"href":1005},"#agentic-workflows",[1007],{"type":56,"value":1008},"SKILL.md § Agentic Workflows",{"type":43,"tag":326,"props":1010,"children":1011},{},[1012],{"type":56,"value":1013},"Common investigation patterns",{"type":43,"tag":299,"props":1015,"children":1016},{},[1017,1022,1031],{"type":43,"tag":326,"props":1018,"children":1019},{},[1020],{"type":56,"value":1021},"Gotchas, Rules, Troubleshooting",{"type":43,"tag":326,"props":1023,"children":1024},{},[1025],{"type":43,"tag":187,"props":1026,"children":1028},{"href":1027},"#gotchas-rules-troubleshooting",[1029],{"type":56,"value":1030},"SKILL.md § Gotchas, Rules, Troubleshooting",{"type":43,"tag":326,"props":1032,"children":1033},{},[1034,1039],{"type":43,"tag":52,"props":1035,"children":1036},{},[1037],{"type":56,"value":1038},"MUST DO \u002F AVOID \u002F PREFER",{"type":56,"value":1040}," checklists",{"type":43,"tag":299,"props":1042,"children":1043},{},[1044,1049,1058],{"type":43,"tag":326,"props":1045,"children":1046},{},[1047],{"type":56,"value":1048},"Examples",{"type":43,"tag":326,"props":1050,"children":1051},{},[1052],{"type":43,"tag":187,"props":1053,"children":1055},{"href":1054},"#examples",[1056],{"type":56,"value":1057},"SKILL.md § Examples",{"type":43,"tag":326,"props":1059,"children":1060},{},[1061],{"type":56,"value":1062},"Prompt\u002Fresponse pairs",{"type":43,"tag":1064,"props":1065,"children":1066},"hr",{},[],{"type":43,"tag":167,"props":1068,"children":1070},{"id":1069},"tool-stack",[1071],{"type":56,"value":236},{"type":43,"tag":48,"props":1073,"children":1074},{},[1075,1077,1081],{"type":56,"value":1076},"For installation and setup, see ",{"type":43,"tag":187,"props":1078,"children":1079},{"href":854},[1080],{"type":56,"value":172},{"type":56,"value":210},{"type":43,"tag":291,"props":1083,"children":1084},{},[1085,1101],{"type":43,"tag":295,"props":1086,"children":1087},{},[1088],{"type":43,"tag":299,"props":1089,"children":1090},{},[1091,1096],{"type":43,"tag":303,"props":1092,"children":1093},{},[1094],{"type":56,"value":1095},"Tool",{"type":43,"tag":303,"props":1097,"children":1098},{},[1099],{"type":56,"value":1100},"Role",{"type":43,"tag":319,"props":1102,"children":1103},{},[1104,1126,1145],{"type":43,"tag":299,"props":1105,"children":1106},{},[1107,1116],{"type":43,"tag":326,"props":1108,"children":1109},{},[1110,1115],{"type":43,"tag":83,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":56,"value":150},{"type":56,"value":152},{"type":43,"tag":326,"props":1117,"children":1118},{},[1119,1124],{"type":43,"tag":52,"props":1120,"children":1121},{},[1122],{"type":56,"value":1123},"Primary",{"type":56,"value":1125},": Execute monitoring T-SQL queries against Fabric SQL Endpoints. Auth handled by MCP protocol.",{"type":43,"tag":299,"props":1127,"children":1128},{},[1129,1140],{"type":43,"tag":326,"props":1130,"children":1131},{},[1132,1138],{"type":43,"tag":83,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":56,"value":1137},"az",{"type":56,"value":1139}," CLI",{"type":43,"tag":326,"props":1141,"children":1142},{},[1143],{"type":56,"value":1144},"Token acquisition, Fabric REST for workspace\u002Fitem discovery",{"type":43,"tag":299,"props":1146,"children":1147},{},[1148,1157],{"type":43,"tag":326,"props":1149,"children":1150},{},[1151],{"type":43,"tag":83,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":56,"value":1156},"jq",{"type":43,"tag":326,"props":1158,"children":1159},{},[1160,1162],{"type":56,"value":1161},"Parse JSON from ",{"type":43,"tag":83,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":56,"value":183},{"type":43,"tag":44,"props":1168,"children":1169},{},[1170],{"type":43,"tag":48,"props":1171,"children":1172},{},[1173,1178,1180,1185,1187,1192],{"type":43,"tag":52,"props":1174,"children":1175},{},[1176],{"type":56,"value":1177},"IMPORTANT — MCP vs sqlcmd:",{"type":56,"value":1179},"\nThis skill uses the ",{"type":43,"tag":83,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":56,"value":150},{"type":56,"value":1186}," MCP tool for all T-SQL execution. Do ",{"type":43,"tag":52,"props":1188,"children":1189},{},[1190],{"type":56,"value":1191},"not",{"type":56,"value":1193}," use COMMON-CLI SQL\u002FTDS\u002Fsqlcmd sections for query execution.",{"type":43,"tag":44,"props":1195,"children":1196},{},[1197,1207],{"type":43,"tag":48,"props":1198,"children":1199},{},[1200,1205],{"type":43,"tag":52,"props":1201,"children":1202},{},[1203],{"type":56,"value":1204},"Agent preflight",{"type":56,"value":1206}," — verify before first operation:",{"type":43,"tag":117,"props":1208,"children":1209},{},[1210,1245],{"type":43,"tag":72,"props":1211,"children":1212},{},[1213,1215,1220,1222,1228,1230,1235,1237,1243],{"type":56,"value":1214},"Confirm the ",{"type":43,"tag":83,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":56,"value":150},{"type":56,"value":1221}," tool is available in your tool list. This tool is provided by the ",{"type":43,"tag":83,"props":1223,"children":1225},{"className":1224},[],[1226],{"type":56,"value":1227},"fabric-sqlendpoint",{"type":56,"value":1229}," MCP server, which is registered either by installing a Fabric skills ",{"type":43,"tag":52,"props":1231,"children":1232},{},[1233],{"type":56,"value":1234},"plugin",{"type":56,"value":1236}," (the path for end users) or via this repo's ",{"type":43,"tag":83,"props":1238,"children":1240},{"className":1239},[],[1241],{"type":56,"value":1242},".mcp.json",{"type":56,"value":1244}," — other MCP clients may register it through their own configuration.",{"type":43,"tag":72,"props":1246,"children":1247},{},[1248,1250],{"type":56,"value":1249},"If no matching tool is found, the user must register the Fabric SQL Endpoint MCP server.\n",{"type":43,"tag":68,"props":1251,"children":1252},{},[1253,1269],{"type":43,"tag":72,"props":1254,"children":1255},{},[1256,1261,1263],{"type":43,"tag":52,"props":1257,"children":1258},{},[1259],{"type":56,"value":1260},"Global URL",{"type":56,"value":1262},": ",{"type":43,"tag":83,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":56,"value":1268},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fmcp\u002FdataPlane\u002FsqlEndpoint",{"type":43,"tag":72,"props":1270,"children":1271},{},[1272,1277,1278],{"type":43,"tag":52,"props":1273,"children":1274},{},[1275],{"type":56,"value":1276},"Item-scoped URL",{"type":56,"value":1262},{"type":43,"tag":83,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":56,"value":1283},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fmcp\u002FdataPlane\u002Fworkspaces\u002F{workspaceId}\u002Fitems\u002F{itemId}\u002FsqlEndpoint",{"type":43,"tag":1285,"props":1286,"children":1288},"h3",{"id":1287},"mcp-tool-signature",[1289],{"type":56,"value":1290},"MCP Tool Signature",{"type":43,"tag":1292,"props":1293,"children":1298},"pre",{"className":1294,"code":1296,"language":56,"meta":1297},[1295],"language-text","fabric-sqlendpoint-execute_query(workspaceId, itemId, query)\n","",[1299],{"type":43,"tag":83,"props":1300,"children":1301},{"__ignoreMap":1297},[1302],{"type":56,"value":1296},{"type":43,"tag":44,"props":1304,"children":1305},{},[1306],{"type":43,"tag":48,"props":1307,"children":1308},{},[1309,1314,1315,1321,1323,1328,1330,1336,1338,1344,1346,1352,1354,1360],{"type":43,"tag":52,"props":1310,"children":1311},{},[1312],{"type":56,"value":1313},"Tool name may differ:",{"type":56,"value":357},{"type":43,"tag":83,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":56,"value":1320},"execute_query",{"type":56,"value":1322}," is the logical operation. Depending on how the server is\nregistered, the concrete tool name in your tool list may be prefixed (e.g.\n",{"type":43,"tag":83,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":56,"value":150},{"type":56,"value":1329}," or ",{"type":43,"tag":83,"props":1331,"children":1333},{"className":1332},[],[1334],{"type":56,"value":1335},"sqlendpoint-global-execute_query",{"type":56,"value":1337},"). Invoke the concrete name\nshown in your tool list, always passing ",{"type":43,"tag":83,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":56,"value":1343},"workspaceId",{"type":56,"value":1345},", ",{"type":43,"tag":83,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":56,"value":1351},"itemId",{"type":56,"value":1353},", and ",{"type":43,"tag":83,"props":1355,"children":1357},{"className":1356},[],[1358],{"type":56,"value":1359},"query",{"type":56,"value":210},{"type":43,"tag":291,"props":1362,"children":1363},{},[1364,1385],{"type":43,"tag":295,"props":1365,"children":1366},{},[1367],{"type":43,"tag":299,"props":1368,"children":1369},{},[1370,1375,1380],{"type":43,"tag":303,"props":1371,"children":1372},{},[1373],{"type":56,"value":1374},"Parameter",{"type":43,"tag":303,"props":1376,"children":1377},{},[1378],{"type":56,"value":1379},"Type",{"type":43,"tag":303,"props":1381,"children":1382},{},[1383],{"type":56,"value":1384},"Description",{"type":43,"tag":319,"props":1386,"children":1387},{},[1388,1409,1429],{"type":43,"tag":299,"props":1389,"children":1390},{},[1391,1399,1404],{"type":43,"tag":326,"props":1392,"children":1393},{},[1394],{"type":43,"tag":83,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":56,"value":1343},{"type":43,"tag":326,"props":1400,"children":1401},{},[1402],{"type":56,"value":1403},"string (UUID)",{"type":43,"tag":326,"props":1405,"children":1406},{},[1407],{"type":56,"value":1408},"The workspace GUID containing the target Warehouse",{"type":43,"tag":299,"props":1410,"children":1411},{},[1412,1420,1424],{"type":43,"tag":326,"props":1413,"children":1414},{},[1415],{"type":43,"tag":83,"props":1416,"children":1418},{"className":1417},[],[1419],{"type":56,"value":1351},{"type":43,"tag":326,"props":1421,"children":1422},{},[1423],{"type":56,"value":1403},{"type":43,"tag":326,"props":1425,"children":1426},{},[1427],{"type":56,"value":1428},"The GUID of the Warehouse item",{"type":43,"tag":299,"props":1430,"children":1431},{},[1432,1440,1445],{"type":43,"tag":326,"props":1433,"children":1434},{},[1435],{"type":43,"tag":83,"props":1436,"children":1438},{"className":1437},[],[1439],{"type":56,"value":1359},{"type":43,"tag":326,"props":1441,"children":1442},{},[1443],{"type":56,"value":1444},"string",{"type":43,"tag":326,"props":1446,"children":1447},{},[1448,1450,1456],{"type":56,"value":1449},"T-SQL query text (single batch — no ",{"type":43,"tag":83,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":56,"value":1455},"GO",{"type":56,"value":1457}," separators)",{"type":43,"tag":48,"props":1459,"children":1460},{},[1461,1466],{"type":43,"tag":52,"props":1462,"children":1463},{},[1464],{"type":56,"value":1465},"Returns:",{"type":56,"value":1467}," CSV resource (RFC 4180) with tabular results + metadata text.",{"type":43,"tag":48,"props":1469,"children":1470},{},[1471,1476,1478],{"type":43,"tag":52,"props":1472,"children":1473},{},[1474],{"type":56,"value":1475},"Limits:",{"type":56,"value":1477}," 10,000 rows max | 300s timeout | 20 req\u002Fmin rate limit ",{"type":43,"tag":351,"props":1479,"children":1480},{},[1481],{"type":56,"value":1482},"(observed defaults, not a documented contract — the service can change them; verify against live 429\u002Ftimeout\u002Ftruncation responses)",{"type":43,"tag":1064,"props":1484,"children":1485},{},[],{"type":43,"tag":167,"props":1487,"children":1489},{"id":1488},"connection",[1490],{"type":56,"value":888},{"type":43,"tag":1285,"props":1492,"children":1494},{"id":1493},"discover-workspaceid-and-itemid",[1495],{"type":56,"value":1496},"Discover workspaceId and itemId",{"type":43,"tag":48,"props":1498,"children":1499},{},[1500,1502,1507],{"type":56,"value":1501},"You need the workspace GUID and warehouse GUID to call ",{"type":43,"tag":83,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":56,"value":150},{"type":56,"value":1508},":",{"type":43,"tag":1292,"props":1510,"children":1514},{"className":1511,"code":1512,"language":1513,"meta":1297,"style":1297},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 1. Find workspace ID by name (capture into WS_ID for the next call)\nWS_ID=$(az rest --method get \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\" \\\n  --query \"value[?displayName=='MyWorkspace'].id\" --output tsv)\necho \"Workspace ID: $WS_ID\"\n\n# 2. Find warehouse item ID by name\naz rest --method get \\\n  --resource \"https:\u002F\u002Fapi.fabric.microsoft.com\" \\\n  --url \"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F$WS_ID\u002Fwarehouses\" \\\n  --query \"value[?displayName=='MyWarehouse'].id\" --output tsv\n","bash",[1515],{"type":43,"tag":83,"props":1516,"children":1517},{"__ignoreMap":1297},[1518,1529,1571,1599,1625,1662,1691,1701,1710,1734,1758,1792],{"type":43,"tag":359,"props":1519,"children":1522},{"class":1520,"line":1521},"line",1,[1523],{"type":43,"tag":359,"props":1524,"children":1526},{"style":1525},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1527],{"type":56,"value":1528},"# 1. Find workspace ID by name (capture into WS_ID for the next call)\n",{"type":43,"tag":359,"props":1530,"children":1532},{"class":1520,"line":1531},2,[1533,1539,1545,1550,1556,1561,1566],{"type":43,"tag":359,"props":1534,"children":1536},{"style":1535},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1537],{"type":56,"value":1538},"WS_ID",{"type":43,"tag":359,"props":1540,"children":1542},{"style":1541},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1543],{"type":56,"value":1544},"=$(",{"type":43,"tag":359,"props":1546,"children":1548},{"style":1547},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1549],{"type":56,"value":1137},{"type":43,"tag":359,"props":1551,"children":1553},{"style":1552},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1554],{"type":56,"value":1555}," rest",{"type":43,"tag":359,"props":1557,"children":1558},{"style":1552},[1559],{"type":56,"value":1560}," --method",{"type":43,"tag":359,"props":1562,"children":1563},{"style":1552},[1564],{"type":56,"value":1565}," get",{"type":43,"tag":359,"props":1567,"children":1568},{"style":1535},[1569],{"type":56,"value":1570}," \\\n",{"type":43,"tag":359,"props":1572,"children":1574},{"class":1520,"line":1573},3,[1575,1580,1585,1590,1595],{"type":43,"tag":359,"props":1576,"children":1577},{"style":1552},[1578],{"type":56,"value":1579},"  --resource",{"type":43,"tag":359,"props":1581,"children":1582},{"style":1541},[1583],{"type":56,"value":1584}," \"",{"type":43,"tag":359,"props":1586,"children":1587},{"style":1552},[1588],{"type":56,"value":1589},"https:\u002F\u002Fapi.fabric.microsoft.com",{"type":43,"tag":359,"props":1591,"children":1592},{"style":1541},[1593],{"type":56,"value":1594},"\"",{"type":43,"tag":359,"props":1596,"children":1597},{"style":1535},[1598],{"type":56,"value":1570},{"type":43,"tag":359,"props":1600,"children":1602},{"class":1520,"line":1601},4,[1603,1608,1612,1617,1621],{"type":43,"tag":359,"props":1604,"children":1605},{"style":1552},[1606],{"type":56,"value":1607},"  --url",{"type":43,"tag":359,"props":1609,"children":1610},{"style":1541},[1611],{"type":56,"value":1584},{"type":43,"tag":359,"props":1613,"children":1614},{"style":1552},[1615],{"type":56,"value":1616},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces",{"type":43,"tag":359,"props":1618,"children":1619},{"style":1541},[1620],{"type":56,"value":1594},{"type":43,"tag":359,"props":1622,"children":1623},{"style":1535},[1624],{"type":56,"value":1570},{"type":43,"tag":359,"props":1626,"children":1628},{"class":1520,"line":1627},5,[1629,1634,1638,1643,1647,1652,1657],{"type":43,"tag":359,"props":1630,"children":1631},{"style":1552},[1632],{"type":56,"value":1633},"  --query",{"type":43,"tag":359,"props":1635,"children":1636},{"style":1541},[1637],{"type":56,"value":1584},{"type":43,"tag":359,"props":1639,"children":1640},{"style":1552},[1641],{"type":56,"value":1642},"value[?displayName=='MyWorkspace'].id",{"type":43,"tag":359,"props":1644,"children":1645},{"style":1541},[1646],{"type":56,"value":1594},{"type":43,"tag":359,"props":1648,"children":1649},{"style":1552},[1650],{"type":56,"value":1651}," --output",{"type":43,"tag":359,"props":1653,"children":1654},{"style":1552},[1655],{"type":56,"value":1656}," tsv",{"type":43,"tag":359,"props":1658,"children":1659},{"style":1541},[1660],{"type":56,"value":1661},")\n",{"type":43,"tag":359,"props":1663,"children":1665},{"class":1520,"line":1664},6,[1666,1672,1676,1681,1686],{"type":43,"tag":359,"props":1667,"children":1669},{"style":1668},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1670],{"type":56,"value":1671},"echo",{"type":43,"tag":359,"props":1673,"children":1674},{"style":1541},[1675],{"type":56,"value":1584},{"type":43,"tag":359,"props":1677,"children":1678},{"style":1552},[1679],{"type":56,"value":1680},"Workspace ID: ",{"type":43,"tag":359,"props":1682,"children":1683},{"style":1535},[1684],{"type":56,"value":1685},"$WS_ID",{"type":43,"tag":359,"props":1687,"children":1688},{"style":1541},[1689],{"type":56,"value":1690},"\"\n",{"type":43,"tag":359,"props":1692,"children":1694},{"class":1520,"line":1693},7,[1695],{"type":43,"tag":359,"props":1696,"children":1698},{"emptyLinePlaceholder":1697},true,[1699],{"type":56,"value":1700},"\n",{"type":43,"tag":359,"props":1702,"children":1704},{"class":1520,"line":1703},8,[1705],{"type":43,"tag":359,"props":1706,"children":1707},{"style":1525},[1708],{"type":56,"value":1709},"# 2. Find warehouse item ID by name\n",{"type":43,"tag":359,"props":1711,"children":1713},{"class":1520,"line":1712},9,[1714,1718,1722,1726,1730],{"type":43,"tag":359,"props":1715,"children":1716},{"style":1547},[1717],{"type":56,"value":1137},{"type":43,"tag":359,"props":1719,"children":1720},{"style":1552},[1721],{"type":56,"value":1555},{"type":43,"tag":359,"props":1723,"children":1724},{"style":1552},[1725],{"type":56,"value":1560},{"type":43,"tag":359,"props":1727,"children":1728},{"style":1552},[1729],{"type":56,"value":1565},{"type":43,"tag":359,"props":1731,"children":1732},{"style":1535},[1733],{"type":56,"value":1570},{"type":43,"tag":359,"props":1735,"children":1737},{"class":1520,"line":1736},10,[1738,1742,1746,1750,1754],{"type":43,"tag":359,"props":1739,"children":1740},{"style":1552},[1741],{"type":56,"value":1579},{"type":43,"tag":359,"props":1743,"children":1744},{"style":1541},[1745],{"type":56,"value":1584},{"type":43,"tag":359,"props":1747,"children":1748},{"style":1552},[1749],{"type":56,"value":1589},{"type":43,"tag":359,"props":1751,"children":1752},{"style":1541},[1753],{"type":56,"value":1594},{"type":43,"tag":359,"props":1755,"children":1756},{"style":1535},[1757],{"type":56,"value":1570},{"type":43,"tag":359,"props":1759,"children":1761},{"class":1520,"line":1760},11,[1762,1766,1770,1775,1779,1784,1788],{"type":43,"tag":359,"props":1763,"children":1764},{"style":1552},[1765],{"type":56,"value":1607},{"type":43,"tag":359,"props":1767,"children":1768},{"style":1541},[1769],{"type":56,"value":1584},{"type":43,"tag":359,"props":1771,"children":1772},{"style":1552},[1773],{"type":56,"value":1774},"https:\u002F\u002Fapi.fabric.microsoft.com\u002Fv1\u002Fworkspaces\u002F",{"type":43,"tag":359,"props":1776,"children":1777},{"style":1535},[1778],{"type":56,"value":1685},{"type":43,"tag":359,"props":1780,"children":1781},{"style":1552},[1782],{"type":56,"value":1783},"\u002Fwarehouses",{"type":43,"tag":359,"props":1785,"children":1786},{"style":1541},[1787],{"type":56,"value":1594},{"type":43,"tag":359,"props":1789,"children":1790},{"style":1535},[1791],{"type":56,"value":1570},{"type":43,"tag":359,"props":1793,"children":1795},{"class":1520,"line":1794},12,[1796,1800,1804,1809,1813,1817],{"type":43,"tag":359,"props":1797,"children":1798},{"style":1552},[1799],{"type":56,"value":1633},{"type":43,"tag":359,"props":1801,"children":1802},{"style":1541},[1803],{"type":56,"value":1584},{"type":43,"tag":359,"props":1805,"children":1806},{"style":1552},[1807],{"type":56,"value":1808},"value[?displayName=='MyWarehouse'].id",{"type":43,"tag":359,"props":1810,"children":1811},{"style":1541},[1812],{"type":56,"value":1594},{"type":43,"tag":359,"props":1814,"children":1815},{"style":1552},[1816],{"type":56,"value":1651},{"type":43,"tag":359,"props":1818,"children":1819},{"style":1552},[1820],{"type":56,"value":1821}," tsv\n",{"type":43,"tag":1285,"props":1823,"children":1825},{"id":1824},"execute-a-monitoring-query",[1826],{"type":56,"value":1827},"Execute a Monitoring Query",{"type":43,"tag":1292,"props":1829,"children":1832},{"className":1830,"code":1831,"language":56,"meta":1297},[1295],"fabric-sqlendpoint-execute_query(\n  workspaceId: \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  itemId: \"11111111-2222-3333-4444-555555555555\",\n  query: \"SELECT TOP 5 * FROM queryinsights.long_running_queries ORDER BY last_run_total_elapsed_time_ms DESC\"\n)\n",[1833],{"type":43,"tag":83,"props":1834,"children":1835},{"__ignoreMap":1297},[1836],{"type":56,"value":1831},{"type":43,"tag":48,"props":1838,"children":1839},{},[1840,1845],{"type":43,"tag":52,"props":1841,"children":1842},{},[1843],{"type":56,"value":1844},"No additional connection setup needed",{"type":56,"value":1846}," — authentication is handled transparently by the MCP protocol.",{"type":43,"tag":1064,"props":1848,"children":1849},{},[],{"type":43,"tag":167,"props":1851,"children":1853},{"id":1852},"performance-analysis",[1854],{"type":56,"value":908},{"type":43,"tag":48,"props":1856,"children":1857},{},[1858,1860,1864],{"type":56,"value":1859},"All SQL queries, parameters, return fields, and response formatting are in ",{"type":43,"tag":187,"props":1861,"children":1862},{"href":784},[1863],{"type":56,"value":787},{"type":56,"value":210},{"type":43,"tag":1285,"props":1866,"children":1868},{"id":1867},"long-running-queries-summary",[1869],{"type":56,"value":1870},"Long-Running Queries Summary",{"type":43,"tag":48,"props":1872,"children":1873},{},[1874,1876,1882,1884,1890],{"type":56,"value":1875},"Find the slowest queries from ",{"type":43,"tag":83,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":56,"value":1881},"queryinsights.long_running_queries",{"type":56,"value":1883},". See ",{"type":43,"tag":187,"props":1885,"children":1887},{"href":1886},"references\u002Fquery-reference.md#long-running-queries-summary",[1888],{"type":56,"value":1889},"query-reference.md § Long-Running Queries Summary",{"type":56,"value":1891}," for SQL and formatting.",{"type":43,"tag":1285,"props":1893,"children":1895},{"id":1894},"top-resource-consumers",[1896],{"type":56,"value":1897},"Top Resource Consumers",{"type":43,"tag":48,"props":1899,"children":1900},{},[1901,1903,1909,1910,1916],{"type":56,"value":1902},"Find CPU- and storage-heavy queries from ",{"type":43,"tag":83,"props":1904,"children":1906},{"className":1905},[],[1907],{"type":56,"value":1908},"queryinsights.exec_requests_history",{"type":56,"value":1883},{"type":43,"tag":187,"props":1911,"children":1913},{"href":1912},"references\u002Fquery-reference.md#top-resource-consumers",[1914],{"type":56,"value":1915},"query-reference.md § Top Resource Consumers",{"type":56,"value":1917}," for SQL, thresholds, and formatting.",{"type":43,"tag":48,"props":1919,"children":1920},{},[1921],{"type":43,"tag":52,"props":1922,"children":1923},{},[1924],{"type":56,"value":1925},"Recommendation thresholds:",{"type":43,"tag":68,"props":1927,"children":1928},{},[1929,1934,1939,1944],{"type":43,"tag":72,"props":1930,"children":1931},{},[1932],{"type":56,"value":1933},"Remote scans > 1,000 MB → review data layout, consider clustering",{"type":43,"tag":72,"props":1935,"children":1936},{},[1937],{"type":56,"value":1938},"CPU > 5,000,000 ms → review query logic",{"type":43,"tag":72,"props":1940,"children":1941},{},[1942],{"type":56,"value":1943},"Elapsed > 300,000 ms → check joins, filters, statistics",{"type":43,"tag":72,"props":1945,"children":1946},{},[1947,1949],{"type":56,"value":1948},"Reference: ",{"type":43,"tag":187,"props":1950,"children":1954},{"href":1951,"rel":1952},"https:\u002F\u002Flearn.microsoft.com\u002Ffabric\u002Fdata-warehouse\u002Fguidelines-warehouse-performance",[1953],"nofollow",[1955],{"type":56,"value":1956},"Performance guidelines",{"type":43,"tag":1285,"props":1958,"children":1960},{"id":1959},"top-users-insights",[1961],{"type":56,"value":1962},"Top Users Insights",{"type":43,"tag":48,"props":1964,"children":1965},{},[1966,1968,1974],{"type":56,"value":1967},"Analyze user activity and query patterns. See ",{"type":43,"tag":187,"props":1969,"children":1971},{"href":1970},"references\u002Fquery-reference.md#top-users-insights",[1972],{"type":56,"value":1973},"query-reference.md § Top Users Insights",{"type":56,"value":1975}," for SQL and classification logic.",{"type":43,"tag":1285,"props":1977,"children":1979},{"id":1978},"compare-recent-vs-baseline",[1980],{"type":56,"value":1981},"Compare Recent vs Baseline",{"type":43,"tag":48,"props":1983,"children":1984},{},[1985,1987,1993],{"type":56,"value":1986},"Detect performance regressions by comparing recent window against historical baseline. See ",{"type":43,"tag":187,"props":1988,"children":1990},{"href":1989},"references\u002Fquery-reference.md#compare-recent-vs-baseline",[1991],{"type":56,"value":1992},"query-reference.md § Compare Recent vs Baseline",{"type":56,"value":1891},{"type":43,"tag":1285,"props":1995,"children":1997},{"id":1996},"recent-queries",[1998],{"type":56,"value":1999},"Recent Queries",{"type":43,"tag":48,"props":2001,"children":2002},{},[2003,2005,2011],{"type":56,"value":2004},"Retrieve the most recently executed queries. See ",{"type":43,"tag":187,"props":2006,"children":2008},{"href":2007},"references\u002Fquery-reference.md#recent-queries",[2009],{"type":56,"value":2010},"query-reference.md § Recent Queries",{"type":56,"value":2012}," for SQL.",{"type":43,"tag":1285,"props":2014,"children":2016},{"id":2015},"search-query-patterns",[2017],{"type":56,"value":2018},"Search Query Patterns",{"type":43,"tag":48,"props":2020,"children":2021},{},[2022,2024,2030],{"type":56,"value":2023},"Search historical query patterns by table name, column, or keyword. See ",{"type":43,"tag":187,"props":2025,"children":2027},{"href":2026},"references\u002Fquery-reference.md#search-query-patterns",[2028],{"type":56,"value":2029},"query-reference.md § Search Query Patterns",{"type":56,"value":2012},{"type":43,"tag":1064,"props":2032,"children":2033},{},[],{"type":43,"tag":167,"props":2035,"children":2037},{"id":2036},"deep-diagnostics",[2038],{"type":56,"value":930},{"type":43,"tag":48,"props":2040,"children":2041},{},[2042,2044,2048],{"type":56,"value":2043},"All SQL queries for diagnostics are in ",{"type":43,"tag":187,"props":2045,"children":2046},{"href":784},[2047],{"type":56,"value":787},{"type":56,"value":210},{"type":43,"tag":1285,"props":2050,"children":2052},{"id":2051},"analyze-long-running-query-plans",[2053],{"type":56,"value":2054},"Analyze Long-Running Query Plans",{"type":43,"tag":48,"props":2056,"children":2057},{},[2058,2060,2066],{"type":56,"value":2059},"See ",{"type":43,"tag":187,"props":2061,"children":2063},{"href":2062},"references\u002Fquery-reference.md#long-running-query-analysis",[2064],{"type":56,"value":2065},"query-reference.md § Long-Running Query Analysis",{"type":56,"value":2012},{"type":43,"tag":48,"props":2068,"children":2069},{},[2070,2075],{"type":43,"tag":52,"props":2071,"children":2072},{},[2073],{"type":56,"value":2074},"Analysis guidance",{"type":56,"value":2076}," — when reviewing slow queries, check:",{"type":43,"tag":68,"props":2078,"children":2079},{},[2080,2093,2105],{"type":43,"tag":72,"props":2081,"children":2082},{},[2083,2085,2091],{"type":56,"value":2084},"High ",{"type":43,"tag":83,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":56,"value":2090},"data_scanned_remote_storage_mb",{"type":56,"value":2092}," → data layout issues (run OPTIMIZE, consider clustering)",{"type":43,"tag":72,"props":2094,"children":2095},{},[2096,2097,2103],{"type":56,"value":2084},{"type":43,"tag":83,"props":2098,"children":2100},{"className":2099},[],[2101],{"type":56,"value":2102},"allocated_cpu_time_ms",{"type":56,"value":2104}," relative to elapsed → CPU-bound (simplify joins, reduce columns)",{"type":43,"tag":72,"props":2106,"children":2107},{},[2108],{"type":56,"value":2109},"High elapsed but low CPU → waiting on resources (check for pressure windows)",{"type":43,"tag":1285,"props":2111,"children":2113},{"id":2112},"analyze-pressure-window-queries",[2114],{"type":56,"value":2115},"Analyze Pressure Window Queries",{"type":43,"tag":48,"props":2117,"children":2118},{},[2119,2121,2127,2129,2135],{"type":56,"value":2120},"Identify SQL pool pressure events using ",{"type":43,"tag":83,"props":2122,"children":2124},{"className":2123},[],[2125],{"type":56,"value":2126},"queryinsights.sql_pool_insights",{"type":56,"value":2128}," and correlate with the heaviest queries running during those windows. See ",{"type":43,"tag":187,"props":2130,"children":2132},{"href":2131},"references\u002Fquery-reference.md#pressure-window-analysis",[2133],{"type":56,"value":2134},"query-reference.md § Pressure Window Analysis",{"type":56,"value":2136}," for the two-step SQL.",{"type":43,"tag":48,"props":2138,"children":2139},{},[2140,2145,2147,2153,2155,2161],{"type":43,"tag":52,"props":2141,"children":2142},{},[2143],{"type":56,"value":2144},"Usage:",{"type":56,"value":2146}," Step 1 returns pressure windows with ",{"type":43,"tag":83,"props":2148,"children":2150},{"className":2149},[],[2151],{"type":56,"value":2152},"window_start",{"type":56,"value":2154}," and ",{"type":43,"tag":83,"props":2156,"children":2158},{"className":2157},[],[2159],{"type":56,"value":2160},"window_end",{"type":56,"value":2162}," timestamps. Substitute those actual timestamp values into Step 2's WHERE clause to find overlapping queries.",{"type":43,"tag":48,"props":2164,"children":2165},{},[2166,2171],{"type":43,"tag":52,"props":2167,"children":2168},{},[2169],{"type":56,"value":2170},"Global recommendations",{"type":56,"value":2172}," — based on aggregate pressure analysis:",{"type":43,"tag":68,"props":2174,"children":2175},{},[2176,2181,2186],{"type":43,"tag":72,"props":2177,"children":2178},{},[2179],{"type":56,"value":2180},"If SELECT pool has more pressure → read-heavy workload, suggest caching and column pruning",{"type":43,"tag":72,"props":2182,"children":2183},{},[2184],{"type":56,"value":2185},"If NONSELECT pool has more pressure → write-heavy, suggest batching and COPY INTO",{"type":43,"tag":72,"props":2187,"children":2188},{},[2189],{"type":56,"value":2190},"If total pressure > 60 min → suggest scaling capacity or staggering workloads",{"type":43,"tag":1285,"props":2192,"children":2194},{"id":2193},"analyze-query-cache-warmth",[2195],{"type":56,"value":2196},"Analyze Query Cache Warmth",{"type":43,"tag":48,"props":2198,"children":2199},{},[2200,2201,2207],{"type":56,"value":2059},{"type":43,"tag":187,"props":2202,"children":2204},{"href":2203},"references\u002Fquery-reference.md#cache-warmth-analysis",[2205],{"type":56,"value":2206},"query-reference.md § Cache Warmth Analysis",{"type":56,"value":2012},{"type":43,"tag":48,"props":2209,"children":2210},{},[2211,2216,2218,2224],{"type":43,"tag":52,"props":2212,"children":2213},{},[2214],{"type":56,"value":2215},"Classification logic",{"type":56,"value":2217}," — for each execution, compute ",{"type":43,"tag":83,"props":2219,"children":2221},{"className":2220},[],[2222],{"type":56,"value":2223},"total_mb = remote + memory + disk",{"type":56,"value":1508},{"type":43,"tag":68,"props":2226,"children":2227},{},[2228,2244,2261],{"type":43,"tag":72,"props":2229,"children":2230},{},[2231,2237,2239],{"type":43,"tag":83,"props":2232,"children":2234},{"className":2233},[],[2235],{"type":56,"value":2236},"result_cache_hit = 1",{"type":56,"value":2238}," → ",{"type":43,"tag":52,"props":2240,"children":2241},{},[2242],{"type":56,"value":2243},"cached",{"type":43,"tag":72,"props":2245,"children":2246},{},[2247,2253,2254,2259],{"type":43,"tag":83,"props":2248,"children":2250},{"className":2249},[],[2251],{"type":56,"value":2252},"remote_mb \u002F total_mb > 0.8",{"type":56,"value":2238},{"type":43,"tag":52,"props":2255,"children":2256},{},[2257],{"type":56,"value":2258},"cold",{"type":56,"value":2260}," (>80% from remote storage)",{"type":43,"tag":72,"props":2262,"children":2263},{},[2264,2270,2271,2276],{"type":43,"tag":83,"props":2265,"children":2267},{"className":2266},[],[2268],{"type":56,"value":2269},"(memory_mb + disk_mb) \u002F total_mb > 0.8",{"type":56,"value":2238},{"type":43,"tag":52,"props":2272,"children":2273},{},[2274],{"type":56,"value":2275},"warm",{"type":56,"value":2277}," (>80% from cache)",{"type":43,"tag":48,"props":2279,"children":2280},{},[2281],{"type":43,"tag":52,"props":2282,"children":2283},{},[2284],{"type":56,"value":2285},"Recommendations:",{"type":43,"tag":68,"props":2287,"children":2288},{},[2289,2300],{"type":43,"tag":72,"props":2290,"children":2291},{},[2292,2294],{"type":56,"value":2293},"Over 50% cold runs → Enable result set caching: ",{"type":43,"tag":83,"props":2295,"children":2297},{"className":2296},[],[2298],{"type":56,"value":2299},"ALTER DATABASE SET RESULT_SET_CACHING ON;",{"type":43,"tag":72,"props":2301,"children":2302},{},[2303,2305,2311,2313,2319],{"type":56,"value":2304},"Always-cold patterns → Check for ",{"type":43,"tag":83,"props":2306,"children":2308},{"className":2307},[],[2309],{"type":56,"value":2310},"GETDATE()",{"type":56,"value":2312},"\u002F",{"type":43,"tag":83,"props":2314,"children":2316},{"className":2315},[],[2317],{"type":56,"value":2318},"GETUTCDATE()",{"type":56,"value":2320}," or volatile functions that bust the cache key",{"type":43,"tag":1285,"props":2322,"children":2324},{"id":2323},"recommend-cluster-keys",[2325],{"type":56,"value":2326},"Recommend Cluster Keys",{"type":43,"tag":48,"props":2328,"children":2329},{},[2330,2331,2337],{"type":56,"value":2059},{"type":43,"tag":187,"props":2332,"children":2334},{"href":2333},"references\u002Fquery-reference.md#cluster-key-recommendations",[2335],{"type":56,"value":2336},"query-reference.md § Cluster Key Recommendations",{"type":56,"value":2012},{"type":43,"tag":48,"props":2339,"children":2340},{},[2341],{"type":43,"tag":52,"props":2342,"children":2343},{},[2344],{"type":56,"value":2345},"Key rules:",{"type":43,"tag":68,"props":2347,"children":2348},{},[2349,2374,2379,2384],{"type":43,"tag":72,"props":2350,"children":2351},{},[2352,2354,2360,2362,2368,2370],{"type":56,"value":2353},"Only ",{"type":43,"tag":83,"props":2355,"children":2357},{"className":2356},[],[2358],{"type":56,"value":2359},"WHERE",{"type":56,"value":2361}," predicates benefit from clustering — equality ",{"type":43,"tag":83,"props":2363,"children":2365},{"className":2364},[],[2366],{"type":56,"value":2367},"JOIN ON",{"type":56,"value":2369}," conditions do ",{"type":43,"tag":52,"props":2371,"children":2372},{},[2373],{"type":56,"value":1191},{"type":43,"tag":72,"props":2375,"children":2376},{},[2377],{"type":56,"value":2378},"Prefer mid-to-high cardinality columns (many distinct values)",{"type":43,"tag":72,"props":2380,"children":2381},{},[2382],{"type":56,"value":2383},"Maximum 4 clustering columns",{"type":43,"tag":72,"props":2385,"children":2386},{},[2387,2389,2395,2396,2402],{"type":56,"value":2388},"Use CTAS with ",{"type":43,"tag":83,"props":2390,"children":2392},{"className":2391},[],[2393],{"type":56,"value":2394},"WITH (CLUSTER BY (...))",{"type":56,"value":349},{"type":43,"tag":83,"props":2397,"children":2399},{"className":2398},[],[2400],{"type":56,"value":2401},"ALTER TABLE",{"type":56,"value":2403}," is not supported",{"type":43,"tag":48,"props":2405,"children":2406},{},[2407,2412,2414,2418,2420,2426],{"type":43,"tag":52,"props":2408,"children":2409},{},[2410],{"type":56,"value":2411},"To apply clustering",{"type":56,"value":2413}," — see ",{"type":43,"tag":187,"props":2415,"children":2416},{"href":2333},[2417],{"type":56,"value":2336},{"type":56,"value":2419}," for CTAS creation, ",{"type":43,"tag":83,"props":2421,"children":2423},{"className":2422},[],[2424],{"type":56,"value":2425},"sp_rename",{"type":56,"value":2427}," table swap, and verification SQL.",{"type":43,"tag":44,"props":2429,"children":2430},{},[2431],{"type":43,"tag":48,"props":2432,"children":2433},{},[2434,2439,2441,2447,2448,2454,2456,2461,2462,2467],{"type":43,"tag":52,"props":2435,"children":2436},{},[2437],{"type":56,"value":2438},"Note:",{"type":56,"value":2440}," Fabric does not support ",{"type":43,"tag":83,"props":2442,"children":2444},{"className":2443},[],[2445],{"type":56,"value":2446},"ALTER TABLE SET DATA_CLUSTERING_KEY",{"type":56,"value":1329},{"type":43,"tag":83,"props":2449,"children":2451},{"className":2450},[],[2452],{"type":56,"value":2453},"RENAME OBJECT",{"type":56,"value":2455},". Always use CTAS with ",{"type":43,"tag":83,"props":2457,"children":2459},{"className":2458},[],[2460],{"type":56,"value":2394},{"type":56,"value":2154},{"type":43,"tag":83,"props":2463,"children":2465},{"className":2464},[],[2466],{"type":56,"value":2425},{"type":56,"value":2468}," for table swaps.",{"type":43,"tag":1064,"props":2470,"children":2471},{},[],{"type":43,"tag":167,"props":2473,"children":2475},{"id":2474},"fabric-dw-constraints",[2476],{"type":56,"value":952},{"type":43,"tag":48,"props":2478,"children":2479},{},[2480,2485],{"type":43,"tag":52,"props":2481,"children":2482},{},[2483],{"type":56,"value":2484},"NEVER recommend features not supported in Fabric Data Warehouse.",{"type":56,"value":2486}," Always consult this list before making optimization suggestions.",{"type":43,"tag":291,"props":2488,"children":2489},{},[2490,2511],{"type":43,"tag":295,"props":2491,"children":2492},{},[2493],{"type":43,"tag":299,"props":2494,"children":2495},{},[2496,2501,2506],{"type":43,"tag":303,"props":2497,"children":2498},{},[2499],{"type":56,"value":2500},"Do NOT Recommend",{"type":43,"tag":303,"props":2502,"children":2503},{},[2504],{"type":56,"value":2505},"Why",{"type":43,"tag":303,"props":2507,"children":2508},{},[2509],{"type":56,"value":2510},"Recommend Instead",{"type":43,"tag":319,"props":2512,"children":2513},{},[2514,2532,2549,2566,2583,2608,2632,2650,2667,2684,2701],{"type":43,"tag":299,"props":2515,"children":2516},{},[2517,2522,2527],{"type":43,"tag":326,"props":2518,"children":2519},{},[2520],{"type":56,"value":2521},"Nonclustered indexes",{"type":43,"tag":326,"props":2523,"children":2524},{},[2525],{"type":56,"value":2526},"Not supported",{"type":43,"tag":326,"props":2528,"children":2529},{},[2530],{"type":56,"value":2531},"V-Order, column pruning, predicate pushdown",{"type":43,"tag":299,"props":2533,"children":2534},{},[2535,2540,2544],{"type":43,"tag":326,"props":2536,"children":2537},{},[2538],{"type":56,"value":2539},"Materialized views",{"type":43,"tag":326,"props":2541,"children":2542},{},[2543],{"type":56,"value":2526},{"type":43,"tag":326,"props":2545,"children":2546},{},[2547],{"type":56,"value":2548},"Standard views or result set caching",{"type":43,"tag":299,"props":2550,"children":2551},{},[2552,2557,2561],{"type":43,"tag":326,"props":2553,"children":2554},{},[2555],{"type":56,"value":2556},"Index hints (FORCESEEK\u002FFORCESCAN)",{"type":43,"tag":326,"props":2558,"children":2559},{},[2560],{"type":56,"value":2526},{"type":43,"tag":326,"props":2562,"children":2563},{},[2564],{"type":56,"value":2565},"Simplify query structure",{"type":43,"tag":299,"props":2567,"children":2568},{},[2569,2574,2578],{"type":43,"tag":326,"props":2570,"children":2571},{},[2572],{"type":56,"value":2573},"Multi-column statistics",{"type":43,"tag":326,"props":2575,"children":2576},{},[2577],{"type":56,"value":2526},{"type":43,"tag":326,"props":2579,"children":2580},{},[2581],{"type":56,"value":2582},"Single-column statistics on key columns",{"type":43,"tag":299,"props":2584,"children":2585},{},[2586,2594,2598],{"type":43,"tag":326,"props":2587,"children":2588},{},[2589],{"type":43,"tag":83,"props":2590,"children":2592},{"className":2591},[],[2593],{"type":56,"value":2446},{"type":43,"tag":326,"props":2595,"children":2596},{},[2597],{"type":56,"value":2526},{"type":43,"tag":326,"props":2599,"children":2600},{},[2601,2603],{"type":56,"value":2602},"CTAS with ",{"type":43,"tag":83,"props":2604,"children":2606},{"className":2605},[],[2607],{"type":56,"value":2394},{"type":43,"tag":299,"props":2609,"children":2610},{},[2611,2619,2623],{"type":43,"tag":326,"props":2612,"children":2613},{},[2614],{"type":43,"tag":83,"props":2615,"children":2617},{"className":2616},[],[2618],{"type":56,"value":2453},{"type":43,"tag":326,"props":2620,"children":2621},{},[2622],{"type":56,"value":2526},{"type":43,"tag":326,"props":2624,"children":2625},{},[2626],{"type":43,"tag":83,"props":2627,"children":2629},{"className":2628},[],[2630],{"type":56,"value":2631},"EXEC sp_rename 'schema.old', 'new'",{"type":43,"tag":299,"props":2633,"children":2634},{},[2635,2640,2645],{"type":43,"tag":326,"props":2636,"children":2637},{},[2638],{"type":56,"value":2639},"Change isolation level",{"type":43,"tag":326,"props":2641,"children":2642},{},[2643],{"type":56,"value":2644},"Snapshot only",{"type":43,"tag":326,"props":2646,"children":2647},{},[2648],{"type":56,"value":2649},"Fabric uses snapshot isolation exclusively",{"type":43,"tag":299,"props":2651,"children":2652},{},[2653,2658,2662],{"type":43,"tag":326,"props":2654,"children":2655},{},[2656],{"type":56,"value":2657},"CREATE USER",{"type":43,"tag":326,"props":2659,"children":2660},{},[2661],{"type":56,"value":2526},{"type":43,"tag":326,"props":2663,"children":2664},{},[2665],{"type":56,"value":2666},"Manage users via Fabric workspace",{"type":43,"tag":299,"props":2668,"children":2669},{},[2670,2675,2679],{"type":43,"tag":326,"props":2671,"children":2672},{},[2673],{"type":56,"value":2674},"Triggers",{"type":43,"tag":326,"props":2676,"children":2677},{},[2678],{"type":56,"value":2526},{"type":43,"tag":326,"props":2680,"children":2681},{},[2682],{"type":56,"value":2683},"Application logic or Fabric pipelines",{"type":43,"tag":299,"props":2685,"children":2686},{},[2687,2692,2696],{"type":43,"tag":326,"props":2688,"children":2689},{},[2690],{"type":56,"value":2691},"Recursive CTEs",{"type":43,"tag":326,"props":2693,"children":2694},{},[2695],{"type":56,"value":2526},{"type":43,"tag":326,"props":2697,"children":2698},{},[2699],{"type":56,"value":2700},"Iterative approach",{"type":43,"tag":299,"props":2702,"children":2703},{},[2704,2709,2714],{"type":43,"tag":326,"props":2705,"children":2706},{},[2707],{"type":56,"value":2708},"\"Enable Query Insights\" setting",{"type":43,"tag":326,"props":2710,"children":2711},{},[2712],{"type":56,"value":2713},"Query Insights is always on — there is no setting",{"type":43,"tag":326,"props":2715,"children":2716},{},[2717],{"type":56,"value":2718},"If access is denied, the user needs Admin or Member workspace role",{"type":43,"tag":1064,"props":2720,"children":2721},{},[],{"type":43,"tag":167,"props":2723,"children":2725},{"id":2724},"agentic-workflows",[2726],{"type":56,"value":999},{"type":43,"tag":1285,"props":2728,"children":2730},{"id":2729},"workflow-1-why-is-my-warehouse-slow",[2731],{"type":56,"value":2732},"Workflow 1: \"Why is my warehouse slow?\"",{"type":43,"tag":117,"props":2734,"children":2735},{},[2736,2746,2756,2766,2776],{"type":43,"tag":72,"props":2737,"children":2738},{},[2739,2744],{"type":43,"tag":52,"props":2740,"children":2741},{},[2742],{"type":56,"value":2743},"Check for pressure events",{"type":56,"value":2745}," → Run the pressure window analysis query (last 24h)",{"type":43,"tag":72,"props":2747,"children":2748},{},[2749,2754],{"type":43,"tag":52,"props":2750,"children":2751},{},[2752],{"type":56,"value":2753},"Find the heaviest queries",{"type":56,"value":2755}," → Run top resource consumers query (last 1h)",{"type":43,"tag":72,"props":2757,"children":2758},{},[2759,2764],{"type":43,"tag":52,"props":2760,"children":2761},{},[2762],{"type":56,"value":2763},"Analyze slow queries",{"type":56,"value":2765}," → Run long-running queries analysis",{"type":43,"tag":72,"props":2767,"children":2768},{},[2769,2774],{"type":43,"tag":52,"props":2770,"children":2771},{},[2772],{"type":56,"value":2773},"Check cache behavior",{"type":56,"value":2775}," → Run cache warmth analysis (last 24h)",{"type":43,"tag":72,"props":2777,"children":2778},{},[2779,2784],{"type":43,"tag":52,"props":2780,"children":2781},{},[2782],{"type":56,"value":2783},"Recommend clustering",{"type":56,"value":2785}," → Run cluster key recommendation queries",{"type":43,"tag":1285,"props":2787,"children":2789},{"id":2788},"workflow-2-has-performance-degraded",[2790],{"type":56,"value":2791},"Workflow 2: \"Has performance degraded?\"",{"type":43,"tag":117,"props":2793,"children":2794},{},[2795,2805,2815],{"type":43,"tag":72,"props":2796,"children":2797},{},[2798,2803],{"type":43,"tag":52,"props":2799,"children":2800},{},[2801],{"type":56,"value":2802},"Compare against baseline",{"type":56,"value":2804}," → Run recent vs baseline comparison (1h vs 7-day)",{"type":43,"tag":72,"props":2806,"children":2807},{},[2808,2813],{"type":43,"tag":52,"props":2809,"children":2810},{},[2811],{"type":56,"value":2812},"Identify new slow queries",{"type":56,"value":2814}," → Run long-running queries summary (top 5)",{"type":43,"tag":72,"props":2816,"children":2817},{},[2818,2823],{"type":43,"tag":52,"props":2819,"children":2820},{},[2821],{"type":56,"value":2822},"Check user patterns",{"type":56,"value":2824}," → Run top users insights (last 24h)",{"type":43,"tag":1285,"props":2826,"children":2828},{"id":2827},"workflow-3-optimize-my-warehouse",[2829],{"type":56,"value":2830},"Workflow 3: \"Optimize my warehouse\"",{"type":43,"tag":117,"props":2832,"children":2833},{},[2834,2848,2858,2866],{"type":43,"tag":72,"props":2835,"children":2836},{},[2837,2842,2844],{"type":43,"tag":52,"props":2838,"children":2839},{},[2840],{"type":56,"value":2841},"Review best practices",{"type":56,"value":2843}," → See ",{"type":43,"tag":187,"props":2845,"children":2846},{"href":718},[2847],{"type":56,"value":721},{"type":43,"tag":72,"props":2849,"children":2850},{},[2851,2856],{"type":43,"tag":52,"props":2852,"children":2853},{},[2854],{"type":56,"value":2855},"Find optimization targets",{"type":56,"value":2857}," → Run top resource consumers (last 24h)",{"type":43,"tag":72,"props":2859,"children":2860},{},[2861,2865],{"type":43,"tag":52,"props":2862,"children":2863},{},[2864],{"type":56,"value":2783},{"type":56,"value":2785},{"type":43,"tag":72,"props":2867,"children":2868},{},[2869,2874],{"type":43,"tag":52,"props":2870,"children":2871},{},[2872],{"type":56,"value":2873},"Analyze cold-start queries",{"type":56,"value":2875}," → Run cache warmth analysis",{"type":43,"tag":1285,"props":2877,"children":2879},{"id":2878},"workflow-4-what-are-people-running",[2880],{"type":56,"value":2881},"Workflow 4: \"What are people running?\"",{"type":43,"tag":117,"props":2883,"children":2884},{},[2885,2895,2904],{"type":43,"tag":72,"props":2886,"children":2887},{},[2888,2893],{"type":43,"tag":52,"props":2889,"children":2890},{},[2891],{"type":56,"value":2892},"Recent activity",{"type":56,"value":2894}," → Run recent queries (top 10)",{"type":43,"tag":72,"props":2896,"children":2897},{},[2898,2903],{"type":43,"tag":52,"props":2899,"children":2900},{},[2901],{"type":56,"value":2902},"User patterns",{"type":56,"value":2824},{"type":43,"tag":72,"props":2905,"children":2906},{},[2907,2912],{"type":43,"tag":52,"props":2908,"children":2909},{},[2910],{"type":56,"value":2911},"Search for specific patterns",{"type":56,"value":2913}," → Run query pattern search with search term",{"type":43,"tag":1064,"props":2915,"children":2916},{},[],{"type":43,"tag":167,"props":2918,"children":2920},{"id":2919},"best-practices",[2921],{"type":56,"value":977},{"type":43,"tag":48,"props":2923,"children":2924},{},[2925,2927,2931,2933,2939],{"type":56,"value":2926},"For comprehensive Fabric DW best practices, see ",{"type":43,"tag":187,"props":2928,"children":2929},{"href":718},[2930],{"type":56,"value":721},{"type":56,"value":2932}," and the ",{"type":43,"tag":187,"props":2934,"children":2936},{"href":1951,"rel":2935},[1953],[2937],{"type":56,"value":2938},"Fabric guidelines",{"type":56,"value":210},{"type":43,"tag":48,"props":2941,"children":2942},{},[2943],{"type":43,"tag":52,"props":2944,"children":2945},{},[2946],{"type":56,"value":2947},"Monitoring-specific best practices:",{"type":43,"tag":68,"props":2949,"children":2950},{},[2951,2961,2971,2989,2999,3023,3039,3049],{"type":43,"tag":72,"props":2952,"children":2953},{},[2954,2959],{"type":43,"tag":52,"props":2955,"children":2956},{},[2957],{"type":56,"value":2958},"Start broad, then drill down",{"type":56,"value":2960}," — begin with long-running queries summary and baseline comparison before deep diagnostics",{"type":43,"tag":72,"props":2962,"children":2963},{},[2964,2969],{"type":43,"tag":52,"props":2965,"children":2966},{},[2967],{"type":56,"value":2968},"Use pressure window analysis",{"type":56,"value":2970}," for root-cause analysis rather than guessing at bottlenecks",{"type":43,"tag":72,"props":2972,"children":2973},{},[2974,2979,2981,2987],{"type":43,"tag":52,"props":2975,"children":2976},{},[2977],{"type":56,"value":2978},"Label all agent queries",{"type":56,"value":2980}," with ",{"type":43,"tag":83,"props":2982,"children":2984},{"className":2983},[],[2985],{"type":56,"value":2986},"OPTION (LABEL = 'AGENTCLI_MONITOR_...')",{"type":56,"value":2988}," for tracing in Query Insights",{"type":43,"tag":72,"props":2990,"children":2991},{},[2992,2997],{"type":43,"tag":52,"props":2993,"children":2994},{},[2995],{"type":56,"value":2996},"Prefer mid-to-high cardinality columns",{"type":56,"value":2998}," for clustering keys — low cardinality columns offer limited file-skipping benefit",{"type":43,"tag":72,"props":3000,"children":3001},{},[3002,3014,3016,3021],{"type":43,"tag":52,"props":3003,"children":3004},{},[3005,3007,3012],{"type":56,"value":3006},"Use ",{"type":43,"tag":83,"props":3008,"children":3010},{"className":3009},[],[3011],{"type":56,"value":2359},{"type":56,"value":3013}," predicates",{"type":56,"value":3015}," to identify cluster key candidates — equality ",{"type":43,"tag":83,"props":3017,"children":3019},{"className":3018},[],[3020],{"type":56,"value":2367},{"type":56,"value":3022}," conditions do not benefit from clustering",{"type":43,"tag":72,"props":3024,"children":3025},{},[3026,3031,3033],{"type":43,"tag":52,"props":3027,"children":3028},{},[3029],{"type":56,"value":3030},"Always verify clustering",{"type":56,"value":3032}," after CTAS by querying ",{"type":43,"tag":83,"props":3034,"children":3036},{"className":3035},[],[3037],{"type":56,"value":3038},"sys.index_columns.data_clustering_ordinal",{"type":43,"tag":72,"props":3040,"children":3041},{},[3042,3047],{"type":43,"tag":52,"props":3043,"children":3044},{},[3045],{"type":56,"value":3046},"Check cold vs warm cache",{"type":56,"value":3048}," before concluding a query is inherently slow — first execution may be a cold start",{"type":43,"tag":72,"props":3050,"children":3051},{},[3052,3057,3059,3065],{"type":43,"tag":52,"props":3053,"children":3054},{},[3055],{"type":56,"value":3056},"Adjust time windows",{"type":56,"value":3058}," (",{"type":43,"tag":83,"props":3060,"children":3062},{"className":3061},[],[3063],{"type":56,"value":3064},"DATEADD",{"type":56,"value":3066}," parameters) to match user's investigation scope — don't default to arbitrary windows",{"type":43,"tag":1064,"props":3068,"children":3069},{},[],{"type":43,"tag":167,"props":3071,"children":3073},{"id":3072},"gotchas-rules-troubleshooting",[3074],{"type":56,"value":1021},{"type":43,"tag":48,"props":3076,"children":3077},{},[3078,3080,3085,3087,3091],{"type":56,"value":3079},"For generic CLI gotchas (connection, auth, shell escaping): see ",{"type":43,"tag":187,"props":3081,"children":3082},{"href":612},[3083],{"type":56,"value":3084},"COMMON-CLI.md § Gotchas & Troubleshooting",{"type":56,"value":3086},".\nFor T-SQL\u002Fplatform gotchas: see ",{"type":43,"tag":187,"props":3088,"children":3089},{"href":740},[3090],{"type":56,"value":743},{"type":56,"value":210},{"type":43,"tag":1285,"props":3093,"children":3095},{"id":3094},"must-do",[3096],{"type":56,"value":3097},"MUST DO",{"type":43,"tag":68,"props":3099,"children":3100},{},[3101,3112,3124,3129,3145],{"type":43,"tag":72,"props":3102,"children":3103},{},[3104,3106,3110],{"type":56,"value":3105},"Always check ",{"type":43,"tag":187,"props":3107,"children":3108},{"href":958},[3109],{"type":56,"value":952},{"type":56,"value":3111}," before recommending optimizations",{"type":43,"tag":72,"props":3113,"children":3114},{},[3115,3117,3122],{"type":56,"value":3116},"When recommending clustering, instruct users to use CTAS with ",{"type":43,"tag":83,"props":3118,"children":3120},{"className":3119},[],[3121],{"type":56,"value":2394},{"type":56,"value":3123}," — not ALTER TABLE",{"type":43,"tag":72,"props":3125,"children":3126},{},[3127],{"type":56,"value":3128},"Report actual query output — do not fabricate or assume results",{"type":43,"tag":72,"props":3130,"children":3131},{},[3132,3137,3138,3143],{"type":43,"tag":52,"props":3133,"children":3134},{},[3135],{"type":56,"value":3136},"Label queries",{"type":56,"value":2980},{"type":43,"tag":83,"props":3139,"children":3141},{"className":3140},[],[3142],{"type":56,"value":2986},{"type":56,"value":3144}," for Query Insights tracing",{"type":43,"tag":72,"props":3146,"children":3147},{},[3148,3160],{"type":43,"tag":52,"props":3149,"children":3150},{},[3151,3153,3158],{"type":56,"value":3152},"Verify ",{"type":43,"tag":83,"props":3154,"children":3156},{"className":3155},[],[3157],{"type":56,"value":150},{"type":56,"value":3159}," MCP tool availability",{"type":56,"value":3161}," before first operation",{"type":43,"tag":1285,"props":3163,"children":3165},{"id":3164},"prefer",[3166],{"type":56,"value":3167},"PREFER",{"type":43,"tag":68,"props":3169,"children":3170},{},[3171,3176,3181,3192,3204],{"type":43,"tag":72,"props":3172,"children":3173},{},[3174],{"type":56,"value":3175},"Start with high-level queries (long-running summary, baseline comparison) before drilling into diagnostics",{"type":43,"tag":72,"props":3177,"children":3178},{},[3179],{"type":56,"value":3180},"Use the pressure window analysis for root-cause analysis rather than guessing at bottlenecks",{"type":43,"tag":72,"props":3182,"children":3183},{},[3184,3186,3190],{"type":56,"value":3185},"Combine multiple queries in the ",{"type":43,"tag":187,"props":3187,"children":3188},{"href":1005},[3189],{"type":56,"value":999},{"type":56,"value":3191}," for comprehensive investigations",{"type":43,"tag":72,"props":3193,"children":3194},{},[3195,3197,3202],{"type":56,"value":3196},"Adjust time windows (",{"type":43,"tag":83,"props":3198,"children":3200},{"className":3199},[],[3201],{"type":56,"value":3064},{"type":56,"value":3203}," parameters) based on what the user asks for",{"type":43,"tag":72,"props":3205,"children":3206},{},[3207],{"type":56,"value":3208},"Consolidate related diagnostic queries into fewer calls to respect rate limits",{"type":43,"tag":1285,"props":3210,"children":3212},{"id":3211},"avoid",[3213],{"type":56,"value":3214},"AVOID",{"type":43,"tag":68,"props":3216,"children":3217},{},[3218,3223,3235,3240,3245,3258,3269],{"type":43,"tag":72,"props":3219,"children":3220},{},[3221],{"type":56,"value":3222},"Recommending Fabric-unsupported features (nonclustered indexes, materialized views, index hints, triggers)",{"type":43,"tag":72,"props":3224,"children":3225},{},[3226,3228,3233],{"type":56,"value":3227},"Suggesting that Query Insights needs to be \"enabled\" or \"turned on\" — ",{"type":43,"tag":83,"props":3229,"children":3231},{"className":3230},[],[3232],{"type":56,"value":163},{"type":56,"value":3234}," views are always available; permission errors indicate insufficient workspace role (Admin or Member required)",{"type":43,"tag":72,"props":3236,"children":3237},{},[3238],{"type":56,"value":3239},"Running monitoring queries without confirming workspaceId and itemId",{"type":43,"tag":72,"props":3241,"children":3242},{},[3243],{"type":56,"value":3244},"Guessing at performance root causes without running the diagnostic queries",{"type":43,"tag":72,"props":3246,"children":3247},{},[3248,3250,3256],{"type":56,"value":3249},"Using ",{"type":43,"tag":83,"props":3251,"children":3253},{"className":3252},[],[3254],{"type":56,"value":3255},"SELECT *",{"type":56,"value":3257}," in monitoring queries — always select specific columns",{"type":43,"tag":72,"props":3259,"children":3260},{},[3261,3262,3267],{"type":56,"value":3249},{"type":43,"tag":83,"props":3263,"children":3265},{"className":3264},[],[3266],{"type":56,"value":1455},{"type":56,"value":3268}," separators or sqlcmd meta-commands in queries (MCP tool accepts single batches only)",{"type":43,"tag":72,"props":3270,"children":3271},{},[3272,3274,3280],{"type":56,"value":3273},"Unbounded queries without ",{"type":43,"tag":83,"props":3275,"children":3277},{"className":3276},[],[3278],{"type":56,"value":3279},"TOP N",{"type":56,"value":3281}," — 10,000 row limit applies",{"type":43,"tag":1285,"props":3283,"children":3285},{"id":3284},"troubleshooting-monitoring-specific",[3286],{"type":56,"value":3287},"TROUBLESHOOTING (Monitoring-Specific)",{"type":43,"tag":48,"props":3289,"children":3290},{},[3291,3293,3297],{"type":56,"value":3292},"For generic connection\u002Fauth troubleshooting, see ",{"type":43,"tag":187,"props":3294,"children":3295},{"href":612},[3296],{"type":56,"value":3084},{"type":56,"value":210},{"type":43,"tag":291,"props":3299,"children":3300},{},[3301,3322],{"type":43,"tag":295,"props":3302,"children":3303},{},[3304],{"type":43,"tag":299,"props":3305,"children":3306},{},[3307,3312,3317],{"type":43,"tag":303,"props":3308,"children":3309},{},[3310],{"type":56,"value":3311},"Symptom",{"type":43,"tag":303,"props":3313,"children":3314},{},[3315],{"type":56,"value":3316},"Cause",{"type":43,"tag":303,"props":3318,"children":3319},{},[3320],{"type":56,"value":3321},"Fix",{"type":43,"tag":319,"props":3323,"children":3324},{},[3325,3347,3370,3388,3414,3437,3455],{"type":43,"tag":299,"props":3326,"children":3327},{},[3328,3337,3342],{"type":43,"tag":326,"props":3329,"children":3330},{},[3331],{"type":43,"tag":83,"props":3332,"children":3334},{"className":3333},[],[3335],{"type":56,"value":3336},"Invalid object name 'queryinsights...'",{"type":43,"tag":326,"props":3338,"children":3339},{},[3340],{"type":56,"value":3341},"New warehouse \u003C 2 min old",{"type":43,"tag":326,"props":3343,"children":3344},{},[3345],{"type":56,"value":3346},"Wait ~2 minutes",{"type":43,"tag":299,"props":3348,"children":3349},{},[3350,3360,3365],{"type":43,"tag":326,"props":3351,"children":3352},{},[3353,3355],{"type":56,"value":3354},"Permission errors on ",{"type":43,"tag":83,"props":3356,"children":3358},{"className":3357},[],[3359],{"type":56,"value":702},{"type":43,"tag":326,"props":3361,"children":3362},{},[3363],{"type":56,"value":3364},"Insufficient workspace role",{"type":43,"tag":326,"props":3366,"children":3367},{},[3368],{"type":56,"value":3369},"Requires Admin or Member role",{"type":43,"tag":299,"props":3371,"children":3372},{},[3373,3378,3383],{"type":43,"tag":326,"props":3374,"children":3375},{},[3376],{"type":56,"value":3377},"No data in queryinsights views",{"type":43,"tag":326,"props":3379,"children":3380},{},[3381],{"type":56,"value":3382},"No recent query activity or \u003C 15 min delay",{"type":43,"tag":326,"props":3384,"children":3385},{},[3386],{"type":56,"value":3387},"Wait 15 min after query completion",{"type":43,"tag":299,"props":3389,"children":3390},{},[3391,3396,3401],{"type":43,"tag":326,"props":3392,"children":3393},{},[3394],{"type":56,"value":3395},"No rows but data exists",{"type":43,"tag":326,"props":3397,"children":3398},{},[3399],{"type":56,"value":3400},"RLS filtering",{"type":43,"tag":326,"props":3402,"children":3403},{},[3404,3406,3412],{"type":56,"value":3405},"Check ",{"type":43,"tag":83,"props":3407,"children":3409},{"className":3408},[],[3410],{"type":56,"value":3411},"USER_NAME()",{"type":56,"value":3413},", verify RLS policies",{"type":43,"tag":299,"props":3415,"children":3416},{},[3417,3427,3432],{"type":43,"tag":326,"props":3418,"children":3419},{},[3420,3425],{"type":43,"tag":83,"props":3421,"children":3423},{"className":3422},[],[3424],{"type":56,"value":150},{"type":56,"value":3426}," tool not available",{"type":43,"tag":326,"props":3428,"children":3429},{},[3430],{"type":56,"value":3431},"MCP server not registered",{"type":43,"tag":326,"props":3433,"children":3434},{},[3435],{"type":56,"value":3436},"User must add Fabric SQL Endpoint MCP server",{"type":43,"tag":299,"props":3438,"children":3439},{},[3440,3445,3450],{"type":43,"tag":326,"props":3441,"children":3442},{},[3443],{"type":56,"value":3444},"HTTP 429 rate limit",{"type":43,"tag":326,"props":3446,"children":3447},{},[3448],{"type":56,"value":3449},"Too many calls in 1 min",{"type":43,"tag":326,"props":3451,"children":3452},{},[3453],{"type":56,"value":3454},"Wait 60s; consolidate queries",{"type":43,"tag":299,"props":3456,"children":3457},{},[3458,3463,3468],{"type":43,"tag":326,"props":3459,"children":3460},{},[3461],{"type":56,"value":3462},"Query timeout (300s)",{"type":43,"tag":326,"props":3464,"children":3465},{},[3466],{"type":56,"value":3467},"Complex diagnostics",{"type":43,"tag":326,"props":3469,"children":3470},{},[3471],{"type":56,"value":3472},"Narrow time window with tighter DATEADD",{"type":43,"tag":1064,"props":3474,"children":3475},{},[],{"type":43,"tag":167,"props":3477,"children":3479},{"id":3478},"examples",[3480],{"type":56,"value":1048},{"type":43,"tag":1285,"props":3482,"children":3484},{"id":3483},"find-slow-queries",[3485],{"type":56,"value":3486},"Find Slow Queries",{"type":43,"tag":48,"props":3488,"children":3489},{},[3490,3495],{"type":43,"tag":52,"props":3491,"children":3492},{},[3493],{"type":56,"value":3494},"User:",{"type":56,"value":3496}," \"What are the slowest queries in my warehouse?\"",{"type":43,"tag":48,"props":3498,"children":3499},{},[3500,3505,3507,3512],{"type":43,"tag":52,"props":3501,"children":3502},{},[3503],{"type":56,"value":3504},"Agent:",{"type":56,"value":3506}," Runs the long-running queries summary via ",{"type":43,"tag":83,"props":3508,"children":3510},{"className":3509},[],[3511],{"type":56,"value":150},{"type":56,"value":1508},{"type":43,"tag":1292,"props":3514,"children":3517},{"className":3515,"code":3516,"language":56,"meta":1297},[1295],"fabric-sqlendpoint-execute_query(workspaceId, itemId,\n  \"SELECT TOP 5\n      left(last_run_command, 80) AS query_preview,\n      number_of_runs,\n      last_run_total_elapsed_time_ms,\n      median_total_elapsed_time_ms\n   FROM queryinsights.long_running_queries\n   ORDER BY median_total_elapsed_time_ms DESC\")\n",[3518],{"type":43,"tag":83,"props":3519,"children":3520},{"__ignoreMap":1297},[3521],{"type":56,"value":3516},{"type":43,"tag":44,"props":3523,"children":3524},{},[3525,3530],{"type":43,"tag":48,"props":3526,"children":3527},{},[3528],{"type":56,"value":3529},"The top 5 slowest queries are:",{"type":43,"tag":117,"props":3531,"children":3532},{},[3533,3544],{"type":43,"tag":72,"props":3534,"children":3535},{},[3536,3542],{"type":43,"tag":83,"props":3537,"children":3539},{"className":3538},[],[3540],{"type":56,"value":3541},"SELECT * FROM FactSales JOIN DimCustomer...",{"type":56,"value":3543}," — ran 12 times, last took 45,200 ms (median 38,500 ms)",{"type":43,"tag":72,"props":3545,"children":3546},{},[3547,3553],{"type":43,"tag":83,"props":3548,"children":3550},{"className":3549},[],[3551],{"type":56,"value":3552},"SELECT region, SUM(amount)...",{"type":56,"value":3554}," — ran 8 times, last took 32,100 ms (median 29,000 ms)\n...",{"type":43,"tag":1285,"props":3556,"children":3558},{"id":3557},"diagnose-performance-degradation",[3559],{"type":56,"value":3560},"Diagnose Performance Degradation",{"type":43,"tag":48,"props":3562,"children":3563},{},[3564,3568],{"type":43,"tag":52,"props":3565,"children":3566},{},[3567],{"type":56,"value":3494},{"type":56,"value":3569}," \"Is my warehouse slower than last week?\"",{"type":43,"tag":48,"props":3571,"children":3572},{},[3573,3577],{"type":43,"tag":52,"props":3574,"children":3575},{},[3576],{"type":56,"value":3504},{"type":56,"value":3578}," Runs the baseline comparison query and presents:",{"type":43,"tag":44,"props":3580,"children":3581},{},[3582,3590,3608],{"type":43,"tag":48,"props":3583,"children":3584},{},[3585],{"type":43,"tag":52,"props":3586,"children":3587},{},[3588],{"type":56,"value":3589},"Performance Comparison (last 1h vs 7-day baseline):",{"type":43,"tag":68,"props":3591,"children":3592},{},[3593,3598,3603],{"type":43,"tag":72,"props":3594,"children":3595},{},[3596],{"type":56,"value":3597},"Elapsed time: 2,450 ms avg → 4,100 ms avg (+67.3%)",{"type":43,"tag":72,"props":3599,"children":3600},{},[3601],{"type":56,"value":3602},"CPU consumption: 1,200 ms → 2,800 ms (+133.3%)",{"type":43,"tag":72,"props":3604,"children":3605},{},[3606],{"type":56,"value":3607},"Data scanned: 450 MB → 480 MB (+6.7%)",{"type":43,"tag":48,"props":3609,"children":3610},{},[3611],{"type":56,"value":3612},"Significant regression detected. Let me check for pressure events and analyze the heaviest queries...",{"type":43,"tag":48,"props":3614,"children":3615},{},[3616],{"type":56,"value":3617},"Then follows up with pressure window and resource consumer queries.",{"type":43,"tag":1285,"props":3619,"children":3621},{"id":3620},"get-clustering-recommendations",[3622],{"type":56,"value":3623},"Get Clustering Recommendations",{"type":43,"tag":48,"props":3625,"children":3626},{},[3627,3631],{"type":43,"tag":52,"props":3628,"children":3629},{},[3630],{"type":56,"value":3494},{"type":56,"value":3632}," \"Which tables should I cluster and on what columns?\"",{"type":43,"tag":48,"props":3634,"children":3635},{},[3636,3640],{"type":43,"tag":52,"props":3637,"children":3638},{},[3639],{"type":56,"value":3504},{"type":56,"value":3641}," Runs the cluster key recommendation queries and presents:",{"type":43,"tag":44,"props":3643,"children":3644},{},[3645,3653,3731,3736],{"type":43,"tag":48,"props":3646,"children":3647},{},[3648],{"type":43,"tag":52,"props":3649,"children":3650},{},[3651],{"type":56,"value":3652},"Recommended Clustering Keys:",{"type":43,"tag":291,"props":3654,"children":3655},{},[3656,3682],{"type":43,"tag":295,"props":3657,"children":3658},{},[3659],{"type":43,"tag":299,"props":3660,"children":3661},{},[3662,3667,3672,3677],{"type":43,"tag":303,"props":3663,"children":3664},{},[3665],{"type":56,"value":3666},"Table",{"type":43,"tag":303,"props":3668,"children":3669},{},[3670],{"type":56,"value":3671},"Recommended Columns",{"type":43,"tag":303,"props":3673,"children":3674},{},[3675],{"type":56,"value":3676},"Row Count",{"type":43,"tag":303,"props":3678,"children":3679},{},[3680],{"type":56,"value":3681},"Total Scanned MB",{"type":43,"tag":319,"props":3683,"children":3684},{},[3685,3708],{"type":43,"tag":299,"props":3686,"children":3687},{},[3688,3693,3698,3703],{"type":43,"tag":326,"props":3689,"children":3690},{},[3691],{"type":56,"value":3692},"dbo.FactSales",{"type":43,"tag":326,"props":3694,"children":3695},{},[3696],{"type":56,"value":3697},"SaleDate, Region",{"type":43,"tag":326,"props":3699,"children":3700},{},[3701],{"type":56,"value":3702},"50M",{"type":43,"tag":326,"props":3704,"children":3705},{},[3706],{"type":56,"value":3707},"12,500 MB",{"type":43,"tag":299,"props":3709,"children":3710},{},[3711,3716,3721,3726],{"type":43,"tag":326,"props":3712,"children":3713},{},[3714],{"type":56,"value":3715},"dbo.FactInventory",{"type":43,"tag":326,"props":3717,"children":3718},{},[3719],{"type":56,"value":3720},"ProductID, WarehouseID",{"type":43,"tag":326,"props":3722,"children":3723},{},[3724],{"type":56,"value":3725},"12M",{"type":43,"tag":326,"props":3727,"children":3728},{},[3729],{"type":56,"value":3730},"3,200 MB",{"type":43,"tag":48,"props":3732,"children":3733},{},[3734],{"type":56,"value":3735},"To apply clustering, use CTAS:",{"type":43,"tag":1292,"props":3737,"children":3740},{"className":3738,"code":3739,"language":25,"meta":1297,"style":1297},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CREATE TABLE dbo.FactSales_clustered\nWITH (CLUSTER BY (SaleDate, Region))\nAS SELECT * FROM dbo.FactSales;\n",[3741],{"type":43,"tag":83,"props":3742,"children":3743},{"__ignoreMap":1297},[3744,3752,3760],{"type":43,"tag":359,"props":3745,"children":3746},{"class":1520,"line":1521},[3747],{"type":43,"tag":359,"props":3748,"children":3749},{},[3750],{"type":56,"value":3751},"CREATE TABLE dbo.FactSales_clustered\n",{"type":43,"tag":359,"props":3753,"children":3754},{"class":1520,"line":1531},[3755],{"type":43,"tag":359,"props":3756,"children":3757},{},[3758],{"type":56,"value":3759},"WITH (CLUSTER BY (SaleDate, Region))\n",{"type":43,"tag":359,"props":3761,"children":3762},{"class":1520,"line":1573},[3763],{"type":43,"tag":359,"props":3764,"children":3765},{},[3766],{"type":56,"value":3767},"AS SELECT * FROM dbo.FactSales;\n",{"type":43,"tag":3769,"props":3770,"children":3771},"style",{},[3772],{"type":56,"value":3773},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3775,"total":3968},[3776,3798,3819,3838,3853,3870,3881,3894,3909,3924,3943,3956],{"slug":3777,"name":3777,"fn":3778,"description":3779,"org":3780,"tags":3781,"stars":3795,"repoUrl":3796,"updatedAt":3797},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3782,3785,3788,3789,3792],{"name":3783,"slug":3784,"type":15},"Engineering","engineering",{"name":3786,"slug":3787,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":3790,"slug":3791,"type":15},"Project Management","project-management",{"name":3793,"slug":3794,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":3799,"name":3799,"fn":3800,"description":3801,"org":3802,"tags":3803,"stars":3816,"repoUrl":3817,"updatedAt":3818},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3804,3807,3810,3813],{"name":3805,"slug":3806,"type":15},".NET","net",{"name":3808,"slug":3809,"type":15},"Agents","agents",{"name":3811,"slug":3812,"type":15},"Azure","azure",{"name":3814,"slug":3815,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":3820,"name":3820,"fn":3821,"description":3822,"org":3823,"tags":3824,"stars":3816,"repoUrl":3817,"updatedAt":3837},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3825,3828,3829,3830,3833,3834],{"name":3826,"slug":3827,"type":15},"Analytics","analytics",{"name":3811,"slug":3812,"type":15},{"name":17,"slug":18,"type":15},{"name":3831,"slug":3832,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":3835,"slug":3836,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":3839,"name":3839,"fn":3840,"description":3841,"org":3842,"tags":3843,"stars":3816,"repoUrl":3817,"updatedAt":3852},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3844,3847,3848,3849],{"name":3845,"slug":3846,"type":15},"AI Infrastructure","ai-infrastructure",{"name":3811,"slug":3812,"type":15},{"name":3831,"slug":3832,"type":15},{"name":3850,"slug":3851,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":3854,"name":3854,"fn":3855,"description":3856,"org":3857,"tags":3858,"stars":3816,"repoUrl":3817,"updatedAt":3869},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3859,3860,3863,3864,3865,3868],{"name":3811,"slug":3812,"type":15},{"name":3861,"slug":3862,"type":15},"Compliance","compliance",{"name":3814,"slug":3815,"type":15},{"name":9,"slug":8,"type":15},{"name":3866,"slug":3867,"type":15},"Python","python",{"name":3850,"slug":3851,"type":15},"2026-07-18T05:14:23.017504",{"slug":3871,"name":3871,"fn":3872,"description":3873,"org":3874,"tags":3875,"stars":3816,"repoUrl":3817,"updatedAt":3880},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3876,3877,3878,3879],{"name":3826,"slug":3827,"type":15},{"name":3811,"slug":3812,"type":15},{"name":3814,"slug":3815,"type":15},{"name":3866,"slug":3867,"type":15},"2026-07-31T05:54:29.068751",{"slug":3882,"name":3882,"fn":3883,"description":3884,"org":3885,"tags":3886,"stars":3816,"repoUrl":3817,"updatedAt":3893},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3887,3890,3891,3892],{"name":3888,"slug":3889,"type":15},"API Development","api-development",{"name":3811,"slug":3812,"type":15},{"name":9,"slug":8,"type":15},{"name":3866,"slug":3867,"type":15},"2026-07-18T05:14:16.988376",{"slug":3895,"name":3895,"fn":3896,"description":3897,"org":3898,"tags":3899,"stars":3816,"repoUrl":3817,"updatedAt":3908},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3900,3901,3904,3907],{"name":3811,"slug":3812,"type":15},{"name":3902,"slug":3903,"type":15},"Computer Vision","computer-vision",{"name":3905,"slug":3906,"type":15},"Images","images",{"name":3866,"slug":3867,"type":15},"2026-07-18T05:14:18.007737",{"slug":3910,"name":3910,"fn":3911,"description":3912,"org":3913,"tags":3914,"stars":3816,"repoUrl":3817,"updatedAt":3923},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3915,3916,3919,3922],{"name":3811,"slug":3812,"type":15},{"name":3917,"slug":3918,"type":15},"Configuration","configuration",{"name":3920,"slug":3921,"type":15},"Feature Flags","feature-flags",{"name":3831,"slug":3832,"type":15},"2026-07-03T16:32:01.278468",{"slug":3925,"name":3925,"fn":3926,"description":3927,"org":3928,"tags":3929,"stars":3816,"repoUrl":3817,"updatedAt":3942},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3930,3933,3936,3939],{"name":3931,"slug":3932,"type":15},"Cosmos DB","cosmos-db",{"name":3934,"slug":3935,"type":15},"Database","database",{"name":3937,"slug":3938,"type":15},"NoSQL","nosql",{"name":3940,"slug":3941,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":3944,"name":3944,"fn":3926,"description":3945,"org":3946,"tags":3947,"stars":3816,"repoUrl":3817,"updatedAt":3955},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3948,3949,3950,3951,3952],{"name":3931,"slug":3932,"type":15},{"name":3934,"slug":3935,"type":15},{"name":9,"slug":8,"type":15},{"name":3937,"slug":3938,"type":15},{"name":3953,"slug":3954,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":3957,"name":3957,"fn":3958,"description":3959,"org":3960,"tags":3961,"stars":3816,"repoUrl":3817,"updatedAt":3967},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3962,3963,3964,3965,3966],{"name":3811,"slug":3812,"type":15},{"name":3931,"slug":3932,"type":15},{"name":3934,"slug":3935,"type":15},{"name":3831,"slug":3832,"type":15},{"name":3937,"slug":3938,"type":15},"2026-05-13T06:14:17.582229",267,{"items":3970,"total":4076},[3971,3982,4003,4021,4037,4051,4065],{"slug":64,"name":64,"fn":3972,"description":3973,"org":3974,"tags":3975,"stars":26,"repoUrl":27,"updatedAt":3981},"check for Fabric skill marketplace updates","Check an installed skills-for-fabric plugin bundle or git clone for updates, show the matching changelog, and provide host-appropriate update guidance. Use when the user wants to: (1) check for skill updates, (2) see what changed, (3) verify the installed version. Triggers: \"check for updates\", \"am I up to date\", \"what version\", \"update skills\", \"show changelog\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3976,3977,3978],{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":3979,"slug":3980,"type":15},"Operations","operations","2026-07-24T05:41:25.892114",{"slug":3983,"name":3983,"fn":3984,"description":3985,"org":3986,"tags":3987,"stars":26,"repoUrl":27,"updatedAt":4002},"databricks-migration","migrate Databricks notebooks to Microsoft Fabric","Port Databricks notebooks and jobs to Microsoft Fabric. Provides an exhaustive dbutils to notebookutils substitution table: fs operations (runtime mounts or OneLake Shortcuts), secret scope to Key Vault URL conversion, notebook run and exit, widget replacement with parameter-tagged cells, and library install replacement with Fabric Environments. Covers Unity Catalog three-level namespace reduction to Lakehouse two-level schemas, DBFS path conversion to OneLake, Databricks Jobs to Spark Job Definitions, MLflow tracking URI removal, and Photon to Native Execution Engine substitution. Use when the user wants to: (1) replace dbutils with notebookutils, (2) collapse Unity Catalog namespaces to Lakehouse schemas, (3) convert Databricks Jobs or Delta Live Tables. Triggers: \"migrate from databricks\", \"databricks to fabric\", \"dbutils to notebookutils\", \"dbutils fabric\", \"unity catalog migration\", \"dbfs to onelake\", \"databricks notebook migration\", \"delta live tables fabric\", \"photon native execution\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3988,3991,3994,3995,3996,3999],{"name":3989,"slug":3990,"type":15},"Data Engineering","data-engineering",{"name":3992,"slug":3993,"type":15},"Databricks","databricks",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":3997,"slug":3998,"type":15},"Migration","migration",{"name":4000,"slug":4001,"type":15},"Notebooks","notebooks","2026-07-24T05:41:22.914341",{"slug":4004,"name":4004,"fn":4005,"description":4006,"org":4007,"tags":4008,"stars":26,"repoUrl":27,"updatedAt":4020},"dataflows-authoring-cli","manage Microsoft Fabric Dataflows via CLI","Create, update, delete, and refresh Fabric Dataflows Gen2 with write-side CLI via Fabric APIs. Build mashup.pq and queryMetadata.json, preview candidate M with executeQuery\u002FcustomMashupDocument, bind connections, and configure output destinations. For saved query execution or refresh-status reads, use `dataflows-consumption-cli`. If a request explicitly insists on the Dataflows consumption or read-only path for a mutation, do not route here; let consumption refuse before any separately confirmed authoring handoff. Triggers: \"create dataflow\", \"update dataflow\", \"delete dataflow\", \"trigger dataflow refresh\", \"preview Power Query M\", \"preview before save\", \"customMashupDocument\", \"create Fabric data source connection\", \"create SQL Server source REST\", \"POST \u002Fv1\u002Fconnections\", \"supportedConnectionTypes\", \"passwordReference\", \"bind connection\", \"dataflow output destination\", \"dataflow write to lakehouse\", \"dataflow write to warehouse\", \"dataflow write to ADX\", \"DataDestinations annotation\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4009,4012,4013,4016,4017],{"name":4010,"slug":4011,"type":15},"CLI","cli",{"name":3989,"slug":3990,"type":15},{"name":4014,"slug":4015,"type":15},"Data Pipeline","data-pipeline",{"name":21,"slug":22,"type":15},{"name":4018,"slug":4019,"type":15},"REST API","rest-api","2026-07-31T05:54:59.059517",{"slug":4022,"name":4022,"fn":4023,"description":4024,"org":4025,"tags":4026,"stars":26,"repoUrl":27,"updatedAt":4036},"e2e-medallion-architecture","implement Medallion Architecture in Microsoft Fabric","Plan and implement end-to-end Microsoft Fabric data platforms and Medallion Architecture (Bronze\u002FSilver\u002FGold) lakehouse patterns using PySpark, Delta Lake, Lakehouse\u002FWarehouse items, Fabric Pipelines, and semantic-model handoff. Use when the user wants to: (1) design a Bronze\u002FSilver\u002FGold data lakehouse, (2) plan an ingestion-to-semantic-model Fabric data platform, (3) set up multi-layer workspaces with lakehouses for each tier, (4) build ingestion-to-analytics pipelines with data quality enforcement, (5) orchestrate Bronze-to-Silver-to-Gold flows via notebooks. For natural-language business questions over existing Power BI report data, use `fabriciq`. Triggers: \"medallion architecture\", \"bronze silver gold\", \"lakehouse layers\", \"e2e data pipeline\", \"end-to-end lakehouse\", \"data lakehouse pattern\", \"multi-layer lakehouse\", \"build medallion\", \"setup medallion\", \"end-to-end Fabric data platform\", \"bronze silver gold platform\", \"ingestion semantic model platform\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4027,4030,4031,4032,4033],{"name":4028,"slug":4029,"type":15},"Architecture","architecture",{"name":3989,"slug":3990,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4034,"slug":4035,"type":15},"PySpark","pyspark","2026-07-31T05:54:57.038396",{"slug":4038,"name":4038,"fn":4039,"description":4040,"org":4041,"tags":4042,"stars":26,"repoUrl":27,"updatedAt":4050},"eventhouse-authoring-cli","manage Fabric Eventhouse and KQL databases","Execute KQL management commands (table management, ingestion, policies, functions, materialized views) against Fabric Eventhouse and KQL Databases via CLI. Use when the user wants to:\n  1. Create or alter KQL tables, columns, or functions\n  2. Ingest data into an Eventhouse (inline, from storage, streaming)\n  3. Configure retention, caching, or partitioning policies\n  4. Create or manage materialized views and update policies\n  5. Manage data mappings for ingestion pipelines\n  6. Deploy KQL schema via scripts\nTriggers: \"create kql table\", \"kql ingestion\", \"ingest into eventhouse\", \"kql function\", \"materialized view\", \"kql retention policy\", \"eventhouse schema\", \"kql authoring\", \"create eventhouse table\", \"kql mapping\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4043,4044,4047,4048,4049],{"name":3934,"slug":3935,"type":15},{"name":4045,"slug":4046,"type":15},"KQL","kql",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":3979,"slug":3980,"type":15},"2026-04-06T18:36:51.340409",{"slug":4052,"name":4052,"fn":4053,"description":4054,"org":4055,"tags":4056,"stars":26,"repoUrl":27,"updatedAt":4064},"eventhouse-consumption-cli","query Fabric Eventhouse with KQL","Run KQL queries against Fabric Eventhouse for real-time intelligence and time-series analytics using `az rest` against the Kusto REST API. Covers KQL operators (where, summarize, join, render), Eventhouse schema discovery (.show tables), time-series patterns with bin(), and ingestion monitoring. Use when the user wants to:\n  1. Run read-only KQL queries against an Eventhouse or KQL Database\n  2. Discover Eventhouse table schema and metadata\n  3. Analyse real-time or time-series data with KQL operators\n  4. Monitor ingestion health and active KQL queries\n  5. Export KQL results to JSON\nTriggers: \"kql query\", \"kusto query\", \"eventhouse query\", \"kql database\", \"real-time intelligence\", \"time-series kql\", \"query eventhouse\", \"explore eventhouse\", \"show tables kql\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4057,4058,4059,4060,4061],{"name":3826,"slug":3827,"type":15},{"name":4045,"slug":4046,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":4062,"slug":4063,"type":15},"Real-Time Intelligence","real-time-intelligence","2026-04-06T18:36:45.018807",{"slug":4066,"name":4066,"fn":4067,"description":4068,"org":4069,"tags":4070,"stars":26,"repoUrl":27,"updatedAt":4075},"eventstream-consumption-cli","monitor Fabric Eventstream ingestion pipelines","List, inspect, and monitor Fabric Eventstream real-time ingestion pipelines via the Items REST API. Discover Eventstreams across workspaces, decode base64 graph topologies tracing event flow from source through operators to destination nodes. Validate connection IDs, wiring, retention policies (1-90 days), and throughput levels. Retrieve Custom Endpoint Kafka credentials via Topology API. **Invoke this skill** to: (1) list Eventstreams, (2) inspect Eventstream topology showing sources and destinations, (3) validate Eventstream configurations, (4) check Eventstream retention policy and throughput level, (5) get connection strings. Triggers: \"list eventstreams\", \"inspect eventstream\", \"describe eventstream topology\", \"eventstream operator nodes\", \"eventstream sources and destinations\", \"eventstream health\", \"eventstream status\", \"eventstream configuration\", \"eventstream retention\", \"eventstream throughput level\", \"eventstream connection string\", \"custom endpoint credentials\", \"check eventstream\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4071,4072,4073,4074],{"name":4010,"slug":4011,"type":15},{"name":3989,"slug":3990,"type":15},{"name":21,"slug":22,"type":15},{"name":3835,"slug":3836,"type":15},"2026-07-31T05:55:03.045486",19]