Поиск по сайту:
Многознание уму не учит (Гераклит).

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

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

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

 

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

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

 

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

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

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

 

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

 

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

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

Читать  Как и когда создавать индекс в MySQL

 

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

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

 

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

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

  • Статические отчеты публикуются в виде PDF-документов или документов Business Intelligent (BI), которые фиксируются на момент создания, поэтому эти отчеты не изменяются.
  • Для публикации динамического отчета требуются приложения Business Intelligent (BI) с доступом к источнику данных при его доставке пользователю.
  • Всегда помните, распечатанный анализ продаж — это пример статических отчетов.
  • Динамические отчеты — это документы Business Intelligent (BI), которые обновляются каждый раз, когда пользователь запрашивает этот файл.

 

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

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

 

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

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

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

 

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

Читать  Поддерживает ли MySQL материализованные представления?

 

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

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

 

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

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

 

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

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

 

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

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

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

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

Читать  Функция верхнего регистра SQL

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Сергей

Мне кажется, что человек, который понимает язык этой статьи, уже знает ответ на вопрос, в чём разница между статическим и динамическим SQL. А я не понял. Я хотел понять, в чём разница между статическим и динамическим запросом. Яндекс даёт эту статью на первой странице в ответ на запрос «Что такое динамический запрос». Вроде статья должна ответить на этот вопрос, но уровень явно для академиков.

Это может быть вам интересно


Рекомендуемое
В связи с растущей тенденцией развития онлайн-бизнеса, образовательных, социальных сетей…

Спасибо!

Теперь редакторы в курсе.