DP-300 Practice Question: Monitor, configure, and optimize database resources
You are monitoring an Azure SQL Database using Query Performance Insight. You see a query with high duration and high CPU usage. The query plan shows a clustered index scan. What is the most likely cause and recommendation?
⚠ Common exam trap
Candidates often confuse a clustered index scan with fragmentation or parameter sniffing, but the scan is a symptom of a missing nonclustered index that would allow a seek, not a problem with the clustered index itself or plan caching.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Missing nonclustered index; create an index on the predicates.
Query Performance Insight shows a query with high duration and CPU usage, and the query plan reveals a clustered index scan. A clustered index scan reads all rows in the table, which is inefficient when only a subset of rows is needed. The most likely cause is a missing nonclustered index on the columns used in the WHERE clause (predicates), which would allow a seek operation instead of a full scan, reducing both CPU and duration.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Fragmented clustered index; rebuild the clustered index.
Why it's wrong here
Fragmentation degrades scan efficiency but does not cause the scan itself; the optimiser still chooses a scan when no non-clustered index covers the predicate. Rebuilding suits high page-split fragmentation on large clustered indexes, not an absent index.
- ✗
Insufficient memory; increase the service tier.
Why it's wrong here
A clustered index scan reflects missing or unusable non-clustered indexes for the predicate, not memory pressure; raising the service tier adds memory and IOPS but leaves the scan pattern intact. Memory tuning suits plan regressions or cache eviction under concurrent load.
- ✓
Missing nonclustered index; create an index on the predicates.
Why this is correct
A clustered index scan reading the whole table indicates the predicate columns lack a supporting nonclustered index, forcing full scans that inflate duration and CPU. Creating a nonclustered index on those predicate columns enables seeks, directly addressing the observed plan.
- ✗
Parameter sniffing; add OPTION (RECOMPILE).
Why it's wrong here
Parameter sniffing produces a plan optimal for one parameter value, typically showing seeks or estimates skewed from actuals; a clustered index scan here indicates no suitable non-clustered index exists. RECOMPILE addresses plan reuse, not a missing access path.
Go deeper
Related to this question
Learn chapter
Monitoring Database Performance with Azure Tools
Key term
Azure SQL Indexes
Structures in Azure SQL Database that speed up data retrieval by providing quick access paths to rows, similar to a book index.
Key term
Azure SQL Performance Tuning
Azure SQL Performance Tuning is the process of optimizing the speed and efficiency of queries and database operations in Microsoft Azure SQL Database or SQL Managed Instance to reduce latency and improve throughput.
About these practice questions
Courseiva writes every DP-300 question from scratch — 574 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DP-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-300 exam.