Excelgoodies logo +31 97 010285556

LEARN THIS HANDS ON

Microsoft Fabric & Power BI

. Live Online FILLING FAST
View all upcoming batches
Microsoft Fabric Data Warehouse vs Azure SQL Database: Where Should Your BI Models Live?

Microsoft Fabric Data Warehouse vs Azure SQL Database: Where Should Your BI Models Live?

Your team has a growing set of Power BI models, a mix of Fabric items, and a legacy Azure SQL Database that feeds half the reports. Every new project triggers the same argument: “Should we put this in Fabric or just spin up another Azure SQL DB?” This article walks through that decision using one realistic scenario and shows when Microsoft Fabric Data Warehouse is the better home for your BI models—and when Azure SQL Database still makes more sense.

Scenario: A BI Team Stuck Between Two Worlds

You’re in a central BI team supporting:

  • A sales & margin model refreshed hourly
  • A finance model with month-end heavy processing
  • Several self-service datasets owned by business units

Current state:

  • Azure SQL Database (single database, Business Critical tier) holds the curated data model for sales and finance.
  • Power BI reports connect via Import mode, with dataflows doing some prep.
  • A new initiative rolls out Microsoft Fabric in your tenant: lakehouse, Data Warehouse, and Direct Lake datasets.

Pain points:

  • Data engineers want one lake-first architecture and tighter integration with Fabric pipelines and notebooks.
  • DBAs prefer Azure SQL Database for predictable OLTP workloads and existing operational processes.
  • BI developers need fast semantic model refreshes, good T‑SQL, and reliable performance for analytical queries.

The question: for the next-generation BI models, do you move the curated model into a Fabric Data Warehouse, or keep building on Azure SQL Database?

We’ll compare both options against the scenario across architecture, performance, manageability, and integration with Power BI.


Core Architectural Differences

1. Storage and Compute Model

Fabric Data Warehouse

  • Built on OneLake with delta tables under the hood.
  • Uses a distributed, columnar storage optimized for analytics.
  • Compute is capacity-based (F‑SKUs / Fabric capacities) and shared with other Fabric workloads (lakehouse, notebooks, Power BI, etc.).
  • T‑SQL surface is provided via Warehouse items in Fabric, but the underlying engine is the Fabric Warehouse engine (evolved from Synapse Data Warehouse) delivered as a SaaS service.

Azure SQL Database

  • Row-store engine optimized for transactional workloads; columnstore indexes are available but optional.
  • Compute is per-database or elastic pool, billed by DTU/vCore.
  • Storage is on Azure-managed disks, separate from data lake.

Implications for the scenario:

  • The sales & margin model with heavy aggregations and large fact tables aligns better with Fabric Data Warehouse’s columnar, distributed architecture.
  • If you still have OLTP-style operations (frequent small updates, many single-row lookups), Azure SQL Database is structurally a better fit.

2. Service Boundary and Management Plane

Fabric Data Warehouse lives entirely inside the Fabric workspace:

  • Provisioned as a Warehouse item.
  • Security, monitoring, pipelines, notebooks, and Power BI models are managed in the same Fabric workspace.
  • No separate server or database objects to manage; scaling is via Fabric capacity.

Azure SQL Database lives in Azure:

  • Provisioned as a logical server and databases via Azure portal, ARM, or CLI.
  • Security, networking, backup, and monitoring via Azure control plane.
  • Power BI and Fabric connect through external connections (SQL connector, dataflows, or pipelines).

For the BI team:

  • If your governance is shifting to workspace-centric (Fabric), keeping the curated model in the same workspace simplifies lifecycle and access control.
  • If your org has strong DBA processes around Azure SQL (backup policies, failover groups, firewall rules), staying on Azure SQL may align better with existing controls.

T‑SQL Capabilities and Limits That Matter

Both platforms expose T‑SQL, but the supported surface differs.

Fabric Data Warehouse T‑SQL Highlights

As of late 2026, Fabric Data Warehouse supports:

  • Core DDL: CREATE TABLE, ALTER TABLE, CREATE VIEW, CREATE SCHEMA, etc.
  • Core DML: INSERT, UPDATE, DELETE, MERGE.
  • Analytical features: GROUP BY, window functions, JOIN types, TOP, ORDER BY.
  • Indexing: clustered columnstore is the default for large tables; nonclustered indexes are supported with some constraints.
  • Identity columns and sequences are supported.

Important limitations compared to Azure SQL Database:

  • No cross-database queries; scope is the current Warehouse.
  • Certain engine features that rely on OLTP internals (e.g., some transactional isolation options, change tracking, and change data capture) are either not supported or behave differently. If you need a specific feature, check Fabric Warehouse documentation before assuming parity.
  • CLR integration and some advanced programmability features are not available.

Azure SQL Database T‑SQL Highlights

