Courseiva

CCNA Monitor Optimize Db Questions

75 of 158 questions · Page 2/3 · Monitor Optimize Db topic · Answers revealed

76
MCQmedium

You have a SQL Managed Instance that hosts a critical OLTP database. You notice that the average query wait time has increased significantly over the past hour. You need to identify the top resource waits. What should you use?

A.sys.dm_exec_query_stats
B.Query Store Wait Stats in SSMS
C.sys.dm_os_wait_stats
D.sys.dm_db_index_usage_stats
AnswerC

sys.dm_os_wait_stats aggregates cumulative wait statistics by wait type across the instance, letting you rank the top resource waits causing the slowdown. It directly satisfies the need to identify which resource the OLTP workload is waiting on.

Why this answer

C is correct because sys.dm_os_wait_stats is the dynamic management view that aggregates wait statistics across all sessions in the SQL Server instance, including SQL Managed Instance. It provides cumulative wait times categorized by wait type (e.g., PAGEIOLATCH, LCK_M_S), making it the appropriate tool to identify top resource waits when average query wait time increases.

Exam trap

The trap here is that candidates confuse performance metrics DMVs (like sys.dm_exec_query_stats) with wait statistics DMVs, or they assume Query Store Wait Stats is the primary diagnostic tool for real-time wait analysis, when sys.dm_os_wait_stats is the direct and authoritative source for identifying top resource waits.

How to eliminate wrong answers

Option A is wrong because sys.dm_exec_query_stats returns aggregated performance statistics for cached query plans (e.g., CPU time, logical reads), not wait statistics; it cannot show resource waits. Option B is wrong because Query Store Wait Stats in SSMS is a feature that surfaces wait statistics from the Query Store, but it relies on the Query Store being enabled and configured, and it does not provide the comprehensive, instance-level wait statistics that sys.dm_os_wait_stats does for immediate diagnosis. Option D is wrong because sys.dm_db_index_usage_stats tracks index usage patterns (seeks, scans, updates), not wait times or resource contention.

77
Multi-Selecteasy

You are monitoring an Azure SQL Database. You need to identify which two metrics are most important for detecting a memory pressure issue. Which TWO should you select?

Select 2 answers
A.Log IO percentage
B.Memory grants pending
C.Page life expectancy
D.CPU percentage
E.Data IO percentage
AnswersB, C

Memory grants pending counts queries waiting for workspace memory before execution, so sustained non-zero values directly signal memory pressure. Unlike buffer cache hit ratio, which reflects page availability, this metric exposes grant contention at the workspace level, satisfying the stem's requirement to detect memory pressure in Azure SQL Database.

Why this answer

Memory grants pending (B) is a key indicator of memory pressure because it counts the number of queries waiting for a workspace memory grant; a sustained nonzero value means SQL Server cannot satisfy concurrent memory requests, directly signaling memory contention. Page life expectancy (C) measures how long pages stay in the buffer pool, and a low or declining PLE indicates that data pages are being evicted too quickly, which is a classic symptom of buffer pool memory pressure. Together these two metrics isolate memory-related stress rather than I/O or CPU behavior.

Log IO percentage (A) and Data IO percentage (E) reflect storage throughput/latency, and CPU percentage (D) reflects processor utilization, so none of them directly diagnose memory pressure.

78
MCQhard

Refer to the exhibit. An Azure SQL Database is experiencing performance degradation. Based on the Extended Events and wait statistics, which is the most likely root cause?

A.Blocking due to lock contention
B.CPU pressure from high-complexity queries
C.I/O subsystem bottleneck
D.Insufficient memory allocation for the database
AnswerC

Elevated wait times on PAGEIOLATCH and related I/O waits, combined with the Extended Events output, point to storage latency rather than CPU or blocking. The database is waiting on data pages to be read from disk, indicating the underlying I/O subsystem cannot meet demand.

Why this answer

The exhibit shows PAGEIOLATCH_SH and WRITELOG waits dominating the wait statistics, which are classic indicators of I/O subsystem bottlenecks. PAGEIOLATCH_SH waits occur when a session is waiting for a data page to be read from disk into the buffer pool, while WRITELOG waits indicate delays in writing to the transaction log. These waits are not caused by CPU or memory pressure, but by slow disk I/O, making option C the correct root cause.

Exam trap

The trap here is that candidates see PAGEIOLATCH_SH and assume it is always caused by insufficient memory, but the combination with WRITELOG waits clearly points to an I/O bottleneck, not a memory issue.

How to eliminate wrong answers

Option A is wrong because blocking due to lock contention would manifest as LCK_M_* waits (e.g., LCK_M_S, LCK_M_X), not PAGEIOLATCH_SH or WRITELOG waits. Option B is wrong because CPU pressure from high-complexity queries would show SOS_SCHEDULER_YIELD or CXPACKET waits, not I/O-related waits. Option D is wrong because insufficient memory allocation would cause PAGEIOLATCH_SH waits only if memory pressure forces excessive physical I/O, but the presence of WRITELOG waits points directly to a log write bottleneck, not a memory shortage; memory pressure alone would not cause WRITELOG waits.

79
MCQmedium

You manage an Azure SQL Database that is part of a business-critical application. You need to configure an alert that triggers when the database's CPU usage exceeds 80% for 10 minutes. The alert must notify an operations team via email. You want to minimize administrative effort. What should you do?

A.Enable automatic tuning and configure the FORCE_LAST_GOOD_PLAN option.
B.Create a SQL Agent job that queries sys.dm_db_resource_stats and sends an email if CPU exceeds 80%.
C.Create an alert rule in Azure Monitor with a metric signal for CPU percentage and an action group that sends email.
D.Use Query Store to create a custom alert when CPU usage exceeds 80%.
AnswerC

Azure Monitor alert rules can monitor the CPU percentage metric of an Azure SQL Database. You can set a threshold of 80% and an aggregation granularity of 10 minutes. Associating an action group with email notifications fulfills the requirement with minimal effort, as it is a built-in, integrated solution.

Why this answer

Azure Monitor is the native monitoring solution for Azure SQL Database. It allows you to create metric alerts on CPU percentage with a threshold and time window, and action groups can send emails. This requires no custom code and is the least administrative effort.

SQL Agent is unavailable, automatic tuning is not for alerting, and Query Store lacks alerting features.

Exam trap

The trap here is assuming that SQL Server Agent or Query Store can provide alerting, when Azure SQL Database requires Azure Monitor for native alerting.

80
MCQhard

You have an Azure SQL Database with a heavy workload. You notice that the `PAGEIOLATCH_SH` wait is the top wait. Which performance issue does this indicate?

A.Blocking
B.CPU bottleneck
C.I/O subsystem bottleneck
D.Memory pressure
AnswerC

`PAGEIOLATCH_SH` waits occur when sessions block acquiring shared latches while pages are read from disk into the buffer pool, so sustained dominance points to the storage layer rather than CPU or locking. This satisfies the stem's heavy-workload constraint by identifying the I/O subsystem as the bottleneck, prompting investigation of disk latency and throughput.

Why this answer

The `PAGEIOLATCH_SH` wait type indicates that a query is waiting for a data page to be read from disk into the buffer pool. Since this is the top wait, it points to an I/O subsystem bottleneck where the storage cannot keep up with the demand for reading pages, causing performance degradation.

Exam trap

The trap here is that candidates confuse `PAGEIOLATCH_SH` with memory pressure or blocking, but the key distinction is that this wait type specifically measures I/O latency for reading pages from disk, not memory availability or lock contention.

How to eliminate wrong answers

Option A is wrong because blocking is indicated by wait types like `LCK_M_*` (e.g., `LCK_M_S` or `LCK_M_X`), not by `PAGEIOLATCH_SH`. Option B is wrong because a CPU bottleneck typically manifests as high `SOS_SCHEDULER_YIELD` or `CXPACKET` waits, not I/O-related latches. Option D is wrong because memory pressure usually shows as `PAGEIOLATCH_EX` (for writes) or `RESOURCE_SEMAPHORE` waits, and while `PAGEIOLATCH_SH` can be exacerbated by insufficient memory, the primary indicator here is an I/O subsystem issue.

81
Matchingmedium

Match each Azure SQL Database monitoring metric to its meaning.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

Percentage of DTU or CPU used

Percentage of data I/O limit used

Percentage of log write limit used

Number of deadlocks occurring per minute

Why these pairings

These metrics are used to monitor resource usage and performance in Azure SQL Database.

82
MCQhard

You are tuning an Azure SQL Database that uses the General Purpose service tier. You notice that a specific query has a high average CPU time but a low average elapsed time. Query Store shows that the query plan uses a Hash Match (Aggregate) operator. You need to reduce the CPU consumption of this query. What should you do?

A.Update statistics on the involved tables.
B.Force a plan that uses a Stream Aggregate operator.
C.Create a covering index for the query's join and filter columns.
D.Rewrite the query to reduce the number of rows processed before aggregation.
AnswerD

The high CPU time with a Hash Match (Aggregate) suggests that the aggregation is processing a large number of rows. Reducing the row count earlier in the query (e.g., by adding more selective filters, pre-aggregating in a subquery, or using a indexed view) decreases the work the hash aggregate must perform. This directly lowers CPU consumption. Other options like index changes or plan forcing may help but are less direct and may not address the root cause of excessive rows entering the aggregate.

Why this answer

A Hash Match (Aggregate) operator builds a hash table of group values and is CPU-intensive when processing many rows. The most effective way to reduce its CPU cost is to reduce the number of rows that reach the aggregate. This can be done by filtering earlier, pre-aggregating, or using indexed views.

While indexes and statistics can influence plan choice, they do not directly reduce the CPU work of the hash aggregate if the row count remains high.

Exam trap

The trap here is focusing on index or statistics changes when the high CPU is caused by the aggregation operator processing too many rows, not by missing indexes or outdated statistics.

83
MCQhard

You have an Azure SQL Database that is part of an elastic pool. You notice that the pool's eDTU consumption is consistently high, and some databases are experiencing resource contention. You need to ensure that a critical database always gets a minimum amount of resources. What should you configure?

A.Configure per-database max eDTU for the critical database
B.Increase the eDTU of the elastic pool
C.Move the critical database to a dedicated service tier
D.Configure per-database min eDTU for the critical database
AnswerD

Per-database min eDTU guarantees the critical database a reserved floor of resources within the elastic pool, so contention from other databases cannot starve it. This directly satisfies the requirement that the critical database always receives a minimum amount of resources.

Why this answer

In an Azure SQL elastic pool, per-database min eDTU (or min vCore) guarantees a floor of resources that a specific database can always consume, even when other databases in the pool are competing for resources. Setting a min eDTU on the critical database ensures it is never starved during contention. This directly addresses the requirement that the critical database 'always gets a minimum amount of resources.'

Exam trap

DP-300 often tests the confusion between min and max eDTU settings — candidates see 'minimum amount of resources' and incorrectly pick max eDTU, forgetting that max is a ceiling, not a floor.

How to eliminate wrong answers

Option A is wrong because per-database max eDTU only caps how much a database can consume — it does not guarantee any minimum, so the critical database could still be starved. Option B is wrong because increasing the pool's total eDTU raises the shared ceiling but does not reserve resources for any specific database; contention can still occur. Option C is wrong because moving to a dedicated tier is a valid workaround but is not the configuration change being asked for, and it defeats the purpose of the elastic pool.

84
MCQmedium

You are managing an Azure SQL Database that is used by a real-time analytics application. The database uses the Hyperscale service tier. You notice that the transaction log rate is consistently high, causing performance degradation. You need to reduce the log generation rate without compromising data durability. What should you do?

A.Enable compression on transaction log backups.
B.Create additional nonclustered indexes on frequently updated tables.
C.Increase the service tier to Business Critical.
D.Increase the backup retention period.
AnswerC

Increasing the service tier to Business Critical provides better log write performance through local SSD storage, reducing the log generation rate. This option is correct.

Why this answer

Increasing the service tier to Business Critical does not reduce the transaction log generation rate; it only improves log write throughput. The log generation rate is workload‑dependent and is not changed by moving to a higher tier. None of the provided options achieve the goal of reducing the log generation rate while maintaining durability.

To reduce the rate, you would need to optimize the application (e.g., batching, reducing transactions), which is not offered among the choices.

Exam trap

A common trap is to think that compressing log backups reduces log generation, but it only reduces backup size. The actual solution is to upgrade to a higher tier with better log write performance.

85
Multi-Selecthard

You are optimizing an Azure SQL Database that uses the Business Critical tier. Which TWO factors affect the maximum log rate?

Select 2 answers
A.Service level objective (SLO)
B.Number of vCores
C.Backup retention period
D.Number of log files
E.Page compression level
AnswersA, B

