Skip to main content

STORAGE_INFO views

Requires permissionRoles and access control →
View organization-wide storage informationAdmin ✓Builder —Explorer —

Marked preset roles include the permission by default; a custom role qualifies when it inherits a role that includes it.

Overview​

MotherDuck provides two views to look at how much storage is used - a current snapshot (STORAGE_INFO) and the previous 30 days of history (STORAGE_INFO_HISTORY).

The MD_INFORMATION_SCHEMA.STORAGE_INFO view provides comprehensive storage information for all databases in your MotherDuck organization. This view is essential for understanding storage usage, billing calculations, and database lifecycle management.

The MD_INFORMATION_SCHEMA.STORAGE_INFO_HISTORY view provides storage information for up to the past 30 days of usage.

With permission to view organization-wide storage information, you can view your organization's storage breakdown on the databases page. The page shows the total current bytes across all databases and a breakdown for each database. You can also click a row to get a lifecycle breakdown for that database.

Syntax​

To see the latest snapshot:

SELECT * FROM MD_INFORMATION_SCHEMA.STORAGE_INFO;

To see the history:

SELECT * FROM MD_INFORMATION_SCHEMA.STORAGE_INFO_HISTORY;

Columns​

The MD_INFORMATION_SCHEMA.STORAGE_INFO view returns one row for each database in your organization with the following columns:

Column NameData TypeDescription
database_nameVARCHARName of the database
database_idUUIDUnique ID for the database
created_tsTIMESTAMPTime when the database was created
deleted_tsTIMESTAMPTime when the database was deleted (NULL if not deleted)
user_nameVARCHARUsername of the database owner
active_bytesBIGINTActively referenced bytes of the database
historical_bytesBIGINTNon-active bytes that are referenced by a share of this database
retained_for_clone_bytesBIGINTBytes referenced by other databases (through zero-copy clone) that are no longer referenced by this database as active or historical bytes
failsafe_bytesBIGINTBytes that are no longer referenced by any database or share
transientBOOLEANWhether the database is transient
historical_snapshot_retentionINTERVALPeriod of time the database's snapshots are retained after becoming inactive
computed_tsTIMESTAMPTime at which active_bytes, historical_bytes, etc. were computed

The MD_INFORMATION_SCHEMA.STORAGE_INFO_HISTORY view has the same schema, but will return results from up to the past 30 days, so a single database might have multiple entries reflecting its state at different points in time.

Examples​

Basic usage​

View storage information for all databases in your organization:

-- Get storage information for all databases
SELECT * FROM MD_INFORMATION_SCHEMA.STORAGE_INFO;

Sample results:

database_namedatabase_idcreated_tsdeleted_tsuser_nameactive_byteshistorical_bytesretained_for_clone_bytesfailsafe_bytestransienthistorical_snapshot_retentioncomputed_ts
test_db_17ed1baf3-e4ff-42c9-a37b-9f683905ce452024-12-02 20:18:36NULLbob8206336002684968960false1 day2025-06-25 16:46:16.37
test_db_2fcc16e53-d761-4e40-84ec-15570fab363e2024-11-12 03:38:52NULLjim274432000false1 day2025-06-25 16:46:16.37

Filtering and analysis​

Find databases with high storage usage:

-- Find databases using more than 1GB of active storage
SELECT
database_name,
user_name,
active_bytes,
ROUND(active_bytes / 1000.0 / 1000.0 / 1000.0, 2) as active_gb
FROM MD_INFORMATION_SCHEMA.STORAGE_INFO
WHERE active_bytes > 1000000000 -- 1GB in bytes
ORDER BY active_bytes DESC;

Storage cost analysis​

Analyze storage costs by user:

-- Calculate total storage usage per user
SELECT
user_name,
COUNT(*) as database_count,
SUM(active_bytes) as total_active_bytes,
SUM(historical_bytes) as total_historical_bytes,
SUM(retained_for_clone_bytes) as total_cloned_bytes,
SUM(failsafe_bytes) as total_failsafe_bytes
FROM MD_INFORMATION_SCHEMA.STORAGE_INFO
GROUP BY user_name
ORDER BY total_active_bytes DESC;

Analyze active and failsafe storage footprint over the past week for a specific database:

SELECT active_bytes, failsafe_bytes, computed_ts
FROM MD_INFORMATION_SCHEMA.STORAGE_INFO_HISTORY
WHERE database_name = "my_database"
AND computed_ts >= NOW - INTERVAL 7 DAYS
ORDER BY computed_ts DESC;

Notes​

  • Data Refresh: Information in this view refreshes every 1-6 hours
  • Retention: STORAGE_INFO_HISTORY only returns one set of results per day, even though the latest results are re-computed multiple times per day
  • Billing Data: This view returns the underlying data used to power MotherDuck storage billing
  • Permissions: You must have appropriate permissions to access this view
  • Organization Scope: Only shows databases within your current organization

Understanding timestamps​

The created_ts column in STORAGE_INFO represents when the database was created. This is useful for understanding database age and lifecycle.

For point-in-time restore scenarios, use DATABASE_SNAPSHOTS instead, where created_ts represents when each snapshot was created.

Viewcreated_ts meaningUse case
STORAGE_INFOWhen the database was createdStorage billing, database lifecycle management
DATABASE_SNAPSHOTSWhen the snapshot was createdPoint-in-time restore, finding snapshots to recover

Troubleshooting​

Common issues​

Outdated information

  • Data refreshes only happen periodically, so recent changes may not be immediately visible

Permission denied errors

  • Ask someone with permission to assign roles to assign you a role that includes permission to view organization-wide storage information. The Admin preset role includes both permissions by default.
  • Verify your authentication token is valid and has the required scope