DEA-C01 Data Store Management Practice Question
A data engineer manages an Amazon DynamoDB table used for a high-traffic gaming leaderboard. The table uses on-demand capacity mode and has a partition key of UserId (string) with no sort key. The leaderboard must retrieve the top 100 scores across all users. Currently, the engineer scans the entire table and sorts the results in application code, which takes several seconds and consumes large amounts of read capacity. What should the engineer do to improve the performance of retrieving the top scores?
⚠ Common exam trap
The trap here is assuming that increasing read capacity or adding a local secondary index can solve a global sorting problem, when the core issue is the access pattern requiring a GSI with an appropriate sort key.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Create a global secondary index (GSI) with a constant partition key and Score as the sort key, then query the index in descending order with a limit of 100.
The leaderboard requires a global, sorted view of scores. A GSI with a constant partition key and Score as sort key allows efficient Query operations that return the highest scores first using ScanIndexForward=false and a Limit. This design avoids full table scans and scales well.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Increase the table's read capacity by switching to provisioned mode with a high RCU value.
Why it's wrong here
Switching to provisioned mode with high RCUs increases cost but does not change the fundamental inefficiency of scanning the entire table. The query still reads every item, which is slow and expensive. The problem is the access pattern, not raw capacity.
- ✗
Add a local secondary index (LSI) on the Score attribute and query it with a limit of 100.
Why it's wrong here
An LSI requires the same partition key as the base table (UserId) and a different sort key. Since the base table has no sort key, you cannot add an LSI. Even if possible, querying by UserId would not give a global leaderboard; you would need to query each user separately.
- ✗
Enable DynamoDB Streams and use AWS Lambda to maintain a separate sorted list in Amazon ElastiCache for Redis.
Why it's wrong here
While this could work, it adds significant complexity with streams, Lambda, and a separate cache layer. The scenario asks for the simplest improvement to the existing DynamoDB table. A GSI directly addresses the query pattern without introducing new services or eventual consistency issues from stream processing.
- ✓
Create a global secondary index (GSI) with a constant partition key and Score as the sort key, then query the index in descending order with a limit of 100.
Why this is correct
A GSI with a constant partition key (e.g., 'leaderboard') and Score as sort key groups all items under one partition, allowing a Query with ScanIndexForward=false and Limit=100 to efficiently return the top scores. This avoids full table scans and leverages DynamoDB's sorted index for fast, low-cost retrieval.
Go deeper
Related to this question
About these practice questions
Courseiva writes every DEA-C01 question from scratch — 1,321 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This DEA-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DEA-C01 exam.