ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

В чем разница между статическим и динамическим SQL?

Как найти неиспользуемые индексы в базе данных MySQL?

Многие люди используют базы данных, но на самом деле они не понимают разницы между статическим и динамическим SQL. Их цель – получить статический или динамический вывод запроса. В этой статье вы узнаете о статических и динамических SQL-запросах с подробным обсуждением того, как обрабатывается SQL-запрос, динамической СУБД (система управления базами данных), статическими и динамическими отчетами и примером приложения со встроенным SQL.

 

Что такое встроенный SQL?

Запросы встроенного или статического SQL – это те инструкции, которые не изменяются во время выполнения или во время выполнения и могут быть жестко закодированы (где данные или параметры не могут быть изменены) в различных приложениях.

 

Встроенное приложение SQL

Рассмотрим пример встроенного приложения, в котором операторы в основном встроены в исходные файлы C++, где препроцессор переводит операторы в вызовы библиотеки времени выполнения. Он переносится в другие среды и предоставляет те же функции для каждой операционной среды.

В чем разница между статическим и динамическим SQL?

 

Приложение встроенного SQL состоит из операторов SQL, и эти операторы перед компиляцией преобразуются в код C или C++. Как видно на диаграмме, приложение во время выполнения использует библиотеку интерфейса SAP IQ, которая известна как DBLIB и используется для связи с серверами баз данных. DBLIB – это библиотека динамической компоновки (DLL), которая может использоваться на всех основных платформах.

 

Что такое динамический SQL?

Как видно из названия, это метод, который позволяет профессионалам создавать операторы SQL, которые можно динамически изменять во время выполнения. Динамический запрос – это оператор, который может быть создан во время запуска или во время выполнения; например, приложение может позволять пользователям запускать свои собственные запросы при исполнении.

 

Что такое динамическая система управления базами данных?

Динамическая СУБД – это база данных, имеющая «основанные на значениях» отношения объектов, которые указываются во время извлечения, а местоположения связанных записей обнаруживаются во время извлечения.

 

Какое из следующих утверждений о статических и динамических отчетах неточно?

Печатный анализ продаж – это пример динамического отчета – неверное утверждение о статических и динамических отчетах. Следующие утверждения об отчетах верны:

 

Как обрабатывается оператор SQL?

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

 

1. Оператор синтаксического анализа

Например, пользователь хочет выполнить следующий запрос:

SELECT P, Q, R
FROM A, B
WHERE P> 800
AND R = ‘XYZ’

 

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

 

2. Подтвердите заявление

Система управления базой данных будет проверять, существуют ли таблицы (в нашем примере таблицы A и B) в базе данных (системном каталоге) или нет? Есть ли у пользователя права запускать эти операторы? СУБД проверяет, что имена столбцов не являются двусмысленными и существуют.

 

3. Оптимизировать заявление

СУБД оптимизирует оператор, исследуя различные способы. Можно ли использовать индекс (первичный ключ) для ускорения поиска? Должна ли система управления базами данных сначала применить условие поиска к первой таблице, а затем присоединить его ко второй таблице, или она должна начинаться с объединения и затем использовать условие? После изучения всех возможных условий СУБД выберет наиболее подходящее. Он может исследовать тысячи возможных различных способов для одного и того же запроса, поэтому это процесс, требующий интенсивной работы ЦП.

 

4. План доступа или двоичная форма

На этом этапе будет сгенерирован план доступа или двоичная форма операторов SQL.

 

5. Выполнение плана доступа

На последнем этапе план доступа будет выполнен.

Основные различия между встроенным и динамическим SQL

Статический Динамический
В статическом или встроенном SQL способ доступа к базе данных предопределен во встроенном операторе SQL и выполняется препроцессором, где пользователь не может выполнять запросы во время выполнения. Как будет осуществляться доступ к базе данных, определяется во время выполнения, и пользователь также может выполнять инструкции языка структурированных запросов во время выполнения.
Это быстрее и эффективнее. Это менее быстро и эффективно.
Все запросы к базе данных компилируются во время компиляции. Все запросы к базе данных компилируются во время выполнения приложения.
Все процессы, включая анализ, проверку, оптимизацию и создание плана доступа к приложению, выполняются во время компиляции. Все процессы, включая синтаксический анализ, проверку, оптимизацию и создание плана доступа к приложению (двоичная форма SQL-запросов), выполняются во время выполнения.
В основном он используется в ситуациях, когда данные распределяются последовательно. Он используется в ситуациях, когда данные распределены неравномерно.
Операторы PREPARE, EXECUTE и EXECUTE IMMEDIATE не используются. Используются операторы PREPARE, EXECUTE и EXECUTE IMMEDIATE.
Он менее гибкий из-за того, что он жестко встроен в приложение. Мы можем запускать наши операторы SQL во время выполнения, что делает его более гибким.
Exit mobile version