A storage group (STOGROUP) tells Db2 where on disk to put the VSAM data sets behind table spaces and indexes. This page explains what a STOGROUP is, how volumes and SMS fit at a high level, and how tables and indexes consume storage groups—without turning you into a full-time storage administrator overnight.
In the Db2 object hierarchy, a storage group is a set of volumes on disks that hold the data sets in which tables and indexes are stored. After you define a storage group, Db2 records it in the catalog: SYSIBM.SYSSTOGROUP has a row for each group, and SYSIBM.SYSVOLUMES has a row for each volume. That Db2 catalog is not the same as the integrated catalog facility (ICF) catalog that describes VSAM data sets to z/OS.
You create a storage group with CREATE STOGROUP. Installation defines a default group named SYSDEFLT. If you are authorized and do not take special steps to manage your own storage, you can still define tables, indexes, table spaces, and databases; Db2 can allocate auxiliary storage using SYSDEFLT.
123CREATE STOGROUP MYSTOGRP VOLUMES (*) VCAT ALIASICF;
IBM recommends using storage groups whenever you can—explicitly or by accepting the default. Some organizations manage user-defined data sets themselves for tighter physical control; that approach is more complex and outside this beginner intro.
| Layer | Role |
|---|---|
| STOGROUP | Rules for where Db2 allocates VSAM data sets |
| Table space / index space | Page sets whose data sets live on that storage |
| Table / index | Logical objects applications and the optimizer use |
Classic CREATE STOGROUP examples list volume serial numbers. Modern shops usually hand placement to DFSMS (System Managed Storage). With SMS, you often specify VOLUMES (*) and supply SMS management, data, and storage classes so policies—not hard-coded volsers—decide where extents land.
| Idea | Meaning |
|---|---|
| Volume serial list | Explicit disks Db2 may use for allocation |
| VOLUMES (*) | Defer placement to SMS |
| SMS classes | MGMTCLAS / DATACLAS / STORCLAS guide space and performance policies |
Think of SMS classes as labeled shipping rules: how data is managed (migration, backup policies), what data set characteristics apply, and which storage performance tier is appropriate. Db2 asks for space through the STOGROUP; SMS and the storage team own the deep device details.
The VCAT name on CREATE STOGROUP relates to the catalog alias used for the underlying data sets. You will see VCAT names in DBA standards documents; treat them as part of site naming, not something application SQL changes daily.
IBM notes you can assign frequently accessed objects to faster devices and seldom-used tables to slower ones by how you choose storage groups. With SMS, that often means different storage classes or groups aligned to workload tiers—not application developers picking disk addresses.
Applications SELECT from tables. Allocation happens when table spaces and indexes are created (and when they extend). You name the storage group on CREATE TABLESPACE or CREATE INDEX, or you inherit defaults from the database or SYSDEFLT.
1234567891011121314CREATE DATABASE APPDB STOGROUP MYSTOGRP BUFFERPOOL BP1 INDEXBP BP2; CREATE TABLESPACE EMPTS IN APPDB USING STOGROUP MYSTOGRP PRIQTY 100 SECQTY 100 DEFINE YES; CREATE INDEX HR.XEMP1 ON HR.EMPLOYEE (EMPNO) USING STOGROUP MYSTOGRP PRIQTY 40 SECQTY 20;
CREATE DATABASE can establish a default STOGROUP for objects in that database. Individual spaces and indexes can override. PRIQTY/SECQTY style quantities (and SMS equivalents) influence how much space is requested—exact clauses evolve with Db2 versions and SMS usage.
You rarely change STOGROUPs from application code. You do need to understand CREATE output and DBA review comments: “wrong STOGROUP” means the object’s data sets may land on the wrong storage tier or catalog alias relative to standards—not that SQL column types are wrong.
With authorization, you can SELECT from SYSIBM.SYSSTOGROUP and SYSIBM.SYSVOLUMES to see defined groups and volumes—useful when documenting an environment or verifying a name before CREATE.
Toys need shelves. A storage group is the rule sheet that says “put new boxes on the blue shelves” (or “ask the librarian where blue shelves are”—that librarian is like SMS). The toy list (table) does not mention shelves when you play. Grown-ups use the rule sheet when they build a new box (table space) or a notebook (index).
1. A Db2 storage group (STOGROUP) is:
2. SYSDEFLT is typically:
3. VOLUMES (*) on CREATE STOGROUP often indicates:
4. How do tables/indexes use storage groups?
5. Catalog tables that describe storage groups include: