Представлены формальные правила преобразования запроса для ускорения вывода результирующей таблицы в web-приложении путем устранения операции соединения. Описан алгоритм преобразования запроса на основе изложенных правил. Показано, что время получения результата снижается в 1,7 раза.
Розглянуті причини повільного виконання запитів до бази даних, які вимагають звертання до великої кількості таблиць. Описані засоби зменшення часу отримання відгуку користувачем на свій запит від інформаційної системи, в основі якої лежить реляційна база даних. Проаналізовані причини неможливості застосування таких засобів в умовах деяких реальних систем. Надане формальне представлення запиту до бази даних, яке дозволяє виконати розподілення одного запиту на декілька окремих запитів для подальшої обробки. Описано загальний алгоритм отримання ре-
зультуючої таблиці як результату виконання запиту в застосуванні, яке звертається до бази даних.
Представлено формальні правила перетворення запиту для прискорення виведення такої результуючої таблиці для web-застосування шляхом усунення операції з'єднання на основі запропонованого формального представлення. Описані різні варіанти використання ключових та неключових атрибутів з таблиць, до яких звертається запит, що визначає вид перетворення запиту. Надано алгоритм перетворення запиту на основі викладених правил, в процесі якого отримуються часткові запити, для кожного з яких потрібно створити цикл для перегляду результатів запиту. Описано, яким чином такі цикли можуть бути вбудовані в код програми для отримання найкращого ефекту. Визначено, в яких випадках можливе винесення виконання часткових запитів за рамки виконання циклу обробки записів основного запиту. Показано, як знижується час одержання результату після виконаних перетворень, на прикладі реальної системи медичної установи, яка має в основі базу даних з великою кількістю таблиць, пов’язаних між собою, та вимагає виконання великої кількості запитів одиницю часу, при тому, що запити звертаються до багатьох таблиць
Currently, despite the emergence of new storage technologies, the use of relational databases is dominant. In almost all areas of human life there are information systems with such databases, and often they are implemented in the form of web-applications. It is important to quickly receive a response from the user to his request. However, in the case of a complex system, the query can access a large number of tables, which will take a long time. There are various ways to speed up the information system: indexing, denormalization, the use of materialized views, configuring the DBMS parameters. However, the use of such methods to improve system performance requires careful study and analysis of the system for a long period of time, otherwise you can get the opposite result. The paper proposes a formal way to transform the query text with the selection of partial queries in it to execute them inside or outside the cycle of viewing query records in the formation of the resulting table. The view of the query, which formalizes the rules of transformation of the text of the original query in order to eliminate resource-intensive connection operations, is considered.
The algorithm of transformation of query for use of partial queries is presented. Various options for using key and non-key attributes from the tables that are accessed by the query are described, which determines the type of transformation of the query. It is shown how the time of obtaining the result after the performed transformations is reduced, by the example of a real system of a medical institution, which is based on a database with a large number of tables related to each other, and requires a large number of queries per unit of time, while the queries refer to many tables.