| « Поставить закладку » « Сделать стартовой » | |||
|
|||
| Статьи:: Базы данных :: InterBase :: Разработка запросов
Разработка запросовСвязанные подзапросы и объединения.Подзапросом называют запрос SELECT, который включается в другой запрос в качестве параметра или выражения. Они обычно используются, чтобы генерировать значение или набор результатов, которые используются в условиях главного запроса. Соотнесенный подзапрос является единственным отличием между записями для главного запроса, так как только он зависит от значений, которые меняются от записи к записи. Interbase выполняет такой подзапрос много раз, по разу для каждой записи родительского подзапроса. Вычисление каждой записи является большим проигрышем в производительности по отношению к несвязанному подзапросу. Interbase оптимизирует несвязанные подзапросы вне цикле, исполняет их только один раз, используя затем результаты как отдельный набор данных. Вот пример связанного подзапроса: SELECT * FROM DEPARTMENT D WHERE EXISTS ( SELECT * FROM EMPLOYEE E WHERE E.EMP_NO = D.MNGR_NO AND E.JOB_COUNTRY = 'England') А вот пример идентичного запроса с использованием объединения: SELECT D.* FROM DEPARTMENT D JOIN EMPLOYEE E ON D.MNGR_NO = E.EMP_NO WHERE E.JOB_COUNTRY = 'England' План выполнения запроса. План описывает сценарий, по которому оптимизатор решил выполнить запрос. Для некоторых типов запросов оптимизатор не в состоянии выбрать реально оптимальный план. Человек может проанализировать различные планы и, выбрав нужный, перекрыть им план, выбранный оптимизатором. Результатом может быть потрясающее увеличение скорости на некоторых типах запросов. В самых запущенных случаях можно уменьшить время выполнения 15-ти минутного запроса до трёх секунд. Возможность указывать план запроса была добавлена в GPRE и DSQL/ISQL. Таким образом, прямое указание плана запроса будет работать в теле просмотра(View), хранимой процедуре или триггере. Подробнее этот метод рассмотрен здесь. Подготовка запросов и параметры запросаInterbase поддерживает запросы с параметром в DSQL для тех случаев, когда указанный запрос будет выполняться несколько раз с различными значениями. Например, заполнение таблицы данными может требовать серию команд INSERT со значениями для каждой записи. Применение параметризованных запросов напрямую увеличивает производительность, поскольку Interbase хранит внутреннее представление запроса и его оптимизированный план после однократной подготовка запроса. Использование параметризованных запросов в Delphi происходит следующими шагами: Поместите поименованный параметр в запросе на месте постоянной величины. Interbase не поддерживает параметры нигде, кроме как в константах, таблицы и имена полей не могут описываться параметром. Подготовьте запрос, используя для этого метод Prepare компонента TQuery. Delphi подготавливает запрос, если он еще не подготовлен каждый раз перед выполнением. После выполнения запроса его подготовка автоматически снимается. Таким образом, подготовка запроса заранее предотвращает бессмысленную подготовку и отмену подготовки при каждим вызове запроса. Присвойте параметры. Например, для компонента TQuery используйте для этого метод ParamByName. Выполните запрос. Выражения SELECT должны открываться методом Open, а INSERT, UPDATE и DELETE должны активироваться метом ExecSQL. При необходимости повторить пункты 3 и 4. Отменить подготовку запроса. Это делается методом Unprepear компонента TQuery. В некоторых реальных случаях, включающих повторяющиеся действия, использование параметризованных запросов увеличивает производительность на 100% Рубрика: InterBase
Инструменты Internet Explorer 8 Beta 2 для разработчиков.
Подробнее... |
Рубрика: Вебмастеру
| Добавлено: 05.09.2008
Google Developer Day 2008 в Москве.
Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва, Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API от Google, чтобы создавать социальные, мобильные и картографические приложения, как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое другое из первых уст.
Подробнее... |
Рубрика: Мероприятия
| Добавлено: 05.09.2008
ТОП 10 самых раздражающих факторов для программиста.
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…
Подробнее... |
Рубрика: Разное
| Добавлено: 03.09.2008
Остальные статьи:
Windows Server 7, 8 и 9
jQuery для JavaScript-программистов
Инновационный веб-броузер Google Chrome стартует уже сегодня
Windows 7: подход к производительности системы
Trac + Subversion @ Ubuntu: Revisited
[g]Vim в режиме Python: Рекомпиляция в Windows
Java + JSON. Пути к дружбе
Драйвер SQL Server 2005 для PHP
Типы данных в MySQL (сжатый справочник для PHP программиста)
PHP класс для работы с Яндекс.XML
Ошибки начинающих PHP разработчиков
Наследование шаблонов в Smarty
Особенности хранения сессий PHP в memcached
Internet Explorer 8 beta 2
9 правил для начинающего Ajax-разработчика
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|