Статья:

СРАВНЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ POSTGRESQL 16.1 И MICROSOFT SQL SERVER 2018: МЕТОДОЛОГИЯ И АНАЛИЗ СУЩЕСТВУЮЩИХ ИНСТРУМЕНТОВ

Конференция: LXXI Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»

Секция: Технические науки

Выходные данные
Николаев Л.А. СРАВНЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ POSTGRESQL 16.1 И MICROSOFT SQL SERVER 2018: МЕТОДОЛОГИЯ И АНАЛИЗ СУЩЕСТВУЮЩИХ ИНСТРУМЕНТОВ // Технические и математические науки. Студенческий научный форум: электр. сб. ст. по мат. LXXI междунар. студ. науч.-практ. конф. № 4(71). URL: https://nauchforum.ru/archive/SNF_tech/4(71).pdf (дата обращения: 10.08.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 5 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

СРАВНЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ POSTGRESQL 16.1 И MICROSOFT SQL SERVER 2018: МЕТОДОЛОГИЯ И АНАЛИЗ СУЩЕСТВУЮЩИХ ИНСТРУМЕНТОВ

Николаев Лев Александрович
магистрант, ФГБОУ ВПО Московский автомобильно-дорожный государственный технический университет (МАДИ), РФ, г. Москва
Саакян Игорь Эдуардович
научный руководитель, канд. техн. наук, доцент, ФГБОУ ВПО Московский автомобильно-дорожный государственный технический университет (МАДИ), РФ, г. Москва

 

Аннотация. В данной статье представляется углубленная методология для сравнения производительности двух ведущих систем управления базами данных (СУБД): PostgreSQL 16.1 и Microsoft SQL Server 2018. Основное внимание уделяется существующей методике к замеру скорости работы СУБД, включая возможность модернизации открытого исходного кода PostgreSQL, сравнение инструментов для измерения производительности, а также разработка собственного инструмента на Python для специфичных сценариев нагрузки. Исследование направлено на выявление оптимальной СУБД для различных проектных требований, учитывая производительность, стоимость и гибкость использования.

 

ВВЕДЕНИЕ

Выбор между PostgreSQL и Microsoft SQL Server часто определяется не только общими характеристиками производительности, но и возможностью адаптации СУБД под конкретные проектные задачи. В связи с этим, важность подробной методологии сравнения и глубокого анализа инструментов для замера производительности становится очевидной.

МЕТОДОЛОГИЯ СРАВНЕНИЯ

Методика сравнения включает в себя несколько ключевых аспектов:

  • Настройка и Подготовка Среды: Обеспечение одинаковых условий для обеих СУБД путем использования идентичного аппаратного и программного обеспечения. Особое внимание уделяется настройке параметров каждой СУБД для максимизации их производительности в соответствии с лучшими практиками.
  • Разработка и Применение Патчей: Для PostgreSQL, благодаря его открытому исходному коду, существует возможность внесения изменений напрямую в код базы данных для улучшения производительности или добавления новых функций. Это предоставляет уникальное преимущество в гибкости настройки и оптимизации.
  • Разработка и использование унифицированных тестовых сценариев: Создание обширного набора тестовых данных и сценариев, включая операции CRUD, сложные запросы, тестирование масштабируемости и параллельной обработки. Важно учитывать специфику приложений, например, ERP-системы, для моделирования реальных условий использования.

ИНСТРУМЕНТЫ ДЛЯ ЗАМЕРА СКОРОСТИ РАБОТЫ

Для измерения производительности существуют следующие инструменты:

  • pgBench и SQL Server Benchmark Tool: Эти специализированные инструменты предоставляют возможность глубокого анализа производительности соответствующих СУБД.
  • HammerDB: Как универсальный инструмент, HammerDB предлагает широкие возможности для тестирования и сравнения производительности PostgreSQL и Microsoft SQL Server. Благодаря поддержке множества СУБД, HammerDB является идеальным выбором для проведения комплексных тестов.
  • Apache JMeter: Используется для кастомизированных тестовых сценариев через JDBC, позволяя адаптировать процесс тестирования под специфические требования проекта.

Плюсы использования готовых инструментов для замера скорости работы субд:

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

Минусы использования готовых инструментов для замера скорости работы субд:

  • Специфика СУБД: Некоторые инструменты ограничены использованием с определенными СУБД, что снижает их универсальность.
  • Сложность настройки и интерпретации: Тонкая настройка параметров и интерпретация результатов могут требовать специальных знаний и опыта.
  • Потенциальная избыточность: для простых тестовых сценариев некоторые мощные инструменты могут оказаться избыточными, увеличивая время и ресурсы на подготовку и выполнение тестов.

