Exploring Storage Cost

Total Storage cost is the sum of costs associated with:

  • Staged file storage

  • Database table storage

  • Fail-safe and Time Travel storage

This topic describes how to gain insight into historical storage costs using Snowsight, the Snowflake web interface, or by writing queries against views in the ACCOUNT_USAGE and ORGANIZATION_USAGE schemas. Snowsight allows you to quickly and easily obtain information about cost from a visual dashboard. Queries against the usage views allow you to drill down into cost data and can help generate custom reports and dashboards.

To gain a better understanding of how storage costs are incurred, see Understanding Storage Cost.

Accessing Storage Costs

To grant users the ability to explore storage costs using Snowsight or by writing queries, refer to Accessing Cost and Usage Data.

Viewing the Storage History for Your Organization

Users with the ACCOUNTADMIN role can use Snowsight to view the amount of data that is stored in Snowflake.

To use Snowsight to explore storage costs:

  1. Navigate to Admin » Usage.

  2. Select a warehouse to use to view the usage data. Snowflake recommends using an XS warehouse for this purpose.

  3. Select Storage from the Usage Type drop-down.

Filter by Tag

To help attribute cost to a logical unit within your organization, you can filter the Usage dashboard to show storage associated with a specific tag/value combination. This ability to filter storage by tag is similar to filtering credit consumption by tag. For details, refer to Exploring Compute Costs.

View Storage by Type or Object

When viewing the bar graph that displays storage history, you can filter the data either By Type or By Object.

Filtering By Type shows the size of storage for each storage type: Database, Fail Safe, and Stage. Storage associated with Time Travel is included in the Database category.

Filtering By Object graphs the size of storage for each object, for example the size of a particular database or stage.

Viewing Data Usage for a Table

Users with the appropriate access privileges can use the web interface to view the size (in bytes) of individual tables in a schema/database:

To use Snowsight to view the size of a table:

  1. Select Data » Databases.

  2. On the left side of the Databases page, drill down into the database object explorer.

  3. Expand a database, then any schema in the database.

  4. Click on any table to view the table statistics, including its size.


The size displayed for a table represents the number of bytes that will be scanned if the entire table is scanned in a query; however, this number may be different from the number of physical bytes (i.e. bytes stored on-disk) for the table, specifically for cloned tables and tables with deleted data:

  • A cloned table does not utilize additional storage (until rows are added to the table or existing rows in the table are modified or deleted). As a result, the table size displayed may be larger than the actual physical bytes stored for the table, i.e. the table contributes less to the overall storage for the account than the size indicates.

  • Data deleted from a table is not included in the displayed table size; however, the data is maintained in Snowflake until both the Time Travel retention period (default is 1 day) and the Fail-safe period (7 days) for the data has passed. During these two periods, the table size displayed is smaller than the actual physical bytes stored for the table, i.e. the table contributes more to the overall storage for the account than the size indicates.

For more information about storage for cloned tables and deleted data, see Data Storage Considerations.

Querying Data for Table Size

You can write SQL queries to gain insights into tables, including their size, instead of using the web interface.

A user with the proper access privileges can list data about tables using the SHOW TABLES command.

In addition, users with the ACCOUNTADMIN role can use SQL to view table size information by executing queries against the TABLE_STORAGE_METRICS view in the ACCOUNT_USAGE schema.

For important information about interpreting the table data retrieved by these SQL queries, see the note in Viewing Data Usage for a Table (in this topic).

Querying Data for Storage Cost

Snowflake provides two schemas, ORGANIZATION_USAGE and ACCOUNT_USAGE, that contain data related to usage and cost. The ORGANIZATION_USAGE schema provides cost information for all of the accounts in the organization while the ACCOUNT_USAGE schema provides similar information for a single account. Views in these schemas provide granular, analytics-ready usage data to build custom reports or dashboards.

Most views in the ORGANIZATION_USAGE and ACCOUNT_USAGE schemas contain the cost of storage in terms of the size of storage. To view cost in currency rather than size, write queries against the USAGE_IN_CURRENCY_DAILY View. This view converts the size of storage into cost in currency using the daily price of a TB.

The following views provide usage and cost information related to storage.





Average daily storage in bytes for each database in the account/organization.



Data storage in bytes for databases fulfilled to other regions by cross-cloud auto-fulfillment.



Average daily storage for storage in bytes. Combines database storage (DATABASE_STORAGE_USAGE_HISTORY) and stage storage (STAGE_STORAGE_USAGE_HISTORY).



Average daily storage usage, in bytes, for all the Snowflake stages including named internal stages and default staging areas.



Storage in bytes for tables, including storage that is no longer active but continues to incur cost (e.g. deleted tables with the Time Travel retention period).



Daily average storage in bytes along with the cost of that usage in the organization’s currency.



The views and table functions of the Snowflake Information Schema also provide usage data related to cost. Though the ACCOUNT_USAGE schema is preferred, the Information Schema can be faster in some circumstances.