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

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

MS SQL 2017

Есть memory_optimizwd таблица.
На ней 4 индекса.
Записей порядка 140 млн.

С течением времени начинает есть память, выделенную и используемую под индексы
(колонки
memory_allocated_for_indexes_kb
memory_used_by_indexes_kb
представления sys.dm_db_xtp_table_memory_stats
)
если после старта базы размер выделенной/используемой памяти для индексов 7 000 / 5 000 МБ,
то через несколько дней эти размеры - 30 000 / 14 000 МБ


Вопрос:
как победить такую прожорливость ?
4 мар 19, 05:08    [21823977]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
aleks222
Member

Откуда:
Сообщений: 855
Вопрос: нафига "memory_optimizwd таблица", если она заведомо в мемори на поместится?

ЗЫ. Нормальная таблица оптимизирована гораздо лучше - дольше оптимизировали. Эдак лет на тридцать.
4 мар 19, 05:40    [21823984]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
KBAHT
Member

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

она прекрасно помещается в памяти
пока не дорастёт гигов до 70 )
при условии, что вся таблица с индексами занимает 20
4 мар 19, 05:43    [21823986]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
aleks222
Member

Откуда:
Сообщений: 855
Похоже, вы слабо представляете как "memory_optimizwd таблица" размещается в памяти.
4 мар 19, 05:45    [21823987]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
KBAHT
Member

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

хотите рассказать мне про версионность строк и про создание индекса только при старте базы ? )
4 мар 19, 05:48    [21823990]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
a_voronin
Member

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

Проверьте не зависают ли у вас сессии (транзакции) , которые затрагивают эту таблицу. Версии там возникают, но должны удаляться после коммита транзакций.

Какие выставлены BUCKET_COUNT? Киньте сюда полный скрипт вашей таблицы с индексами.
4 мар 19, 15:33    [21824539]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
KBAHT
Member

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

CREATE TABLE [dbo].[TotalWP_MO]
(
[CityID] [int] NOT NULL,
[KodP] [int] NOT NULL,
[KodTP] [int] NOT NULL,
[KodT] [int] NOT NULL,
[KodA] [int] NOT NULL,
[PriceM] [money] NULL,
[PriceE] [money] NULL,
[PriceR] [money] NULL,
[PriceP] [money] NULL,
[LastUpdated] [smalldatetime] NULL,

INDEX [IX_TotalWP_MO_CityID_KodA] NONCLUSTERED
(
[CityID] ASC,
[KodA] ASC
),
INDEX [IX_TotalWP_MO_CityID_KodTP_KodT_PriceM] NONCLUSTERED
(
[CityID] ASC,
[KodTP] ASC,
[KodT] ASC,
[PriceM] ASC
),
INDEX [IX_TotalWP_MO_KodTP_CityID_PriceM] NONCLUSTERED
(
[KodTP] ASC,
[CityID] ASC,
[PriceM] ASC
),
CONSTRAINT [PK_TotalWP_MO] PRIMARY KEY NONCLUSTERED
(
[CityID] ASC,
[KodT] ASC,
[KodA] ASC
)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA )
6 мар 19, 06:58    [21825885]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизированная для памяти таблица, MEMORY_OPTIMIZED  [new]
KBAHT
Member

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

"Проверьте не зависают ли у вас сессии (транзакции) , которые затрагивают эту таблицу."

проверено, не зависают,
т.к. таблица апдейтится только джобом
все остальные юзеры таблицу только читают
6 мар 19, 07:01    [21825886]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить