(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 Personal Edition Named User Plus Software Update License & Support
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Standard Edition 2 Processor License
EMS Data Export for PostgreSQL (Business) + 1 Year Maintenance
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Delphi - проблемы и решения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100