A physical join index row has two parts:
- A required fixed part that is stored only once.
- An optional repeated part that is stored as often as needed.
For example, if a logical join result has n rows with the same fixed part value, then there is one corresponding physical join index row that includes n repeated parts in the physical join index. A physical join index row represents one or more logical join index rows. The number of logical join index rows represented in the physical row depends on how many repeated values are stored.
Row compression is only done on rows inserted by the same INSERT statement. Newly inserted rows are not added as logical rows to existing compressed rows.
When the number of repeated values associated with a given fixed value exceeds the system row maximum size, the join index row is automatically split into multiple physical rows, each having the same fixed value but different lists of repeated values. A logical join index result row cannot exceed the system row maximum size of 1 megabyte.