[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Базы Данных / Разное /

Разработка запросов

Связанные подзапросы и объединения.

Подзапросом называют запрос 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%




Комментарии

txxdltwa
21-12-2011   
dTDkD9 , [url=http://drohpntbsueg.com/]drohpntbsueg[/url], [link=http://ustduaivgbma.com/]ustduaivgbma[/link], http://myutukheewgu.com/

vhvkvleu
21-12-2011   
OkVzTo <a href="http://pypxwwqvkasn.com/">pypxwwqvkasn</a>

ynkjob
19-12-2011   
56R1p8 , [url=http://fkjyqvcgmhfg.com/]fkjyqvcgmhfg[/url], [link=http://ddsrkjlusvcc.com/]ddsrkjlusvcc[/link], http://hkmivxefrjgb.com/

jrbonlwur
19-12-2011   
RmSs0c <a href="http://johtmtwgpuvd.com/">johtmtwgpuvd</a>

Elouise
18-12-2011   
Thats the perfect inighst in a thread like this.

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Базы Данных / Разное /

Разработка запросов
08-03-2010   

Подзапросом называют запрос SELECT, который включается в другой запрос в качестве параметра или выражения. Они обычно используются, чтобы генерировать значение или набор результатов, которые используются в условиях главного запроса... подробнее

Кол. просмотров: общее - 4747 сегодня - 0

Параметрическое определение порядка сортировки данных
08-03-2010   

В различных сетевых форумах часто обсуждается вопрос: как получить отсортированные результаты выполнения запроса, передавая хранимой процедуре некоторый параметр? Я собрал несколько решений этой задачи, предложенных талантливыми программистами. Основная часть идей, изложенных в этой статье... подробнее

Кол. просмотров: общее - 4766 сегодня - 0

Delete from mytable; Commit:.. или Восстановление данных в СУБД Interbase
08-03-2010   

Данная статья написана на основе статей: The Interbase On - Disk Structure by Ann Harrison ; Structure of a Data Page by Paul Beach, а так же включает в себя мой горький опыт в удалении важных данных, а потом в их успешном восстановлении. Я никоим образом не собираюсь нарушать права ни выше перечисленных авторов, ни компаний, чьи зарегистрированные торговые знаки перечисленные в данной статье... подробнее

Кол. просмотров: общее - 4845 сегодня - 0

Часто задаваемые вопросы по базам данных
08-03-2010   

СУБД — Система Управления Базами Данных (dbms — database management system). Программа, либо комплекс программ, предназначенных для полнофункциональной работы с данными. Как правило, включает в себя инструменты для создания и изменения структуры хранения наборов данных... подробнее

Кол. просмотров: общее - 5455 сегодня - 1

Временные таблицы в sql server. Так ли необходимы временные таблицы?
07-03-2010   

Временные таблицы всегда прекрасно помогали разработчикам. Раньше, когда я использовал access, я обычно создавал временные таблицы, которые удалял после решения задачи. При использовании sql server решить задачу можно гораздо проще. Не так ли?... подробнее

Кол. просмотров: общее - 4940 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects