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

Откуда:
Сообщений: 1214
Всем доброго дня. Нужно создать простой пользовательский тип:

CREATE TYPE  dbo.ListOptimized AS TABLE(id bigint NOT NULL INDEX iX_ID HASH (id) WITH (BUCKET_COUNT = ???))  
 
WITH ( MEMORY_OPTIMIZED = ON )


Вопрос, какой задать BUCKET_COUNT ?

В общем случае (процентов 90%) Idшников в списке будет несколько десятков. Но в особо тяжелых случаях пара-тройка тысяч.
27 янв 16, 16:48    [18736640]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
https://msdn.microsoft.com/ru-ru/library/dn494956(v=sql.120).aspx
27 янв 16, 16:51    [18736664]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Читал, ничего не понял.
27 янв 16, 16:53    [18736674]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Cammomile,

у вас какая версия?
В табличных переменных теперь можно именованные индексы создавать?
27 янв 16, 16:56    [18736689]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Cammomile,

Поставь максимальное кол-во значений, которое ты ожидаешь для этого поля. С запасом.
27 янв 16, 16:57    [18736697]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
iap
В табличных переменных теперь можно именованные индексы создавать?

Мне тоже стало интересно. На последнем CTP 2016 нельзя:

Cannot create memory optimized tables. To create memory optimized tables, the database must have a MEMORY_OPTIMIZED_FILEGROUP that is online and has at least one container.
27 янв 16, 17:02    [18736728]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
AlanDenton,
ALTER DATABASE XXX ADD FILEGROUP XXX_mod CONTAINS MEMORY_OPTIMIZED_DATA

ALTER DATABASE XXX ADD FILE (name='XXX_mod1', filename='директория файлов\data\XXX_mod1') TO FILEGROUP XXX_mod
27 янв 16, 17:04    [18736740]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
iap, 2014
Приведенный выше код отработал без проблем. Вопрос в бакетсайзе
27 янв 16, 17:05    [18736745]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Cammomile, я и не знал, что такой синтаксис поддерживается. Спасибо большое
27 янв 16, 17:08    [18736761]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Cammomile
iap, 2014
Приведенный выше код отработал без проблем. Вопрос в бакетсайзе
Ну, у меня-то до сих пор 2008.
Так что интересно стало.
27 янв 16, 17:12    [18736796]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
a_voronin, благодарю. Поставил 8000 скорость взлетела в небеса.

Осталось понять что мне это стоит в загрузке памяти сервера. Какой там размер в итоге получается? Делает ли сервер автоматическое освободение памяти, если я в такую переменную начитал на 7500 записей, а 4?
27 янв 16, 17:13    [18736800]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
iap, а мы вот в том году перешли на 2014 и ни капли не пожалели.
27 янв 16, 17:13    [18736806]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Cammomile
iap, а мы вот в том году перешли на 2014 и ни капли не пожалели.
А у нас MSSQL убивают. Совсем.
27 янв 16, 17:15    [18736819]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
o-o
Guest
The bucket count should ideally be close to 1 – 2X the number of unique key values that are expected in the table.
For example, if you have an index on part_no and expect 10,000 unique part numbers, you specify a
BUCKET_COUNT of 10,000 – 20,000.
27 янв 16, 17:16    [18736825]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
o-o, спасибо коллега! Это как раз ответ на вопрос.
27 янв 16, 17:21    [18736855]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Maxx
Member [скрыт]

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

так етож напеисанно в ссылке в первом ответе....
клева пипл не читет доки вообще
27 янв 16, 17:25    [18736888]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Maxx,ойфсё. Под 3 чашками кофе рукка дрогнула и этот абзац я просто упустил. :D
27 янв 16, 17:32    [18736929]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
А вот еще вопрос.


Вот такая структура будет оптимизирована для памяти?
CREATE TYPE  dbo.ListOptimized2 AS TABLE(id bigint PRIMARY KEY )  
 
WITH ( MEMORY_OPTIMIZED = ON )


Как мы понимаем, ПК это не HASH INDEX.
27 янв 16, 17:38    [18736956]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Cammomile
А вот еще вопрос.


Вот такая структура будет оптимизирована для памяти?
CREATE TYPE  dbo.ListOptimized2 AS TABLE(id bigint PRIMARY KEY )  
 
WITH ( MEMORY_OPTIMIZED = ON )


Как мы понимаем, ПК это не HASH INDEX.


Он влупит какой-то bucket_count по умолчанию.

Вы вообще поняли, что такое bucket_count ?
27 янв 16, 19:21    [18737408]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
AlanDenton
iap
В табличных переменных теперь можно именованные индексы создавать?

Мне тоже стало интересно. На последнем CTP 2016 нельзя:

Cannot create memory optimized tables. To create memory optimized tables, the database must have a MEMORY_OPTIMIZED_FILEGROUP that is online and has at least one container.


Может вам английский подучить? Все можно. InMemory файловую группу он хочет, чтобы вы создали.
27 янв 16, 19:22    [18737410]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
o-o
The bucket count should ideally be close to 1 – 2X the number of unique key values
Ну и граматеи у них там!
Оказывается, диапазон не от одного до 2*X, а от X до 2*X.
И эти люди запрещают мне ковыряться в носу! ©
28 янв 16, 10:03    [18738984]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Msg 12317, Level 16, State 72, Line 4
Кластеризованные индексы, которые используются по умолчанию для первичных ключей, не поддерживаются для оптимизированные для памяти таблицы.


Вот и ответ про ПК, хотя вчера, когда я писал вопрос, мне казалось, кто код отработал без ошибок. Наверное мискликнул.
28 янв 16, 10:32    [18739086]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
iap
o-o
The bucket count should ideally be close to 1 – 2X the number of unique key values
Ну и граматеи у них там!
Оказывается, диапазон не от одного до 2*X, а от X до 2*X.
И эти люди запрещают мне ковыряться в носу! ©



BUCKET_COUNT всегда устанавливается равным 2^n пишете 5 он станет 8, пишете 333, он станет 512. Читайте матчасть по InMemeory
28 янв 16, 12:27    [18739611]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Владислав Колосов
Member

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

табличные пользовательские типы могут вызвать ряд неудобств, используйте только, если хорошо понимаете - каким боком это выйдет потом.
28 янв 16, 12:42    [18739694]     Ответить | Цитировать Сообщить модератору
 Re: Помогите определить BUCKET_COUNT  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Владислав Колосов, ох, без вашего совета, Владислав, я бы, конечно, не догадался. Мне очень импонирует его содержательность, лаконичность и ёмкость. Спасибо вам от всей души!
28 янв 16, 14:24    [18740445]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить