Cтраница 1
Оптимизация запросов в двухуровневых СУБД имеет целью минимизацию числа обращений к дисковой памяти и времени позиционирования головок на требуемых дорожках. [1]
Проблемы оптимизации запросов рассматриваются в гл. Таким образом, нам представляется весьма условным считать исчисление более высоким уровнем по сравнению с алгеброй хотя бы потому, что на первом шаге оптимизации алгебраическое выражение может быть преобразовано по теореме 4.1 в эквивалентное выражение исчисления. Следует признать, однако, что языки, основанные на исчислении, в настоящее время более распространены, чем алгебраические. Мы предпочитаем объяснять преобладание языков исчисления их непроцедурностью, желательной с точки зрения программиста, а не эффективностью или легкостью компиляции для таких языков. [2]
Иногда при оптимизации запросов полезно использовать ограничения, наложенные на базу данных. [3]
Наконец, оптимизация запросов включает в себя и выбор способа вычисления, поскольку процессор запросов может располагать несколькими способами вычисления данной операции. Выбранный способ может определяться либо тем, как хранится отношение, либо имеющимися в наличии дополнительными структурами. Вычисление выбора может проводиться просмотром всего отношения кортеж за кортежем, однако при наличии индекса для атрибута, по которому проводится выбор, он может быть вычислен просмотром индекса. [4]
Иногда при оптимизации запросов полезно использовать ограничения, наложенные на базу данных. [5]
Наконец, оптимизация запросов включает в себя и выбор способа вычисления, поскольку процессор запросов может располагать несколькими способами вычисления данной операции. Выбранный способ может определяться либо тем, как хранится отношение, либо имеющимися в наличии дополнительными структурами. Вычисление выбора может проводиться просмотром всего отношения кортеж за кортежем, однако при наличии индекса для атрибута, по которому проводится выбор, он может быть вычислен просмотром индекса. [6]
Анализ методов оптимизации запросов на уровне доступа показывает, что наиболее эффективно реализуются те из них, которые минимизируют число обращений к внешней памяти ЭВМ. Очевидно, что минимального числа обменов с внешней памятью можно добиться при условии однократного считывания в ОЗУ каждой обрабатываемой записи. Поэтому в системах БД, работающих в оперативном режиме, возникает задача разработки таких механизмов поиска данных, которые оптимизируют время работы запросной системы за счет уменьшения числа повторных считываний записей. На этапе физической оптимизации число обращений к внешней памяти ЭВМ при реализации операций соединения является основным оптимизируемым параметром. Поскольку при произвольном обращении к записи требуется одно обращение к физическому блоку, то для выборки п записей в произвольном порядке необходимо п обращений к физическим блокам. [7]
Значительные успехи в оптимизации запросов часто могут быть достигнуты просто путем изменения порядка выполнения операций. Например, переставляя операции селекции так, чтобы они выполнялись до соединений, а не после них, мы часто можем ответить на запрос быстрее. Это происходит потому, что операции типа соединения и декартова произведения работают как генераторы, создавая большое количество кортежей; поэтому, если мы сможем выполнить некоторые из операций селекции вначале, то уменьшим количество генерированных кортежей. Это один из примеров применения общего принципа: всегда следует использовать присущую данной задаче информацию для того, чтобы уменьшить количество информации на выходе генератора, управляя ее источником, вместо того чтобы ожидать вывода всей информации и потом отбрасывать ненужные элементы. [8]
Все SQL-серверы выполняют оптимизацию запросов, передаваемых им клиентскими приложениями. Они анализируют команды SQL и пытаются выбрать наиболее эффективный способ их выполнения. Средство, выполняющее этотанализ и выбор, и называется оптимизатором запросов. [9]
Используйте алгоритм 6.2 для оптимизации запросов в упражнении 6.3. 6.5. Какие запросы в упражнении 6.3 являются конъюнктивными. Покажите, что каждое отображение в языке SQUARE определяет конъюнктивный запрос. [10]
Предложенные методы используют все преимущества методов оптимизации запросов, разработанных для традиционных систем баз данных. Однако для Дейталога задачи оптимизации из-за наличия рекурсии оказываются гораздо более трудными. [11]
Этой цели достигают за счет использования средств подсистемы оптимизации запросов, обеспечивающих гибкую и эффективную перестройку межфайловых связей в организационном и модификационном режимах, поскольку изменение связей между данными менее трудоемкий процесс, чем изменение содержимого самих файлов. [12]
Обширный класс модификаций объединяют в одно целое и называют единым термином оптимизация запросов. Цель таких модификаций - получить выражение, эквивалентное данному. Наверное, это было бы лучше называть улучшением, а не оптимизацией, так как редко удается эффективно найти выражение, эквивалентное данному и минимизирующее время или память, требуемые для его вычисления. [13]
Обширный класс модификаций объединяют в одно целое и называют единым термином оптимизация запросов. Цель таких модификаций - получить выражение, эквивалентное данному, но требующее для его вычисления меньше времени и памяти. Наверное, это было бы лучше называть улучшением, а не оптимизацией, так как редко удается эффективно найти выражение, эквивалентное данному и минимизирующее время или память, требуемые для его вычисления. [14]
В большинстве случаев при корректировке работы оптимизатора следует проявлять осторожность, приказывая SQL-серверу игнорировать результаты оптимизации запросов, имеющих отношение к асинхронному чтению, с упреждением и к индексированию. Дело в том, что некоторые модификации могут серьезно ухудшить функционирование системы. [15]