Как сделать раздел в SQL Server 2008 - PullRequest
0 голосов
/ 09 марта 2011

У меня есть таблица транзакций в SQL Server 2008 дБ.Я хотел бы сделать ежедневный раздел на этой таблице.Поэтому я использовал мастер создания разделов.Я дал схему разделов, функцию patition все.Я установил граничные значения как 1.1.2011 и 10.1.2011 и дневной уровень.затем я ввел значения в эту таблицу, так как каждый день одна строка (только для проверки), она будет вставлена ​​в каждый раздел.Каждый раздел содержит по 1 строке.Но я хочу таким образом, если я введу 11.1.2011, он будет загружен в 1-й раздел, удаляя существующие данные. Как я могу это сделать.

1 Ответ

1 голос
/ 09 марта 2011

С технической точки зрения это возможно, и вы пытаетесь продублировать форму разбиения интервалов, которую имеет Oracle, где новые разделы создаются для вас на лету. В SQL Server вы должны полностью управлять этим процессом - обслуживание разделов, создание / удаление разделов должны быть закодированы в рамках процедур.

Так можно ли это сделать? да - вы можете смоделировать интервальное разбиение, добавив триггер, и я недавно привел пример этого (http://sqlfascination.com/2010/09/12/interval-partitioning-in-sql-server-2008/)

Стоит ли это делать? Я сильно сомневаюсь в этом - снижение производительности не будет незначительным, и управление разделами в триггере было упражнением в тестировании, а не в рабочем коде.

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

...