Skip to content

Commit 33e43da

Browse files
committed
Switch Azure SQL tier from General Purpose to Business Critical
General Purpose stores its transaction log on remote storage, capping log throughput at roughly one-tenth of what Business Critical provides on local SSD. The test suites create, index, and drop a schema per test around 550 times, so log throughput is the binding constraint—not CPU. A run on General Purpose measured 9 to 21 times slower than a local container and timed out. Business Critical keeps data and log on local SSD and resolves the bottleneck.
1 parent d4734b9 commit 33e43da

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

‎.github/actions/cloud-database/azure-sql.mts‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,17 @@ async function provision(name: string): Promise<void> {
3131
'--end-ip-address', runnerIp,
3232
'--only-show-errors', '--output', 'none']);
3333

34-
// General Purpose with 4 vCores: the suites are DDL heavy and run several assemblies at once, and
35-
// a DTU tier that size would spend the run throttled. Local backup redundancy because nothing
36-
// here outlives the job.
34+
// Business Critical, not General Purpose. The suites create, index and drop a schema per test,
35+
// roughly 550 times, so the limit they hit is transaction log throughput rather than CPU. That
36+
// is capped an order of magnitude lower on General Purpose, whose log is remote, and a run there
37+
// measured 9 to 21 times slower than a local container and timed out. Business Critical keeps
38+
// data and log on local SSD. Local backup redundancy because nothing here outlives the job.
3739
step(`Creating database ${databaseName}`);
3840
run('az', ['sql', 'db', 'create',
3941
'--name', databaseName,
4042
'--resource-group', azure.resourceGroup,
4143
'--server', name,
42-
'--service-objective', 'GP_Gen5_4',
44+
'--service-objective', 'BC_Gen5_4',
4345
'--backup-storage-redundancy', 'Local',
4446
...tags,
4547
'--only-show-errors', '--output', 'none']);

0 commit comments

Comments
 (0)