Фриланс

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

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

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

В канале Аналитика 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.
Подписывайся, чтобы узнавать техническую сторону работы аналитика.

Источник

Нажмите, чтобы оценить!
[Общий: 0 Средний: 0]

Discover more from Бизнес идеи, как открыть своё дело, заработать в интернете.

Subscribe to get the latest posts to your email.

Показать больше

Leave a Reply

Кнопка «Наверх»

Discover more from Бизнес идеи, как открыть своё дело, заработать в интернете.

Subscribe now to keep reading and get access to the full archive.

Continue reading