Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сравнение производительности oracle sql и oracl...docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
316 Кб
Скачать
    1. Общие сведения о NoSql моделирования данных

Общих замечаний о NoSQL моделирования данных:

  • Моделирование данных NoSQL часто начинается с конкретного приложения запросов, в отличие от реляционной модели. Как правило, в реляционные модели, обусловлены структурой имеющихся данных. Основным вопросом проектирования становится: «Какие ответы у меня есть?»

  • NoSQL моделирования данных, как правило, приводится в приложении определенных шаблонов доступа, т.е. типы запросов в поддержке. Основным вопросом проектирования становится: «Какие вопросы есть у меня?»

  • Моделирование данных NoSQL часто требует более глубокого понимания структуры данных и алгоритмы, чем реляционные базы данных моделирования.

  • Дублирования данных и денормализации являются основной составляющей.

  • Реляционные базы данных не очень удобны для моделирования данных и обработки информации в иерархических или графо-ориентированных схемах. Очевидно, что графо-ориентированные базы данных, идеальное решение для этой области, но на самом деле, большинство из NoSQL решений на удивление практичны для решения задач.

  1. Сравнение sql и NoSql от Oracle

Рассмотрим преимущества Oraclr NoSQL базы данных

  • Простая модель данных

    • Пара Key-value с подходом major+sub-key

    • Операции read/insert/update/delete

  • Масштабируемость

    • Динамическое партиционирование и перераспределение

    • Оптимизированный доступ к данным

  • Высокая доступность

    • Одна или более реплик

    • Катастрофоустойчивость за счёт разнесения реплик

    • Устойчивость к отказу мастера

    • Нет одной точки отказа

  • Прозрачная балансировка нагрузки

    • Чтение с мастера или реплики

    • Драйвер знает о сетевой топологии и временах задержки

Простота реализации key-value пар дает увеличение скорости. Подробнее на рис. 1.

Рис. 1 Понимание механики работы.

    1. Подготовка Oracle sql

Создадим простую таблицу stress c индексом и состоящую только из двух колонок.

CREATE TABLE stress (id INT, num INT);

Создадим простой способ для добавления записей в таблицу. Где n число строк, которое необходимо записать в таблицу.

begin

for i in 0..n loop

insert into stress(id,num) values (mod (abs(dbms_random.random),50000)+i,(i));

end loop;

end;

Создадим простой способ для выбора записей из таблицы. Где n число строк, которое необходимо выбрать из таблицы.

SELECT * FROM stress

WHERE ROWNUM <= n

    1. Подготовка Oracle NoSql

В рамках .java приложения реализуем следующие методы (полный код программы приведен в приложении 1):

  • multiGet() – достает все и сразу в память. Требует полного major ключа. Из-за ограниченного числа памяти, данный вид запроса не работает на больших выборках.

  • storeIterator() – умеет доставать записи пачками. Не требуется полного major ключа достаточно куска major key. Перебирает записи по одной в соответствии с полученными ключами. Менее производительный, но работает с любыми выборками.

  • putMany(String sKey, int start, int count) – добавляет записи в таблицу используя major как входной, и принимающих в качестве параметров начало и число записей.

Главный метод main, вызывающий соответствующие методы, все методы дополнены подсчетом времени, для оценки производительности работы с базой.