The service level objective sets the provisioned compute and storage limits, which directly cap the transaction log generation rate for Business Critical databases. Higher SLOs provision more log throughput, so the SLO determines the ceiling on log rate independent of workload tuning.

Why this answer

The maximum log rate for an Azure SQL Database in the Business Critical tier is determined by the service level objective (SLO) and the number of vCores. Option A is correct because the SLO defines the performance tier and hardware configuration, which directly caps the log generation rate (e.g., Business Critical with 4 vCores has a specific log rate limit). Option B is correct because within a given SLO, the log rate scales with the number of vCores—more vCores allow a higher maximum log rate.

Option C is incorrect because backup retention period affects storage and recovery, not log throughput. Option D is incorrect because Azure SQL Database manages log files automatically; the number of log files is not a user-configurable factor affecting log rate. Option E is incorrect because page compression reduces data size and I/O but does not directly determine the maximum log generation rate.

86
MCQmedium

You are monitoring an Azure SQL Database using the Automatic Tuning feature. The database has a workload that is read-intensive. You enable the CREATE INDEX and DROP INDEX options. After a week, you observe that the database has created several new indexes automatically. However, you notice that one of the new indexes is causing increased write latency for an application that performs frequent updates. What should you do to resolve the issue without losing the benefits of automatic tuning for other indexes?

A.Use the Azure portal to revert all automatic tuning recommendations for the past week.
B.Manually create the missing indexes that were dropped by automatic tuning.
C.Disable automatic tuning for the entire database.
D.Manually drop the problematic index using a DROP INDEX command.
AnswerD

Dropping the single problematic index removes the write-latency penalty while Automatic Tuning continues managing the remaining indexes. This satisfies the constraint of retaining automatic tuning benefits elsewhere, since disabling the feature globally would forfeit those gains.

Why this answer

Manually dropping the problematic index allows you to resolve the specific performance issue caused by increased write latency while retaining the benefits of automatic tuning for other indexes. The Automatic Tuning feature in Azure SQL Database can create indexes to improve read performance, but these indexes may introduce overhead on write operations. By issuing a DROP INDEX command, you surgically remove only the offending index without disabling the overall tuning mechanism.

Exam trap

The trap here is that candidates may think disabling automatic tuning entirely or reverting all recommendations is necessary, but the correct approach is to manually drop only the problematic index to preserve the benefits of automatic tuning for other indexes.

How to eliminate wrong answers

Option A is wrong because reverting all automatic tuning recommendations for the past week would undo all index changes, including beneficial ones, and does not target the specific problematic index. Option B is wrong because manually creating missing indexes that were dropped by automatic tuning is irrelevant; the issue is a newly created index causing write latency, not missing indexes. Option C is wrong because disabling automatic tuning for the entire database would stop all future tuning recommendations and lose the benefits of automatic index management for other queries, which is an overreaction to a single problematic index.

87
MCQhard

You are configuring a private endpoint for an Azure SQL Database. The exhibit shows the current network ACLs. You need to ensure that only traffic from a specific subnet in VNet1 is allowed, and all other traffic is denied. What should you do?

A.No changes needed; the configuration already meets the requirement.
B.Add an IP rule to allow the subnet's IP range.
C.Set ignoreMissingVnetServiceEndpoint to true.
D.Change defaultAction to Allow.
AnswerA

Default deny with a VNet rule for the subnet allows only that subnet.

Why this answer

The exhibit shows that the private endpoint is configured with a network ACL that has a deny-all default action and an explicit allow rule for the specific subnet in VNet1. Since private endpoints use network policies (like NSG rules) to filter traffic, and the ACL already denies all traffic except the allowed subnet, no changes are needed. The configuration meets the requirement because the private endpoint's network ACLs are evaluated in order, and the explicit allow for the subnet overrides the default deny for all other traffic.

Exam trap

The trap here is that candidates may think they need to add an IP rule for the subnet's IP range (Option B) or change the default action to allow (Option D), not realizing that private endpoints use virtual network rules that already implicitly allow traffic from the subnet, and the default deny action is correct for restricting all other traffic.

How to eliminate wrong answers

Option B is wrong because adding an IP rule to allow the subnet's IP range is unnecessary; the private endpoint already uses the subnet's virtual network identifier, not a raw IP range, and the ACL already allows the subnet via a virtual network rule. Option C is wrong because 'ignoreMissingVnetServiceEndpoint' is a property for Azure SQL Database firewall rules when using service endpoints, not for private endpoint ACLs; it does not apply here. Option D is wrong because changing 'defaultAction' to 'Allow' would permit all traffic, including traffic from outside the specified subnet, which contradicts the requirement to deny all other traffic.

88
MCQhard

You have an Azure SQL Database that uses the Hyperscale service tier. You notice that the log rate is frequently throttled. Which configuration change can help reduce log rate throttling?

A.Increase max degree of parallelism
B.Increase the log rate limit by scaling up the service level objective
C.Reduce backup retention period
D.Add more compute replicas
AnswerB

Hyperscale log rate limits scale with the service level objective, so scaling up raises the permitted log generation rate. This directly addresses the throttling constraint, unlike storage or replica changes, which do not affect the log rate ceiling.

Why this answer

In Azure SQL Database Hyperscale, log rate is governed by the service level objective, and when the log generation rate exceeds the limit the workload is throttled. Scaling up to a higher service level objective raises the log rate limit, directly relieving the throttling. This is the documented remedy for log rate throttling in Hyperscale.

Exam trap

DP-300 often tests whether candidates understand that Hyperscale log rate is tied to the service level objective, not to parallelism or replica count; candidates frequently pick 'add more replicas' assuming more compute always solves throughput problems.

How to eliminate wrong answers

Option A is wrong because max degree of parallelism controls how many processors a single query can use; it affects query execution parallelism, not the log throughput ceiling, and increasing it can even increase log generation. Option C is wrong because backup retention is a data-protection setting with no bearing on log rate limits. Option D is wrong because adding compute replicas (named replicas) provides additional read-scale compute but does not raise the primary's log rate limit.

89
MCQeasy

You are responsible for an Azure SQL Database that hosts a reporting workload. The database runs a large number of ad-hoc queries that consume significant CPU. You need to identify the top CPU-consuming queries to optimize them. Which feature should you use?

A.Automatic tuning
B.Azure SQL Auditing
C.Dynamic management views (DMVs)
D.Query Store
AnswerD

Query Store captures query execution plans and runtime statistics, including CPU usage, duration, and reads. It allows you to identify top resource-consuming queries over time. This makes it the ideal tool for finding and optimizing high-CPU queries in Azure SQL Database.

Why this answer

Query Store is designed to capture and persist query performance data, including CPU time. It provides built-in reports to identify top resource consumers, making it the best choice for finding high-CPU queries. Other features like auditing or automatic tuning do not offer the same level of detailed query-level CPU analysis.

Exam trap

The trap here is confusing automatic tuning with Query Store; automatic tuning acts on recommendations but does not provide the detailed query-level CPU metrics needed for manual optimization.

90
MCQmedium

You manage an Azure SQL Managed Instance that hosts a critical OLTP database. You notice that the average CPU usage is consistently above 90% during business hours. You have enabled Intelligent Insights, which recommends creating a missing index. What should you do first to validate the recommendation before implementing it?

A.Use Query Store to review query performance and missing index details.
B.Scale up the managed instance to a higher tier.
C.Enable automatic index tuning.
D.Create the recommended index immediately.
AnswerA

Query Store captures execution plans, runtime statistics and missing-index suggestions per query, letting you confirm the high-CPU queries Intelligent Insights flagged and assess the proposed index's projected impact. This satisfies the stem's requirement to validate the recommendation before implementing it, since Query Store retains historical workload data rather than relying on the advisory alone.

Why this answer

Before acting on Intelligent Insights' missing index recommendation, you should validate it against actual workload evidence. Query Store captures query text, plans, runtime stats, and wait categories, so you can confirm the query is genuinely expensive and that the missing index would help. This avoids creating an index that adds write overhead without meaningful read benefit.

Exam trap

The trap is treating an automated recommendation as a validated fix — candidates often jump to 'create the index' or 'enable automatic tuning' because it sounds proactive, but the question explicitly asks what to do first to validate, which points to Query Store evidence.

How to eliminate wrong answers

Option B is wrong because scaling up the managed instance addresses capacity, not the root cause of the high CPU — it may mask the problem while increasing cost, and it does not validate the index recommendation. Option C is wrong because enabling automatic index tuning would apply changes without first validating them, which is risky on a critical OLTP database and skips the requested validation step. Option D is wrong because creating the index immediately ignores the instruction to validate first; an unvalidated index can degrade write performance and consume storage.

91
MCQeasy

You need to configure Azure SQL Database to automatically adjust indexing based on workload patterns. Which feature should you enable?

A.Azure Advisor
B.Intelligent Insights
C.Automatic tuning
D.Query Store
AnswerC

Automatic tuning continuously analyses workload telemetry and applies index create, drop, and rebuild recommendations without manual intervention, directly satisfying the requirement to adjust indexing based on workload patterns. Unlike manual index maintenance or Query Store alone, it acts automatically, making it the appropriate choice for Azure SQL Database.

Why this answer

Automatic tuning in Azure SQL Database continuously analyzes query execution plans and workload patterns, then automatically creates, drops, or rebuilds indexes to improve performance. It uses built-in intelligence to recommend and apply index changes without manual intervention, making it the correct feature for automatically adjusting indexing based on workload patterns.

Exam trap

A common mistake is to confuse features that provide recommendations (Azure Advisor, Intelligent Insights) or capture query performance data (Query Store) with Automatic tuning, which is the only feature that automatically applies index changes based on workload patterns without manual intervention.

How to eliminate wrong answers

Option A is wrong because Azure Advisor provides proactive recommendations for cost, security, reliability, and performance, but it does not automatically adjust indexing; it only suggests manual actions. Option B is wrong because Intelligent Insights uses built-in intelligence to monitor database performance and detect anomalies, but it does not automatically implement index changes; it delivers root cause analysis and recommendations. Option D is wrong because Query Store captures query execution statistics and plan history for troubleshooting and tuning, but it does not automatically adjust indexing; it requires manual analysis or integration with Automatic tuning to apply changes.

92
MCQhard

You are reviewing an Azure SQL Database server's vulnerability assessment settings. The exhibit shows the current configuration. A recent security audit requires that vulnerability assessment scans be enabled and that results be retained for at least 90 days. What should you do?

A.Add additional email addresses to ensure notification.
B.Change retentionDays to 90 and keep the state as Disabled.
C.Change state to Enabled and set retentionDays to 90.
D.Remove the disabledAlerts entries to enable all alerts.
AnswerC

Vulnerability assessment is inactive until its state is Enabled, and the audit mandates 90-day result retention. Setting retentionDays to 90 meets that minimum while enabling scans satisfies the first requirement, so both properties must change together on the server's configuration.

Why this answer

The requirement is to enable vulnerability assessment scans and retain results for at least 90 days. Option C correctly sets the state to Enabled (turning on the scans) and sets retentionDays to 90 (meeting the retention requirement). The other options either leave the state disabled or address unrelated settings like email notifications or alert suppression.

Exam trap

DP-300 often tests the distinction between enabling a feature and configuring its retention, and candidates may mistakenly think that changing retention alone or adjusting notifications is sufficient without enabling the feature.

How to eliminate wrong answers

Option A is wrong because adding email addresses only affects who receives notifications; it does not enable scans or set retention. Option B is wrong because keeping the state as Disabled means scans are not enabled, violating the requirement. Option D is wrong because removing disabledAlerts entries changes which alerts are active but does not enable vulnerability assessment scans or set retention.

93
Multi-Selecteasy

Which TWO metrics are available in Azure Monitor for an Azure SQL Database that can be used to set autoscale rules? (Select two.)

Select 2 answers
A.CPU percentage
B.Log write throughput
C.Deadlock count
D.DTU percentage
E.Query Store size
AnswersA, D

CPU percentage is a native Azure Monitor metric for Azure SQL Database, reflecting average compute utilisation. It satisfies the autoscale requirement because Azure Monitor autoscale rules can trigger scale actions directly from this metric, unlike log-based or non-emitted measures.

Why this answer

Option A (CPU percentage) is correct because Azure SQL Database exposes the 'cpu_percent' metric through Azure Monitor, which reports the average CPU utilization of the database and is a standard metric used to drive autoscale rules (for example, scaling up when CPU exceeds a threshold). Option D (DTU percentage) is correct because the 'dtu_consumption_percent' metric measures the percentage of the Database Transaction Unit limit consumed and is one of the most commonly used metrics for autoscale decisions on DTU-based databases. The unmarked options do not belong: Log write throughput is not a directly exposed Azure Monitor metric for autoscale on Azure SQL Database, Deadlock count is a diagnostic/query-level statistic rather than an autoscale metric, and Query Store size is an internal Query Store property, not an Azure Monitor metric available for autoscale rules.

Exam trap

DP-300 often tests which metrics are available for autoscale — candidates pick diagnostic metrics like deadlock count or Query Store size, which are not autoscale triggers.

94
MCQeasy

You are responsible for an Azure SQL Database that hosts a financial application. The database is in the General Purpose service tier. You need to ensure that the database automatically scales compute resources based on workload demand without manual intervention. What should you configure?

A.Create an elastic pool and add the database to it.
B.Enable serverless compute tier for the database.
C.Enable automatic tuning for the database.
D.Configure auto-scaling in the Azure portal for the database.
AnswerB

The serverless compute tier automatically scales compute resources based on workload demand and bills per second of compute usage. It pauses the database during inactive periods, which can reduce cost. For a financial application with variable demand, serverless provides automatic scaling without manual intervention, meeting the requirement. It is available in the General Purpose service tier, so no tier change is needed.

Why this answer

The serverless compute tier in Azure SQL Database automatically scales compute based on workload and can pause during inactivity. It is designed for single databases with intermittent or unpredictable usage. Unlike manual scaling or elastic pools, serverless requires no manual intervention to adjust resources.

Automatic tuning optimizes queries but does not scale compute. Therefore, enabling serverless compute tier is the correct choice to achieve automatic scaling without manual intervention.

Exam trap

The trap here is confusing automatic tuning with automatic scaling; automatic tuning optimizes queries, not compute resources.

95
MCQhard

Refer to the exhibit. An automatic tuning recommendation to force the last good plan is active. What should the database administrator do next?

A.Immediately implement the DROP_INDEX recommendation to reduce overhead
B.Create the recommended index to improve performance
C.Revert the plan force because it is causing regression
D.Monitor the query performance to confirm the forced plan resolves the regression
AnswerD

Forcing a plan changes execution behaviour, so the administrator must verify the regression is actually resolved. Monitoring query performance confirms the forced plan restores the previous good performance before the recommendation is left active or reverted.

Why this answer

When an automatic tuning recommendation to force the last good plan is active, the correct next step is to monitor the query performance to confirm that the forced plan resolves the regression. This is because plan forcing is a corrective action that may or may not improve performance; validation through monitoring ensures the change is beneficial before taking further steps like creating or dropping indexes.

Exam trap

Azure often tests the misconception that an automatic tuning recommendation should be immediately implemented or reverted without first monitoring its impact, leading candidates to choose premature actions like dropping indexes or reverting plans.

How to eliminate wrong answers

Option A is wrong because dropping an index based on a recommendation that is unrelated to the plan force could degrade performance if the index is still needed for other queries. Option B is wrong because creating a recommended index is not the immediate action when a plan force is active; the forced plan should be validated first to ensure it resolves the regression. Option C is wrong because reverting the plan force without monitoring its effect is premature; the forced plan may be the correct fix, and reverting could reintroduce the regression.

96
MCQmedium

You are managing an Azure SQL Database that is experiencing intermittent performance degradation. Query Store shows that a specific query's execution plan changed, causing increased CPU usage. You need to ensure consistent performance without rewriting the application. What should you do?

A.Increase the DTU/service tier of the database
B.Create a missing index recommendation
C.Drop and recreate the index used by the query
D.Force the previous query plan using Query Store
AnswerD

Forcing the previous plan through Query Store pins the known-good execution plan, bypassing the regressed plan chosen by the optimiser. This restores consistent CPU performance without application changes, directly satisfying the requirement to avoid rewriting code. Plan forcing applies immediately to the identified query, resolving the intermittent degradation.

Why this answer

Force the previous query plan using Query Store. This approach directly addresses the root cause by locking the query to a known good plan, ensuring consistent performance without application changes. Option A is incorrect because increasing the DTU/service tier may temporarily improve performance but does not fix the plan regression.

Option B is incorrect because creating a missing index recommendation may help but does not guarantee the query will use the previous plan. Option C is incorrect because dropping and recreating the index is disruptive and may not force the plan to revert.

97
MCQhard

You are troubleshooting a performance issue in an Azure SQL Database. The database is in the Hyperscale service tier. You observe that read queries are slow, and you suspect that a specific query plan is causing excessive physical reads. You want to identify the query and its plan, and then force a better plan if available. Which tool should you use to capture and analyze the plan, and then force a plan?

A.Extended Events session with sql_batch_completed and query_post_execution_showplan events.
B.Dynamic management views sys.dm_exec_requests and sys.dm_exec_sql_text.
C.Query Store, using the Top Resource Consuming Queries report and plan forcing.
D.Azure SQL Database automatic tuning with CREATE_INDEX.
AnswerC

Query Store is fully supported in the Hyperscale service tier and captures query plans and runtime statistics. It allows you to identify resource-intensive queries, view their plans, and force a specific plan. This directly meets the need to capture, analyze, and force a plan for a query causing excessive physical reads.

Why this answer

Query Store is the appropriate tool because it captures query plans and performance data over time, even in the Hyperscale tier. It enables you to identify the query with excessive physical reads, review its plan history, and force a better plan. Other tools either lack historical data or do not support plan forcing.

Exam trap

The trap here is assuming that Hyperscale does not support Query Store or plan forcing, when in fact Query Store is fully supported and is the recommended tool for plan analysis and forcing.

98
MCQhard

You administer a large Azure SQL Database that is used for a SaaS application. The database has a table with over 1 billion rows that is frequently queried by customer ID. The table currently has a clustered index on an identity column and a nonclustered index on customer ID. Queries that filter by customer ID are experiencing high IO and long execution times. You analyze the execution plan and see that the nonclustered index is used, but there are many key lookups. You need to optimize the query performance while minimizing storage overhead. What should you do?

A.Create a clustered columnstore index on the table
B.Create a filtered index on customer ID for frequent values
C.Partition the table by customer ID
D.Add all queried columns as included columns to the nonclustered index
AnswerD

Included columns are stored at the nonclustered index leaf level, eliminating the key lookups back to the clustered index for the queried columns. This addresses the high IO and long execution times while adding far less storage than a new covering index.

Why this answer

The nonclustered index on customer ID is being used, but the many key lookups indicate that the query needs columns not present in the index, forcing a lookup back to the clustered index for each row. Adding the queried columns as included columns to the nonclustered index makes it a covering index, eliminating the key lookups while adding only the necessary columns to the index leaf level — a much smaller storage footprint than a columnstore or partitioning solution.

Exam trap

DP-300 often tests the distinction between covering indexes (INCLUDE columns) and other performance features like columnstore or partitioning; candidates incorrectly assume partitioning or columnstore will fix key lookup issues when the real fix is making the nonclustered index covering.

How to eliminate wrong answers

Option A is wrong because a clustered columnstore index is optimized for large-scale analytical scans and aggregations, not for point lookups by customer ID, and it would consume significant storage and require rebuilding the table. Option B is wrong because a filtered index only helps queries that filter on the specific frequent values included in the filter; it does not eliminate key lookups for the general customer ID queries. Option C is wrong because partitioning by customer ID improves manageability and partition elimination for range queries, but it does not remove the key lookups caused by the non-covering nonclustered index.

99
MCQmedium

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?

A.Fragmented clustered index; rebuild the clustered index.
B.Insufficient memory; increase the service tier.
C.Missing nonclustered index; create an index on the predicates.
D.Parameter sniffing; add OPTION (RECOMPILE).
AnswerC

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.

Why this answer

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.

Exam trap

The trap here is that candidates 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.

How to eliminate wrong answers

Option A is wrong because a fragmented clustered index causes increased I/O and scan overhead, but the primary issue here is the scan itself, not fragmentation; rebuilding the index would not eliminate the scan if the query lacks a supporting index. Option B is wrong because insufficient memory would manifest as page life expectancy issues or disk spills, not a clustered index scan; increasing the service tier does not address the missing index. Option D is wrong because parameter sniffing leads to suboptimal cached plans for different parameter values, but the query plan shows a clustered index scan, which indicates a fundamental missing index issue, not a plan choice problem; adding OPTION (RECOMPILE) would not create the missing index.

100
MCQeasy

You manage an Azure SQL Database that uses the General Purpose tier. You need to monitor the performance of the database and identify the top resource-consuming queries. You want to use a built-in feature that requires no additional cost. What should you use?

A.Query Store.
B.Azure SQL Analytics (preview) in Azure Monitor.
C.SQL Server Profiler.
D.sys.dm_exec_query_stats and sys.dm_exec_sql_text DMVs.
AnswerA

Query Store is a built-in, free feature that captures query performance data and helps identify top resource consumers.

Why this answer

Query Store is a built-in, no-cost feature that automatically captures query execution history and helps identify top resource-consuming queries. Option B is wrong because Azure SQL Analytics (preview) is a monitoring solution that requires configuring diagnostic logs and Log Analytics, adding setup and potential cost, rather than being a simple built-in database feature. Option C is wrong because SQL Server Profiler is deprecated and not supported for Azure SQL Database.

Option D is wrong because sys.dm_exec_query_stats and sys.dm_exec_sql_text are DMVs that require manual querying and do not provide the built-in, user-friendly query performance tracking of Query Store.

101
MCQmedium

You manage an Azure SQL Database with the General Purpose service tier. The database experiences performance degradation during peak hours. You enable automatic tuning and want to ensure that the database automatically corrects plan regressions caused by parameter sniffing. Which automatic tuning option should you enable?

A.DROP INDEX
B.CREATE INDEX
C.FORCE LAST GOOD PLAN
D.AUTO_UPDATE_STATISTICS
AnswerC

FORCE LAST GOOD PLAN automatically detects plan regressions caused by parameter sniffing and forces the last known good plan. This directly addresses the issue by reverting to a plan that performed well previously, ensuring stable performance during peak hours.

Why this answer

Enabling FORCE LAST GOOD PLAN automatic tuning allows Azure SQL Database to automatically detect and mitigate plan regressions caused by parameter sniffing. When a query plan regresses, the feature forces the last known good plan, restoring performance without manual intervention. This is the precise mechanism for the described issue.

Exam trap

The trap here is confusing automatic tuning options that address index management with those that handle plan regressions.

102
MCQeasy

You are monitoring an Azure SQL Database and notice that the average CPU usage is 80% and the average data IO percentage is 70%. You need to identify the most likely cause of the high resource usage. What should you check first?

A.Check for long-running maintenance tasks
B.Check for connection pooling issues
C.Check for blocking and deadlocks
D.Use Query Store to identify top resource-consuming queries
AnswerD

Query Store captures execution plans and runtime statistics, letting you identify the specific queries driving the 80% CPU and 70% data IO. It directly satisfies the need to find the resource-consuming cause rather than guessing at infrastructure or indexing issues.

Why this answer

High average CPU (80%) and data IO (70%) suggest that the database is under sustained load from inefficient or resource-intensive queries. Query Store captures query execution plans, runtime statistics, and resource consumption per query, making it the fastest way to pinpoint the top resource consumers. Checking Query Store first allows you to identify the specific queries driving CPU and IO, which is the most direct diagnostic step.

Exam trap

The trap here is that candidates often jump to 'blocking and deadlocks' (Option C) because they associate high resource usage with concurrency issues, but sustained CPU and IO are far more commonly driven by inefficient queries rather than blocking.

How to eliminate wrong answers

Option A is wrong because long-running maintenance tasks (e.g., index rebuilds, statistics updates) typically cause periodic spikes rather than sustained average usage at 80% CPU and 70% IO, and they would be visible in job history or sys.dm_os_wait_stats. Option B is wrong because connection pooling issues (e.g., orphaned connections, pool exhaustion) manifest as connection timeouts or login failures, not as sustained high CPU and IO percentages. Option C is wrong because blocking and deadlocks primarily cause waits and timeouts, not consistently high CPU and IO; they would show high wait stats for locks but not necessarily the resource consumption levels described.

103
MCQhard

You support an Azure SQL Database that uses the General Purpose service tier. A nightly ETL process writes millions of rows, and during the load the database occasionally reports error 40501, 'The service is currently busy.' You need to reduce the chance that the ETL job is throttled while keeping the same service tier. What should you do?

A.Implement retry logic with exponential backoff in the ETL application to handle transient throttling.
B.Increase the database's max size so that the log file can grow without hitting the storage limit.
C.Enable Accelerated Database Recovery on the database to reduce log write volume during the bulk load.
D.Move the database to the Hyperscale service tier, which removes all resource governance limits.
AnswerA

