Question 159 of 1,730
Workload-Specific Database DesignhardMultiple ChoiceObjective-mapped

Using DynamoDB GSI for Non-Key Attribute Queries

This DBS-C01 practice question tests your understanding of workload-specific database design. Read the scenario carefully and evaluate each option against the stated constraints before committing to an answer. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.

A healthcare company stores patient records in Amazon DynamoDB. Each record includes a 'patient_id' (partition key) and 'visit_date' (sort key). The company needs to run ad-hoc queries to find all patients seen by a specific doctor within a date range. Which design approach minimizes cost and latency for this query pattern?

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 doctor_id as partition key and visit_date as sort key.

Option C is correct because a Global Secondary Index (GSI) with doctor_id as the partition key and visit_date as the sort key allows efficient key-based queries for all patients seen by a specific doctor within a date range. This avoids full table scans and filter operations, minimizing both cost (read capacity units) and latency. DynamoDB can directly retrieve the indexed items without scanning the base table.

Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.

Answer analysis

Option-by-option breakdown

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

  • Query the base table using a filter expression on doctor_id.

    Why it's wrong here

    Query requires partition key; patient_id is partition key, can't filter efficiently.

  • Create a local secondary index (LSI) with doctor_id as sort key.

    Why it's wrong here

    LSI shares the same partition key (patient_id), so cannot query by doctor alone.

  • Create a global secondary index (GSI) with doctor_id as partition key and visit_date as sort key.

    Why this is correct

    GSI enables efficient query by doctor and date range.

    Related concept

    Read the scenario before looking for a memorised answer.

  • Use a Scan operation with a filter expression for doctor_id and visit_date.

    Why it's wrong here

    Scan reads all items, which is costly and slow.

Common exam traps

Common exam trap: answer the scenario, not the keyword

The trap here is that candidates often confuse LSIs and GSIs, assuming an LSI can support queries on any attribute, but LSIs are restricted to the same partition key as the base table, making them unsuitable for querying by doctor_id across all patients.

Detailed technical explanation

How to think about this question

A GSI in DynamoDB maintains a separate copy of the data with a different partition key and sort key, allowing efficient querying on non-key attributes. The GSI's write capacity is shared with the base table, but reads are independent; for this pattern, the GSI enables a Query operation that retrieves only matching items by doctor_id and visit_date, using the index's sort key to filter by date range without scanning. In real-world scenarios, this design is critical for compliance with healthcare data access patterns, where ad-hoc queries must be fast and cost-effective.

KKey Concepts to Remember

  • Read the scenario before looking for a memorised answer.
  • Find the constraint that changes the correct option.
  • Eliminate answers that are true in general but not in this case.

TExam Day Tips

  • Watch for words such as best, first, most likely and least administrative effort.
  • Review why wrong options are wrong, not only why the correct option is correct.

Key takeaway

Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.

Real-world example

How this comes up in practice

A startup's cloud architect reviews their monthly bill and notices costs are higher than expected for a long-running batch job. Switching from on-demand instances to Reserved Instances — or using Spot/Preemptible VMs — can reduce compute costs by up to 72 %. Questions like this test whether you understand the tradeoffs between commitment, flexibility, and cost across cloud pricing models.

What to study next

Got this wrong? Here's your next step.

Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.

Related practice questions

Related DBS-C01 practice-question pages

Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.

Practice this exam

Start a free DBS-C01 practice session

Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.

FAQ

Questions learners often ask

What does this DBS-C01 question test?

Workload-Specific Database Design — This question tests Workload-Specific Database Design — Read the scenario before looking for a memorised answer..

What is the correct answer to this question?

The correct answer is: Create a global secondary index (GSI) with doctor_id as partition key and visit_date as sort key. — Option C is correct because a Global Secondary Index (GSI) with doctor_id as the partition key and visit_date as the sort key allows efficient key-based queries for all patients seen by a specific doctor within a date range. This avoids full table scans and filter operations, minimizing both cost (read capacity units) and latency. DynamoDB can directly retrieve the indexed items without scanning the base table.

What should I do if I get this DBS-C01 question wrong?

Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.

What is the key concept behind this question?

Read the scenario before looking for a memorised answer.

About these practice questions

Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

