Как быстро хранить большие записи в Extensible Storage Engine - PullRequest
2 голосов
/ 19 февраля 2011

Я использую Extensible Storage Engine для кэширования нескольких больших записей - эти записи имеют размер около 2 МБ (каждая)

Часто они удаляются в течение нескольких часов, редко онижить в течение этого количества времени

Я нахожусь в тесном цикле JetBeginTransaction / JetPrepareUpdate / JetSetColums / Update / JetCommitTransaction - каждая итерация этого цикла записывает запись по 2 МБ.записываемые данные были предварительно распределены и находятся в оперативной памяти - мой производитель не должен занимать какое-либо процессорное или дисковое время

Я измеряю очень низкую производительность, порядка 2 мегабайт в секунду.

с помощью procmon я вижу множество крошечных операций чтения и записи (512 байт, 4096 байт и множество записей ~ 30 КБ).Самые большие записи, которые я вижу, имеют размер 393 216 байт, который, по моему мнению, является значением по умолчанию для JET_paramMaxCoalesceWriteSize.

Это похоже на настройку, что я могу сделать, чтобы увеличить производительность больших записей?Я почти на два порядка меньше того, что должно быть в состоянии обеспечить это оборудование.

...