Учитывая плюсы и минусы существующих инструментов для замера скорости работы СУБД, становится очевидной потребность в разработке собственного решения. Такой подход позволит объединить лучшие качества специализированных и универсальных инструментов, предоставив возможность для глубокой кастомизации тестовых сценариев и адаптивного представления результатов. Разработка собственного инструмента на Python дает уникальную возможность точно настроить параметры измерения производительности, оптимизировать процесс сбора данных и анализа результатов, а также эффективно визуализировать полученные данные для более наглядного сравнения и глубокого понимания производительности СУБД.

РАЗРАБОТКА СОБСТВЕННОГО ИНСТРУМЕНТА НА PYTHON

В контексте сравнения производительности PostgreSQL и Microsoft SQL Server разработка собственного инструмента на Python предлагает значительные преимущества, включая возможность точной кастомизации тестовых сценариев и детализированный анализ результатов. Python, благодаря своей гибкости и обширной экосистеме библиотек, позволяет создать мощный и гибкий инструмент для измерения и сравнения производительности СУБД.

Преимущества разработки собственного инструмента:

  • Кастомизация тестовых сценариев: Разработчики могут создавать сценарии, максимально приближенные к реальным операционным условиям их систем, включая специфические нагрузки, типичные для конкретных приложений, таких как ERP-системы.
  • Гибкость в представлении результатов: Возможность настройки вывода результатов тестирования, включая графическое представление, логарифмические шкалы, а также детализированные отчеты о TPS (транзакции в секунду), времени отклика и других ключевых показателях производительности.
  • Интеграция с другими системами и библиотеками: Поддержка расширенных возможностей анализа данных и машинного обучения для глубокого анализа производительности и автоматического выявления узких мест.

Разработка инструмента включает несколько ключевых этапов:

Выбор библиотек для работы с СУБД: Использование таких библиотек, как psycopg2 для PostgreSQL и pyodbc или pymssql для Microsoft SQL Server, позволяет эффективно взаимодействовать с каждой из СУБД на уровне выполнения SQL-запросов.

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

Разработка пользовательского интерфейса для настройки тестов: Включение возможности кастомизации параметров тестирования через графический интерфейс пользователя (GUI) или конфигурационные файлы, позволяя пользователям легко адаптировать инструмент под свои нужды.

Визуализация результатов: Использование библиотек визуализации, таких как Matplotlib или Seaborn, для создания графиков и диаграмм, отражающих ключевые метрики производительности. Это позволяет наглядно сравнить производительность СУБД на различных этапах тестирования.

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

ЗАКЛЮЧЕНИЕ

Будущее исследование производительности PostgreSQL и Microsoft SQL Server предполагает глубокий анализ с использованием предложенной методологии. Важной перспективой является разработка собственного инструмента на Python, что даст возможность создания специфических сценариев нагрузки, в том числе для ERP-систем, например 1С. Использование библиотек Python, таких как psycopg2 и pyodbc, позволит провести детальное сравнение производительности, учитывая уникальные требования к проекту.

Таким образом, представленная методология и подход к сравнению открывают новые возможности для анализа и выбора наиболее подходящей СУБД, обеспечивая тем самым оптимальную производительность и эффективность реализуемых проектов.

 

Список литературы:
1. PostgreSQL Global Development Group. (2023). PostgreSQL 16.1 Documentation. URL: https://www.postgresql.org/docs/16/index.html (дата обращения: 25.03.2024).
2. Microsoft. (2018). SQL Server 2018 Official Documentation. URL: https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15 (дата обращения: 25.03.2024).
3. TPC Council. (2023). TPC Benchmarking Standards for Databases. URL: http://www.tpc.org (дата обращения: 25.03.2024).
4. Tuning Your PostgreSQL Server URL: https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server (дата обращения: 25.03.2024).
5. HammerDB: Open-source Database Load Testing and Benchmarking Tool. URL: http://www.hammerdb.com/ (дата обращения: 25.03.2024).
6. Apache JMeter: The Apache JMeter™ Application for Testing Load and Analyzing Performance. URL: https://jmeter.apache.org/ (дата обращения: 25.03.2024).
7. pgBench - The PostgreSQL Benchmarking Tool. PostgreSQL Official Documentation. URL: https://www.postgresql.org/docs/current/pgbench.html(дата обращения: 25.03.2024).