Details
Title | Сравнительный анализ производительности хранимых процедур, функций и триггеров в PostgreSQL при использовании PL/pgSQL и PL/Java: выпускная квалификационная работа бакалавра: направление 09.03.02 «Информационные системы и технологии» ; образовательная программа 09.03.02_02 «Информационные системы и технологии» |
---|---|
Creators | Иванова Марина Алексеевна |
Scientific adviser | Нестеров Сергей Александрович |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | Postgresql ; хранимая процедура ; функция ; триггер ; PL/pgSQL ; PL/Java ; производительность ; stored procedure ; function ; trigger ; performance |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.02 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-5144 |
Rights | Доступ по паролю из сети Интернет (чтение, печать) |
Additionally | New arrival |
Record key | ru\spstu\vkr\37763 |
Record create date | 9/23/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
Тема выпускной квалификационной работы: «Сравнительный анализ производительности хранимых процедур, функций и триггеров в PostgreSQL при использовании PL/pgSQL и PL/Java». Данная работа посвящена экспериментальному исследованию производительности серверного кода в зависимости от выбранного языка реализации. Задачи, которые решались в ходе работы: 1) Анализ предметной области и постановка задачи. 2) Изучение особенностей использования процедурных языков в PostgreSQL. 3) Разработка методологии эксперимента и создание идентичных программируемых объектов на PL/pgSQL и PL/Java. 4) Проведение экспериментального исследования производительности хранимых процедур, функций и триггеров в зависимости от выбранного языка реализации. 5) Сравнительный анализ производительности серверного кода при использовании PL/pgSQL и PL/Java и разработка рекомендаций. Работа содержит три главы. Первая глава посвящена обзору предметной области, в частности рассмотрению архитектуры PostgreSQL, понятия программируемых объектов базы данных, их разновидностей и целей их использования, а также процедурных языков в PostgreSQL, таких как PL/pgSQL и PL/Java. Во второй главе описаны эксперименты по исследованию производительности, включая разработку хранимых процедур, функций и триггеров, оценку времени выполнения операций и затрат оперативной памяти, а также обоснование выбранных методов оценки производительности. В третьей главе представлены результаты экспериментального исследования производительности серверного кода в PostgreSQL при реализации на PL/Java и PL/pgSQL. На основе полученных данных построены графики сравнения ключевых параметров, позволившие выявить оптимальные области применения каждого из подходов. В результате работы были предложены рекомендации и разработан алгоритм для выбора оптимального языка реализации серверного кода в зависимости от специфики решаемых задач для повышения производительности базы данных. Для достижения данных результатов в работе были использованы следующие информационные технологии: среда виртуализации VirtualBox, операционная система Red OS, реляционная система управления базами данных PostgreSQL, графический клиент для работы с базами данных DBeaver, процедурные языки PL/pgSQL и PL/Java.
The subject of the graduate qualification work is «Comparative analysis of the performance of stored procedures, functions and triggers in PostgreSQL using PL/pgSQL and PL/Java». This work is devoted to an experimental study of the performance of server code depending on the selected implementation language. The research sets the following goals: 1) Analysis of the subject area and problem formulation. 2) Studying the features of using procedural languages in PostgreSQL. 3) Development of experimental methodology and creation of identical programmable objects in PL/pgSQL and PL/Java. 4) Conducting an experimental study of the performance of stored procedures, functions and triggers depending on the selected implementation language. 5) Comparative analysis of the performance of server code when using PL/pgSQL and PL/Java and development of recommendations. The work contains three chapters. The first chapter is devoted to an overview of the subject area, specifically examining the architecture of PostgreSQL, the concept of programmable database objects, their varieties and purposes of their use, as well as procedural languages in PostgreSQL, such as PL/pgSQL and PL/Java. The second chapter describes experiments on performance research, including the development of stored procedures, functions and triggers, evaluation of the execution time of operations and RAM costs, and the rationale for the chosen performance assessment methods. The third chapter presents the results of an experimental study of the performance of the server code in PostgreSQL when implemented in PL/Java and PL/pgSQL. Based on the data obtained, graphs of comparison of key parameters were constructed, which made it possible to identify the optimal areas of application for each of the approaches. As a result of the work, recommendations were proposed and an algorithm was developed for selecting the optimal language for implementing server code depending on the specifics of the tasks being solved to improve database performance. To achieve these results, the following information technologies were used in the work: the VirtualBox virtualization environment, the Red OS operating system, the PostgreSQL relational database management system, the DBeaver graphical client for working with databases, and the PL/pgSQL and PL/Java procedural languages.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- ГЛАВА 1 ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ
- 1.1 Постановка задачи
- 1.2 Описание архитектуры PostgreSQL
- 1.3 Программируемые объекты базы данных
- 1.3.1 Хранимые процедуры
- 1.3.2 Функции
- 1.3.3 Триггеры
- 1.4 Процедурные языки в PostgreSQL
- 1.4.1 Сценарии использования процедурных языков в PostgreSQL
- 1.4.2 Процедурный язык PL/pgSQL
- 1.4.3 Расширение PL/Java
- ГЛАВА 2 РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ БАЗЫ ДАННЫХ
- 2.1 Описание схемы Bookings базы данных «Авиаперевозки»
- 2.2 Выбор методов оценки времени и затрат памяти
- 2.3 Разработка программируемых объектов на PL/pgSQL
- 2.4 Установка и настройка PL/Java для PostgreSQL
- 2.5 Разработка программируемых объектов с использованием PL/Java
- 2.6 Результаты измерений времени и объёма используемой памяти
- ГЛАВА 3 СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
- 3.1 Методология сравнительного анализа
- 3.2 Расчёты сравнительных коэффициентов эффективности PL/pgSQL и PL/Java
- 3.3 Анализ результатов
- 3.4 Алгоритм выбора оптимального языка реализации
- 3.5 Выводы
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЕ А КОД ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ НА PL/PGSQL
- А.1 Код хранимой процедуры update_flight_status
- А.2 Код хранимой функции flight_duration
- А.3 Код триггера actual_dates_trigger
- А.4 Код хранимой процедуры analyze_flight_occupancy
- А.5 Код функции calculate_booking_statistics
- А.6 Код триггера flight_statistics_trigger
- ПРИЛОЖЕНИЕ Б КОД ПРОГРАММИРУЕМЫХ ОБЪЕКТОВ НА JAVA (С ИСПОЛЬЗОВАНИЕМ PL/JAVA)
- Б.1 Код хранимой процедуры update_flight_status
- Б.2 Код хранимой функции flight_duration
- Б.3 Код триггера actual_dates_trigger
- Б.4 Код хранимой процедуры analyze_flight_occupancy
- Б.5 Код функции calculate_booking_statistics
- Б.6 Код триггера flight_statistics_trigger
- ПРИЛОЖЕНИЕ В РЕЗУЛЬТАТЫ ОЦЕНКИ ВРЕМЕНИ И ПОТРЕБЛЕНИЯ ПАМЯТИ ДЛЯ ВСЕХ РАЗРАБОТАННЫХ ОБЪЕКТОВ
Access count: 0
Last 30 days: 0