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

На основании проведенных экспериментов были получены результаты, приведенные в таблице 1. В таблице приведены результаты, являющимся средним арифметическим значением десяти выборок для каждого из значений. Были посчитаны коэффициенты увеличения производительности введения nosql решения по формуле K = t(sql)/t(nosql) для каждого значения нагрузки.

На основании полученных данных были построены графики зависимости времени выполнения операторов select и insert в зависимости от нагрузки, приведенные на графиках 1, 2. В ходе выполнения нагрузочных тестов для методов получения данных в oracle nosql было выяснено, что при нагрузке более n = 800000 ключей методу multiGet() начинает не хватать памяти и его использование становится невозможным. На больших нагрузках использовался метод storeIterator(), производящий последовательную выборку.

Таблица 1. Сравнение масштабируемости sql и nosql

insert

select

count

Nosql

sql

K

Nosql

sql

K

1000

0,9

0,2

0,22

0,08

0,38

4,75

10000

3,1

1,5

0,48

0,28

3,3

11,78

50000

8,7

7,2

0,82

0,85

14,3

16,82

100000

14,2

15,3

1,07

1,8

29,4

16,33

200000

28,5

30,5

1,07

4,4

59,3

13,47

500000

64,5

84,2

1,3

15,2

150

9,86

800000

101,2

140,1

1,38

32,7

256,4

7,84

1000000

126,3

173,7

1,37

55,9

323,6

5,78

1500000

203,1

261,5

1,28

153,4

475,3

3,09

2000000

258,5

340,3

1,32

226,6

651,2

2,87

3000000

370,1

498,7

1,35

320,3

965,1

3,01

Построена зависимость коэффициента увеличения производительности для решения nosql от нагрузки, приведенная на графике 3. Определен максимальный коэффициент Kmax = 16.82, принимающих свое значение на выборках, соответствующих нагрузкам n = [30000, 150000]. Для операции insert на больших значениях нагрузки наблюдается увеличения производительности на 30%. Из полученных результатов видно, что в своей области метод multiGet() показывает результаты на порядок превосходящие, аналоги в реляционной базе данных. Следует отметить высокую погрешность для метода multiGet(), составляющую 20%, в то в то время как для других методов погрешность не превышает 5%. На больших значениях выборок порядка >10^7 nosql метод storeIterator() дает стабильный Kst = 3, и меньшее значения погрешности до 10%.