Error 40501 is a transient resource governance response, and the documented mitigation is to retry the operation after a delay. Adding exponential backoff lets the ETL ride out short throttling periods without failing. This is the correct approach when you must remain on the same service tier and cannot reduce the workload's resource demand or move it to a less busy time.

Why this answer

Resource governance throttling in Azure SQL Database is transient by design; the recommended handling is to retry with backoff rather than change storage or recovery settings. Because the constraint is to remain on General Purpose, the ETL must tolerate brief throttling. Retry logic directly addresses the transient nature of error 40501.

Exam trap

The trap here is treating a transient throttling error as a configuration limit that can be fixed by changing a database setting.

104
MCQmedium

You manage an Azure SQL Database that hosts a reporting workload. Users report that a monthly aggregation query sometimes completes in 2 seconds, but other times takes over 60 seconds, even though the underlying data volume is unchanged. Query Store shows the query has two distinct plans, and the faster plan is not always chosen. You need to force the faster plan for this query. What should you do?

A.Create a plan guide using sp_create_plan_guide with the OPTION (USE PLAN) hint.
B.Enable automatic tuning with the FORCE_LAST_GOOD_PLAN option.
C.Enable the LEGACY_CARDINALITY_ESTIMATION database scoped configuration.
D.Use Query Store to force the specific fast plan for the query.
AnswerD

Query Store captures all plans for a query and allows you to force a specific plan by plan_id. Forcing the fast plan ensures the optimizer uses that plan regardless of parameter values, eliminating the variability. This is the precise, supported method to stabilize performance for a known-good plan in Azure SQL Database.

Why this answer

The scenario describes plan variability for a specific query, and Query Store already shows two plans. The most direct and supported way to stabilize performance is to force the faster plan via Query Store. Automatic tuning may help but is not targeted, plan guides with USE PLAN are unsupported in Azure SQL Database, and changing cardinality estimation is a broad change that does not guarantee the desired plan.

Exam trap

The trap here is assuming that automatic tuning FORCE_LAST_GOOD_PLAN will always pick the fastest plan, when it only reverts to the last known good plan after detecting a regression.

105
MCQeasy

You have an Azure SQL Database that is experiencing high wait times on RESOURCE_SEMAPHORE waits. You need to identify the root cause. What should you check?

A.Blocking and deadlocks
B.High CPU usage
C.Disk I/O bottlenecks
D.Queries with large memory grants
AnswerD

RESOURCE_SEMAPHORE waits occur when queries cannot obtain their requested memory grant, so checking queries with large memory grants exposes the contention directly. This satisfies the stem's requirement to identify the root cause of high wait times, since oversized grants exhaust the workspace memory pool and block other queries.

Why this answer

RESOURCE_SEMAPHORE waits indicate memory grant pressure, typically caused by queries requesting large memory grants. Option D is correct. Option A is incorrect because blocking and deadlocks produce LCK_M_* waits, not RESOURCE_SEMAPHORE.

Option B is incorrect because high CPU usage leads to SOS_SCHEDULER_YIELD waits. Option C is incorrect because disk I/O bottlenecks cause PAGEIOLATCH waits.

106
MCQeasy

You need to monitor the long-running queries in an Azure SQL Database. Which dynamic management view should you query to see queries that have been running for more than 30 seconds?

A.sys.dm_exec_requests
B.sys.dm_db_resource_stats
C.sys.dm_exec_sessions
D.sys.dm_exec_query_stats
AnswerA

sys.dm_exec_requests exposes one row per currently executing request, including a total_elapsed_time column, so filtering on total_elapsed_time > 30000 returns queries running over 30 seconds. It satisfies the stem's requirement to monitor long-running queries directly, unlike completed-query or historical views.

Why this answer

sys.dm_exec_requests is the correct DMV because it returns one row per active request currently executing on the SQL Server instance, including the total elapsed time. You can filter on total_elapsed_time > 30000 to find queries running longer than 30 seconds. It also provides session_id, status, command, and wait information, making it ideal for identifying long-running queries.

Exam trap

The trap is confusing DMVs that show aggregate statistics (sys.dm_exec_query_stats) with those that show real-time active requests (sys.dm_exec_requests); candidates often pick the former because it sounds like it tracks query performance, but it does not show currently running queries.

How to eliminate wrong answers

Option B is wrong because sys.dm_db_resource_stats returns resource usage metrics (CPU, IO, memory) for the database over time, not individual query execution details. Option C is wrong because sys.dm_exec_sessions returns one row per authenticated session, but it does not include query text or elapsed time for currently executing requests. Option D is wrong because sys.dm_exec_query_stats returns aggregate performance statistics for cached query plans, not real-time execution details of currently running queries.

107
MCQhard

You administer an Azure SQL Managed Instance that hosts a mission-critical OLTP database. The instance has 16 vCores and uses the Business Critical service tier. Users report periodic stalls during index maintenance. You observe high PAGEIOLATCH_SH waits and want to reduce their impact without changing the service tier. What should you do first?

A.Change the database to the General Purpose service tier.
B.Reduce the frequency or scope of index maintenance operations.
C.Enable In-Memory OLTP for the tables involved in index maintenance.
D.Increase the max server memory setting for the instance.
AnswerB

PAGEIOLATCH_SH waits occur when queries wait for data pages to be read from storage into the buffer pool. Index rebuilds and reorganizations scan large amounts of data, evicting useful pages and causing heavy physical reads. By reducing how often or how broadly you rebuild indexes, you lower the I/O pressure and the associated latch waits, which directly addresses the stalls without changing the service tier.

Why this answer

PAGEIOLATCH_SH waits indicate that sessions are waiting for data pages to be read from storage. Aggressive or overly frequent index maintenance forces large scans that flush the buffer pool and generate heavy physical reads. Reducing the frequency or scope of index rebuilds and reorganizations decreases this I/O pressure, directly mitigating the waits without altering the service tier or making invasive schema changes.

Exam trap

The trap here is assuming that more memory or a different service tier will automatically fix I/O latch waits, when the immediate cause is often excessive index maintenance driving physical reads.

108
MCQeasy

You are responsible for an Azure SQL Database that supports an order-processing application. The database is configured with the General Purpose service tier. During month-end processing, the application experiences slow response times. You need to determine whether the performance issue is caused by the database reaching its resource limits. Which metric should you monitor in Azure Monitor?

A.CPU percentage
B.Sessions count
C.Log write wait time
D.DTU percentage
AnswerA

For vCore-based service tiers such as General Purpose, CPU percentage is a key metric that shows how much of the provisioned compute is being used. If it consistently approaches 100% during month-end processing, the database is CPU-bound and likely needs more vCores or query tuning to improve response times.

Why this answer

In the vCore purchasing model, CPU percentage is the primary metric that indicates whether the database is approaching its compute limit. During month-end batch processing, sustained high CPU percentage points to insufficient vCores or inefficient queries, guiding you to scale up or optimize. DTU percentage is only relevant for DTU-based tiers, and other metrics do not directly show overall resource saturation.

Exam trap

The trap here is choosing DTU percentage because it is a familiar metric, even though the database uses the vCore-based General Purpose tier where CPU percentage is the appropriate measure.

109
MCQmedium

You are monitoring an Azure SQL Database using Intelligent Insights. You receive an alert that 'Query performance degradation' was detected. After reviewing the details, you find that a specific query now has a higher duration and is using a different execution plan. What is the recommended first step to troubleshoot?

A.Restart the database to clear the plan cache
B.Increase the service tier of the database
C.Query the Query Store to compare the previous and current plans
D.Run the Database Engine Tuning Advisor
AnswerC

Query Store persists historical execution plans and runtime statistics, so it directly exposes the plan change and the regressed duration. Intelligent Insights only flags the degradation; comparing the previous and current plans in Query Store identifies the root cause, such as a plan regression or missing statistics.

Why this answer

Query Store captures historical execution plans, runtime statistics, and plan changes per query, so it is the correct first step to compare the previous and current plans and identify what regressed (e.g., a plan change, parameter sniffing, or missing index). Intelligent Insights flags the degradation, but Query Store provides the forensic detail needed to diagnose it.

Exam trap

DP-300 often tests the instinct to 'restart' or 'scale up' when performance degrades — candidates miss that Query Store is the diagnostic-first tool and that restarting destroys the evidence.

How to eliminate wrong answers

Option A is wrong because restarting the database clears the plan cache and destroys diagnostic evidence, potentially masking the issue without fixing the root cause. Option B is wrong because increasing the service tier adds resources but does not diagnose a plan regression — it may hide symptoms at unnecessary cost. Option D is wrong because Database Engine Tuning Advisor is not available for Azure SQL Database and is not the right tool for plan-regression forensics.

110
Multi-Selecteasy

You need to configure monitoring for an Azure SQL Database to meet the following requirements: - Alert when average DTU consumption exceeds 90% for 10 minutes. - Track failed logins. - Analyze query performance over the last 30 days. Which THREE Azure services or features should you use? (Choose three.)

Select 3 answers
A.SQL auditing
B.Automatic tuning
C.Query Store
D.Azure Monitor metric alerts
E.Azure SQL Assessment
AnswersA, C, D

SQL auditing records authentication events, including failed logins, into Azure Storage, Log Analytics, or Event Hubs, satisfying the failed-login tracking requirement. It captures the security-relevant activity the stem demands, complementing metric alerts for DTU and Query Store for query performance analysis.

Why this answer

Azure Monitor metric alerts (D) are the correct mechanism to trigger on a metric threshold such as average DTU consumption exceeding 90% over a 10-minute window, since DTU percentage is exposed as a platform metric and metric alerts support aggregation and time-window conditions. SQL auditing (A) records login events including failed logins to an audit log or Log Analytics, which directly satisfies the requirement to track failed logins. Query Store (C) is the built-in feature that persists query execution statistics and plans, allowing analysis of query performance over a retention period such as the last 30 days.

Automatic tuning (B) is a feature that applies index and plan corrections, not a monitoring or alerting tool, so it does not meet any of the stated requirements. Azure SQL Assessment (E) evaluates configuration best practices and migration readiness, not runtime DTU alerting, login tracking, or query performance history.

Exam trap

DP-300 often tests the mapping of requirements to the correct feature — candidates confuse remediation features (Automatic tuning, Assessment) with monitoring features (metric alerts, Query Store, auditing) and pick the wrong three.

111
MCQmedium

You administer an Azure SQL Database that hosts an order-entry application. The database is in the General Purpose tier and uses the default configuration. Users complain that some inserts and updates occasionally wait for several seconds. You observe that the database's log write throughput is frequently near its tier limit, and that many small transactions are committed one row at a time. You need to reduce log write pressure without changing the service tier. What should you do?

A.Enable read committed snapshot isolation so that readers do not block writers.
B.Batch multiple row modifications into a single transaction to reduce the number of log flush operations.
C.Increase the database's max size to allow the transaction log to grow larger before truncation.
D.Change the database to the Business Critical tier so that log writes use local SSD.
AnswerB

Each committed transaction requires a log flush, so committing one row at a time multiplies the number of flushes and inflates log write throughput. Grouping many row modifications into a single transaction reduces the number of commits and therefore the number of log flushes, lowering log write pressure while staying on the same tier. This directly targets the observed near-limit log throughput.

Why this answer

Log write throughput is consumed per committed transaction because each commit forces a log flush. Many small single-row commits generate far more flushes than a few batched transactions containing the same rows. Batching reduces the number of flushes and lowers log write pressure, which addresses the bottleneck without changing the service tier.

Exam trap

The trap here is assuming that the transaction log is a storage capacity problem that can be solved by increasing max size rather than a throughput problem caused by commit frequency.

112
MCQhard

Your company uses Azure SQL Database with active geo-replication. You notice that the secondary database in a different region has a high log write latency. Users report that the primary database performance is normal. What is the most likely cause?

A.Insufficient log IOPS on the secondary database
B.Network latency between the primary and secondary regions
C.High CPU usage on the primary database
D.Excessive read workload on the secondary database
AnswerB

Active geo-replication ships transaction log records asynchronously to the secondary region, so elevated log write latency there points to the WAN link rather than local storage. The primary stays healthy because it commits locally without waiting for the secondary, matching the stem's normal primary performance.

Why this answer

In Azure SQL Database active geo-replication, the secondary database continuously receives transaction log from the primary over the network. High log write latency on the secondary while the primary performs normally points to network latency between the two regions, since the log must traverse the inter-region link and be hardened on the secondary.

Exam trap

DP-300 often tests whether candidates attribute geo-replication latency to primary-side resource pressure or secondary IOPS, when the dominant factor in cross-region asynchronous log shipping is network latency between regions.

How to eliminate wrong answers

Option A is wrong because insufficient log IOPS on the secondary would typically also manifest as latency but is less likely when the primary is normal and the issue is specifically log write latency tied to replication; the primary driver in geo-replication is network transport. Option C is wrong because high CPU on the primary would degrade primary performance, which the scenario says is normal. Option D is wrong because excessive read workload on the secondary affects query performance on the secondary, not the log write latency of replication.

113
MCQhard

You are managing an Azure SQL Database that experiences intermittent performance degradation. Query Store shows a significant increase in waits of type RESOURCE_SEMAPHORE. Which action should you take to resolve the issue?

A.Identify and optimize queries with large memory grants
B.Increase the database's DTU or vCore limit
C.Increase the database's max memory
D.Enable Query Store to capture the queries causing the waits
AnswerA

RESOURCE_SEMAPHORE waits occur when queries are waiting for memory grants. By identifying queries that request large memory grants and optimizing them (e.g., adding indexes, rewriting queries), you reduce memory pressure and alleviate the waits. This addresses the root cause directly.

Why this answer

RESOURCE_SEMAPHORE waits are caused by queries waiting for memory grants. The most effective resolution is to identify queries with large memory grants and optimize them to reduce their memory requirements. This directly reduces contention and improves performance, rather than merely adding more resources.

Exam trap

The trap here is assuming that adding more resources (DTU/vCore) will always fix wait types, when the specific wait indicates a need for query tuning.

114
MCQmedium

Your Azure SQL Database is configured with the Hyperscale service tier. You observe increased redo log latency. Which resource is most likely the bottleneck?

A.Compute node CPU
B.Log service throughput
C.Page server IO
D.Remote storage IOPS
AnswerB

Hyperscale offloads log processing to dedicated log service compute nodes, so redo log latency scales with log service throughput rather than primary compute. Increased redo latency therefore points to that log service throughput as the bottleneck.

Why this answer

In Hyperscale, the log service is a separate component that handles redo; high latency there directly affects redo speed. Option A is wrong because compute node CPU affects query processing, not redo latency specifically. Option C is wrong because page servers handle data reads, not redo.

Option D is wrong because storage IO is distributed and rarely the bottleneck for redo in Hyperscale.

115
MCQeasy

You are monitoring an Azure SQL Database using Intelligent Insights. The built-in intelligence detects a performance issue and suggests a specific index to create. The database is running the Business Critical service tier. You want to automatically implement this recommendation without manual intervention. What should you configure?

A.Enable automatic tuning for 'FORCE LAST GOOD PLAN' in the Azure portal.
B.Set up Query Store to capture the recommended index execution.
C.Configure Azure Advisor to email you the recommendation.
D.Enable automatic tuning for 'CREATE INDEX' in the Azure portal.
AnswerD

Automatic tuning applies Intelligent Insights index recommendations directly, creating the suggested index without manual action. Enabling the CREATE INDEX option on the server or database satisfies the no-intervention requirement, and Business Critical tier supports it.

Why this answer

Azure SQL Database's automatic tuning feature can automatically apply index recommendations generated by the built-in intelligence engine. Enabling the 'CREATE INDEX' automatic tuning option allows Azure to create recommended indexes without manual intervention, directly addressing the requirement. This option is supported on Business Critical tier and integrates with Intelligent Insights and Query Store to validate the recommendation before applying it.

Exam trap

The trap is conflating 'recommendation' features (Azure Advisor, Intelligent Insights) with 'automatic implementation' features (automatic tuning) — candidates pick the tool that surfaces the recommendation rather than the one that applies it.

How to eliminate wrong answers

Option A is wrong because 'FORCE LAST GOOD PLAN' addresses plan regression by reverting to a previously good execution plan — it does not create indexes and is unrelated to index recommendations. Option B is wrong because Query Store is the telemetry engine that captures query runtime statistics; it does not itself implement index recommendations, it only records data that tuning features consume. Option C is wrong because Azure Advisor email notifications are informational only and require a human to act on the recommendation, which contradicts the 'without manual intervention' requirement.

116
MCQhard

The database 'mydb' is experiencing performance issues during peak hours. Based on the exhibit, what is the most likely cause?

A.Zone redundancy is disabled, causing failover delays.
B.The service tier S3 is not sufficient for the workload.
C.Read scale is disabled, increasing load on primary.
D.The database is auto-pausing frequently due to autoPauseDelay.
AnswerB

S3 caps at 100 DTUs, so peak-hour demand exceeding that ceiling throttles throughput and inflates latency. The exhibit's resource-wait pattern confirms the workload outgrows the tier, making a scale-up to a higher service objective the direct remedy for the stated bottleneck.

Why this answer

Azure SQL Database service tier S3 (Standard tier, 100 DTUs) is a relatively low-performance tier. If the database experiences performance issues during peak hours, the most likely cause is that the service tier cannot handle the workload's concurrency and throughput demands. Upgrading to a higher tier (e.g., Premium or vCore-based) would provide more DTUs/vCores and IOPS.

Exam trap

DP-300 often tests the misconception that availability features (zone redundancy, read scale) cause performance issues — candidates must distinguish availability/HA features from compute capacity limits like service tier.

How to eliminate wrong answers

Option A is wrong because zone redundancy affects availability during a zone failure, not peak-hour performance — it does not cause performance degradation under load. Option C is wrong because read scale-out offloads read-only workloads to replicas; while disabling it can increase primary load, the exhibit points to tier capacity as the primary bottleneck, and read scale is only available on Premium/Business Critical tiers anyway. Option D is wrong because auto-pause applies to serverless tier databases, not S3 (Standard) tier, and auto-pause delays would cause connection delays, not sustained peak-hour performance issues.

117
MCQhard

Refer to the exhibit. Which action should you take to improve performance?

A.Enable automatic tuning for the query.
B.Increase the database's DTU/DTU level.
C.Force plan 2 using the query store.
D.Drop and recreate the query's indexes.
AnswerC

Query Store retains multiple plans per statement, letting you pin the historically faster plan without rewriting code. Forcing plan 2 bypasses the regressed plan the optimiser currently chooses, restoring the execution characteristics the exhibit shows were previously acceptable.

Why this answer

When Query Store shows that a specific plan (Plan 2) performs significantly better than the currently used plan, forcing that plan via Query Store is the targeted fix. Query Store's 'Force Plan' feature pins the optimizer to the known-good plan, immediately restoring performance without changing database tier or schema. This is the least invasive and most precise remediation for a plan-regression issue.

Exam trap

DP-300 often tests whether candidates jump to resource scaling (DTU) for performance issues that are actually plan regressions — the exhibit showing multiple plans with different performance is the cue to force the better plan.

How to eliminate wrong answers

Option A is wrong because automatic tuning can create indexes or force plans automatically, but it is not the direct action to force a specific known-good plan — and it may not act quickly enough for an immediate fix. Option B is wrong because increasing DTU/resources does not address a bad query plan; it only masks the symptom by adding compute, which is costly and ineffective if the plan itself is inefficient. Option D is wrong because dropping and recreating indexes is disruptive and does not guarantee the optimizer will choose Plan 2 — it may pick the same bad plan again, and it risks impacting other queries.

118
MCQmedium

You manage an Azure SQL Database that has automatic tuning enabled. You receive an alert that the database is experiencing plan regression. The automatic tuning has forced a plan, but performance is still poor. What should you do first?

A.Disable automatic tuning and create a plan guide.
B.Review the Query Store to identify the root cause of regression.
C.Manually revert to the previous plan using Query Store.
D.Scale up the database to reduce resource pressure.
AnswerB

Query Store captures every plan, runtime statistic and regression event, so it reveals why the forced plan still performs poorly before you change any tuning configuration. Automatic tuning only forces a plan; diagnosing the underlying cause requires the historical execution data Query Store retains.

Why this answer

When automatic tuning has forced a plan but performance remains poor, the first step is to investigate the root cause using Query Store, which captures query plans, runtime statistics, and regressions. Query Store provides the historical data needed to understand why the forced plan is not optimal and whether the regression is due to parameter sniffing, statistics, or schema changes. Only after diagnosis should you consider reverting or disabling automatic tuning.

Exam trap

DP-300 often tests the order of operations — candidates want to immediately fix the problem (revert plan, scale up) but the correct first step is always to diagnose using Query Store.

How to eliminate wrong answers

Option A is wrong because disabling automatic tuning and creating a plan guide is premature — you should first diagnose the issue; plan guides are a workaround, not a first response. Option C is wrong because manually reverting to the previous plan using Query Store assumes the previous plan is better, but the forced plan was already the 'last good plan' and performance is still poor, so reverting may not help without understanding the root cause. Option D is wrong because scaling up addresses resource pressure, but plan regression is typically a plan-quality issue, not a resource-capacity issue, so scaling up may waste money without fixing the problem.

119
Multi-Selectmedium

Which THREE actions can you take to monitor and optimize database resources in Azure SQL Database? (Choose three.)

Select 3 answers
A.Enable Microsoft Defender for Azure SQL to detect vulnerabilities.
B.Use Query Store to track query performance over time.
C.Query dynamic management views to identify blocking and resource waits.
D.Enable automatic tuning to automatically implement performance improvements.
E.Configure Microsoft Sentinel to monitor database activity.
AnswersB, C, D

Query Store persists execution plans, runtime statistics and wait categories inside the database, letting you identify regressed queries and plan changes across time windows. This directly satisfies the stem's requirement to monitor and optimise database resources, since historical query-level telemetry is unavailable through dynamic management views alone.

Why this answer

Options B, C, and D are correct. Query Store tracks query performance over time, dynamic management views help identify blocking and resource waits, and automatic tuning automatically implements performance improvements. Option A (Microsoft Defender for SQL) is a security feature for vulnerability detection, not directly for monitoring and optimizing database resources.

Option E (Microsoft Sentinel) is a security information and event management (SIEM) tool, not specifically for database monitoring and optimization.

120
Multi-Selectmedium

Which TWO options are valid methods to optimize query performance in Azure SQL Managed Instance?

Select 2 answers
A.Use columnstore indexes on large tables
B.Set database compatibility level to 150
C.Increase the maximum storage size
D.Enable Query Store and monitor regressions
E.Enable Transparent Data Encryption (TDE)
AnswersA, D

Columnstore indexes store data column-wise with compression and batch-mode execution, cutting I/O for large analytical scans on Azure SQL Managed Instance. This directly satisfies the stem's query performance optimisation goal for large tables, where rowstore indexes would scan far more pages.

Why this answer

Options A and D are correct. Columnstore indexes (A) improve analytical query performance by reducing I/O and using batch processing. Query Store (D) helps identify regressions by tracking execution plans and performance metrics.

Option B is incorrect; setting database compatibility level to 150 may enable new features but is not a direct query optimization method. Option C is incorrect; increasing storage size does not improve query performance. Option E is incorrect; Transparent Data Encryption (TDE) secures data but does not enhance performance.

121
Drag & Dropmedium

Drag and drop the steps to configure transparent data encryption (TDE) for an Azure SQL Database using a customer-managed key in Azure Key Vault in the correct order.

Drag or tap steps into the slots.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

First set up Key Vault with a key, grant permissions, then enable TDE with customer-managed key, select the key, and save.

122
MCQeasy

You are monitoring an Azure SQL Database and notice high PAGELATCH waits. What is the most likely cause?

A.Concurrent inserts into a table with a clustered index causing last-page contention.
B.Insufficient buffer pool size leading to frequent reads from disk.
C.High CPU usage due to inefficient queries.
D.Long-running transactions blocking other queries.
AnswerA

PAGELATCH waits occur when sessions contend for the same in-memory page; with a clustered index, concurrent inserts target the last page, serialising access there. This last-page contention is the specific mechanism producing the high PAGELATCH waits observed, matching the stem's symptom.

Why this answer

High PAGELATCH waits in Azure SQL Database are most commonly caused by concurrent inserts into a table with a clustered index, leading to last-page contention. Multiple threads trying to insert into the same page serialize on the page latch, causing PAGELATCH waits. This is a classic OLTP pattern where a monotonically increasing key (like an IDENTITY column) causes all inserts to target the last page.

Exam trap

DP-300 often tests the confusion between PAGELATCH (in-memory page latch contention) and PAGEIOLATCH (disk I/O waits) or lock waits (LCK_M_*), causing candidates to pick buffer pool or blocking answers.

How to eliminate wrong answers

Option B is wrong because insufficient buffer pool size leads to PAGEIOLATCH waits (I/O-related), not PAGELATCH waits, which are in-memory latch contention. Option C is wrong because high CPU from inefficient queries causes SOS_SCHEDULER_YIELD or CXPACKET waits, not PAGELATCH. Option D is wrong because long-running transactions blocking other queries cause LCK_M_* waits (lock waits), not PAGELATCH waits, which are latch (not lock) contention.

