Нагрузочное тестирование: зачем оно нужно и как быстро сгенерировать миллионы записей в Oracle

Серия Аналитика FM

Когда мы разрабатываем систему, чаще всего тестируем её на небольшом объёме данных: несколько десятков или сотен записей. Но в реальной эксплуатации база может содержать миллионы строк, а одновременно системой могут пользоваться тысячи пользователей.

Именно поэтому перед вводом системы в эксплуатацию проводят нагрузочное тестирование.

В канале Аналитика FM я публикую реальные запросы SQL с разбором логики. Обсуждаем продуктовые метрики и как правильно строить аналитику данных.
Канал веду с нуля подписчиков.
Подписывайся, если тоже хочешь вникнуть в прекрасный мир аналитики.

Нагрузочное тестирование: зачем оно нужно и как быстро сгенерировать миллионы записей в Oracle

Нагрузочное тестирование - это проверка работы системы под нагрузкой, максимально приближенной к реальной.

Его цель - ответить на вопросы:

  • Сколько пользователей одновременно выдержит система?

  • Как быстро будут выполняться запросы?

  • Как изменится производительность при увеличении объёма данных?

  • Не начнёт ли база данных работать значительно медленнее?

  • Не возникнут ли ошибки из-за нехватки памяти, места во временном табличном пространстве или перегрузки процессора?

Например, запрос, который за 0,1 секунды обрабатывает 100 строк, может выполняться несколько минут при таблице в 100 миллионов записей.

Поэтому проверять производительность необходимо именно на объёмах, близких к реальным.

Какие бывают виды нагрузочного тестирования?

1. Load Testing (нагрузочное тестирование)

Проверяется работа системы при обычной ожидаемой нагрузке.

Например:

  • одновременно работают 500 пользователей;

  • таблица содержит 10 миллионов записей.


2. Stress Testing (стресс-тестирование)

На систему специально подают нагрузку выше расчётной.

Цель - определить предел её возможностей и понять, как она поведёт себя при перегрузке.


3. Volume Testing (тестирование объёма данных)

Проверяется влияние количества данных на производительность.

Например:

  • запрос работает с таблицей из 100 тыс. строк;

  • затем с 10 млн;

  • затем со 100 млн.


4. Endurance Testing (тестирование на длительную работу)

Система работает под постоянной нагрузкой несколько часов или даже суток.

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

Как подготовить данные для нагрузочного тестирования Oracle?

Самый простой способ - сгенерировать тестовые записи прямо средствами Oracle.

Например:

SELECT 'ООО Ромашка ' || LEVEL AS name,

7700000000 + LEVEL AS inn,

1027700000000 + LEVEL AS ogrn

FROM dual

CONNECT BY LEVEL <= 1000000;

Этот запрос создаст 1 миллион строк без использования каких-либо таблиц.

И так вы сможете подготовить базу с наполненными данными для тестирования нагрузки.

Иногда такого подхода не хватает, и данные должны быть консистентными, иметь логическую зависимость от других параметров. Но это уже более глубокая семантика нагрузочного тестирования.

А мы с вами начинаем познавать увлекательный мир аналитики и данных.

Разбор скрипта проведем в канале Аналитика FM.
Подписывайся, чтобы узнавать техническую сторону работы аналитика.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества