ОПТИМИЗАЦИЯ SQL. Чем дальше от начала разработки обнаруживается неэффективность приложения, тем дороже она обходится Время Стоимость ПроектированиеРазработка.

Презентация:



Advertisements
Похожие презентации
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Advertisements

Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Язык SQL Последовательности Представления Индексы.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
Программируемый клиент ORACLE Технология Pro C/C++
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Содержание: 1. Управление данными. а) Извлечение данных команда SELECT; б) Полный список разделов. 2. Раздел SELECT. а) Синтаксис раздела SELECT; б) Ключевые.
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
1 TRANSACT-SQL. Лекция 3. © Куркурин Николай Дмитриевич. (906) Microsoft SQL Server 2000.
1.Доступ к словарю базы данных 1.v$ 2.dba_ 3.all_ 4.user_ 2.Просмотр системных view cистемные view - dict (dictionary) столбцы системных view – dict_columns.
Оптимизация SQL запросов в СУБД. На примере Oracle.
Типы задач на коллоквиум 2 Реляционные и объектные модели для: – Хранения и работы с деревом произвольной глубины – Хранения и работа с графом – Работы.
Настройка запроса по образцу: четыре способа корректировки плана запроса без изменения кода Деев Илья, «Иннова-Системс»
5.2. Представление о мире (VIEW)Представления предназначены для сохранения результатов выполнения запросов в виде таблиц. В отличие от хранимых процедур.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Разработка телекоммуникационной и информационной системы для прогнозирования аварий и катастроф на НПЗ.
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ. Программная единица PL/SQL Именованные блоки Три основных категории Процедура Функция Пакет Хранятся в базе данных или обрабатываются.
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
Разработка ABL приложений с использованием OpenEdge ORACLE DataServer Сергей Климов ЗАО «Банковские информационные системы» («БИС») Разработка.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Транксрипт:

ОПТИМИЗАЦИЯ SQL

Чем дальше от начала разработки обнаруживается неэффективность приложения, тем дороже она обходится Время Стоимость ПроектированиеРазработка Эксплуатация

Оптимизаторы ORACLE Rule Based Optimizer (RBO) (Синтаксический оптимизатор) Cost Based Optimizer (CBO) (Оптимизатор по стоимости выполнения)

Команда ANALYZE и Cost Based Optimizer Сбор статистики об объектах, используемых оптимизатором, и сохранение ее в словаре базы данных Удаление статистики из словаря базы данных Проверка правильности структуры объектов Идентификация перенесенных и связанных строк в таблице или кластере

Где хранится собранная статистика ? USER_TABLES, ALL_TABLES, DBA_TABLES USER_TAB_COLUMNS, ALL_TAB_COLUMNS, DBA_TAB_COLUMNS USER_INDEXES, ALL_INDEXES, DBA_INDEXES USER_CLUSTERS, DBA_CLUSTERS

Команда ANALYZE ANALYZE CLUSTER TABLE INDEX CLUSTER NAME TABLE NAME INDEX NAME SCHEMA COMPUTE STATISTICS DELETE STATISTICS ESTIMATE STATISTICS VALIDATE STRUCTURE LIST CHAINED ROWS SAMPLE nROWS PERCENT

Команда EXPLAIN PLAN Объяснить план выполнения SQL - оператора EXPLAIN PLAN INTO имя таблицы SET STATEMENT_ID=текст FOR SQL-ОПЕРАТОР

Команда EXPLAIN PLAN Командный файл для создания PLAN_TABLE: $ORACLE_HOME/rdbmsXX/admin/utlxplan.sql

Команда EXPLAIN PLAN Интерпретация информации в PLAN_TABLE: SELECT LPAD(,2*(LEVEL-1))|| OPERATION|| ||OPTIONS, OBJECT_NAME FROM PLAN_TABLE START WITH ID = 0 AND STATEMENT_ID = текст CONNECT BY PRIOR ID = PARENT_ID;

Операции, производимые ORACLE (*) Эти операции являются методами доступа. (+) Эти операции являются операциями соединения (join).

Подсказки оптимизатору Oracle7 Server Tuning Часть No. A (Главы 7 - 9) Oracle8 Tuning Release 8.0 Часть No. A (Главы 7 - 9)

Подсказки оптимизатору Комментарий, начинающийся со знака + SELECT /*+ ALL_ROWS */ empno, ename, sal, job FROM emp WHERE empno = 7566;

Установка цели оптимизации ALL_ROWS FIRST_ROWS CHOOSE RULE

Установка метода доступа FULL ROWID CLUSTER HASH HASH_AJ INDEX INDEX_ASC INDEX_COMBINE INDEX_DESC INDEX_FFS MERGE_AJ AND_EQUAL USE_CONCAT

Установка порядка соединения ORDERED STAR USE_NL USE_MERGE USE_HASH DRIVING_SITE Подсказки для операций соединения

Параллельное выполнение PARALLEL NOPARALLEL APPEND NOAPPEND PARALLEL_INDEX NOPARALLEL_INDEX

Дополнительные подсказки CACHE NOCACHE MERGE NO_MERGE PUSH_JOIN_PRED NO_PUSH_JOIN_PRED PUSH_SUBQ STAR_TRANSFORMATION