123
MCQhard

You manage an Azure SQL Database that uses the Business Critical service tier. A critical reporting query normally completes in under 5 seconds but occasionally takes over 60 seconds. You observe that during these slow executions, the query uses a different execution plan that performs a large number of physical reads. You need to ensure that the fast plan is used consistently for this query. What should you do?

A.Increase the database's compute size to reduce physical reads.
B.Enable automatic tuning FORCE_LAST_GOOD_PLAN on the database.
C.Create a plan guide using sp_create_plan_guide for the query.
D.Use Query Store to force the fast execution plan for the query.
AnswerD

Query Store captures multiple plans for a query and allows you to force a specific plan. By identifying the fast plan in Query Store and forcing it, you ensure that the query consistently uses that plan, avoiding the slow plan that causes excessive physical reads. This is the most direct and supported method in Azure SQL Database.

Why this answer

Query Store captures all plans generated for a query and provides a mechanism to force a specific plan. When a query occasionally uses a suboptimal plan that causes high physical reads, you can identify the fast plan in Query Store and force it, ensuring consistent performance. This approach is native to Azure SQL Database and allows you to monitor and easily revert if needed.

Exam trap

The trap here is assuming that enabling automatic tuning will always force the exact fast plan, but automatic tuning only forces the last known good plan reactively and may not select the specific plan you want.

124
Multi-Selectmedium

You are monitoring an Azure SQL Database using Azure Monitor metrics. You need to configure alerts to notify the operations team when the database is approaching resource limits. Which two metrics should you use to detect potential CPU and I/O bottlenecks? (Choose two.)

Select 2 answers
A.sessions_percent
B.log_write_percent
C.cpu_percent
D.physical_data_read_percent
E.workers_percent
AnswersC, D

The cpu_percent metric represents the percentage of CPU usage by the database. It is a direct indicator of CPU pressure. Alerting when this metric consistently exceeds a threshold, such as 80%, helps identify CPU bottlenecks before they impact performance. This metric is available in Azure Monitor for Azure SQL Database.

Why this answer

To detect CPU and I/O bottlenecks, the cpu_percent and physical_data_read_percent metrics are the most direct indicators. cpu_percent shows CPU utilization, while physical_data_read_percent reflects I/O read pressure. These metrics are available in Azure Monitor and can be used to trigger alerts when thresholds are exceeded, enabling proactive management.

Exam trap

The trap here is choosing metrics like log_write_percent or workers_percent that are related to resource usage but not specifically CPU or read I/O, which are the bottlenecks in question.

125
MCQmedium

You observe that the average of Maximum DTU consumption over the last hour is consistently above 90%. What should you do next?

A.Scale up the database to a higher service tier or increase DTU.
B.Enable Query Store to analyze top queries.
C.Rebuild all indexes in the database.
D.Do nothing; it's normal for DTU to be high.
AnswerA

Sustained Maximum DTU above 90% indicates the database tier is saturated and cannot absorb further load. Scaling up to a higher service tier or increasing DTUs adds compute and I/O capacity, directly relieving the resource bottleneck causing the high consumption.

Why this answer

A sustained average of Maximum DTU consumption above 90% over an hour indicates the database is consistently resource-bound and approaching its tier ceiling. The correct next step is to scale up to a higher service tier or add DTUs so the workload has headroom and latency does not degrade. Query Store and index maintenance are optimization steps, but the immediate signal is capacity saturation.

Exam trap

DP-300 often tests whether candidates jump to query tuning when the metric itself is a capacity signal — the trap is choosing optimization over scaling for sustained high DTU.

How to eliminate wrong answers

Option B is wrong because Query Store is a diagnostic/optimization tool, not the immediate response to sustained saturation — you enable it to find bad queries, but the resource ceiling still needs raising first. Option C is wrong because rebuilding all indexes is a heavy, indiscriminate operation that can worsen DTU pressure and is not justified by a DTU metric alone. Option D is wrong because consistently exceeding 90% DTU is a documented signal to scale, not a normal steady state.

126
MCQmedium

You are responsible for an Azure SQL Database that hosts a mission-critical application. You need to configure an alert that fires when the database's CPU usage exceeds 90% for more than 10 minutes. You want to use the built-in Azure Monitor metrics for Azure SQL Database. Which metric should you use?

A.dtu_consumption_percent
B.log_write_percent
C.physical_data_read_percent
D.cpu_percent
AnswerD

The cpu_percent metric represents the percentage of CPU used by the database. It is a standard Azure Monitor metric for Azure SQL Database and is exactly what you need to alert on CPU usage exceeding a threshold. You can create an alert rule on this metric with a condition of greater than 90 and an aggregation granularity of 10 minutes to meet the requirement.

Why this answer

The cpu_percent metric directly measures the percentage of CPU utilized by the Azure SQL Database. It is the appropriate metric to use for an alert on CPU usage exceeding a threshold. Other metrics like dtu_consumption_percent, physical_data_read_percent, and log_write_percent measure different resources and would not accurately reflect CPU usage.

Using cpu_percent ensures the alert fires only when CPU is the bottleneck.

Exam trap

The trap here is confusing DTU consumption with CPU usage; DTU includes multiple resources, so a DTU alert may fire even when CPU is not the issue.

127
MCQhard

You are optimizing an Azure SQL Database that uses the General Purpose service tier. The database has a high volume of small transactions and you observe wait statistics showing significant WRITELOG waits. You need to reduce WRITELOG waits for this database. What should you do?

A.Configure the database to use In-Memory OLTP.
B.Change the service tier to Business Critical.
C.Increase the database max size.
D.Enable Accelerated Database Recovery (ADR).
AnswerB

Business Critical uses local SSD for the transaction log, which significantly reduces log write latency compared to the remote storage used in General Purpose. This directly addresses WRITELOG waits by providing lower latency and higher throughput for log writes, making it the appropriate change for this scenario.

Why this answer

WRITELOG waits indicate the transaction log is a bottleneck. In the General Purpose tier, the log resides on remote Azure storage, which has higher latency than local SSD. Moving to Business Critical provides local SSD for the log, reducing latency and increasing throughput, which directly mitigates WRITELOG waits.

The other options do not address the root cause of log write latency.

Exam trap

The trap here is assuming that enabling features like ADR or In-Memory OLTP will reduce log-related waits, when they either increase log volume or do not change log I/O characteristics.

128
MCQmedium

You manage an Azure SQL Database that runs an online transaction processing (OLTP) workload. Users report that transactions are slow during business hours. You query sys.dm_os_wait_stats and notice a high number of PAGEIOLATCH_SH waits. You need to reduce these waits without changing the application. What should you do?

A.Configure Query Store to capture wait statistics for the database.
B.Enable Accelerated Database Recovery (ADR) on the database.
C.Enable Read Scale-Out and redirect read-only queries to the secondary replica.
D.Increase the database's service tier to add more memory and IOPS.
AnswerD

PAGEIOLATCH_SH waits indicate that queries are waiting for data pages to be fetched from storage into the buffer pool. Increasing the service tier provides more memory (larger buffer pool) and higher IOPS, reducing the frequency and duration of these waits. This directly addresses the I/O bottleneck without modifying the application, making it the appropriate action for this scenario.

Why this answer

PAGEIOLATCH_SH waits occur when SQL Server waits for a data page to be read from disk into the buffer pool. The most direct way to reduce these waits without changing the application is to increase the service tier, which provides more memory for the buffer pool and higher storage IOPS. This reduces the need to read pages from disk and speeds up the reads that do occur.

Exam trap

The trap here is assuming that enabling a diagnostic feature like Query Store or ADR will automatically improve performance, when in fact these features do not address physical I/O bottlenecks.

129
Multi-Selectmedium

Which TWO metrics should you monitor in Azure SQL Database to detect a potential memory pressure issue?

Select 2 answers
A.Page Life Expectancy
B.Memory Grants Pending
C.Average CPU percent
D.Log IO
E.Data IO
AnswersA, B

Page Life Expectancy measures how long pages remain in the buffer pool before eviction. A sustained drop below a few hundred seconds indicates the buffer pool cannot hold the working set, revealing memory pressure in Azure SQL Database.

Why this answer

Page Life Expectancy (PLE) is a key metric that indicates how long a data page remains in the buffer pool before being evicted. A consistently low PLE (e.g., below 300 seconds) signals that pages are being flushed too quickly due to memory pressure, often from insufficient buffer pool memory. Memory Grants Pending tracks the number of queries waiting for a memory grant to execute; a non-zero value indicates that the server cannot allocate enough memory to satisfy query workspace requirements, directly pointing to memory pressure.

Exam trap

The trap here is that candidates often confuse high CPU or I/O metrics with memory pressure, but CPU and I/O metrics reflect different resource bottlenecks, while PLE and Memory Grants Pending are the direct indicators of memory contention in Azure SQL Database.

130
MCQmedium

You are managing an Azure SQL Database that uses the Business Critical service tier. You need to ensure that the database can handle a sudden increase in transaction log write throughput without experiencing log write waits. Which factor should you primarily consider?

A.The configured backup storage redundancy.
B.The number of vCores allocated to the database.
C.The number of read replicas configured.
D.The size of the database in gigabytes.
AnswerB

In the Business Critical tier, the transaction log write throughput is primarily determined by the number of vCores. Each vCore provides a certain log write rate, and the total log throughput scales linearly with the number of vCores. Therefore, increasing vCores directly increases the maximum log write rate.

Why this answer

In the Business Critical service tier, the maximum transaction log write throughput is directly proportional to the number of vCores allocated to the database. To handle increased log write throughput, you should scale up the number of vCores. Other factors such as database size, read replicas, and backup storage redundancy do not affect the log write rate limit.

Exam trap

The trap here is assuming that database size or read replicas affect log write throughput, when in fact it is solely determined by vCore count in Business Critical.

131
MCQmedium

You need to monitor Azure SQL Database performance over time and receive alerts when CPU usage exceeds 80%. Which Azure service should you use?

A.Automatic tuning
B.Query Performance Insight
C.Azure Monitor Alerts
D.SQL Assessment
AnswerC

Azure Monitor Alerts evaluates metric rules against Azure SQL Database telemetry and triggers notifications when thresholds such as CPU above 80% are breached. It provides the sustained monitoring and alerting the stem requires, unlike query-level tools or auditing features.

Why this answer

Azure Monitor Alerts is the correct service because it allows you to create metric-based alert rules that trigger when the CPU percentage of an Azure SQL Database exceeds a defined threshold (e.g., 80%). It continuously monitors performance metrics over time and sends notifications (e.g., email, SMS, or webhook) when the condition is met, fulfilling the requirement for both monitoring and alerting.

Exam trap

The trap here is that candidates often confuse Query Performance Insight (which shows historical query performance data) with a monitoring/alerting tool, but it lacks the ability to set proactive threshold-based alerts like Azure Monitor Alerts provides.

How to eliminate wrong answers

Option A is wrong because Automatic tuning is a feature that automatically adjusts index creation, index dropping, and query plan choices to optimize performance; it does not provide monitoring or alerting capabilities. Option B is wrong because Query Performance Insight provides detailed analysis of query performance, including resource consumption and wait statistics, but it does not support proactive alerting based on CPU thresholds. Option D is wrong because SQL Assessment evaluates the configuration and best practices of Azure SQL Database (e.g., security, performance settings) and generates a report, but it does not monitor real-time performance or send alerts.

132
MCQmedium

You deploy a new Azure SQL Database and need to ensure that all queries are logged for performance analysis. Which configuration should you enable?

A.Data classification
B.Server-level audit
C.Diagnostic settings for SQLInsights
D.Query Store
AnswerD

Query Store continuously captures query text, execution plans and runtime statistics into internal catalog views, giving historical performance analysis without trace overhead. It satisfies the requirement that all queries be logged for later analysis, and can be enabled per database in Azure SQL Database.

Why this answer

Query Store captures a history of query execution plans, runtime statistics, and wait statistics, enabling detailed performance analysis and troubleshooting. It is the correct choice because it is specifically designed to log query-level performance data for Azure SQL Database without requiring external storage or additional configuration.

Exam trap

The trap here is that candidates often confuse server-level audit or diagnostic settings with query-level logging, but Query Store is the only feature that natively logs query execution plans and runtime statistics for performance analysis in Azure SQL Database.

How to eliminate wrong answers