Azure SQL Database is closer to the full SQL Server engine:

  • Broad coverage of T‑SQL features, including procedural programmability (T‑SQL stored procedures, user-defined functions, triggers).
  • Rich indexing options (rowstore, columnstore, filtered indexes, etc.).
  • Features like Temporal Tables, Change Tracking, and Change Data Capture (with constraints) for operational scenarios.

For the BI scenario:

  • If your curated model uses complex stored procedures for ETL-like transformations inside the database, Azure SQL Database still has the richer surface.
  • If you’re moving toward ELT in Fabric pipelines/notebooks and simple T‑SQL for modeling, Fabric Data Warehouse is sufficient and more aligned with the platform.

Performance: Query Patterns and Refresh Behaviour

1. Analytical Query Performance

Fabric Data Warehouse is optimized for large, read-heavy analytical workloads:

  • Columnar storage and distributed execution favor scan-heavy, aggregation-heavy queries.
  • Integration with Fabric capacity means performance depends on capacity size and concurrent workloads in the workspace.

Azure SQL Database can perform well for analytics with columnstore indexes, but:

  • The engine is still tuned primarily for mixed OLTP + analytics.
  • You manage performance per database (or pool), not at a workspace/capacity level.

For the sales & margin model with wide fact tables and nightly heavy batch loads:

  • Fabric Data Warehouse will typically give more predictable performance for large aggregations if your capacity is sized appropriately.
  • Azure SQL Database may require more index tuning and query hints to keep analytical workloads from impacting any OLTP.

2. Semantic Model Refresh and Data Movement

Key distinction for BI:

  • Fabric Data Warehouse sits directly on OneLake. Power BI semantic models can connect via:

    • Direct Lake (when backed by compatible delta tables in OneLake, typically via a lakehouse that exposes the tables used by the semantic model).
    • Import or DirectQuery via the Warehouse endpoint.
  • Azure SQL Database is external to OneLake. Power BI connects via:

    • Import (data copied into the dataset).
    • DirectQuery (live queries to Azure SQL Database).

In practice for the scenario:

  • If you move your curated model into Fabric Warehouse, you can design for Direct Lake via a lakehouse/warehouse pattern, dramatically reducing refresh overhead and improving large model performance.
  • Staying on Azure SQL Database means you’re limited to Import or DirectQuery, with the usual trade-offs: refresh windows, gateway/network considerations, and query load on the database.

Security, Governance, and Networking

Fabric Data Warehouse Security Model

  • Uses Fabric workspace roles and item-level permissions for the Warehouse.
  • Row-level security (RLS) is typically implemented at the semantic model layer; Warehouse-level security is SQL-based (schemas, roles, grants).
  • Networking is abstracted; Fabric is SaaS and does not expose VNet-level control in the same way as Azure SQL Database.

Azure SQL Database Security Model

  • Uses logins, users, and roles within the database.
  • Supports Azure AD authentication and integration with Private Endpoints/VNet for network isolation.
  • DBAs often rely on firewall rules and auditing policies defined at server and database level.

For the BI team:

  • If your organization mandates private network isolation for data sources, Azure SQL Database gives you more traditional network controls.
  • If your governance is moving toward workspace-based access and central Fabric administration, keeping the curated model inside Fabric simplifies permission management for analysts.

Operational Concerns: Backup, DR, and Cost

Backup and Recovery

Fabric Data Warehouse

  • Backup and restore are handled by the Fabric platform; you don’t manage LUNs or log backups.
  • Item-level restore points and workspace restore features apply.

Azure SQL Database

  • Automated backups with configurable retention.
  • Point-in-time restore per database.
  • Geo-replication and failover groups for cross-region DR.

If your scenario includes strict DR patterns already built on Azure SQL failover groups, moving the curated model into Fabric Warehouse means adopting Fabric’s DR model instead of reusing existing patterns.

Cost and Capacity

Be careful how you compare costs:

  • Fabric: you pay for capacity, shared across Warehouse, lakehouse, dataflows, notebooks, and Power BI. Scaling up benefits all workloads but also concentrates spend.
  • Azure SQL Database: you pay per database or elastic pool. BI workloads are isolated from Fabric capacity but add separate database costs.

For the BI team:

  • If Fabric is already the strategic platform and your capacity is underutilized, moving the curated model into Fabric Warehouse can consolidate spend and avoid extra Azure SQL SKUs.
  • If Azure SQL Database is heavily used by applications beyond BI, keeping the curated model there may reuse existing capacity and operational spend.

Practical Design Choices for the Scenario

Let’s make the decision concrete.

When the Sales & Margin Model Belongs in Fabric Data Warehouse

Choose Fabric Data Warehouse if:

  • The curated model is primarily analytical, with large fact tables and batch loads.
  • You want to use Direct Lake or keep data in OneLake-first architecture.
  • Your team is standardizing on Fabric workspaces for governance and development.
  • You’re comfortable doing ELT via Fabric pipelines and notebooks, not stored procedures in Azure SQL.

A typical pattern:

  1. Land raw data in a lakehouse (delta tables in OneLake).
  2. Transform to curated tables using Fabric Data Warehouse T‑SQL or lakehouse transformations.
  3. Build a Power BI semantic model in the same workspace, using Direct Lake (via lakehouse tables) or the Warehouse as source.

Example: a simple star schema in Fabric Warehouse for the sales model:

CREATE TABLE dbo.DimDate
(
    DateKey        INT           NOT NULL,
    Date           DATE          NOT NULL,
    Year           INT           NOT NULL,
    MonthNumber    TINYINT       NOT NULL,
    MonthName      NVARCHAR(20)  NOT NULL,
    Quarter        TINYINT       NOT NULL,
    CONSTRAINT PK_DimDate PRIMARY KEY NONCLUSTERED (DateKey)
);

CREATE TABLE dbo.DimProduct
(
    ProductKey     INT            NOT NULL,
    ProductName    NVARCHAR(100)  NOT NULL,
    Category       NVARCHAR(50)   NOT NULL,
    SubCategory    NVARCHAR(50)   NULL,
    CONSTRAINT PK_DimProduct PRIMARY KEY NONCLUSTERED (ProductKey)
);

CREATE TABLE dbo.FactSales
(
    SalesId        BIGINT         NOT NULL,
    DateKey        INT            NOT NULL,
    ProductKey     INT            NOT NULL,
    CustomerId     INT            NOT NULL,
    Quantity       DECIMAL(18,4)  NOT NULL,
    NetAmount      DECIMAL(18,4)  NOT NULL,
    CONSTRAINT PK_FactSales PRIMARY KEY NONCLUSTERED (SalesId),
    CONSTRAINT FK_FactSales_DimDate    FOREIGN KEY (DateKey)    REFERENCES dbo.DimDate(DateKey),
    CONSTRAINT FK_FactSales_DimProduct FOREIGN KEY (ProductKey) REFERENCES dbo.DimProduct(ProductKey)
);

This schema plays well with Fabric Warehouse’s columnar engine and Power BI’s analytical patterns.

When the Finance Model Should Stay in Azure SQL Database

Keep the curated model in Azure SQL Database if:

  • Finance processes depend on T‑SQL stored procedures, triggers, and features not currently supported in Fabric Warehouse.
  • The same database serves operational applications that require transactional guarantees.
  • Your DR and network isolation policies are tightly integrated with Azure SQL features.

A typical pattern:

  1. Maintain the finance schema and logic in Azure SQL Database.
  2. Use Power BI Import or DirectQuery for the finance semantic model.
  3. Optionally use Fabric dataflows or pipelines to copy aggregates into OneLake for cross-domain analytics, while keeping the core ledger in Azure SQL.

A Simple Decision Framework for BI Teams

For each new BI model, ask:

  1. Workload type

    • Mostly analytical, large scans, batch loads → lean toward Fabric Data Warehouse.
    • Mixed OLTP + reporting, many small updates, app integration → lean toward Azure SQL Database.
  2. Platform alignment

    • Strategic move to Fabric, lake-first, workspace governance → Fabric Data Warehouse.
    • Strong existing investment in Azure SQL operations and DR → Azure SQL Database.
  3. T‑SQL and programmability needs

    • Simple ELT, views, and basic procedures → either platform works; Fabric is better integrated with OneLake.
    • Heavy stored procedure logic, triggers, or features not in Fabric Warehouse → Azure SQL Database.
  4. Power BI integration

    • Desire for Direct Lake and reduced refresh overhead → Fabric Data Warehouse (via OneLake-backed tables exposed through a lakehouse).
    • Comfortable with Import/DirectQuery and external sources → Azure SQL Database remains fine.

Closing: One Concrete Takeaway

For your next major BI model, don’t start from the tool you know best; start from the workload. If it’s fundamentally an analytical, lake-first workload feeding Fabric-based Power BI, put the curated model in a Fabric Data Warehouse and design around OneLake and capacity. If it’s still tied to transactional applications and deep SQL programmability, keep it in Azure SQL Database and treat Fabric as the analytical consumer rather than the home.

Editor's Note

This article reflects the shift many BI teams are making from standalone Azure SQL databases toward Fabric-based data warehouses as the primary home for analytical models, especially in environments standardizing on OneLake and capacity-driven governance.

Professionals who want to apply these patterns to their own data can explore Excelgoodies' Microsoft Fabric & Power BI programme - taught live by instructors, with certification awarded once a real project is running at work.

Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.

Microsoft Fabric

New

Next Batches Now Live

Power BIPower BI
SQLSQL
Power AppsPower Apps
Power AutomatePower Automate
Microsoft FabricMicrosoft Fabrics
AzureAzure Data Engineering
Explore Dates & Reserve Your Spot → Reserve Your Spot →