Lesson 34/100

Tutorials SQL Server Tutorial

Composite Index — Complete Guide

Composite Index — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of SQL Server Tutorial on Toolliyo Academy.

On this page

SQL Server Tutorial · Lesson 34 of 100

Composite Index

SQL basics ✓QueriesAdvanced

Queries · 2 — JOINs · ~6 min · SQL — Indexing & Performance

What is this?

A composite index has multiple key columns. Order matters: leftmost prefixes are usable (A), (A,B), not (B) alone unless the engine scans.

Why should you care?

Filtering TenantId then OrderDate matches how multi-tenant apps query — put the equality column first.

See it live — copy this example

Run in SQL Server Management Studio (SSMS) or Azure Data Studio.

USE DataVerse;
IF COL_LENGTH('dbo.Orders', 'OrderDate') IS NULL
    ALTER TABLE dbo.Orders ADD OrderDate DATE NOT NULL CONSTRAINT DF_Orders_OrderDate DEFAULT (CAST(SYSUTCDATETIME() AS DATE));
CREATE NONCLUSTERED INDEX IX_Orders_City_OrderDate
ON dbo.Orders (City, OrderDate)
INCLUDE (Amount);
SELECT OrderId, Amount
FROM dbo.Orders
WHERE City = N'Mumbai' AND OrderDate >= '2026-01-01';

What happened?

  • Key order City then OrderDate supports equality on City plus range on OrderDate.
  • INCLUDE keeps Amount covered.

Practice next

  1. Create the composite index.
  2. Run the Mumbai date-range query and check for Seek.
  3. Filter only OrderDate and see a less ideal plan.
  4. Query WHERE City = N'Pune' only — still uses left prefix.
  5. Add OrderId to INCLUDE for full covering.

Remember

Multi-column keys are ordered. Equality columns usually lead. Design indexes from real WHERE clauses.

City operations queue

Warehouse app lists DataVerse orders for a city by date.

Outcome: Composite index matches the screen filter exactly.

Interview prep for this lesson

Practice these questions aloud after reading—each links to a full structured answer.

Mid PDF Detailed
Slower Queries: Fragmented indexes cause the database engine to read more data?
Short answer: pages, slowing down query performance. Real-world example (ShopNest) ShopNest adds an index on Orders(CustomerId, CreatedAt) because “my recent orders” is queried constantly. Say this in the interview Defin…
Mid PDF Detailed
Indexing:?
Short answer: Create indexes on columns that are used in WHERE clauses, JOIN conditions, and ORDER BY clauses. Use covering indexes to avoid full table scans and improve performance. Real-world example (ShopNest) ShopNes…
Mid PDF Detailed
Faster Search: Indexes allow the database to locate rows much faster than a full?
Short answer: Faster Search: Indexes allow the database to locate rows much faster than a full? is a common interview topic in SQL & Databases. Give a clear definition, then one concrete example. Real-world example (…
Mid PDF Detailed
Large Tables: Indexes are especially helpful for large tables that are queried?
Short answer: Large Tables: Indexes are especially helpful for large tables that are queried? is a common interview topic in SQL & Databases. Give a clear definition, then one concrete example. Real-world example (Sh…
Mid PDF Detailed
Larger Indexes: Fragmentation can lead to larger index sizes and more disk space?
Short answer: Larger Indexes: Fragmentation can lead to larger index sizes and more disk space? is a common interview topic in SQL & Databases. Give a clear definition, then one concrete example. Real-world example (…
Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

SQL Server Tutorial
Course syllabus

SQL Server Tutorial

SQL — Foundations
SQL — SQL Queries & Clauses
SQL — Joins & Relationships
SQL — Indexing & Performance
SQL — Stored Procedures & Functions
SQL — Transactions & Concurrency
SQL — Advanced SQL Server
SQL — Security & High Availability
SQL — 2022 & Cloud
SQL — Real-World Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details