Oracle:如何找出函数 table 使用了多少 space(在 RAM 上)?
Oracle: how to find out how much space (on RAM) is used by a function table?
我正在考虑实现一个功能 table。由于 table 可能有大约 100 000 个结果集,我想知道它的内存使用情况(在 RAM 上)。我可以(如果可能)与 toad 或 pl/sql 开发人员核实为我的结果集分配了多少内存吗?
提前致谢!
您的会话 PGA 保存数据,因此您可以查询您的会话统计信息以查看消耗了多少,例如
SQL> select s.name, st.value
2 from v$statname s, v$mystat st
3 where st.statistic# = s.statistic#
4 and s.name like '%pga%';
NAME VALUE
---------------------------------------------------------------- ----------
session pga memory 5025416
session pga memory max 5025416
SQL> declare
2 type t is table of char(1000) index by pls_integer;
3 r t;
4 begin
5 for i in 1 .. 10000
6 loop
7 r(i) := rpad('x',1000);
8 end loop;
9 end;
10 /
PL/SQL procedure successfully completed.
SQL> select s.name, st.value
2 from v$statname s, v$mystat st
3 where st.statistic# = s.statistic#
4 and s.name like '%pga%';
NAME VALUE
---------------------------------------------------------------- ----------
session pga memory 4370056
session pga memory max 16297608
我正在考虑实现一个功能 table。由于 table 可能有大约 100 000 个结果集,我想知道它的内存使用情况(在 RAM 上)。我可以(如果可能)与 toad 或 pl/sql 开发人员核实为我的结果集分配了多少内存吗?
提前致谢!
您的会话 PGA 保存数据,因此您可以查询您的会话统计信息以查看消耗了多少,例如
SQL> select s.name, st.value
2 from v$statname s, v$mystat st
3 where st.statistic# = s.statistic#
4 and s.name like '%pga%';
NAME VALUE
---------------------------------------------------------------- ----------
session pga memory 5025416
session pga memory max 5025416
SQL> declare
2 type t is table of char(1000) index by pls_integer;
3 r t;
4 begin
5 for i in 1 .. 10000
6 loop
7 r(i) := rpad('x',1000);
8 end loop;
9 end;
10 /
PL/SQL procedure successfully completed.
SQL> select s.name, st.value
2 from v$statname s, v$mystat st
3 where st.statistic# = s.statistic#
4 and s.name like '%pga%';
NAME VALUE
---------------------------------------------------------------- ----------
session pga memory 4370056
session pga memory max 16297608