Я в процессе тестирования ESENT (Extensible Storage Engine) от Microsoft для моей компании. Тем не менее, у меня странные результаты производительности.
По сравнению с аналогичными технологиями (SqLite) при чтении данных производительность была очень слабой.
В моем тесте производительности я читал более или менее случайным образом все данные в базе данных. Я не читаю одни и те же данные дважды, поэтому считаю, что кеш мне не поможет. Я запускаю тест много раз, чтобы получить скорость, когда данные «горячие». Я использую индекс по id типа long. Я использую следующие функции: JetSetCurrentIndex, JetMakeKey, JetSeek и JetRetrieveColumn для чтения.
В Windows Vista я активировал параметр JET_paramEnableFileCache, и он совершал чудеса и был даже быстрее, чем SqLite.
Однако, поскольку этот параметр доступен в Windows Vista или более поздней версии, производительность в Windows XP ничем не сопоставима с SQlite (например, в 15 раз медленнее). Он читает на диске каждый раз. При использовании Sqlite в Windows XP все тесты на чтение (кроме первого) не читаются на диске.
Я пропускаю другой параметр или что-то, что имело бы значение?
Большое спасибо!