Определить размер набора результатов SQL в КБ - PullRequest
4 голосов
/ 11 сентября 2009

Я надеюсь найти способ получить размер в килобайтах результирующего набора в OracleDB. Я не являюсь системным администратором, но часто выполняю запросы, которые возвращают более 100 тыс. Строк, и мне нужно найти способ определить, каков общий размер КБ. спасибо

Ответы [ 2 ]

12 голосов
/ 11 сентября 2009

В SQL * Plus:

SET AUTOTRACE ON

SELECT *
FROM emp
WHERE rownum <= 100;

        27  recursive calls
         0  db block gets
        19  consistent gets
         4  physical reads
         0  redo size
     **11451  bytes sent via SQL*Net to client**
       314  bytes received via SQL*Net from client
         8  SQL*Net roundtrips to/from client
         0  sorts (memory)
         0  sorts (disk)
       100  rows processed

Для использования AUTOTRACE требуется роль PLUSTRACE, которая по умолчанию не предоставляется. Узнать больше .

0 голосов
/ 11 сентября 2009

Как правило, вы должны заменить список столбцов на count(*), чтобы получить количество строк.

Я не уверен, насколько хорошо это будет работать на действительно сложных запросах с большим количеством объединений и тому подобным, но для более простых запросов это должно быть хорошо. Заменить:

select a,b,c from t where a > 7;

с

select count(*) from t where a > 7;

Это даст вам счетчик строк до того, как вы запустите реальный запрос. Просто имейте в виду, что существует вероятность того, что данные могут измениться между вашим запросом подсчета и реальным запросом (надеюсь, не слишком). Знание свойств данных позволит вам приблизить килобайты из числа строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...