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

Откуда:
Сообщений: 283
Добрый день.

Имеется таблица, секционированная по полю ID, инкрементально увеличивающеегося каждый день. Раз в неделю производится очистка партиций. Очистка работает корректно, при выборке
 SELECT DISTINCT ID FROM TABLE
возвращается не более чем 7 значений в любой день. Однако атрибут number of partition в свойствах таблицы отображает 732 штуки.
Просьба подсказать, корректна ли эта ситуация и может ли она влиять на производительность?
7 мар 17, 09:54    [20269710]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5121
функцию секционирования покажите и как осуществляется эта ваша "очистка партиций"?
7 мар 17, 10:05    [20269742]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
baza906,

очистка партиции от данных и удаление партиции из таблицы - две совершенно разных процедуры. что именно ты подразумеваешь под термином "очистка партиций"?
7 мар 17, 10:06    [20269746]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
baza906
Member

Откуда:
Сообщений: 283
Добрый Э - Эх,

Удаление данных.

В процедуре производится переключение партиции во временную таблицу с последующим удалением последней.
фрагмент процедуры с переключением партиций:

set @sql = 'alter table ' +  @name_in_stage
+ ' switch partition ' + cast(@partition_id as varchar) 
+ ' to ' + @input_table_name   + ' partition ' + cast(@partition_id as varchar);
exec(@sql);


После чего происходит удаление объекта @input_table_name.
7 мар 17, 10:47    [20269878]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
baza906,

ну так секция-то в исходной (секционированной) таблице при это остается... все что ты делаешь - это вместо секции с данными подкладываешь пустую секцию.
если ты хочешь, чтобы количество секций было семь, то после (или вместо) подмены секции ещё необходимо произвести удаление самой секции.
7 мар 17, 10:52    [20269894]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
baza906
Member

Откуда:
Сообщений: 283
Добрый Э - Эх,
спасибо большое. Подскажи еще, пожалуйста, может ли большое количество пустых секций влиять на формирование статистики? Сталкивался с таким?
7 мар 17, 10:56    [20269907]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31969
baza906
Добрый Э - Эх,
спасибо большое. Подскажи еще, пожалуйста, может ли большое количество пустых секций влиять на формирование статистики? Сталкивался с таким?
Статистика это будет учитывать.
Но бывают такие планы, что сервер просматривает все партиции.
Тогда, наверное, большое количество пустых партиций приведёт к излишним накладным расходам.
Лучше ИМХО всё таки удалять ненужное.
7 мар 17, 11:00    [20269928]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
alexeyvg,

кроме того, кол-во секций в таблице хоть и большое число, но вполне себе ограниченное...
могу чего-то путать, но, кажись, речь шла за 1000 секций на таблицу до версии MS SQL Server 2016 и 15000 начиная с версии 2016.
Если ошибаюсь - поправьте...
7 мар 17, 11:10    [20269981]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх
alexeyvg,

кроме того, кол-во секций в таблице хоть и большое число, но вполне себе ограниченное...
могу чего-то путать, но, кажись, речь шла за 1000 секций на таблицу до версии MS SQL Server 2016 2012 и 15000 начиная с версии 2016 2012.
Если ошибаюсь - поправьте...

или всё равно неправильно помню?
7 мар 17, 11:13    [20270002]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх,

https://msdn.microsoft.com/en-us/library/ms190787(v=sql.110).aspx
Important note
SQL Server 2012 supports up to 15,000 partitions by default. In earlier versions, the number of partitions was limited to 1,000 by default. On x86-based systems, creating a table or index with more than 1000 partitions is possible, but is not supported.

ссыль
7 мар 17, 11:14    [20270012]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Добрый Э - Эх
или всё равно неправильно помню?
https://msdn.microsoft.com/en-us/library/gg981694.aspx
7 мар 17, 11:15    [20270014]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
o-o
Guest
Добрый Э - Эх
alexeyvg,

кроме того, кол-во секций в таблице хоть и большое число, но вполне себе ограниченное...
могу чего-то путать, но, кажись, речь шла за 1000 секций на таблицу до версии MS SQL Server 2016 и 15000 начиная с версии 2016.
Если ошибаюсь - поправьте...

поправим.
2012 х64 -- 15.000 Partitions per partitioned table or index
Maximum Capacity Specifications for SQL Server
7 мар 17, 11:16    [20270029]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
да, но при более чем 1к

https://msdn.microsoft.com/en-us/library/ms190787.aspx?f=255&MSPPError=-2147217396
7 мар 17, 11:17    [20270039]     Ответить | Цитировать Сообщить модератору
 Re: number of partition  [new]
Добрый Э - Эх
Guest
2 ALL
Ну, ТС может 40 лет спать спокойно... :) секция ему точно хватит...
а там глядишь, в следующих редакция еще больше раздвинут предел ...
7 мар 17, 11:31    [20270160]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить