10.10.2013, 09:31 | #1 |
Участник
|
Сделать копию partition
в 2012 R2 появилась функция partition, которая по сути позволяет создать несколько инсталяций в одной.
Решал ли кто нибудь вопрос с дубрированием partition. типа берем текущий, и делаем его копию.(в одной и той же БД) Какие подходы использовали? Может есть какие стандартные фукнции для этого |
|
10.10.2013, 21:07 | #2 |
Участник
|
маза на T-SQL процедурку написать по-быстрому
таблички только надо как-то отфильтровать для дубляжа |
|
11.10.2013, 10:44 | #3 |
Участник
|
На T-SQL процедурку по быстрому не напишешь: в 2012 во всех таблицах индекс теперь только по полю RecId, а не RecId+DataAreaId как было в 2009. В 2012 логично было бы сделать индекс RecId+Partition, но почему-то сделали индекс только по полю RecId.
Поэтому надо заморачиваться с корректным выделением RecId. |
|
|
За это сообщение автора поблагодарили: trud (3). |
11.10.2013, 11:03 | #4 |
Участник
|
|
|
11.10.2013, 11:06 | #5 |
Участник
|
|
|
11.10.2013, 11:33 | #6 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
11.10.2013, 11:42 | #7 |
Участник
|
Кроме индекса по RecId Написать можно все что угодно. Откройте SQL и посмотрите.
Вообще я так понимаю основная проблема даже не с выделением RecId, а скорее с сохранением ссылок между данными, ведь в DAX2012 очень много связей по RecId.
__________________
Sergey Nefedov |
|
11.10.2013, 11:52 | #8 |
Участник
|
Цитата:
я эту проблему решил по аналогии как сделано в стандартном импорте из dat файла. Там еще с версии 2.5 была возможность сохранять ссылки по RecId в импортируемых данных. |
|
11.10.2013, 11:55 | #9 |
Участник
|
да действительно, походу для новых таблиц (те, что в 2012 созданы, а не пришли из других версий) только RecId в индексе
|
|
11.10.2013, 13:07 | #10 |
Участник
|
Не только для новых таблиц. Например, CustTable.
Да запоминать ссылки по RecId хорошо, главное чтобы не было каких нибудь полей с типом RefRecId\RecId(либо вообще без него) без релейшенов. Если partion, например только для тестовых целей и на какое то время, то можно например от значений всех полей типом int64 отнять какое нибудь большое число, чтобы заведомо результат перешел куда-нибудь в отрицательный диапазон, чтобы подольше не вспоминать.
__________________
Sergey Nefedov |
|
11.10.2013, 13:25 | #11 |
Участник
|
Цитата:
Сообщение от SRF
Не только для новых таблиц. Например, CustTable.
Да запоминать ссылки по RecId хорошо, главное чтобы не было каких нибудь полей с типом RefRecId\RecId(либо вообще без него) без релейшенов. Если partion, например только для тестовых целей и на какое то время, то можно например от значений всех полей типом int64 отнять какое нибудь большое число, чтобы заведомо результат перешел куда-нибудь в отрицательный диапазон, чтобы подольше не вспоминать. там просто ко всем значениям полей на базе RecId, RefRecId прибавляется одно и тоже число главное правильно вычислить это число |
|
|
За это сообщение автора поблагодарили: SRF (1). |
11.10.2013, 17:42 | #12 |
Участник
|
Вот же, не раз возникали споры по поводу искусственных и естественных идентификаторов.
Придумали искусственные связи, теперь сиди и думай как сделать что-то, что раньше делалось простыми стандартными импортами. Зато привели структуру в одну из стандартных форм теории реляционных баз. Круто - полный программизм. |
|
11.10.2013, 21:20 | #13 |
Участник
|
В принципе никто не мешает воспользоваться функцией импорта данных в партишн - msdn, но это наверняка не очень быстрый процесс. Единственно, что данные можно загрузить при первой инициализации, но это я думаю можно обойти, придется скорее всего удалить соответствующую запись в табличке SysSetupPartitionLog
__________________
Sergey Nefedov |
|
Теги |
partition |
|
|