Columns defined as reserved should not be used.
In earlier versions of SQL Server, each table that had at least one text, ntext, or image column also had a row in sysindexes with indid = 255. This index id no longer exists. When a table or index has one or more large object (LOB) data types, one LOB_DATA allocation unit per partition is allocated to manage the storage of that data. For more information, see Table and Index Organization.
The columns dpages, reserved, and used will not return accurate results if the table or index contains data in the ROW_OVERFLOW allocation unit. In addition, the page counts for each index are tracked separately and are not aggregated for the base table. To view page counts, use the sys.allocation_units or sys.partitions catalog views, or the sys.dm_db_partition_stats dynamic management view.
In earlier versions of SQL Server, the Database Engine maintained row-level modification counters. Such counters are now maintained at the column level. Therefore, the rowmodctr column is calculated and produces results that are similar to the results in earlier versions, but are not exact.
If you use the value in rowmodctr to determine when to update statistics, consider the following solutions:
-
Do nothing. The new rowmodctr value will frequently help you determine when to update statistics because the behavior is reasonably close to the results of earlier versions.
-
Use AUTO_UPDATE_STATISTICS. For more information see, Using Statistics to Improve Query Performance.
-
Use a time limit to determine when to update statistics. For example, every hour, every day, or every week.
-
Use application-level information to determine when to update statistics. For example, every time the maximum value of an identity column changes by more than 10,000, or every time a bulk insert operation is performed.