Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5006
EV.P
komrad,

Нет, при включённом.
При выключенном текст ошибки:
Insufficient memory to continue the execution of the query.
Error: 701, Severity: 17, State: 103


у вас даже при всех доступных ресурсах не лезет в ин-мемори таблицу столько данных
попробуйте вставлять не все записи, а по частям - нащупаете лимит

вот тут почитайте
https://blog.sqlauthority.com/2015/01/26/sql-server-error-msg-701-level-17-state-103-there-is-insufficient-system-memory-in-resource-pool-to-run-this-query/
6 мар 19, 12:55    [21826160]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
step_ks
Member

Откуда:
Сообщений: 936
EV.P
komrad,

Нет, при включённом.
При выключенном текст ошибки:
Insufficient memory to continue the execution of the query.
Error: 701, Severity: 17, State: 103

Т.е. код тот же - 701, а текст "Insufficient memory to continue the execution of the query."?
Уверены, что это сообщение ms sql ? На SQL 2017 такого не нашлось в sys.messages.
6 мар 19, 12:59    [21826166]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5006
step_ks
EV.P
komrad,

Нет, при включённом.
При выключенном текст ошибки:
Insufficient memory to continue the execution of the query.
Error: 701, Severity: 17, State: 103

Т.е. код тот же - 701, а текст "Insufficient memory to continue the execution of the query."?
Уверены, что это сообщение ms sql ? На SQL 2017 такого не нашлось в sys.messages.

у страдальца

Microsoft SQL Server 2019 (CTP2.2) - 15.0.1200.24 (X64) Dec 5 2018 16:51:26 Copyright (C) 2018 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 17763: ) 
6 мар 19, 13:03    [21826173]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
komrad
step_ks
пропущено...

Т.е. код тот же - 701, а текст "Insufficient memory to continue the execution of the query."?
Уверены, что это сообщение ms sql ? На SQL 2017 такого не нашлось в sys.messages.

у страдальца

Microsoft SQL Server 2019 (CTP2.2) - 15.0.1200.24 (X64) Dec 5 2018 16:51:26 Copyright (C) 2018 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 17763: ) 


Да, верно.

Ещё вот накопал такую инфу:
https://sqlquantumleap.com/2018/09/28/native-utf-8-support-in-sql-server-2019-savior-false-prophet-or-both/

Нужно запустить sql server с параметров -q для принудительного включения режима сортировки UTF-8 для базы данных, содержащей таблицы, оптимизированные для памяти, и даже для столбцов в этих таблицах, оптимизированных для памяти.
Ничего себе! Как же так???
6 мар 19, 13:30    [21826219]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
Уж не задраны ли до упора BUCKET_COUNT?
6 мар 19, 13:55    [21826275]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st,

При создании таблиц никаких bucket count не указывал. Каково значение по умолчанию и как его рассчитать?
6 мар 19, 13:57    [21826279]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
EV.P, это по поводу индексов для MEMORY_OPTIMIZED
Большие значения требуют много памяти вне зависимости от количества строк в таблице.
Если индексы отсутствуют -> продолжать копать по другим направлениям.
6 мар 19, 14:09    [21826299]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st
EV.P, это по поводу индексов для MEMORY_OPTIMIZED
Большие значения требуют много памяти вне зависимости от количества строк в таблице.
Если индексы отсутствуют -> продолжать копать по другим направлениям.


Тут пишут, что размер должен быть 1 – 2X от числа уникальных значений в таблице.
Хэш-индексов у меня нет.
6 мар 19, 14:21    [21826322]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st
EV.P, это по поводу индексов для MEMORY_OPTIMIZED
Большие значения требуют много памяти вне зависимости от количества строк в таблице.
Если индексы отсутствуют -> продолжать копать по другим направлениям.


Запрос
SELECT OBJECT_NAME(S.object_id) as TableName
     , I.name AS IndexName
        , S.total_bucket_count
        , S.empty_bucket_count
        , S.avg_chain_length
        , S.max_chain_length
FROM sys.dm_db_xtp_hash_index_stats S
JOIN sys.indexes I
on S.index_id = I.index_id
   AND 
   S.object_id = I.object_id;

не выдаёт ничего. Хэш-индексов у меня нет (если только обычные некластерные). Bucket_count не указывал. Значит, проблема лежит где-то в другом месте? Или необходимо всё равно создавать хэш-индексы, поскольку интуиция говорит именно об утечке памяти при попытке выполнить запрос?
6 мар 19, 14:28    [21826333]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
EV.P, да тут простор для раскопок.
А сколько памяти кушают таблички?
select object_name(object_id),* from sys.dm_db_xtp_table_memory_stats

Имеет смысл исключить вероятность того, что проблема не в этой таблице сделав её обыкновенной и помониторив наличие ошибок.
И т.к. сервер - CTP, то проблема может быть из за "непоправимых улучшений" в любом компоненте сервера.
6 мар 19, 16:09    [21826477]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st
EV.P, да тут простор для раскопок.
А сколько памяти кушают таблички?
select object_name(object_id),* from sys.dm_db_xtp_table_memory_stats

Имеет смысл исключить вероятность того, что проблема не в этой таблице сделав её обыкновенной и помониторив наличие ошибок.
И т.к. сервер - CTP, то проблема может быть из за "непоправимых улучшений" в любом компоненте сервера.


Кушают таблицы совсем чуть-чуть:
(Отсутствует имя столбца) object_id memory_allocated_for_table_kb memory_used_by_table_kb memory_allocated_for_indexes_kb memory_used_by_indexes_kb
tradestatuses 18099105 192 0 192 1
tradetypes 50099219 256 0 192 1
expiries 78623323 64 3 384 3
stellarpositions 750625717 1408 573 12352 286
trades 1070626857 36480 34709 20544 6062
strategies 1074102867 0 0 128 0
prices 1077578877 0 0 128 0
strategyelements 1106102981 0 0 128 0
timezones 1237579447 192 0 192 1
positions 1454628225 27712 26425 29568 9381
categories 1557580587 0 0 128 0
changetimes 1589580701 0 0 128 0
currencies 1621580815 0 0 128 0
exchanges 1653580929 128 1 192 0
outrights 1685581043 64 27 192 7
intakes 1717581157 128 1 192 2
offices 1749581271 64 0 192 0
orders 1797581442 0 0 128 0
orderstatuses 1829581556 0 0 128 0
ordertypes 1861581670 0 0 128 0
timeshifts 1938105945 64 3 192 1
positiontypes 1957582012 128 0 192 0
subscriptionlist 2005582183 0 0 128 0
products 2130106629 640 16 320 1
traders 2133582639 64 5 192 1
6 мар 19, 16:24    [21826499]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
EV.P,
загрузка пула
SELECT pool_id  
     , Name  
     , min_memory_percent  
     , max_memory_percent  
     , max_memory_kb/1024 AS Max_memory_MB  
     , used_memory_kb/1024 AS Used_memory_MB
     , target_memory_kb/1024 AS Target_memory_MB
   FROM sys.dm_resource_governor_resource_pools 

Смотреть в процессе работы приложения.

Читать, как работает сборщик мусора для таких таблиц. Без учета механизмов работы с памятью при использовании memory_optimized таблиц активный OLAP выжрет оперативку очень быстро. Возможно, софт активно вставляет-удаляет в одной транзакции.

Самое печальное - никаких уточнений по сценарию работы приложения, ни информации по частоте появления ошибки и доп. информации для локализации проблемы. А телепаты либо в отпуске, либо сократили.
6 мар 19, 17:34    [21826604]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st,

Промониторил. Ошибка стабильно выскакивает. Запрос постоянно выдавал данные used_memory_MB для моего пула в 1422 (т.е. Мб).
Другие два пула (internal и default) также потребляли не более 1 Гб. В компьютере установлено 32 Гб. Диспетчер выдавал уровень потребления памяти постоянно не более 8 Гб. Т.е. проблема в самой бажистости MS SQL новых версий (aka memory optimized). Задумка, конечно, хорошая, но по факту это только трата ресурсов. Во.
7 мар 19, 14:10    [21827324]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
EV.P,
Трата оперативки - это да. В моем случае оказалось, что с пользой.
Простой перевод софта на использование memory_optimized таблиц тупо убил систему. Чтение документации и гуглёжка помогла на 100% - для некоторых отчётов ускорение получилось до 10 раз. Конечно, переписывался код процедур, менялась логика загрузки данных и формирования отчётов. А при условии, что он и до этого переписывался не раз с целью ускорения работы, то полученное ускорение большей частью можно списать на таблички в памяти.
И цели грызть внезапные кактусы на ctp не было - использовался 2016sp2. Может еще в этом проблема.
7 мар 19, 17:20    [21827595]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
andy st,

Несколько вопросов:
1. Использовали ли групповую политику "allow manage page locks in memory"?
2. Добавляли ли свой пул или пользовались байдингом со стандартным default? Если делали свой пул, то какие настройки вносили?
3. Какой уровень совместимости базы? У меня сейчас стоит SQL Server 2019 (150).
7 мар 19, 17:39    [21827612]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
EV.P
Member

Откуда:
Сообщений: 127
Также хочу спросить, добавляли ли параметр -q в стартап sql, как это настоятельно требовали рекомендации?
7 мар 19, 17:46    [21827615]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
andy st
Member

Откуда:
Сообщений: 761
EV.P,
"allow manage page locks in memory" выключено
пул default
уровень совместимости (130)
-q не используется
11 мар 19, 16:43    [21829444]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
Sql Quantum Leap
Member

Откуда:
Сообщений: 1
EV.P
Ещё вот накопал такую инфу:
https://sqlquantumleap.com/2018/09/28/native-utf-8-support-in-sql-server-2019-savior-false-prophet-or-both/

Нужно запустить sql server с параметров -q для принудительного включения режима сортировки UTF-8 для базы данных, содержащей таблицы, оптимизированные для памяти, и даже для столбцов в этих таблицах, оптимизированных для памяти.
Ничего себе! Как же так???


Hello. I am the author of that post you are referring to. Sorry that I am not replying in Russian, but I do not know Russian and I am only able to read the posts here thanks to my browser translating the content :-).

I think you have misunderstood what I was saying in that post. The "-q" option is not a start up option. It is an undocumented maintenance option that changes the collation of the instance, all databases, and all columns in all user tables. That is not what should be done to fix this problem.

You found my post because it mentions a similar 701 error, but I do not believe it is the same issue. I only got that error because I forced the database with the memory optimized tables to use UTF-8. I don't believe that is the case here, since that would have required using "-q" to force UTF-8 where it is not supported, which is what caused the error. It does not fix the error.

Please do not use the "-q" option to fix this issue. It might make things worse.
15 мар 19, 22:04    [21834364]     Ответить | Цитировать Сообщить модератору
 Re: Error 701.There is insufficient system memory in resource pool'internal' to run this query  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29293
Sql Quantum Leap
You found my post because it mentions a similar 701 error, but I do not believe it is the same issue. I only got that error because I forced the database with the memory optimized tables to use UTF-8. I don't believe that is the case here, since that would have required using "-q" to force UTF-8 where it is not supported, which is what caused the error. It does not fix the error.

Please do not use the "-q" option to fix this issue. It might make things worse.
They are trying to check all versions which they saw :-)
16 мар 19, 11:50    [21834525]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Microsoft SQL Server Ответить