Free SnowPro Advanced Administrator Exam Braindumps
SnowPro Advanced Administrator ADA-C01 Questions 16–20 (page: 5)

Updated On: 10-Feb-2026

A Snowflake user runs a complex SQL query on a dedicated virtual warehouse that reads a large amount of data from micro-partitions. The same user wants to run another query that uses the same data set.

Which action would provide optimal performance for the second SQL query?

  1. Assign additional clusters to the virtual warehouse.
  2. Increase the STATEMENT_TIMEOUT_IN_SECONDS parameter in the session.
  3. Prevent the virtual warehouse from suspending between the running of the first and second queries.
  4. Use the RESULT_SCAN function to post-process the output of the first query.

Answer(s): D

Explanation:

According to the Using Persisted Query Results documentation, the RESULT_SCAN function allows you to query the result set of a previous command as if it were a table. This can improve the performance of the second query by avoiding reading the same data from micro-partitions again. The other actions do not provide optimal performance for the second query because:
· Assigning additional clusters to the virtual warehouse does not affect the data access speed, but only the query execution speed. It also increases the cost of the warehouse. · Increasing the STATEMENT_TIMEOUT_IN_SECONDS parameter in the session does not improve the performance of the query, but only allows it to run longer before timing out. It also increases the risk of resource contention and deadlock. · Preventing the virtual warehouse from suspending between the running of the first and second queries does not guarantee that the data will be cached in memory, as Snowflake uses a least recently used (LRU) cache eviction policy. It also increases the cost of the warehouse. https://docs.snowflake.com/en/user-guide/querying-persisted-results



For Snowflake network policies, what will occur when the account_level and user_level network policies are both defined?

  1. The account_level policy will override the user_level policy.
  2. The user_level policy will override the account_level policy.
  3. The user_level network policies will not be supported.
  4. A network policy error will be generated with no definitions provided.

Answer(s): B

Explanation:

According to the Network Policies documentation, a network policy can be applied to an account, a security integration, or a user. If there are network policies applied to more than one of these, the most specific network policy overrides more general network policies. The following summarizes the order of precedence:
· Account: Network policies applied to an account are the most general network policies. They are overridden by network policies applied to a security integration or user. · Security Integration: Network policies applied to a security integration override network policies applied to the account, but are overridden by a network policy applied to a user. · User: Network policies applied to a user are the most specific network policies. They override both accounts and security integrations.
Therefore, if both the account_level and user_level network policies are defined, the user_level policy will take effect and the account_level policy will be ignored. The other options are incorrect because:
· The account_level policy will not override the user_level policy, as explained above. · The user_level network policies will be supported, as they are part of the network policy feature.
· A network policy error will not be generated, as there is no conflict between the account_level and user_level network policies.



MY_TABLE is a table that has not been updated or modified for several days. On 01 January 2021 at
07:01, a user executed a query to update this table. The query ID is

'8e5d0ca9-005e-44e6-b858-a8f5b37c5726'. It is now 07:30 on the same day.

Which queries will allow the user to view the historical data that was in the table before this query was executed? (Select THREE).

  1. SELECT * FROM my table WITH TIME_TRAVEL (OFFSET => -60*30);
  2. SELECT * FROM my_table AT (TIMESTAMP => '2021-01-01 07:00:00' :: timestamp);
  3. SELECT * FROM TIME_TRAVEL ('MY_TABLE', 2021-01-01 07:00:00);
  4. SELECT * FROM my table PRIOR TO STATEMENT '8e5d0ca9-005e-44e6-b858-a8f5b37c5726';
  5. SELECT * FROM my_table AT (OFFSET => -60*30);
  6. SELECT * FROM my_table BEFORE (STATEMENT => '8e5d0ca9-005e-44e6-b858-a8f5b37c5726');

Answer(s): B,D,F

Explanation:

According to the AT | BEFORE documentation, the AT or BEFORE clause is used for Snowflake Time Travel, which allows you to query historical data from a table based on a specific point in the past. The clause can use one of the following parameters to pinpoint the exact historical data you wish to access:
· TIMESTAMP: Specifies an exact date and time to use for Time Travel. · OFFSET: Specifies the difference in seconds from the current time to use for Time Travel. · STATEMENT: Specifies the query ID of a statement to use as the reference point for Time Travel.
Therefore, the queries that will allow the user to view the historical data that was in the table before the query was executed are:
· B. SELECT * FROM my_table AT (TIMESTAMP => `2021-01-01 07:00:00' :: timestamp); This query uses the TIMESTAMP parameter to specify a point in time that is before the query execution time of 07:01.
· D. SELECT * FROM my table PRIOR TO STATEMENT `8e5d0ca9-005e-44e6-b858-

a8f5b37c5726'; This query uses the PRIOR TO STATEMENT keyword and the STATEMENT parameter to specify a point in time that is immediately preceding the query execution time of 07:01. · F. SELECT * FROM my_table BEFORE (STATEMENT => `8e5d0ca9-005e-44e6-b858- a8f5b37c5726'); This query uses the BEFORE keyword and the STATEMENT parameter to specify a point in time that is immediately preceding the query execution time of 07:01.
The other queries are incorrect because:
· A. SELECT * FROM my table WITH TIME_TRAVEL (OFFSET => -60*30); This query uses the OFFSET parameter to specify a point in time that is 30 minutes before the current time, which is
07:30. This is after the query execution time of 07:01, so it will not show the historical data before the query was executed.
· C. SELECT * FROM TIME_TRAVEL (`MY_TABLE', 2021-01-01 07:00:00); This query is not valid syntax for Time Travel. The TIME_TRAVEL function does not exist in Snowflake. The correct syntax is to use the AT or BEFORE clause after the table name in the FROM clause. · E. SELECT * FROM my_table AT (OFFSET => -60*30); This query uses the AT keyword and the OFFSET parameter to specify a point in time that is 30 minutes before the current time, which is
07:30. This is equal to the query execution time of 07:01, so it will not show the historical data before the query was executed. The AT keyword specifies that the request is inclusive of any changes made by a statement or transaction with timestamp equal to the specified parameter. To exclude the changes made by the query, the BEFORE keyword should be used instead.



What are characteristics of Dynamic Data Masking? (Select TWO).

  1. A masking policy that is currently set on a table can be dropped.
  2. A single masking policy can be applied to columns in different tables.
  3. A masking policy can be applied to the VALUE column of an external table.
  4. The role that creates the masking policy will always see unmasked data in query results.
  5. A single masking policy can be applied to columns with different data types.

Answer(s): B,E

Explanation:

According to the Using Dynamic Data Masking documentation, Dynamic Data Masking is a feature that allows you to alter sections of data in table and view columns at query time using a predefined masking strategy. The following are some of the characteristics of Dynamic Data Masking:
· A single masking policy can be applied to columns in different tables. This means that you can write a policy once and have it apply to thousands of columns across databases and schemas. · A single masking policy can be applied to columns with different data types. This means that you can use the same masking strategy for columns that store different kinds of data, such as strings, numbers, dates, etc.
· A masking policy that is currently set on a table can be dropped. This means that you can remove the masking policy from the table and restore the original data visibility. · A masking policy can be applied to the VALUE column of an external table. This means that you can mask data that is stored in an external stage and queried through an external table. · The role that creates the masking policy will always see unmasked data in query results. This is not true, as the masking policy can also apply to the creator role depending on the execution context conditions defined in the policy. For example, if the policy specifies that only users with a certain custom entitlement can see the unmasked data, then the creator role will also need to have that entitlement to see the unmasked data.



A Snowflake Administrator needs to set up Time Travel for a presentation area that includes facts and dimensions tables, and receives a lot of meaningless and erroneous loT data. Time Travel is being used as a component of the company's data quality process in which the ingestion pipeline should revert to a known quality data state if any anomalies are detected in the latest load. Data from the past 30 days may have to be retrieved because of latencies in the data acquisition process.

According to best practices, how should these requirements be met? (Select TWO).

  1. Related data should not be placed together in the same schema. Facts and dimension tables should each have their own schemas.
  2. The fact and dimension tables should have the same DATA_RETENTION_TIME_IN_ DAYS.
  3. The DATA_RETENTION_TIME_IN_DAYS should be kept at the account level and never used for lower level containers (databases and schemas).
  4. Only TRANSIENT tables should be used to ensure referential integrity between the fact and dimension tables.
  5. The fact and dimension tables should be cloned together using the same Time Travel options to reduce potential referential integrity issues with the restored data.

Answer(s): B,E

Explanation:

According to the Understanding & Using Time Travel documentation, Time Travel is a feature that allows you to query, clone, and restore historical data in tables, schemas, and databases for up to 90 days. To meet the requirements of the scenario, the following best practices should be followed:
· The fact and dimension tables should have the same DATA_RETENTION_TIME_IN_DAYS. This parameter specifies the number of days for which the historical data is preserved and can be accessed by Time Travel. To ensure that the fact and dimension tables can be reverted to a consistent state in case of any anomalies in the latest load, they should have the same retention period. Otherwise, some tables may lose their historical data before others, resulting in data inconsistency and quality issues.

· The fact and dimension tables should be cloned together using the same Time Travel options to reduce potential referential integrity issues with the restored data. Cloning is a way of creating a copy of an object (table, schema, or database) at a specific point in time using Time Travel. To ensure that the fact and dimension tables are cloned with the same data set, they should be cloned together using the same AT or BEFORE clause. This will avoid any referential integrity issues that may arise from cloning tables at different points in time.
The other options are incorrect because:
· Related data should not be placed together in the same schema. Facts and dimension tables should each have their own schemas. This is not a best practice for Time Travel, as it does not affect the ability to query, clone, or restore historical data. However, it may be a good practice for data modeling and organization, depending on the use case and design principles. · The DATA_RETENTION_TIME_IN_DAYS should be kept at the account level and never used for lower level containers (databases and schemas). This is not a best practice for Time Travel, as it limits the flexibility and granularity of setting the retention period for different objects. The retention period can be set at the account, database, schema, or table level, and the most specific setting overrides the more general ones. This allows for customizing the retention period based on the data needs and characteristics of each object.
· Only TRANSIENT tables should be used to ensure referential integrity between the fact and dimension tables. This is not a best practice for Time Travel, as it does not affect the referential integrity between the tables. Transient tables are tables that do not have a Fail-safe period, which means that they cannot be recovered by Snowflake after the retention period ends. However, they still support Time Travel within the retention period, and can be queried, cloned, and restored like permanent tables. The choice of table type depends on the data durability and availability requirements, not on the referential integrity.



Viewing page 5 of 17
Viewing questions 21 - 25 out of 65 questions


Post your Comments and Discuss Snowflake SnowPro Advanced Administrator exam prep with other Community members:

AI Tutor AI Tutor 👋 I’m here to help!