Table partitioning allows large tables to be split across multiple filegroups to improve performance. A partition function defines the data ranges and a partition scheme maps those ranges to filegroups. Tables, indexes, and views can then be created on partition schemes. The SWITCH operator can move partitions between filegroups with minimal locking to archive old data or distribute it across storage.