Courseiva

SAA-C03 Design High-Performing Architectures Practice Question

A gaming company uses Amazon DynamoDB to store player session data. The table has a partition key of PlayerID and a sort key of SessionStartTime. The company needs to retrieve all sessions for a specific player within a date range, sorted by session start time. The table is large and the company wants to minimize read latency. Which approach should they use?

⚠ Common exam trap

The trap here is thinking that a GSI is needed to query by PlayerID and SessionStartTime, but the base table already has that key schema.

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

✓

Perform a Query operation on the table using the partition key and a condition on the sort key.

The table's primary key already supports the required access pattern: partition key PlayerID and sort key SessionStartTime. A Query operation with a condition on the sort key retrieves exactly the items needed, sorted by session start time, with minimal latency. Scans, GSIs, and DAX do not provide a more efficient solution for this specific query.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Use DynamoDB Accelerator (DAX) to cache the results of a Scan operation.

    Why it's wrong here

    DAX is an in-memory cache for DynamoDB that speeds up read operations, but it does not change the underlying access pattern. Using a Scan with DAX still reads the entire table, which is inefficient. DAX is best for read-heavy workloads with eventually consistent reads, but it does not replace the need for efficient queries.

  • ✓

    Perform a Query operation on the table using the partition key and a condition on the sort key.

    Why this is correct

    A Query operation directly accesses items with a specific partition key and allows a condition on the sort key to retrieve a range of session start times. This is efficient and leverages the table's primary key design, providing low-latency retrieval of sorted results. It is the optimal approach for this access pattern.

  • ✗

    Perform a Scan operation with a FilterExpression on PlayerID and SessionStartTime.

    Why it's wrong here

    A Scan operation reads every item in the table, which is inefficient for large tables and increases latency. FilterExpression is applied after the scan, so it does not reduce the amount of data read. This approach does not leverage the table's key structure and will not provide low-latency retrieval.

  • ✗

    Create a global secondary index with PlayerID as the partition key and SessionStartTime as the sort key, then Query the index.

    Why it's wrong here

    The table already has PlayerID as the partition key and SessionStartTime as the sort key. Creating a GSI with the same key schema is redundant and adds cost and complexity. The base table can already satisfy the query efficiently, so this approach is unnecessary and does not improve performance.

About these practice questions

This SAA-C03 question is part of Courseiva's 935-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

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 SAA-C03 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 SAA-C03 exam.