---
title: 'SAS-isms: Library Info'
description: Expanding a VIEW library in Data Controller surfaces engine, size, paths, table count and schema - with the same data queryable from the underlying tables.
date: '2026-08-11 09:00:00'
author: 'Data Controller'
authorLink: https://www.linkedin.com/showcase/data-controller-for-sas
tags:
  - SAS-isms
previewImg: './library-info.jpeg'
---

# Library Info

One of many "SAS-isms" in Data Controller for SAS®.

When expanding a VIEW library, Data Catalog items are surfaced:

- Library Engine
- Library Size (Bytes, MB, GB)
- Paths (if BASE engine)
- Table Count
- Schema (if a database)

![Library engine and host information](./library-enginehost-info.jpeg)

And more. Much of this data can also be queried from the underlying tables:

- [MPE_DATACATALOG_LIBS](https://docs.datacontroller.io/tables/mpe_datacatalog_libs) - engine, paths, permissions, owners, schemas, metadata name / id
- [MPE_DATASTATUS_LIBS](https://docs.datacontroller.io/tables/mpe_datastatus_libs) - frequently changing attributes: library size, table count, catalog count

The split is deliberate - stable attributes live in the DATACATALOG tables, volatile ones (size, counts) in DATASTATUS. All of it is stored with SCD2, so you can track how your data landscape changes over time.

Refreshes are driven by the `mpe_refreshlibs` and `mpe_refreshtables` macros - any user can refresh an individual library from the VIEW menu, and admins can scan the entire estate from the System page.

Similar information is available for datasets - it's essentially an extract from `proc contents`, using the [mp_dsmeta](https://core.sasjs.io/mp__dsmeta_8sas.html) macro from the [SASjs Core](https://github.com/sasjs/core) library.

![Dataset attributes](./dataset-attributes.jpeg)

<!--
LinkedIn version (plain text - no markdown, links in comments):

One of many "SAS-isms" in Data Controller for SAS® - "Library Info"

When expanding a VIEW library, Data Catalog items are surfaced:

▪️ Library Engine
▪️ Library Size (Bytes, MB, GB)
▪️ Paths (if BASE engine)
▪️ Table Count
▪️ Schema (if a database)

And more. Much of this data can also be queried from the underlying tables (links in the comments below):

▪️ MPE_DATACATALOG_LIBS - engine, paths, permissions, owners, schemas, metadata name / id
▪️ MPE_DATASTATUS_LIBS - frequently changing attributes: library size, table count, catalog count

The split is deliberate - stable attributes live in the DATACATALOG tables, volatile ones (size, counts) in DATASTATUS. All of it is stored with SCD2, so you can track how your data landscape changes  over time.

Refreshes are driven by the mpe_refreshlibs and mpe_refreshtables macros - any user can refresh an individual library from the VIEW menu, and admins can scan the entire estate from the System page.

Similar information is available for datasets - it's essentially an extract from proc contents, using the mp_dsmeta macro from the SASjs Core library (link in the comments).

#sas #datacatalog #datagovernance #sasjs #metadata

Suggested first comment:

MPE_DATACATALOG_LIBS: https://docs.datacontroller.io/tables/mpe_datacatalog_libs
MPE_DATASTATUS_LIBS: https://docs.datacontroller.io/tables/mpe_datastatus_libs
mp_dsmeta macro: https://core.sasjs.io/mp__dsmeta_8sas.html

Attach library-info.jpeg (and optionally library-enginehost-info.jpeg + dataset-attributes.jpeg) to the post.
-->
