Поделиться через


Секционирование в образце базы данных AdventureWorks

SQL Server содержит два учебных сценария Transact-SQL, которые можно запустить для образца базы данных AdventureWorks, чтобы реализовать сценарий секционирования. Для получения сведений об установке и запуске сценариев см. Readme_PartitioningScript и ReadMe_SlidingWindow.

Первый сценарий, PartitionAW.sql, секционирует таблицы TransactionHistory и TransactionHistoryArchive базы данных AdventureWorks. Таблица TransactionHistory содержит записи о продажах за текущий год. Эта таблица в основном используется для вставки новых записей и их обновления по мере необходимости. Таблица TransactionHistoryArchive содержит записи о продажах, предшествующие текущему году. Эта таблица используется в основном для запросов SELECT и в качестве промежуточной при перемещении данных в хранилище. Дополнительные сведения о структуре секционирования этих таблиц см. в разделе Рекомендации по планированию секционированных таблиц и индексов.

В сценарии реального использования базы данных таблицы TransactionHistory и TransactionHistoryArchive, скорее всего, станут самыми большими в ней. Секционируя эти две таблицы, можно управлять перемещением между ними подмножеств месячных данных. Ежемесячно данные за самый давний месяц перемещаются из таблицы TransactionHistory в таблицу TransactionHistoryArchive. Таким образом, данные в таблице TransactionHistory остаются актуальными для операций INSERT и UPDATE, в то время как более старые данные отправляются в TransactionHistoryArchive для очистки и анализа. Так как таблицы секционированы, передача месячных фрагментов данных между таблицами обычно занимает секунды, а не минуты и часы, как это было в предыдущих выпусках. Так происходит потому, что это лишь операция над метаданными, а не физическое перемещение данных.

Второй сценарий, Sliding.sql, реализует для данных одного месяца «скользящее окно». Дополнительные сведения по работе этого сценария см. в разделе Проектирование секций для управления вложенными наборами данных.