Архитектура РСУБД — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 2: Строка 2:
 
Верхнеуровнево, система управления баз данных состоит из ''' хранилища данных ''' и ''' программы''', которая к этим данным обращается.
 
Верхнеуровнево, система управления баз данных состоит из ''' хранилища данных ''' и ''' программы''', которая к этим данным обращается.
  
[[Файл:intro_arch_mini.png|400px|thumb|right|Общий план]]
+
[[Файл:intro_arch_mini.png|400px|Общий план]]
  
 
== Взаимодействие с СУБД ==  
 
== Взаимодействие с СУБД ==  
Строка 9: Строка 9:
 
Традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.
 
Традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.
  
[[Файл:intro_arch_drivers.png|400px|thumb|right|Протокол взаимодействия]]
+
[[Файл:intro_arch_drivers.png|400px|Протокол взаимодействия]]
  
 
== Обработка запроса ==
 
== Обработка запроса ==
Строка 15: Строка 15:
  
 
После разбора есть запрос, который нужно исполнить, этим занимается ''' исполнитель запроса ''', который в отличие от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.
 
После разбора есть запрос, который нужно исполнить, этим занимается ''' исполнитель запроса ''', который в отличие от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.
[[Файл:intro_arch_partial.png|400px|thumb|right|Обработка запроса]]
+
 
 +
[[Файл:intro_arch_partial.png|400px|Обработка запроса]]
  
 
== Эффективная обработка запроса ==
 
== Эффективная обработка запроса ==
Строка 27: Строка 28:
 
* использование '' статистики '' - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения об используемых алгоритмах  
 
* использование '' статистики '' - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения об используемых алгоритмах  
  
[[Файл:intro_arch_complete.png|400px|thumb|right|Эффективная обработка запроса]]
+
[[Файл:intro_arch_complete.png|400px|Эффективная обработка запроса]]

Версия 23:26, 18 декабря 2021

Общий план

Верхнеуровнево, система управления баз данных состоит из хранилища данных и программы, которая к этим данным обращается.

Общий план

Взаимодействие с СУБД

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

Традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.

Протокол взаимодействия

Обработка запроса

В программе есть sql запросы, которые требуется разобрать, этим занимается модуль разборщик запроса , который является парсером.

После разбора есть запрос, который нужно исполнить, этим занимается исполнитель запроса , который в отличие от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.

Обработка запроса

Эффективная обработка запроса

Чтобы запрос исполнялся более эффективно, есть построитель плана исполнения (также называется оптимизатором), который получает на вход разобранный запрос и решает как конкретно он будет исполнен, а именно:

  • какие, откуда и в каком порядке будут загружаться данные
  • какие индексы будут использованы

Улучшения исполнителя запроса :

  • добавление модуля управление памятью - так как эффективность исполнение запроса может зависеть от кол-ва используемых данных, а именно - поместятся они все в память или нет, это стоит учитывать при выборе того как запрос будет исполнен
  • использование статистики - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения об используемых алгоритмах

Эффективная обработка запроса