Лучшая производительность в базе данных ReadOnly - PullRequest
1 голос
/ 18 июля 2011

Я использую Firebird в своем приложении.Есть база данных, которая получает нагрузку один раз в день.В остальное время запросы доступны только для чтения (выберите запросы).

Есть ли способ повысить производительность?Например, мне не нужно управление параллелизмом базы данных, потому что я буду делать только SELECT запросов.

Ответы [ 3 ]

1 голос
/ 20 июля 2011

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

Поскольку запись в базе данных доступна только для чтения, вы можете использовать SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED и предотвратить любую блокировку таблицы.Это в большинстве случаев значительно улучшает масштабируемость.Сейчас я ставлю это на все свои прочитанные SP, так как это спасло меня много раз.

1 голос
/ 18 июля 2011

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

Механизм базы данных автоматически управляет параллелизмом и не блокирует объекты базы данных, если к нему есть только SELECT запросы.Поэтому я не думаю, что вы должны рассматривать эту область как способ улучшения производительности.

0 голосов
/ 17 февраля 2012

Предполагая, что процесс загрузки может быть длительным, вы можете перестроить свои индексы в конце.Это удаляет всю фрагментацию индекса и может улучшить производительность выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...