Выпуск SQLite 3.8.7 со значительными оптимизациями производительности

Представлен релиз SQLite 3.8.7, легковесной базы данных, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум, в который входят такие компании, как Adobe, Oracle, Mozilla, Bentle и Bloomberg. В новом выпуске:

Проведена большая работа по оптимизации производительности, которая затронула многие части кодовой базы. В результате, по сравнению с прошлой версией удалось добиться выполнения на 20.3% больше работы на том же числе CPU. Тестирование проводилось с измерением результатов работы нагрузочного сценария speedtest1.c через прокси cachegrind в 64-разрядной сборке Ubuntu 13.10 с gcc 4.8.1 и при указании флага оптимизации »-Os». В реальных приложениях увеличение скорости ожидается на уровне 10%. За последний год отмечается большой прогресс в оптимизации кодовой базы SQLite, например по сравнению с выпуском 3.8.0 при выполнении синтетических тестов производительность возросла на 61%. В сортировщик добавлена поддержка использования вспомогательных обработчиков, выполняемых в отдельных нитях, что позволяет добиться сокращения времени отклика при выполнении сложных запросов. По умолчанию данная возможность отключена и должна быть активирована через PRAGMA threads или через сборку с опцией SQLITE_DEFAULT_WORKER_THREADS. Для ограничения числа нитей следует использовать опцию SQLITE_LIMIT_WORKER_THREADS в sqlite3_limit (); Расширены оптимизации пропуска элементов при сканировании (skip-scan), добавлена возможность пропуска записей в середине индекса, а не только в его начальной части; Улучшена производительность операторов преобразования типов; Внесены улучшения в метод использования статистики sqlite_stat4 при планировании выполнения запроса; Добавлены новые программные интерфейсы, оперирующие 64-разрядными значениями: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_result_blob64(), sqlite3_bind_text64() и sqlite3_result_text64(); Добавлен новый программный интерфейс sqlite3_msize (), который возвращает размер памяти, выделенной через sqlite3_malloc64() и подобные функции; В расширении spellfix1 представлена возможность явного приведения rowid для каждой операции INSERT. Добавлено новое расширение user-auth, позволяющее обеспечить применение аутентификации пользователей при доступе к БД; Прекращена поддержка опции SQLITE_ENABLE_TREE_EXPLAIN, вместо которой следует использовать механизм трассировки запроса SELECTTRACE, предоставляющий больше диагностических данных; В интерфейс командной строки добавлены новые опции »--pagecache»,»--lookaside» и »--scratch» для настройки использования дополнительной памяти.

© OpenNet