Microsoft Word Master thesis of Petar Kormushev in Medical Informatics doc



Pdf просмотр
страница14/41
Дата17.04.2022
Размер2.9 Mb.
#114126
ТипДиплом
1   ...   10   11   12   13   14   15   16   17   ...   41
Kormushev MSc thesis Bio 2006
Свързани:
1601561030 Dobrinka Bogdanova
select
пациент
from
Пациенти
where
(възраст >= 30) and (възраст <= 50)
order by
възраст desc
Тук модификаторът desc указва да се използва сортиране в низходяща последователност.
2.4. Изпълнение и оптимизация на заявки
Една заявка може да бъде изпълнена по няколко различни начина. Тривиалният метод за изпълнение е да опитаме всички възможни двойки от редове от цитираните таблици, за да проверим, дали те отговарят на логическия израз в where клаузата.
Един по-ефективен метод е да се използват допълнителни индекси (например B- дървета и хеш таблици), чрез които да се изключат бързо голяма част от записите и да се прегледат само малка част от тях дали наистина отговарят на критериите. Това може да се направи например за условието „where възраст > 20”, стига да има дефиниран индекс по атрибута възраст в базата.
Оптимизацията на заявки е задача за намиране на възможно най-добър метод за изпълнение на една конкретна заявка. Обикновено, оптимизаторите на заявки транслират SQL-заявката в едно дърво на изразите, в което листата представляват таблици, а междинните възли – операции върху наследниците на възлите. Алгебрични равенства между операциите могат да се използват за трансформация на дървото в някоя еквивалентна форма, която се изпълнява по-бързо. След намиране на подходящо дърво на изразите се избира метод за изпълнение на всяка операция. Например, операцията съединение (join) може да бъде изпълнена по няколко различни начини: чрез вложени цикли, чрез сортиране или чрез използване на индекси. Ефективността на всеки метод зависи от размера на таблиците и разпределението на стойностите в тези таблици. Ето защо оптимизаторите на заявки пазят информация за разпределението на стойностите на отделните атрибути, за да намират добри методи за изпълнение на заявки. Теоретично, намирането на най-добрата стратегия за изпълнение за една конкретна заявка е NP-пълна задача, така че намирането на най-добрия метод не е осъществимо. Обаче, добрите оптимизатори на заявки могат да бъдат учудващо ефективни.
Системите за управление на бази от данни се стремят да предоставят добро изпълнение за един широк диапазон от заявки. Макар че за една единствена заявка е възможно да бъде написана специална програма, която изчислява резултата по-ефективно от начина, по който го прави системата за управление на бази от данни, силата на подобни системи е в това, че те осигуряват бързо изпълнение за повечето заявки. Това е изключително полезно за нуждите на Конструктора, тъй като заявките за ИЗД обикновено не са известни предварително. Точно по тази причина вместо да реализираме частичен механизъм за изключително бързо изпълнение на няколко


18 конкретни заявки, предпочитаме да използваме за нуждите на Конструктора езика SQL за достатъчно бързо изпълнение на много по-широк клас от заявки.


Сподели с приятели:
1   ...   10   11   12   13   14   15   16   17   ...   41




©obuch.info 2024
отнасят до администрацията

    Начална страница