# SQL Server · Tech watch

[Canonical source](<https://sebastien.rigaux.be/en/tech-watch/tags/sql-server>)

Microsoft’s relational engine for SQL queries, schemas and data processing.

## [.NET multi-tenancy: isolate data by SQL Server schema — part 2/4](<https://sebastien.rigaux.be/en/tech-watch/links/net-multi-tenancy-isolate-data-by-sql-server-schema-part-24>)

Part 2/4 shows how to isolate each tenant’s data in its own SQL Server schema, without a global query filter or a required `TenantId` column. EF Core can use a simple primary key again, while the database structure itself enforces the isolation boundary.

The key change is model caching: `OnModelCreating` runs only once per model. The schema must be included in the cache key through `IModelCacheKeyFactory`, or EF Core may reuse the first tenant’s schema. The article also covers per-schema provisioning and migrations, plus strict validation of schema names interpolated into SQL.

2026-11-02 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/net-multi-tenancy-isolate-data-by-sql-server-schema-part-24.md>) · [Original resource](<https://barretblake.dev/posts/development/2026/07/multi-tenant-part-2/>)

## [.NET multi-tenancy: query isolation and SQL Server partitions — part 1/4](<https://sebastien.rigaux.be/en/tech-watch/links/net-multi-tenancy-query-isolation-and-sql-server-partitions-part-14>)

This first installment presents a shared-schema .NET multi-tenant design: EF Core filters reads by tenant, while SQL Server physically partitions rows to speed up data access. The key distinction is that partitioning is not a security boundary; isolation relies on the EF Core global query filter.

The article also explains resolving the tenant per request, assigning its ID to new rows, and adding partitions to migrations with raw SQL. The primary key must include `GuildId`, a constraint SQL Server imposes when partitioning a unique index.

2026-11-02 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/net-multi-tenancy-query-isolation-and-sql-server-partitions-part-14.md>) · [Original resource](<https://barretblake.dev/posts/development/2026/07/multi-tenant-part-1/>)

## [sqlsimtools: simulate and compare SQL Server workloads locally](<https://sebastien.rigaux.be/en/tech-watch/links/sqlsimtools-simulate-and-compare-sql-server-workloads-locally>)

sqlsimtools provides an open-source toolkit to **test, replay, and compare SQL Server workloads** without any hosted service or external telemetry. It offers four modes: a local Studio UI, a native CLI, a Python workflow, and an AI agent-driven experiment builder. The same suite applies to SQL Server 2019–2025, Azure SQL, and Microsoft Fabric, on Windows or Ubuntu, with local installation and direct execution against your chosen target.

2026-10-17 · [Markdown](<https://sebastien.rigaux.be/en/tech-watch/links/sqlsimtools-simulate-and-compare-sql-server-workloads-locally.md>) · [Original resource](<https://microsoft.github.io/sqlsimtools/>)