4 more ways this is tested on DBS-C01

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. A media company stores video metadata in Amazon DynamoDB. Each record has a partition key of video_id and a sort key of uploaded_timestamp. The application frequently queries videos by genre and upload date. The access pattern is read-heavy with occasional writes. The table is provisioned with 3000 RCUs and 1000 WCUs. The company notices that queries by genre are slow and consume many RCUs. Which design change should be made to optimize for this workload?

medium
  • A.Use DynamoDB Accelerator (DAX) to cache query results.
  • B.Create a local secondary index (LSI) with genre as sort key and uploaded_timestamp as partition key.
  • C.Increase the provisioned RCUs to 6000.
  • D.Create a global secondary index (GSI) with genre as partition key and uploaded_timestamp as sort key.

Why D: Option D is correct because creating a Global Secondary Index (GSI) with genre as the partition key and uploaded_timestamp as the sort key allows efficient querying by genre and date without scanning the entire table. This directly supports the access pattern, reducing RCU consumption by using index key lookups instead of full table scans. The GSI is ideal for read-heavy workloads with occasional writes, as it offloads query traffic from the main table.

Variation 2. A financial services company uses Amazon DynamoDB to store transaction records. Each transaction has a unique transaction_id as the partition key and a timestamp as the sort key. The application frequently queries all transactions for a given customer within a date range. However, customer_id is not an attribute indexed for querying. The company wants to optimize these queries without redesigning the entire table schema. Which action should the company take?

easy
  • A.Change the table's partition key to customer_id and use a composite sort key.
  • B.Create a Local Secondary Index (LSI) on customer_id.
  • C.Create a Global Secondary Index (GSI) with customer_id as the partition key and timestamp as the sort key.
  • D.Use the Scan operation with a filter expression for customer_id and timestamp.

Why C: Option C is correct because creating a Global Secondary Index (GSI) with customer_id as the partition key and timestamp as the sort key allows efficient querying of all transactions for a given customer within a date range without redesigning the base table. The GSI provides a new access pattern with its own partition and sort keys, enabling the Query operation on customer_id and timestamp, which is far more efficient than a Scan. This approach preserves the existing table schema and supports the required query pattern with minimal overhead.

Variation 3. A financial services company uses Amazon DynamoDB to store transaction records. Each transaction has a partition key of customer_id and a sort key of transaction_timestamp. The application queries transactions for a specific customer within a date range. Recently, the query latency increased significantly for customers with a large number of transactions. The company needs to improve query performance without changing the application code. The table is provisioned with 5000 RCUs and 2000 WCUs. Which design change should be made to optimize for this workload?

medium
  • A.Create a global secondary index with customer_id as partition key and transaction_timestamp as sort key.
  • B.Enable DynamoDB Accelerator (DAX) on the table.
  • C.Increase the provisioned RCUs to 10000.
  • D.Change the sort key to a composite key including a tenant identifier.

Why A: Option A is correct because creating a global secondary index (GSI) with customer_id as the partition key and transaction_timestamp as the sort key allows efficient querying of transactions for a specific customer within a date range. The existing table's sort key is transaction_timestamp, but the GSI provides a separate index optimized for this access pattern, avoiding full table scans on large customer partitions. This improves query performance without requiring application code changes, as the application can query the GSI directly.

Variation 4. A financial services company uses Amazon DynamoDB to store transaction records. The table has a partition key of 'AccountId' and a sort key of 'TransactionDate'. The company needs to run analytical queries that aggregate transactions by account and month. Currently, queries are slow due to full table scans. Which design change will improve query performance most effectively?

hard
  • A.Add DynamoDB Accelerator (DAX) to the table.
  • B.Change the table's sort key from TransactionDate to Month.
  • C.Enable DynamoDB Streams and process the stream with AWS Lambda to pre-aggregate results.
  • D.Create a Global Secondary Index (GSI) with partition key AccountId and sort key Month.

Why D: Option D is correct because creating a Global Secondary Index (GSI) with partition key AccountId and sort key Month allows the analytical queries to efficiently retrieve aggregated data by account and month without scanning the entire base table. The GSI reorganizes data by month, enabling DynamoDB to use the sort key for range queries and avoid full table scans, which directly addresses the performance issue.

Keep practising

More DBS-C01 practice questions

Last reviewed: Jun 24, 2026

Question Discussion

Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.

Loading comments…

Sign in to join the discussion.

This DBS-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 DBS-C01 exam.