(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Увеличиваем производительность PL/SQL

Источник: all-oracle

Рекомендовано для:
  • Oracle Database 8i
  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1
 

В этой статье дается несколько советов по увеличению производительности PL/SQL кода. Для тестов будем использовать таблицу EMP из схемы SCOTT.

Итак, приступим:

Пример 1

SELECT ENAME FROM EMP WHERE EMPNO // ' ' // ENAME='7369 SMITH';
Elapsed: 00:00:00.03
 
SELECT ENAME FROM EMP WHERE EMPNO=7369 AND ENAME='SMITH';
Elapsed: 00:00:00.01

Вывод: Первый запрос выполнил полное сканирование таблицы  в поисках соотвествия, второй  использовал индекс по полю EMPNO.

Пример 2

SELECT ENAME FROM EMP WHERE COMM=0;
Elapsed: 00:00:00.01
 
SELECT ENAME FROM EMP WHERE COMM IS NULL;
Elapsed: 00:00:00.03

Вывод: Сравнение индексированных столбцов с NULL требует больше времени.

Пример 3

SELECT DISTINCT JOB, ENAME, EMPNO FROM EMP WHERE EMPNO=7566;
Elapsed: 00:00:00.03
 
SELECT JOB, ENAME, EMPNO FROM EMP WHERE EMPNO=7566;
Elapsed: 00:00:00.01

Вывод: Предложение DISTINCT должно использоваться только когда оно действительно необходимо.

Пример 4

SELECT DISTINCT D.DEPNO, D.DNAME
FROM DEPT D, EMP E
WHERE D.DEPTNO=E.DEPTNO;
Elapsed: 00:00:00.04
 
SELECT D.DEPNO, D.DNAME
FROM DEPT D
WHERE EXISTS (SELECT E.DEPTNO
              FROM EMP E
              WHERE D.DEPTNO=E.DEPTNO);
Elapsed: 00:00:00.01

Вывод: Вложенные запросы отрабатывают быстрее.

Пример 5

SELECT ENAME FROM EMP WHERE NOT EMPNO=0;
Elapsed: 00:00:00.04
 
SELECT ENAME FROM EMP WHERE EMPNO>0;
Elapsed: 00:00:00.03

Вывод:Оператор NOT на индексированном столбце снижает производительность. Замените оператор NOT другими операторами, которые помогут улучшить производительность.

Пример 6

SELECT * FROM EMP;
Elapsed: 00:00:00.03
 
select * from EMP;
Elapsed: 00:00:00.04

Вывод: Пишите предложения SQL в одном регистре, так затрачивается меньше времени на разбор.

Надеюсь эти нехитрые рекоммендации помогут сделать ваш код, хоть чуть-чуть но быстрее.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 15.05.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus License
Stimulsoft Reports.Ultimate Single License Includes one year subscription
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерный дизайн - Все графические редакторы
СУБД Oracle "с нуля"
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100