|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
Добрый день, Вопрос такой, если серверу нужен большой блок под сортировку (1-1.5 Гб), то как он будет выделяться? 1) Начиная с TempBlockSize и дальше равными приращениями размером TempBlockSize? 2) Или начнет с TempBlockSize и будет каждый раз удваивать размер? В нашей задаче такие выборки для группировки/сортировки не редкость. Выделение по первой стратегии будет занимать много времени -- тысяча изменений размера блока памяти для 1 Gb и значения TempBlockSize по-умолчанию. TempCacheLimit установлен в 32 Gb. Памяти на сервере хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:21 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
sysdba22, необходимый размер округляется вверх до значения, кратного TempBlockSize. Блок такого размера и выделяется (в памяти или на диске). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:36 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
sysdba22Вопрос такой, если серверу нужен большой блок под сортировку (1-1.5 Гб), то как он будет выделяться? 1) Начиная с TempBlockSize и дальше равными приращениями размером TempBlockSize? 2) Или начнет с TempBlockSize и будет каждый раз удваивать размер? первое. Для таких ситуаций как раз и рекомендуется увеличивать TempBlockSize. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 16:23 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
Тогда, вопрос, как используется этот блок (эти блоки): 1) это одна область памяти на коннект, где располагаются GTT, сортировки и т.п. 2) или под каждую GTT, каждую сортировку, создается отдельная область памяти начиная с TempBlockSize и вверх, по необходимости. Если №2, то тогда проблема, так как на большом количестве конектов, при большом TempBlockSize, много памяти будет теряться впустую. PS: может поменять стратегию на геометрическую прогрессию? это актуально для систем с большим количеством ОЗУ, где будут настраивать большие размеры TempCacheLimit. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 17:08 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
sysdba22PS: может поменять стратегию на геометрическую прогрессию? Память для сортировок выделяется и используется отдельными блоками. Геометрическая прогрессия тут никак не поможет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 17:11 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
ок. буду эксперементировать с TempBlockSize ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 17:51 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
sysdba22ок. буду эксперементировать с TempBlockSizeЭто ничего не даст, см мой ответ ещё раз ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 19:03 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
TempBlockSize это гранулярность аллокатора. Меньше он не может выделить, больше (если сортировщик начнет оперировать большими ранами) - сможет. Т.е. линейная цепочка из TempCacheLimit / TempBlockSize блоков это крайний случай, в реальной жизни (по крайней мере при сортировках) будет меньшее число бОльших блоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 19:08 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
Сортировщик просит внешнюю память блоками по 1, 8 или 64 МБ. Это не абсолютные значения, реальные могут быть несколько меньше. Не может быть одновременно более 7 блоков размера 1 или 8 МБ - они сливаются в блоки по 8 и 64 МБ соответственно. Т.е. для гигабайтных сортировок у нас в конце концов будут блоки по 64МБ (много), 8 МБ (не более 7) и 1 МБ (не более 7) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 20:00 |
|
Стратегия увеличения размера блока памяти под сортировку в ФБ3
|
|||
---|---|---|---|
#18+
sysdba222) или под каждую GTT, каждую сортировку, создается отдельная область памяти начиная с TempBlockSize и вверх, по необходимости. неправильный вопрос. Как уже сказали, TempBlockSize это просто блок, а вот TempCacheLimit - ограничение размера памяти под сортировку. Для супера и суперклассика это общее ограничение, для всех коннектов, т.к. сервер - это один процесс. Для классика - ограничение для одного коннекта, т.к. сервер - это процесс на коннект. память для сортировки выделяется для конкретного запроса. Т.е. если есть 10 одинаковых запросов с plan sort - для них для всех будет выделяться память (и далее временные файлы на диске). TempBlockSize если и есть смысл увеличивать, то не более чем в 2-3 раза от дефолтного значения (там вроде 1мб). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 20:30 |
|
|
start [/forum/topic.php?fid=40&fpage=56&tid=1562024]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 151ms |
0 / 0 |