Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

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

Вопрос состоит в том есть ли разница создавать временную таблицу в файловой группе секции или в схеме секционирования таблицы архива? Повлияет ли это на производительность?

При создании в файловой группе временную таблицу нужно будет удалять пересоздавать каждый раз в новую группу

А при создании в схему секционирования можно будет создать один раз и переключать секции.

Подскажите как правильно сделать?
14 фев 17, 16:42    [20211344]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
ппп-пп
Guest
lex452,

Вам читать сюда
14 фев 17, 18:11    [20211584]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
ппп-пп,

именно по этой схеме все и организовано, но вопрос я задаю, который там не раскрыт. Да временная таблица там создается в файловой группе к которой относится нужная секция. У меня вопрос в том на сколько критично в интересах производительности, создавать ее в файловой группе или схеме секционирования?
14 фев 17, 20:53    [20211888]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
Не уверен, но у меня есть подозрения что если создавать временную (каскадную) таблицу в схеме то сервер при вставке будет анализировать данные на соответствие секциям и по производительности это будет так же как вставить данные напрямую в архивную таблицу.
А при создании ее со ссылкой на нужную файловую группу сервер будет делать меньше проверок на соответствие.

Правильно я предполагаю или нет?
14 фев 17, 20:59    [20211902]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
lex452,

у вас какая-то каша в голове. Вы совершенно различные критерии начинаете пытаться между собой увязать. Вам бы почитать необходимые условия для выполнения ALTER TABLE SWITCH, стало бы гораздо яснее. Если по простому:

1. Таблица либо секция не может при переключении переместиться из одной ФГ в другую, так что создавать надо ОБЯЗАТЕЛЬНО в той же группе, куда потом будете переключать.
2. При переключении (таблицы ли, секции - пофиг) будут проверяться ограничения. Обеспечите вы их выполнение с помощью CHECK CONSTRAINT или схемы - дело ваше.
14 фев 17, 21:04    [20211908]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
iljy,

Каши в голове нет, возможно просто неточно выражаюсь.
Я понимаю что происходит все в одной файловой группе при переключении.
Меня интересует в плане производительности что лучше CHECK CONSTRAINT или схема секционирования для каскадной таблицы.
И правильно я понял, что когда таблица создана в схеме то для переключения дополнительно накладывать CONSTRAINT смысла уже нет?
14 фев 17, 23:23    [20212207]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
lex452,

В плане производительности при вставке? Думаю, проще проверить. А при переключении если она даже и есть - фиг вы ее заметите.
И да, дополнительно накладывать чеки на схему не нужно.
15 фев 17, 02:36    [20212330]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
Да, при вставке интересно. В итоге вопрос сводится к тому что быстрее вставить данные с таблицу с ограничениями или вставить данные в таблицу и добавить ограничения после вставки
15 фев 17, 07:09    [20212387]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
lex452,

Вероятно, Вы путаете схему безопасности и схему секционирования.
Смотрите топик справки "секционированные таблицы [SQL Server], о секционированных таблицах" для понимания.
15 фев 17, 10:15    [20212913]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
Владислав Колосов,

нет не путаю, и вообще не понял с чего вы это взяли
что быстрее добавить данные в кучу и наложить на них ограничение или добавлять данные в таблицу с ограничением?
15 фев 17, 10:46    [20213043]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
lex452
Владислав Колосов,

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


Слушайте, ну проверьте вы уже, а? Всего-то надо два раза скрипт загрузки запустить и время замерить. Или это надо за вас сделать?
15 фев 17, 11:58    [20213377]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных с использованием временной таблицы  [new]
lex452
Member

Откуда:
Сообщений: 590
iljy,

Я пробовал на 1 млн. строк критичной разницы не замечено. Я рассчитывал что кто-то знает как ведет себя сервер.
Например ведь известно что вставить данные и построить индекс быстрее чем вставлять данные в индексированную таблицу. Вот я и подумал что с ограничениями так же будет работать.
15 фев 17, 22:13    [20215669]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить