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

Откуда:
Сообщений: 13
Добрый день.
Уважаемые друзья, помогите пожалуйста разобраться. Необходимо организовать секционирование набора таблиц.
Есть таблица S
SUidSDateSData
101.01.2010текст1
201.02.2010текст2


Секционирование будет производится по дате SDate.

Есть таблица TS
TSUidSUidTSData
211текст1
222текст2

Связанная с таблицей S по ключу SUid.
Можно-ли средствами MS Sql 2012 организовать секционирование таблицы TS (по одной схеме с таблицей S )не добавляя в неё дату,
или это единственный возможный способ? Есть-ли другие способы?
Заранее спасибо.
1 апр 14, 15:16    [15816430]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
слить всё в одну таблицу...
а так задача на уровне фантазий...как скуль должен догадываться, как секционировать вторую таблицу, если она не на схеме секционирования?
1 апр 14, 15:20    [15816467]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Decard
Member

Откуда:
Сообщений: 13
Knyazev Alexey,

Слить в одну таблицу к сожалению возможности нет. + могут добавится ещё таблицы. Между таблицами прямая связь, но не по полю секционирования. Хочется обойтись без внесения избыточности в виде даты, поэтому и спрашиваю про возможные варианты.
1 апр 14, 15:22    [15816493]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4424
Decard

Можно-ли средствами MS Sql 2012 организовать секционирование таблицы TS (по одной схеме с таблицей S )не добавляя в неё дату,

Если вы напишете функцию секционирования, используя не дату, а идентификаторы, то можно.
Но это как-то через Ж, потому как в функцию придется вводить соответствие даты=идентификаторов.
1 апр 14, 15:36    [15816625]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Crimean
Member

Откуда:
Сообщений: 13147
это не "избыточность", это "необходимость". потому как, чтобы секции после их объявления еще и заработали - вам нужно будет явно указывать в запросах критерий секционирования. ну и раз секционирование - значит большой объем. если большой объем - вы хотите чтобы эффективно работал отбор по секциям? без явного индекса? соединяя две (или более) огроменных таблицы? когда критерий секционирования (и, потенциально - только он) будет указан для одной таблицы (никакая селективность), а другие критерии - для другой таблицы (сомнительная селективность)? нуну :)
оно-то и с явным переносом даты в таблицы "для секционирования" у вас головной боли будет как с этим всем эффективно работать. а уж без этого поля - хехе. впрочем - попробуйте!
1 апр 14, 15:42    [15816670]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Decard
Member

Откуда:
Сообщений: 13
SQL2008
Если вы напишете функцию секционирования, используя не дату, а идентификаторы, то можно.
Но это как-то через Ж, потому как в функцию придется вводить соответствие даты=идентификаторов.

Я думал в эту сторону. Идентификатор в общем случае гуид, а как ввести соответствие гуид-дата в функцию я не нашел. Решение да, не фонтан,согласен.
1 апр 14, 15:42    [15816672]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
То есть секционировать по дате не имея самой даты? Щучьим велением, что ли? :)
1 апр 14, 15:46    [15816700]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Decard
Решение да, не фонтан,согласен.

это не решение вообще...явная ошибка в голове ещё на этапе дизайна
1 апр 14, 15:47    [15816705]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Разделяйте по идентификаторам, а не по датам. Но для чего необходимо создавать секции на разнородных таблицах - неясно.
1 апр 14, 15:47    [15816710]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Decard
Member

Откуда:
Сообщений: 13
Ясно. Спасибо. Без дат не обойтись.
Зачем нужно:
Есть связанный между собой набор таблиц (журналов) в которых хранится оперативная информация пополняемая пользователем.
Каждый срез данных ( в N таблицах) определяет одна дата. Данные могут пополнятся достаточно быстро. Схема может изменятся с течением времени (добавляться новые связи). Стоит задач обеспечить быстродействие при работе с данными в этих таблицах на горизонте года (или полугода) например. Данные старше года не редактируются с вероятностью 99% , но используются для отчетности. Было решено применить секционирование. Отсюда и несколько таблиц. Возможно вы предложите более подходящие варианты.
Спасибо.
1 апр 14, 16:02    [15816855]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4424
Ну определите тогда диапазоны идентификаторов.
Например 1000...2000 = 2012, 2001...3000 = 2013 и т.д.
На основании этого и стройте секции.
хотя по мне правильнее добавить поле даты и не париться
1 апр 14, 16:08    [15816940]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Используйте вместо полной даты две цифры года и месяц (smallint).
Тогда таблица S в ординарных случаях не потребуется.
1 апр 14, 18:14    [15817869]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4424
Владислав Колосов
Используйте вместо полной даты две цифры года и месяц (smallint).
Тогда таблица S в ординарных случаях не потребуется.


+ Формула Любви

У нас писарь в уезде был, в пачпортах, где год рождения, одну цифирку только обозначал.
Чернила, шельмец, вишь, экономил. Потом дело прояснилось, его в острог, а пачпорта переделывать уж не стали.
Документ все-таки.
1 апр 14, 18:30    [15817925]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
o-o
Guest
+

а у меня подруга есть, армянка.
Мери Мишаевна. почему Мишаевна?
потому что папа -- Миша.
чесслово, так в паспорте и записано :)

а вообще, всех с 1-ым апреля.
а то чего-то конец дня, а 1-ое апреля только MS и отпраздновал, в соседней теме
1 апр 14, 18:54    [15818025]     Ответить | Цитировать Сообщить модератору
 Re: Впрос по секционированию.  [new]
west74
Member

Откуда: Челябинск
Сообщений: 76
Задавал подобный вопрос Гуру не раз.
получил ответ что:
- Прийдется денормализировать вторую (подчиненную) таблицу (добавлением поля с датой). и по этой дате секционировать.
2 апр 14, 07:03    [15819368]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить