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

19 октября 2014 года

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

В новом выпуске:

  • Проведена большая работа по оптимизации производительности, затронувшая многие части кодовой базы. В результате удалось повысить производительность на 20% по сравнению с прошлой версией. Тестирование проводилось с измерением результатов работы нагрузочного сценария "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.
  • Добавлено новое расширение

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск SQLite 3.8.7 со значительными оптимизациями производительности», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.