Option A is wrong because Data Classification is a security feature for identifying and labeling sensitive columns, not for logging query performance. Option B is wrong because Server-level audit logs database events for compliance and security auditing, not query execution details for performance analysis. Option C is wrong because Diagnostic settings for SQLInsights send telemetry to Azure Monitor for broader monitoring, but they do not capture per-query execution plans and runtime statistics like Query Store does.

133
MCQeasy

You are configuring monitoring for an Azure SQL Database that uses the vCore purchasing model. The database is in the General Purpose service tier. You need to receive an alert when the database's CPU consumption exceeds 90 percent for 10 minutes. What should you create?

A.A smart detection alert in Application Insights.
B.A metric alert rule in Azure Monitor on the CPU percent metric.
C.An activity log alert rule on the database's administrative operations.
D.A log search alert rule based on the AzureDiagnostics table.
AnswerB

Azure Monitor metric alerts evaluate a specific metric against a threshold over a defined time window. The CPU percent metric reflects the percentage of the vCore limit being consumed. By creating a metric alert rule on CPU percent with a threshold of 90 and an aggregation granularity of 10 minutes, you can detect sustained high CPU and trigger notifications as required.

Why this answer

Azure Monitor metric alerts are the correct mechanism for alerting on a specific performance metric such as CPU percent. They allow you to set a threshold, an aggregation window, and an evaluation frequency. For a requirement to alert when CPU exceeds 90 percent for 10 minutes, a metric alert rule on the CPU percent metric with a 10-minute aggregation window is the direct and supported solution.

Exam trap

The trap here is confusing control-plane activity log alerts with performance metric alerts, or overcomplicating the solution by using log search alerts when a simple metric alert suffices.

134
Multi-Selecthard

You are optimizing an Azure SQL Database that uses the vCore purchasing model. The database is experiencing high RESOURCE_SEMAPHORE waits. You need to identify two actions that can reduce these waits. (Choose two.)

Select 2 answers
A.Scale up to a higher service tier or compute size.
B.Increase the memory-optimized filegroup size.
C.Enable read-scale out.
D.Increase the maximum degree of parallelism (MAXDOP).
E.Optimize queries to reduce their memory grant requirements.
AnswersA, E

Scaling up to a higher service tier or compute size increases the amount of memory available to the database, which directly increases the query workspace memory. This allows more queries to obtain memory grants, reducing RESOURCE_SEMAPHORE waits. This is a valid action to alleviate memory grant pressure.

Why this answer

RESOURCE_SEMAPHORE waits indicate insufficient query workspace memory. Scaling up the compute size provides more memory for grants. Optimizing queries reduces the memory needed per query.

Together, these actions lower the demand and increase the supply of memory grants, reducing waits. The other options either do not affect workspace memory or could worsen the situation.

Exam trap

The trap here is thinking that increasing MAXDOP or enabling read-scale out will reduce memory waits, when they either increase memory demand or do not address primary workload memory pressure.

135
MCQmedium

You are analyzing the exhibit KQL query that queries Azure Diagnostics logs for Query Store runtime statistics. The query is intended to show average CPU time per hour for each database. However, the result shows no data for the last 24 hours, although Query Store is enabled on all databases. What is the most likely reason?

A.Query Store is not enabled on the databases.
B.The diagnostic settings are not configured to send QueryStoreRuntimeStatistics to Log Analytics.
C.The time range in the query is too narrow and excludes the last 24 hours.
D.The query syntax is incorrect and needs to use 'project' before 'summarize'.
AnswerB

The KQL query reads QueryStoreRuntimeStatistics from Log Analytics, so absence of rows means the table was never populated. Query Store being enabled locally only writes to the instance; diagnostic settings must explicitly stream that category to the workspace before any query returns data.

Why this answer

For Query Store runtime statistics to appear in Log Analytics, the Azure SQL Database diagnostic settings must explicitly route the QueryStoreRuntimeStatistics category to the Log Analytics workspace. If that category is not enabled, the KQL query will return no rows even though Query Store is enabled on the databases, because the data never reaches the workspace. This is the most likely cause of the empty result set.

Exam trap

The trap is assuming that enabling Query Store automatically makes its data available in Log Analytics — candidates conflate the feature being on with the telemetry pipeline being configured, and pick a query-syntax or time-range answer instead.

How to eliminate wrong answers

Option A is wrong because the question explicitly states Query Store is enabled on all databases, so this contradicts the given facts. Option C is wrong because the question states the query is intended to show data for the last 24 hours and returns nothing — if the time range were the issue, the query would still return older data when adjusted, but the stated problem is no data at all for the intended window. Option D is wrong because KQL does not require 'project' before 'summarize' — summarize can follow where/filter clauses directly, and the query syntax is not the issue when the underlying data is absent.

136
MCQeasy

You manage an Azure SQL Database that is critical for a financial application. The database has a read-heavy workload, and you need to monitor and diagnose performance issues. You want to enable a feature that automatically captures detailed information about query plans and runtime statistics for later analysis. Which feature should you enable?

A.Extended Events
B.Query Store
C.Automatic tuning
D.Dynamic management views (DMVs)
AnswerB

Query Store captures query plans and runtime execution statistics automatically, persisting them in the user database. It provides historical data on query performance, enabling you to identify regressions, analyze plan changes, and force plans. For a read-heavy workload, Query Store is essential for diagnosing issues without manual tracing.

Why this answer

Query Store is the built-in feature that automatically captures query plans and runtime statistics, storing them in the database for historical analysis. It is designed for performance troubleshooting and is a prerequisite for automatic tuning. For a read-heavy workload, it provides the necessary insights to identify and resolve performance regressions.

Exam trap

The trap here is confusing automatic tuning with Query Store; automatic tuning depends on Query Store but does not itself capture the detailed performance data.

137
MCQeasy

You are configuring performance monitoring for Azure SQL Managed Instance. You need to collect and analyze query performance data with minimal overhead. Which solution should you use?

A.Query Store
B.Azure Monitor metrics
C.Extended Events
D.SQL Server Profiler
AnswerA

Query Store captures query, plan and runtime statistics inside the database engine itself, with negligible overhead and no external agent. It satisfies the minimal-overhead requirement for Azure SQL Managed Instance, unlike extended events sessions or DMV polling.

Why this answer

Query Store is built-in and designed for low overhead query performance monitoring. Option B is wrong because Azure Monitor metrics provide resource-level metrics, not query-level details. Option C is wrong because Extended Events can have higher overhead and is more for custom event collection.

Option D is wrong because SQL Server Profiler is deprecated and has high overhead.

138
MCQmedium

You are monitoring an Azure SQL Database that hosts a financial application. You notice that the average DTU consumption is 20%, but occasionally spikes to 95% for 5-minute intervals. Users report slow response times during these spikes. You need to ensure consistent performance without over-provisioning resources. What should you do?

A.Migrate the database to the Hyperscale service tier.
B.Scale the database to a higher service tier to absorb the spikes.
C.Enable Query Store and use the Regressed Queries feature to find slow queries.
D.Identify and optimize the queries running during the spike periods, possibly rescheduling a heavy ETL job.
AnswerD

The intermittent 95% spikes with a 20% baseline indicate workload-driven contention, not insufficient capacity. Tuning the offending queries and rescheduling the heavy ETL job removes the burst at source, avoiding the cost of scaling up for brief peaks.

Why this answer

The issue is not a consistent resource shortage but periodic spikes caused by specific queries, likely from a heavy ETL job. By identifying and optimizing those queries or rescheduling the job, you can eliminate the spikes without permanently scaling up resources, which would waste cost and capacity. This aligns with the DP-300 focus on performance tuning and resource optimization rather than blind scaling.

Exam trap

The trap here is that candidates assume spikes always require scaling up (Option B) or migrating to a higher tier (Option A), but the DP-300 exam emphasizes that optimization and scheduling are often more cost-effective than over-provisioning.

How to eliminate wrong answers

Option A is wrong because Hyperscale is designed for large, highly scalable databases with fast recovery and read scale-out, not for handling occasional DTU spikes; it would over-provision and increase cost unnecessarily. Option B is wrong because scaling to a higher service tier permanently increases DTU capacity to absorb spikes that occur only 5 minutes at a time, leading to over-provisioning and wasted cost for the 80% of time when DTU is at 20%. Option C is wrong because Query Store and Regressed Queries help identify performance regressions over time, but the question already indicates the spikes are caused by known periodic heavy workloads (e.g., ETL), so the immediate action is to optimize or reschedule those queries, not just monitor them.

139
MCQhard

Your Azure SQL Database is experiencing high DTU consumption. You need to identify the top resource-consuming queries. What should you do?

A.Use the Query Store reports in the Azure portal
B.Use SQL Server Profiler
C.Create an Extended Events session to capture query events
D.Query sys.dm_exec_query_stats
AnswerA

Query Store captures per-query runtime statistics and execution plans, letting you rank top resource consumers by CPU, duration or reads. This directly identifies the highest DTU-consuming queries, which the stem requires, without needing extended events or manual DMV polling.

Why this answer

Query Store in Azure SQL Database provides built-in reports to identify top resource-consuming queries by CPU, IO, and duration, making it the easiest and most direct method. Option B (SQL Server Profiler) is not supported in Azure SQL Database. Option C (Extended Events) is more complex and not the simplest approach for this task.

Option D (sys.dm_exec_query_stats) can be used but lacks persistent historical data and is more effort than using Query Store reports.

140
Multi-Selecthard

You are troubleshooting a performance issue on an Azure SQL Database. The database is experiencing high PAGELATCH_EX waits. Which TWO measures can help reduce these waits?

Select 2 answers
A.Use a hash distribution or round-robin distribution in a table design
B.Increase MAXDOP for the queries
C.Partition the table to distribute inserts
D.Use OPTIMIZE_FOR_SEQUENTIAL_KEY index option
E.Enable snapshot isolation level
AnswersC, D

PAGELATCH_EX waits arise from concurrent inserts contending on the last page of an ascending index. Partitioning the table across multiple filegroups or partition ranges spreads inserts over several hot pages, reducing that contention and therefore the exclusive page-latch waits the database is experiencing.

Why this answer

Option C is correct because PAGELATCH_EX waits are commonly caused by last-page insert contention on monotonically increasing keys (e.g., IDENTITY), and partitioning the table across multiple partitions/files spreads those inserts across different pages, eliminating the hot last-page latch. Option D is correct because the OPTIMIZE_FOR_SEQUENTIAL_KEY index option, introduced in SQL Server 2019/Azure SQL Database, specifically mitigates last-page insert PAGELATCH_EX contention by managing the insert into the index's last page more efficiently. Option A is not applicable because hash or round-robin distribution is a dedicated SQL pool (formerly SQL DW) table design concept, not a remedy for PAGELATCH_EX in Azure SQL Database.

Option B is wrong because increasing MAXDOP does not reduce page latch contention and can even worsen it by increasing concurrent insert pressure. Option E is wrong because enabling snapshot isolation addresses blocking/locking (LCK waits) and read-write contention, not PAGELATCH_EX waits on data pages.

Exam trap

DP-300 often tests the confusion between PAGELATCH_EX and PAGELATCH_SH or LCK waits, and may include distractors like snapshot isolation which addresses locking, not latching.

141
MCQhard

The query returns a list of query hashes with high average duration. You need to identify which queries are most likely causing CPU pressure. What additional metric should you include?

A.Include wait_stats to see blocking.
B.Include count_executions to see frequency.
C.Include avg_logical_reads to see I/O consumption.
D.Include avg_cpu_time to measure CPU usage.
AnswerD

Query Store's avg_cpu_time exposes CPU consumption per query hash, directly revealing which queries drive CPU pressure. Duration alone can reflect waits or blocking, so adding avg_cpu_time isolates the actual CPU-heavy offenders the stem asks for.

Why this answer

To identify queries causing CPU pressure, you need to measure CPU usage per query. The `avg_cpu_time` metric directly indicates how much CPU time each query consumes on average, making it the most relevant additional metric.

Exam trap

The trap is assuming that high logical reads or wait stats directly indicate CPU pressure, when CPU time is the direct measure.

How to eliminate wrong answers

Option A is wrong because wait_stats shows blocking and waits, which may indicate CPU pressure indirectly but does not directly measure CPU usage per query. Option B is wrong because count_executions shows frequency, which can contribute to total CPU but does not indicate per-execution CPU cost. Option C is wrong because avg_logical_reads measures I/O consumption, not CPU usage.

142
Multi-Selecthard

You manage an Azure SQL Database that experiences high PAGELATCH_EX waits on tempdb during peak transaction processing. You need to reduce these waits. Which two actions should you perform? (Choose two.)

Select 2 answers
A.Enable Accelerated Database Recovery (ADR).
B.Switch to the Business Critical service tier.
C.Use memory-optimized tempdb metadata.
D.Increase the number of tempdb data files.
E.Increase the database's max size.
AnswersC, D

Memory-optimized tempdb metadata removes the latch contention on system pages that track temp object metadata. This significantly reduces PAGELATCH_EX waits in workloads with heavy temp table usage. It is a recommended configuration for Azure SQL Database when tempdb contention is observed.

Why this answer

PAGELATCH_EX waits on tempdb indicate contention on allocation pages during concurrent temp object creation. Adding more tempdb data files spreads the allocation load, and enabling memory-optimized tempdb metadata removes latch contention on metadata pages. These two actions directly target the cause.

Other options like ADR or scaling tiers do not address the allocation bottleneck.

Exam trap

The trap here is assuming that any performance improvement like switching to Business Critical or enabling ADR will fix tempdb contention, when the issue specifically requires addressing allocation page contention through file count or memory-optimized metadata.

143
MCQeasy

You are managing an Azure SQL Database that supports a reporting application. Users report that queries are slow during business hours. You suspect that the database is experiencing CPU pressure. Which metric should you monitor to confirm this?

A.DTU percentage
B.CPU percentage
C.Log write percentage
D.Data IO percentage
AnswerB

CPU percentage is a metric available in Azure Monitor for Azure SQL Database that shows the percentage of CPU used by the database. A consistently high CPU percentage directly indicates CPU pressure. This is the most specific and direct metric to confirm that slow queries are due to CPU bottlenecks, making it the correct choice.

Why this answer

CPU percentage is the direct metric for CPU utilization in Azure SQL Database. Unlike DTU percentage, which aggregates multiple resources, CPU percentage isolates processor usage. When CPU percentage is consistently high, it confirms CPU pressure as the cause of slow queries.

The other metrics measure I/O or log throughput, which are unrelated to CPU bottlenecks.

Exam trap

The trap here is choosing DTU percentage because it is a common metric, but it combines CPU, I/O, and memory, so it does not specifically confirm CPU pressure.

144
MCQmedium

You are troubleshooting a performance degradation on an Azure SQL Database. You notice that the database is hitting the maximum DTU limit frequently. Which action should you take first to reduce DTU consumption?

A.Increase the log rate limit
B.Scale up the database to a higher service tier
C.Use Query Performance Insight to identify and optimize top resource-consuming queries
D.Rebuild all indexes in the database
AnswerC

Query Performance Insight surfaces the top CPU, duration and DTU-consuming queries, letting you tune indexes or rewrite statements to cut DTU usage. Scaling the tier would mask the problem rather than reduce consumption, so identifying the offending queries comes first.

Why this answer

The first step to reduce DTU consumption is to identify the queries causing the high resource usage using Query Performance Insight. This tool provides detailed metrics on top resource-consuming queries, enabling targeted optimization. Scaling up or rebuilding indexes without identifying the root cause may not address the underlying inefficiency and could increase costs unnecessarily.

Exam trap

DP-300 often tests the tendency to jump to scaling as a first response, rather than diagnosing and optimizing the workload.

How to eliminate wrong answers

Option A is wrong because increasing the log rate limit does not reduce DTU consumption; it may allow more transactions but does not address the cause of high DTU usage. Option B is wrong because scaling up to a higher service tier increases available DTUs but does not reduce consumption; it only provides more resources, which may mask the problem and increase cost. Option D is wrong because rebuilding all indexes is a broad action that may improve performance but is not the first step; it could be unnecessary and disruptive without first identifying the problematic queries.

145
MCQeasy

You are optimizing an Azure SQL Database that runs a heavy reporting workload. The database uses the General Purpose tier. You notice that many queries are scanning large tables. What is the best first action to improve performance?

A.Partition the large tables by date.
B.Analyze the missing index recommendations from Query Store.
C.Scale up to Business Critical tier.
D.Implement columnstore indexes on all large tables.
AnswerB

Query Store captures missing index recommendations from actual workload history, letting you add indexes that eliminate the large table scans. This directly targets the scan bottleneck and is the cheapest first action, unlike scaling the General Purpose tier or rewriting queries blindly.

Why this answer

Query Store's missing index recommendations directly identify indexes that, if created, would likely improve the performance of the observed scanning queries. This is the most targeted, low-risk first action because it is based on actual workload data and addresses the root cause (missing indexes causing scans) without changing the service tier or making structural changes. It is also the cheapest and fastest to implement.

Exam trap

The trap is assuming that scaling up (more hardware) or partitioning (structural change) is the best first step, when the exam expects you to identify the least invasive, data-driven action — analyzing existing recommendations before making costly changes.

How to eliminate wrong answers

Option A is wrong because partitioning large tables by date helps with partition elimination and manageability but does not address the fundamental issue of missing indexes causing full table scans on reporting queries. Option C is wrong because scaling up to Business Critical increases cost significantly and does not fix the underlying query inefficiency — it just throws more hardware at the problem, which is not the best first action. Option D is wrong because implementing columnstore indexes on all large tables is a broad, potentially disruptive change that may not suit all workloads (e.g., OLTP-style queries) and should be evaluated after analyzing specific query patterns, not applied blindly.

146
MCQeasy

You are responsible for an Azure SQL Database that hosts a reporting application. Users complain that queries are slow during business hours. You run a query against sys.dm_db_resource_stats and see that the average CPU percentage is consistently above 90%, while other metrics are low. You need to identify the queries contributing most to CPU usage. What should you use?

A.Query Store's Top Resource Consuming Queries report.
B.Extended Events session capturing sql_statement_completed events.
C.Azure SQL Database Intelligent Insights.
D.Dynamic management view sys.dm_exec_query_stats.
AnswerA

Query Store captures query execution statistics, including CPU time, duration, and execution count. The Top Resource Consuming Queries report in the Azure portal or via Query Store catalog views ranks queries by resource consumption, making it ideal for identifying which queries are driving high CPU usage. This directly addresses the need to pinpoint CPU-intensive queries.

Why this answer

Query Store's Top Resource Consuming Queries report aggregates query performance data and ranks queries by resource usage, including CPU time. It retains historical data, so even if plans are evicted, the information remains. This makes it the best tool to identify which queries are responsible for sustained high CPU in the database.

Exam trap

The trap here is relying on sys.dm_exec_query_stats, which only shows currently cached plans and lacks historical context, potentially missing the actual CPU-consuming queries.

147
MCQmedium

You are deploying a new application on Azure SQL Database. The application requires that all connections use a specific login, 'AppUser', with the least privileges necessary. The login should only be able to execute stored procedures in the 'Sales' schema and should not have direct access to underlying tables. What should you do?

A.Grant the SELECT permission on the 'Sales' schema to 'AppUser'.
B.Add 'AppUser' to the db_datareader role.
C.Create a database role, grant EXECUTE on the 'Sales' schema to the role, and add 'AppUser' to the role.
D.Grant the EXECUTE permission on each stored procedure individually to 'AppUser'.
AnswerC

Schema-scoped EXECUTE permission on the Sales schema lets AppUser run stored procedures without SELECT rights on base tables, satisfying least privilege. Ownership chaining means the procedures access tables under the schema owner's permissions, so no direct table grants are needed.

Why this answer

Creating a database role, granting EXECUTE on the 'Sales' schema to that role, and adding 'AppUser' to the role follows the principle of least privilege. This allows 'AppUser' to execute stored procedures in the Sales schema without granting direct table access, because stored procedures execute with ownership chaining or elevated permissions. This is the most maintainable and secure approach.

Exam trap

DP-300 often tests the misconception that granting EXECUTE on a schema automatically grants table access; candidates must understand ownership chaining and that schema-level EXECUTE is sufficient for stored procedure execution without direct table permissions.

How to eliminate wrong answers

Option A is wrong because granting SELECT on the 'Sales' schema gives direct read access to all tables, violating the requirement that the user should not have direct access to underlying tables. Option B is wrong because adding 'AppUser' to the db_datareader role grants SELECT on all user tables in the database, which is far too broad and violates least privilege. Option D is wrong because granting EXECUTE on each stored procedure individually is tedious, error-prone, and does not scale; schema-level grants are preferred for maintainability.

148
MCQmedium

You manage an Azure SQL Database that is experiencing higher than expected DTU consumption. You need to identify which queries are consuming the most resources. Which dynamic management view should you query?

A.Query sys.dm_exec_requests
B.Query sys.dm_os_wait_stats
C.Query sys.dm_exec_query_stats
D.Query sys.dm_db_resource_stats
AnswerC

sys.dm_exec_query_stats aggregates execution counts, CPU time and logical reads per cached plan, so ordering by total resource consumption reveals the heaviest queries. This satisfies the requirement to identify which queries drive the elevated DTU usage on the Azure SQL Database.

Why this answer

sys.dm_exec_query_stats returns aggregate performance statistics for cached query plans, including total worker time, logical reads, and execution counts. This makes it the correct DMV to identify which queries consume the most resources, as it directly attributes resource usage to individual query statements. By ordering by total_worker_time or total_logical_reads, you can pinpoint the top resource-consuming queries.

Exam trap

DP-300 often tests the difference between DMVs that show current activity (sys.dm_exec_requests) versus those that show historical aggregates (sys.dm_exec_query_stats), and candidates may confuse instance-level wait stats with query-level resource consumption.

How to eliminate wrong answers

Option A is wrong because sys.dm_exec_requests shows currently executing requests, not historical aggregate resource consumption, so it cannot identify the top consumers over time. Option B is wrong because sys.dm_os_wait_stats provides wait statistics at the instance level, indicating what resources are being waited on, but not which queries are responsible. Option D is wrong because sys.dm_db_resource_stats shows resource usage for the database as a whole (CPU, IO, memory) over time, not per-query breakdowns.

149
MCQmedium

You are managing an Azure SQL Database that uses the vCore purchasing model. You need to configure an alert that fires when the database's CPU usage exceeds 80% for 10 minutes. You want to minimize administrative effort. What should you do?

A.Configure a diagnostic setting to stream logs to Log Analytics and create a log alert.
B.Create an alert rule in Azure Monitor based on the cpu_percent metric.
C.Enable automatic tuning and configure it to send email notifications.
D.Create a SQL Agent job that checks sys.dm_db_resource_stats and sends an email.
AnswerB

Azure Monitor provides built-in metrics for Azure SQL Database, including cpu_percent. You can create an alert rule that triggers when the average cpu_percent exceeds 80% over a 10-minute window. This is the most direct and least administrative effort because it uses platform metrics and the Azure Monitor alerting framework, with no need to write custom queries or deploy additional components.

Why this answer

Azure Monitor metric alerts can directly monitor the cpu_percent metric for Azure SQL Database. You can set a threshold of 80% over a 10-minute aggregation window. This requires minimal configuration and no custom code.

Other options either do not support the requirement (automatic tuning), are not available (SQL Agent), or involve more effort (Log Analytics). Therefore, creating an Azure Monitor alert rule is the correct and most efficient solution.

Exam trap

The trap here is overcomplicating the solution by using Log Analytics or custom jobs, when Azure Monitor metric alerts provide a built-in, low-effort mechanism.

150
Multi-Selectmedium

You are optimizing an Azure SQL Database that uses the General Purpose service tier. You observe that the database is experiencing high wait times due to PAGEIOLATCH_SH waits. You need to reduce these waits. Which two actions should you perform? (Choose two.)

Select 2 answers
A.Increase the database's max size.
B.Enable Query Store and force the last known good plan.
C.Add appropriate indexes to reduce the number of pages read.
D.Enable read scale-out and redirect reporting queries to the secondary replica.
E.Scale up the database to a higher service tier or compute size.
AnswersC, E

PAGEIOLATCH_SH waits occur when queries read data pages from storage. Adding appropriate indexes, such as covering indexes, can reduce the number of pages that must be read to satisfy a query, thereby decreasing physical IO and the associated waits. This is a targeted optimization that addresses the query workload itself. It is especially effective when queries perform scans that can be converted to seeks with the right indexes.

Why this answer

PAGEIOLATCH_SH waits indicate that queries are waiting for data pages to be read from storage. To reduce these waits, you can either increase the IO throughput and reduce latency by scaling up the database to a higher service tier or compute size, or reduce the number of pages read by adding appropriate indexes. Both actions address the underlying cause: insufficient IO performance or excessive IO demand.

Increasing max size or enabling read scale-out do not directly improve primary IO for read-write workloads.

Exam trap

The trap here is thinking that read scale-out or Query Store plan forcing will reduce IO waits, when the real solutions are increasing IO capacity or reducing IO demand through indexing.

← PreviousPage 2 of 3 · 158 questions totalNext →

Ready to test yourself?

Try a timed practice session using only Monitor Optimize Db questions.