Количество данных, сгенерированных при вызове или выполнении SQL-запроса

2

Когда я запускаю свое Java-приложение, я хочу знать, когда я выполняю запрос в своем приложении, сколько данных идет и выходит в килобайте? Есть ли инструмент для этого?

  • 0
    Может быть, не очень полезно, но просто хочу добавить .. Вы используете Hibernate? Существует Interceptors, который может помочь вам AuditLog, и ваша модель должна реализовать IAuditLog ..
  • 0
    Я использую спящий режим. У меня нет AuditLog. Я просто хочу знать, когда запрос вернет мне 15 строк, сколько данных передается по пропускной способности? (КБ / с)
Показать ещё 2 комментария
Теги:

2 ответа

1

сколько данных идет и выходит в килобайт?

Чтобы увидеть байты, которые, как ожидается, будут прочитаны и переданы обратно, вы можете просто увидеть план объяснения запроса.

Например,

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 от клиента.

  • 0
    Это на уровне базы данных. Я хочу это во время выполнения. Когда я запрашиваю из своего веб-приложения Java, сколько килобайт идет на пропускную способность. Является ли это возможным?
  • 1
    Когда вы запрашиваете, вы уже попали в базу данных. Таким образом, вы можете получить эту информацию.
Показать ещё 2 комментария
1

вы можете запустить оператор 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню