Окт 19, 2014 - 0 Comments - Интересно -

Выпуск 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» для настройки использования дополнительной памяти.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Человек ? *