powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ref cursor тестирование
6 сообщений из 6, страница 1 из 1
ref cursor тестирование
    #39305663
Tester666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Вопрос такой - есть ряд процедур, которые возвращают набор данных через ref cursor.
Какими средствами лучше тестировать данные прцедуры?
Меня интересует среднее время выполнения для начала.
Если запускать процедуру через девелопер в тестовом окне я могу увидеть время выполнения самой процедуры. Отдельно при нажатии на кнопку <Cursor> я могу видеть датасет, там уже время получения 1 страницы датасета. При выборе всех строк получаю еще 1 время.
А хотелось бы получить общее время выполнения процедуры и выдачи всех ее данных.
Пробовал через cmd:
Код: plsql
1.
2.
3.
4.
sql>variable cr refcursor
sql>begin proc(:cr) end;
/
sql>print cr


результат меня не устроил.
Может быть есть еще какие-то способы.
...
Рейтинг: 0 / 0
ref cursor тестирование
    #39305738
Avotge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tester666, сделать процедуру, которая вызывает твою ф-цию с курсором и профетчить в ней курсор и смотреть время выполнения уже самой этой процедуры? ) Или, если основное время занимает сам фетч курсора, то разбираться сразу с самим запросом, а не функцией.
...
Рейтинг: 0 / 0
ref cursor тестирование
    #39305894
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tester666Пробовал через cmd:
Код: plsql
1.
2.
3.
4.
sql>variable cr refcursor
sql>begin proc(:cr) end;
/
sql>print cr


результат меня не устроил.
Может быть есть еще какие-то способы.

set timi on не поможет?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> var c REFCURSOR
SQL> exec open :c for select * from dual;

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.04
SQL> print c

D
-
X

Elapsed: 00:00:00.01
SQL>



.....
stax
...
Рейтинг: 0 / 0
ref cursor тестирование
    #39306139
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..set timi on не поможет?а print выфетчит сразу весь курсор?
даже если и весь, сколько же лага времени уйдет на консольный вывод? при длинных строках - очень даже немало.
...
Рейтинг: 0 / 0
ref cursor тестирование
    #39306151
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tester666Может быть есть еще какие-то способы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SANDBOX@ee>;create or replace procedure p(c out sys_refcursor) as begin open c for select * from dual connect by level < 1000000; end;
  2  /

Procedure created.

Elapsed: 00:00:00.02
SANDBOX@ee>;declare
  2      t timestamp := systimestamp;
  3      c sys_refcursor;
  4      n number;
  5  begin
  6      p(c);
  7      n := dbms_sql.to_cursor_number(c);
  8      while dbms_sql.fetch_rows(n) != 0 loop null; end loop;
  9      dbms_output.put_line('time spent: ' || (systimestamp - t));
 10  end;
 11  /
time spent: +000000000 00:00:05.111000000

PL/SQL procedure successfully completed.

Elapsed: 00:00:05.12
...
Рейтинг: 0 / 0
ref cursor тестирование
    #39306571
Tester666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, буду с запросом разбираться отдельно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ref cursor тестирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]