Главное преимущество NOCOPY в том, что при его использовании можно повысить производительность системы. Это особенно ценно при передаче больших таблиц PL/SQL, например:
Внимание
В этом примере для группирования связанных между собой процедур используется модуль. Модули описываются ниже в разделе "Модули", сборные конструкции и метод EXTEND -в главе 8, a DBMS_UTILITY в приложении А.
Процедуры PassStudents ничего не делают - они лишь принимают параметр, представляющий собой PL/SQL-таблицу со сведениями о студентах. Параметр — это 50001 запись, т.е. довольно большое значение. Различаются процедуры тем, что PassStudentsI принимает параметр как IN, PassStudents2 - как IN OUT, a PassStudents3 - как IN OUT NOCOPY. Таким образом, в PassStudents2 параметр должен передаваться по значению, а в двух других процедурах по ссылке. Это видно при анализе результатов вызова CopyFast. Go:
Реальные результаты могут варьироваться в зависимости от системы, тем не менее время на передачу параметра IN OUT по значению существенно больше, чем на передачу параметров IN и IN OUT NOCOPY по ссылке.
< Предыдущая | Следующая > |
---|