The sysindexes table stores information about indexed and unindexed tables. sysindexes has one row for each:
Allpages-locked table, the indid column is 0 if the table does not have a clustered index, and 1 if the table does have a clustered index.
Data-only-locked tables, the indid is always 0 for the table.
Nonclustered index, and for each clustered index on a data-only-locked table.
Table with one or more LOB columns, the index ID is always 255 for the LOB structure.
Each row in sysindexes stores pointers to a table or index to speed access to objects. Table 8-2 shows how these pointers are used during data access.
Column  | 
Use for table access  | 
Use for index access  | 
|---|---|---|
root  | 
If indid is 0 and the table is a partitioned allpages-locked table, root points to the last page of the heap.  | 
Used to find the root page of the index tree.  | 
first  | 
Points to the first data page in the page chain for allpages-locked tables.  | 
Points to the first leaf-level page in a non clustered index or a clustered index on a data-only-locked table.  | 
doampg  | 
Points to the first OAM page for the table.  | 
|
ioampg  | 
Points to the first OAM page for an index.  |