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

Откуда:
Сообщений: 826
Можно ли как-то создать таблицу, разделенную на секции, но без указания функции секционирования?

Предыстория следующая:
Имеется n баз данных (их наполняет оборудование, но это не важно в данный момент), которые необходимо слить воедино.
Значения в таблицах в этих базах по ключам - не пересекаются (везде гуиды), поэтому относительно легко их можно конкатенировать в одну таблицу.
Хотелось вы подгружать данные каждой отдельной базы в отсоединенные секции, а потом включать в общую таблицу (для каждой таблицы, соответственно), но, к сожалению, в таблицах нет ничего такого, что можно было бы использовать как ключ в функции секционирования.
Т.е. я знаю, какие данные в какую секцию я собираюсь грузить просто на основе того, какому аппарату принадлежит обрабатываемая база. Но внутри таблиц этой информации - нет ни в каком виде.

Можно ли как-нибудь вывернутся?
Можно как-нибудь определить такую таблицу?

Можно, конечно просто создать некие "теневые" таблицы куда складывать данные, и объединить их Union All в виртуальную, но хотелось бы всё-таки, иметь "настоящую" таблицу.

Наверное, это невозможно, т.к. при этом еще и непонятно, как индексы выравнивать?

Созданная база будет использоваться только на чтение, а весь этот цирк нужен для того, чтобы пользоваться уже разработанным приложением с системой отчетов.
22 мар 18, 13:21    [21277260]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
xenix
Guest
uaggster,

может, стоит попробовать слепить функцию секционирования на основании даты загрузки? (добавить дефолтное поле LoadDate GETDATE())
22 мар 18, 13:28    [21277312]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
uaggster,

ну и сделайте ключём источник
22 мар 18, 13:29    [21277318]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
uaggster
Member

Откуда:
Сообщений: 826
xenix
uaggster,

может, стоит попробовать слепить функцию секционирования на основании даты загрузки? (добавить дефолтное поле LoadDate GETDATE())

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

Там правда еще задача, как блокировать набор таблиц в процессе свитча секций, что б туда не лазили, вырисовывается, так что, может быть, игра и не стоит свеч.
(Т.е. хотелось бы заблокировать набор таблиц эксклюзивно, быстро поменять в этих таблицах нужные секции, разблокировать весь набор. Если в процессе обмена секциями что-то сломалось - откатиться назад, например, вставить уже обменянные секции назад).
22 мар 18, 13:38    [21277353]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
uaggster
Member

Откуда:
Сообщений: 826
TaPaK
uaggster,

ну и сделайте ключём источник

Как? Не понимаю.
Не могу добавить в целевые таблицы поля. Приложение, имать его за ногу, ломается.
А иначе б вопроса не было - добавил бы в каждую таблицу по номеру агрегата, и по нему б секционировал.
22 мар 18, 13:40    [21277360]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
uaggster
TaPaK
uaggster,

ну и сделайте ключём источник

Как? Не понимаю.
Не могу добавить в целевые таблицы поля. Приложение, имать его за ногу, ломается.
А иначе б вопроса не было - добавил бы в каждую таблицу по номеру агрегата, и по нему б секционировал.

подсуньте приложению предаставление
22 мар 18, 13:43    [21277375]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
uaggster
Member

Откуда:
Сообщений: 826
TaPaK
uaggster
пропущено...

Как? Не понимаю.
Не могу добавить в целевые таблицы поля. Приложение, имать его за ногу, ломается.
А иначе б вопроса не было - добавил бы в каждую таблицу по номеру агрегата, и по нему б секционировал.

подсуньте приложению предаставление

Да, это была первая идея.
Но, похоже, оно тоже не прокатывает (по крайней мере, предыдущие товарищи этого не сделали). Видимо, эта сволочь предварительно проверяет наличие именно таблиц.
Т.е. там не защита, просто индусский код такой.
22 мар 18, 13:48    [21277397]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
Владислав Колосов
Member

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

выкиньте гуиды при слиянии. Замените на bigint.
22 мар 18, 14:33    [21277628]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
TaPaK
Member

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

выкиньте гуиды при слиянии. Замените на bigint.

как это не смешно, но если это просто таблицы без FC (зачем тогда вообще там GUID) то сменить тип, для разных баз выставить старт и на основании этого собирать секции, ну если конечно приложение незаскучает по типу :)
22 мар 18, 14:48    [21277691]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
uaggster
Можно, конечно просто создать некие "теневые" таблицы куда складывать данные, и объединить их Union All в виртуальную, но хотелось бы всё-таки, иметь "настоящую" таблицу.
По моему, оптимально, секционированные представления ничем не хуже секционированной таблицы.
А то действительно непонятно, как секционировать.

uaggster
TaPaK
подсуньте приложению предаставление

Да, это была первая идея.
Но, похоже, оно тоже не прокатывает (по крайней мере, предыдущие товарищи этого не сделали).
Пробовали, или просто думаете, что нельзя?
22 мар 18, 15:55    [21278079]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7746
Ну хотя бы добавить столбец-нумератор с диапазоном для каждой базы.
22 мар 18, 18:31    [21278699]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
uaggster
Member

Откуда:
Сообщений: 826
alexeyvg
uaggster
Можно, конечно просто создать некие "теневые" таблицы куда складывать данные, и объединить их Union All в виртуальную, но хотелось бы всё-таки, иметь "настоящую" таблицу.
По моему, оптимально, секционированные представления ничем не хуже секционированной таблицы.
А то действительно непонятно, как секционировать.

uaggster
пропущено...

Да, это была первая идея.
Но, похоже, оно тоже не прокатывает (по крайней мере, предыдущие товарищи этого не сделали).
Пробовали, или просто думаете, что нельзя?

Ага. Вот уже попробовал.
Падает.
Действительно нужна таблица. Эта гадость (я про приложение) - проверяет наличие некоторых таблиц, и если не находит (именно таблиц) - отказывается работать.

Ненавижу разработчиков, которые шлют запросы из кода. То же самое, что канализационную трубу в стену ванной заштукатурить и красиво плиточкой заложить.
... ремонтируй-не хочу.
23 мар 18, 12:17    [21280271]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
iiyama
Member

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

можно попробывать сделать одноименную табл в другой схеме .
23 мар 18, 12:44    [21280382]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли создать секционированную таблицу без указания функции секционирования?  [new]
uaggster
Member

Откуда:
Сообщений: 826
iiyama
uaggster,

можно попробывать сделать одноименную табл в другой схеме .

И что это даст?
Индус умный, он про схемы в курсе.

Блин, ну ведь именно для этого view и придуманы. Стрелять криворуких.
26 мар 18, 08:15    [21284982]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить