Когда я запускаю свое Java-приложение, я хочу знать, когда я выполняю запрос в своем приложении, сколько данных идет и выходит в килобайте? Есть ли инструмент для этого?
сколько данных идет и выходит в килобайт?
Чтобы увидеть байты, которые, как ожидается, будут прочитаны и переданы обратно, вы можете просто увидеть план объяснения запроса.
Например,
SQL> explain plan for select * from emp;
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 546 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 546 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------
8 rows selected.
Итак, вы можете увидеть 546 байт.
Чтобы просмотреть байты для обоих отправленных и полученных через SQL * Net, вы можете установить AUTOTRACE ON.
Например,
SQL> SET AUTOTRACE ON
SQL> select empno from emp;
EMPNO
----------
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
14 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 179099197
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 56 | 1 (0)| 00:00:01 |
| 1 | INDEX FULL SCAN | PK_EMP | 14 | 56 | 1 (0)| 00:00:01 |
---------------------------------------------------------------------------
Statistics
----------------------------------------------------------
8 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
702 bytes sent via SQL*Net to client
544 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
SQL>
Таким образом, вы можете увидеть 702 байта, отправленных через SQLNet клиенту, и 544 байта, полученных через SQLNet от клиента.
вы можете запустить оператор select с помощью vsize, чтобы проверить размер всех полученных данных
пример
SCOTT@research 16-APR-15> select * from test1;
VAL1 VAL2 VAL3
---------- ---------- ----------
555 2 4
3 2 4
123 2 3
42 3
SCOTT@research 16-APR-15> select sum(vsize(val1)+vsize(val2)+vsize(val3)) "bytes" from test1;
bytes
----------
20
SCOTT@research 16-APR-15> select sum(vsize(val1)+vsize(val2)+vsize(val3)) "bytes" from test1 where val3=3;
bytes
---------
7
Если конкретно килобайты, то разделите на 1024
SCOTT@research 16-APR-15> select sum(vsize(val1)+vsize(val2)+vsize(val3))/1024 "kilo bytes" from test1;
kilo bytes
----------
.01953125