What you will be able to do
- Calculate credits for a warehouse from its size, run time and the 60-second minimum
- Account for resizing, multi-cluster warehouses and the cloud services 10% adjustment
- Explain how ACCOUNT_USAGE views differ from the Information Schema
- Query WAREHOUSE_METERING_HISTORY and grant other roles access to it
1.Warehouse size, run time and per-second billing
Virtual warehouses are the compute you control, and Snowflake charges for them by size and run time. Each step up in size doubles the credits per hour, starting at 1 credit per hour for an X-Small Gen1 standard warehouse:
| Warehouse size | Credits / hour |
|---|---|
| X-Small | 1 |
| Small | 2 |
| Medium | 4 |
| Large | 8 |
| X-Large | 16 |
| 2X-Large | 32 |
| 3X-Large | 64 |
| 4X-Large | 128 |
These are hourly rates, but billing is per second, with a 60-second minimum each time a warehouse starts or resumes. An X-Small that runs for 10 minutes uses 0.167 credits. One that runs for 5 seconds is billed for a full minute: 0.017 credits. A suspended warehouse uses no credits at all.
The minimum is easy to overlook. Suspending and resuming within the first minute leads to multiple charges, because the 1-minute minimum starts over at every resume. A workload that wakes a warehouse many times an hour for a few seconds each time pays a full minute every time. The auto-suspend and auto-resume settings, both on by default, decide how often that happens. A longer auto-suspend period keeps the warehouse running between short jobs instead of starting it again for each one.
Resizing has its own rule. Moving to a larger size bills 1 minute, but only for the additional compute. Going from Small (2 credits/hour) to Medium (4 credits/hour) bills 1 minute's worth of the extra 2 credits. Resizing down from 5X-Large or 6X-Large to 4X-Large or smaller briefly bills both the old and new resources while the old ones shut down. These figures are for Gen1. Gen2 rates are in the Snowflake Service Consumption Table.
Checkpoint 1 of 6· Check yourself
A suspended Large warehouse (8 credits/hour) resumes, runs one 20-second query, and suspends again. Roughly how many credits are billed?
Each resume is billed for at least 60 seconds. 8 credits/hour × 1/60 hour ≈ 0.133 credits.
“Snowflake utilizes per-second billing (with a 60-second minimum each time the warehouse starts)”Source: docs.snowflake.com
Checkpoint 2 of 6· Exam question
An administrator assigns a resource monitor with a 1,000-credit monthly quota to a single Large warehouse used by the marketing team. Which statement correctly describes the scope of what this monitor tracks and controls?
Correct answer: A — It tracks and can suspend only credit usage from the one warehouse it is assigned to, not the whole account
- A. Correct. A warehouse-level resource monitor is scoped to the specific warehouse (or warehouses) it is assigned to, and its actions such as suspend or suspend immediately only apply to those assigned warehouses, not the entire account.
- B. Incorrect. Only a monitor explicitly configured as the account-level monitor tracks all warehouse credits account-wide; a monitor assigned to one warehouse is scoped to that warehouse alone.
- C. Incorrect. Resource monitors do not capture cloud services credits consumed by serverless features like Snowpipe or automatic clustering; those are tracked separately and require budgets for that visibility.
- D. Incorrect. Resource monitors track virtual warehouse credit consumption, not storage costs; storage is billed and reported separately from warehouse compute credits.
2.Multi-cluster warehouses and the cloud services adjustment
With a multi-cluster warehouse, an Enterprise Edition feature, multiply the size rate by the number of clusters running during each period. A 3X-Large (64 credits/hour) that runs 1 cluster for an hour and then 2 clusters for the next hour bills 64 + 128 = 192 credits.
Cloud services, the layer that handles authentication, query compilation and optimisation, also uses credits. You're billed for it only on days when cloud services consumption is more than 10% of that day's warehouse usage. Snowflake calculates this daily, in UTC: it multiplies daily warehouse usage by 10%. The adjustment can never be larger than that day's actual cloud services usage, so the monthly total adjustment can come out well under 10%. Serverless compute isn't part of this calculation.
The result is a gap between credits consumed and credits billed. Resource monitors and some usage views report consumption, before the adjustment. Billing applies it.
Checkpoint 3 of 6· Check yourself
On one day, warehouses use 200 credits and cloud services use 15 credits. How many cloud services credits are billed for that day?
The adjustment that day is 10% × 200 = 20 credits. It's capped at actual usage, so it covers all 15 credits and none are billed.
“Usage for cloud services is charged only if the daily consumption of cloud services exceeds 10% of the daily usage of virtual warehouses.”Source: docs.snowflake.com
3.The ACCOUNT_USAGE schema
To see these numbers after the fact, you query the shared SNOWFLAKE database. Its ACCOUNT_USAGE schema holds views of object metadata and usage metrics for your account. If you're a Secure Data Sharing provider, a separate READER_ACCOUNT_USAGE schema holds a small subset of these views for your reader accounts. ACCOUNT_USAGE views use the same structure and naming as their Information Schema counterparts, but they behave differently in three ways:
| Difference | Account Usage | Information Schema |
|---|---|---|
| Includes dropped objects | Yes | No |
| Latency of data | From 45 minutes to 3 hours (varies by view) | None |
| Retention of historical data | 1 year | From 7 days to 6 months (varies by view/table function) |
Most ACCOUNT_USAGE views have up to 2 hours of latency, and these are maximums, so a query can show recent activity sooner. Many object views have a DELETED column, plus ID columns that tell apart objects dropped and recreated under the same name. So use ACCOUNT_USAGE for trend analysis, such as six months of warehouse spend, and the Information Schema when you need data with no delay.
The views most relevant to cost are WAREHOUSE_METERING_HISTORY (hourly credits per warehouse), METERING_HISTORY (hourly credits for the account), METERING_DAILY_HISTORY, WAREHOUSE_LOAD_HISTORY and RESOURCE_MONITORS. All of them have a latency of up to 3 hours or less.
Checkpoint 4 of 6· Match them up
Match each requirement to the right choice
Tap a term, then the definition that fits it.
ACCOUNT_USAGE keeps more history and includes dropped objects but has some latency. The Information Schema has no latency but keeps less history and leaves out dropped objects.
“In contrast, views/table functions in the Snowflake Information Schema do not have any latency.”Source: docs.snowflake.com
Checkpoint 5 of 6· Exam question
A Snowpipe-heavy workload is quietly consuming a large amount of cloud services credits every day, but the account's resource monitors never trigger a notification for it. What is the most accurate explanation for this gap?
Correct answer: A — Resource monitors observe virtual warehouse credit usage only, not serverless feature consumption like Snowpipe
- A. Correct. Resource monitors are scoped to virtual warehouse credit consumption; serverless features such as Snowpipe, automatic clustering, and materialized view maintenance are not covered, so budgets must be used to monitor that spend instead.
- B. Incorrect. Exceeding the cloud services daily allowance only affects whether cloud services usage becomes billable that day; it does not disable resource monitors, which continue functioning for warehouse credits as normal.
- C. Incorrect. Snowpipe usage is billed within the same Snowflake account that owns the pipe; it is not routed to a separate account, so this is not the reason it is absent from the monitor's tracked usage.
- D. Incorrect. Notification thresholds above 100 percent are valid configurations for tracking overage beyond quota; they do not silently disable alerting, and this does not explain why Snowpipe usage specifically is untracked.
Sources3
4.Reading warehouse credits, and granting access
WAREHOUSE_METERING_HISTORY returns hourly credit usage for one warehouse or all warehouses, going back 365 days. Its CREDITS_USED column is CREDITS_USED_COMPUTE plus CREDITS_USED_CLOUD_SERVICES. That's the consumed figure, before the cloud services adjustment, so it can be higher than what you're billed. For billed credits, query METERING_DAILY_HISTORY. CREDITS_ATTRIBUTED_COMPUTE_QUERIES counts only query execution and leaves out idle time. Subtracting it from compute credits shows what idle warehouses cost:
SELECT
(SUM(credits_used_compute) -
SUM(credits_attributed_compute_queries)) AS idle_cost,
warehouse_name
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time >= DATEADD('days', -10, CURRENT_DATE())
AND end_time < CURRENT_DATE()
GROUP BY warehouse_name;Every user can see the SNOWFLAKE database, but querying its schemas needs a grant from ACCOUNTADMIN. There are two ways: grant IMPORTED PRIVILEGES on the whole database, or grant a SNOWFLAKE database role to an account role. Snowflake recommends database roles for ACCOUNT_USAGE access, so you don't accidentally expose organization-level data.
Checkpoint 6 of 6· Fill the gap
Which role runs these grants so that SYSADMIN and customrole1 can query ACCOUNT_USAGE?
USE ROLE ? ; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE SYSADMIN; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE customrole1;Access to the SNOWFLAKE database's schemas is granted by a user with the ACCOUNTADMIN role, either through IMPORTED PRIVILEGES or SNOWFLAKE database roles.
Source: docs.snowflake.comExam traps
Each one states something that sounds right. Open it to see what is actually true.
1.Resizing a warehouse to a larger size bills a full minute at the new size's rate.Why is that wrong?
The 1-minute charge on resizing up covers only the additional compute.
2.ACCOUNT_USAGE views are real-time, so a query that finished a minute ago will already show up.Why is that wrong?
ACCOUNT_USAGE views have up to 45 minutes to 3 hours of latency. Only the Information Schema has none.
Covered in The ACCOUNT_USAGE schema
3.CREDITS_USED in WAREHOUSE_METERING_HISTORY is what appears on the bill.Why is that wrong?
CREDITS_USED is before the cloud services adjustment and can be higher than billed credits. Use METERING_DAILY_HISTORY for billed credits.
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“there is a doubling of credit usage as you increase in size to the next larger warehouse size”
↩︎ Warehouse size, run time and per-second billing“By default, auto-suspend is enabled.”
↩︎ Warehouse size, run time and per-second billing“the total number of credits billed would be 192 (i.e. 64 + 128)”
↩︎ Multi-cluster warehouses and the cloud services adjustment“Snowflake utilizes per-second billing (with a 60-second minimum each time the warehouse starts)”
↩︎ Checkpoint - 2.
“When a warehouse is suspended, it does not use any credits.”
↩︎ Warehouse size, run time and per-second billing“the 1-minute minimum starts over each time a warehouse is resumed”
↩︎ Warehouse size, run time and per-second billing“The daily adjustment never exceeds actual cloud services usage for that day.”
↩︎ Multi-cluster warehouses and the cloud services adjustment“Serverless compute does not factor into the 10% adjustment for cloud services.”
↩︎ Multi-cluster warehouses and the cloud services adjustment“the number of credits billed are only for the additional compute resources that are provisioned”
↩︎ Exam trap 1“Usage for cloud services is charged only if the daily consumption of cloud services exceeds 10% of the daily usage of virtual warehouses.”
↩︎ Checkpoint - 3.
“Records for dropped objects are included in each view.”
↩︎ The ACCOUNT_USAGE schema“The retention period for these views is 1 year (365 days).”
↩︎ The ACCOUNT_USAGE schema“To avoid unintentionally granting access to organization-level data, consider using SNOWFLAKE database roles to grant access to views in the ACCOUNT_USAGE schema.”
↩︎ Reading warehouse credits, and granting access“For most of the views, the latency is 2 hours (120 minutes).”
↩︎ Exam trap 2“In contrast, views/table functions in the Snowflake Information Schema do not have any latency.”
↩︎ Checkpoint - 4.
“This value does not take into account the adjustment for cloud services, and may therefore be greater than the credits that are billed.”
↩︎ Reading warehouse credits, and granting access“Warehouse idle time is not included in the CREDITS_ATTRIBUTED_COMPUTE_QUERIES column.”
↩︎ Reading warehouse credits, and granting access“To determine how many credits were actually billed, run queries against the METERING_DAILY_HISTORY view.”
↩︎ Exam trap 3