SSIS Catalog Inventory
Overview
The never run list is the point.
A catalog that has been through two migrations carries projects nobody has executed in a year, and every one of them is still a version chain the nightly cleanup walks and a thing somebody has to reason about the next time they audit the estate.
Where to find it
Expand a server in the tree, expand a database holding an Integration Services catalog, then SSIS → Catalog Inventory.
Three catalog facts this page turns into columns
entry_point
Separates a package meant to be started from one meant to be called.
A package with entry_point off is a child of an Execute Package Task and is supposed to have no executions of its own, so counting it as never run would put half a well built project on a list of things to delete.
project_format_version
Records which version of the tooling deployed the project.
A catalog holding projects below what the current SSDT will open is a catalog where the day somebody needs to change one of those packages is going to be a bad day, and finding that out on a quiet afternoon costs nothing.
object_versions
A chain per project, bounded by MAX_PROJECT_VERSIONS.
A project sitting at the limit is one where the oldest rollback target is already gone.
“Never run” means never run inside the retention window
Everything counted as a run here is bounded by the catalog’s retention window. That is in the caveat line rather than left for somebody to discover.
SSIS Catalog Health is where the retention window is set.
The two views
| View | What it ranks |
|---|---|
| By runs | Packages by how often they run, which puts the never run ones at the bottom together. |
| By age | Packages by how long since they last ran, which is the view for deciding what to retire. |
Reading the grid
| Column | What it is |
|---|---|
| Package | The package. |
| Project / Folder | Where it lives in the catalog. |
| Kind | Entry point or child, from entry_point. |
| Runs | Executions inside the retention window. |
| Failed | How many of those failed. |
| Last run | The most recent execution. |
| Last deployed | When the project was last deployed. |
| Deployed by | Who deployed it. |
| Versions | How many versions the chain holds, against MAX_PROJECT_VERSIONS. |
| Format | project_format_version, and what tooling that corresponds to. |
| State | Running normally, never run, a child that was started directly, or a format below the current tooling. |
The toolbar
| Control | What it does |
|---|---|
| By runs / By age | The two views. |
| Recent runs | Opens SSIS Packages Run. |
| Environments | Opens SSIS Environments. |
Where the data comes from
| Source | What it gives |
|---|---|
catalog.packages |
The packages and their entry_point. |
catalog.projects |
The projects, project_format_version, last_deployed_time and deployed_by_name. |
catalog.folders |
The folder names. |
catalog.object_versions |
The version chain per project. |
catalog.executions |
The run counts, bounded by retention. |
catalog.catalog_properties |
MAX_PROJECT_VERSIONS and the retention window. |
Related reports
| Report | Why you would go there |
|---|---|
| SSIS Package Map | Why a package has never run: nothing starts it, or nothing calls it. |
| SSIS Catalog Health | The retention window and version limit that bound this page. |
| SSIS Environments | Which environments supply the parameters these projects need. |
| SSIS Packages Run | The executions behind the run counts. |
| SSIS Who Fills It | Which of these packages is writing most of SSISDB. |
Frequently asked questions
A package shows zero runs and I know it runs. Check the Kind column. A child package started by an Execute Package Task in process has no execution of its own; it runs inside its parent’s.
Why does never run depend on the retention window? Because executions older than the window have been cleaned up. A package that last ran fourteen months ago on a catalog with 365 day retention genuinely has no record of running.
Versions is at the limit. Is that a problem? It means the oldest version in the chain has already been removed and cannot be rolled back to. Whether that matters is a policy decision; MAX_PROJECT_VERSIONS is where it is set.
What does the Format column really tell me? Which SSDT deployed it. A project several versions behind the tooling you have installed may not open cleanly, and that is much better discovered now than during an incident.