Optimizing DAX Queries with ISEMPTY in Fabric

DP-600 By islever Editorial Last updated

Short answer

B The solution does not meet the goal because ISEMPTY returns TRUE for empty tables, inverting the expected filter logic for non-empty related items.

Question

Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You have a Fabric tenant that contains a semantic model named Model1. You discover that the following query performs slowly against Model1. You need to reduce the execution time of the query. Solution: You replace line 4 by using the following code: ISEMPTY ( RELATEDTABLE ( 'Order Item' ) ) Does this meet the goal? - Exhibit: Optimizing DAX Queries with ISEMPTY in Fabric
  1. Yes
  2. No Correct Answer

Key Takeaways

The core concept is using ISEMPTY for efficient row existence checks; the trap is confusing the boolean return value of ISEMPTY with the desired filter logic (empty vs. not empty).

This question tests the correct use of the ISEMPTY function in DAX to optimize query performance on semantic models. The proposed solution fails because it reverses the logical condition required for the filter context.

Common mistake: Learners often select 'Yes' because they recognize ISEMPTY as a valid, fast function, but fail to realize that wrapping it directly in a filter argument without NOT inverts the result, showing empty tables instead of populated ones.

Expert Analysis

Why the Answer Is Correct

The correct answer is B (No) because the proposed code ISEMPTY( RELATEDTABLE('Order Item') ) returns TRUE when the related table is empty and FALSE when it has rows. In a typical filtering scenario aimed at finding records with associated items, you need to keep rows where the table is NOT empty. Therefore, the logic is inverted.

Why the Other Options Are Wrong

Option A is incorrect because the solution does not meet the goal of reducing execution time while maintaining correctness; it produces wrong results. Even if performance were improved by using ISEMPTY over COUNTROWS, the data output would be incorrect due to the missing NOT operator.

Community Comment Notes

The community consensus strongly supports Option B. Users like Chrys941 and Lucetmi noted that "NOT ISEMPTY" is the required syntax. Bigdave987 pointed out that the current logic shows where COUNTROWS equals zero, which is the opposite of the likely intent. Stilferx also confirmed that "NOT EMPTY" is needed to preserve the original meaning.

Exam Strategy

When optimizing DAX queries, always verify the logical outcome of your functions. If replacing a slow function like COUNTROWS with a faster one like ISEMPTY, ensure you apply the necessary boolean operators (NOT) to maintain the correct filter semantics.

Frequently Asked Questions

Why is ISEMPTY faster than COUNTROWS?

ISEMPTY checks for the existence of any row without counting them, which avoids aggregation overhead.

How do I fix the ISEMPTY logic error?

Wrap the function in NOT, e.g., NOT ISEMPTY(...), to keep rows where the table is not empty.

More DP-600 FAQ →

Community Votes

B
100%

100% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.

Discussion 8 contributions

Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors, not of islever. The comments shown first are the most substantive of the thread — ranked by depth, community endorsement and relevance; expand the list below to read the rest.

From public community threads 8

  1. klashxx 👍 2
    B is correct (NO) because the suggested change does not meet the goal because it reverses the logic of the query.
  2. bigdave987 👍 2 Answered B
    No. The suggested logic would show where COUNTROWS = 0, not > 0. Answer is correct
  3. Mr_Fabricator 👍 2
    Hence the answer B is only correct!!
  4. Unbounded 👍 1 Answered A
    I think, CALCULATE would take more processing time than using a native FUNCTION like ISEMPTY
  5. stilferx 👍 1 Answered B
    IMHO, No It should be NOT EMPTY, to have same meaning
Show 3 more comments
  1. Chrys941 👍 4 Answered B
    NOT ISEMPTY IS THE CORRECT.
  2. Lucetmi 👍 2 Answered B
    Should be NOT ISEMPTY
  3. VAzureD 👍 1
    The answers is correct

Reader comments & corrections

No reader corrections yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Practice All DP-600 Questions

Access 115 questions with complete answers and detailed explanations.

View Full DP-600 Practice Test →

← Back to DP-600 Study Guide