Other ● Sealed v1.0 (treated)

SQL Workload Profiling

Profiles SQL Server query stats, wait types, and IO telemetry to recommend an Azure SQL tier per instance.

What it does

Existing infrastructure discovery captures SQL *instances*. This module answers the next question: "what tier do I land each instance on in Azure SQL?". It surfaces the same telemetry Cloudamize SQL Telemetry Toolkit ships with: 1. Query CPU / logical-read / duration distribution (sys.dm_exec_query_stats joined to sys.dm_exec_sql_text). 2. Wait-type breakdown (sys.dm_os_wait_stats) so we can flag CPU-bound, IO-bound, or memory-bound instances. 3. Per-file IO telemetry (sys.dm_io_virtual_file_stats) for read/ write IOPS, latency, and stall ratios. 4. CPU + memory pressure (sys.dm_os_ring_buffers, sys.dm_os_process_memory) sampled at module run time. From those metrics we compute a single recommended Azure SQL tier per instance: - vCore General Purpose (default steady workloads) - vCore Business Critical (high IO / low-latency) - vCore Hyperscale (>4 TB or heavy log IO) - DTU Standard / Premium (sub-100 GB low-CPU instances) Source instance list (priority order): 1. Configuration.SqlInstances (array of "host\instance" or "host,port") 2. SQLInventory.csv produced by infrastructure discovery 3. Local default instance ("(local)") as a fallback Output: SqlWorkloadProfile_Queries.csv top-50 queries per instance (CPU+IO) SqlWorkloadProfile_Waits.csv top-20 wait types per instance SqlWorkloadProfile_IO.csv per-file IO telemetry SqlWorkloadProfile_Summary.csv per-instance roll-up + tier rec

How the app exposes it

The module feeds into the ACQI app's dedicated results view. From there, conflicts, dependencies, and readiness scores roll up into the deal workspace.

Route in app:
/discovered/sql-workload-profiler

Outputs

Each module produces a CSV with readiness and risk scores, evidence-source counts, and last-seen timestamps. The exact columns vary by module — the app's results view shows the live schema.