Вы могли взять средний буфер, добирается на выполнение в течение периода действия экземпляра:
SELECT username,
buffer_gets,
disk_reads,
executions,
buffer_get_per_exec,
parse_calls,
sorts,
rows_processed,
hit_ratio,
module,
sql_text
-- elapsed_time, cpu_time, user_io_wait_time, ,
FROM (SELECT sql_text,
b.username,
a.disk_reads,
a.buffer_gets,
trunc(a.buffer_gets / a.executions) buffer_get_per_exec,
a.parse_calls,
a.sorts,
a.executions,
a.rows_processed,
100 - ROUND (100 * a.disk_reads / a.buffer_gets, 2) hit_ratio,
module
-- cpu_time, elapsed_time, user_io_wait_time
FROM v$sqlarea a, dba_users b
WHERE a.parsing_user_id = b.user_id
AND b.username NOT IN ('SYS', 'SYSTEM', 'RMAN','SYSMAN')
AND a.buffer_gets > 10000
ORDER BY buffer_get_per_exec DESC)
WHERE ROWNUM <= 20
Нет, не существует.
Обычно вы помещаете необработанные строки и регулярные выражения в файл свойств, но они также имеют некоторые требования к escape-последовательности.
Добавьте необработанный текстовый файл в путь к классу и прочтите его с помощью getResourceAsStream (....)
( Файлы свойств распространены, но беспорядочно - я рассматриваю большинство регулярных выражений как код и храню их там, где я могу ссылаться на них, и вы тоже должны. Что касается актуальный вопрос :)
Да, есть способы обойти плохую читаемость. Вы можете попробовать:
String s = "crazy escaped garbage"; //readable version//
, хотя это требует осторожности при обновлении. В Eclipse есть опция, которая позволяет вставлять текст между кавычками, и escape-последовательности применяются за вас. Тактика состоит в том, чтобы сначала отредактировать читаемые версии, а затем удалить мусор и вставить их между пустыми кавычками "".
Время идеи:
Взломайте ваш редактор, чтобы преобразовать их; выпустить как плагин. Я поискал плагины, но не нашел (хотя попробуйте поискать). Между экранированными исходными строками и текстом текстового поля существует взаимно однозначное соответствие (без учета \ n, \ r \ n). Возможно, можно использовать выделенный текст с двумя кавычками на концах.
String s = "##########
#####";
где # - любой выделенный символ - разрыв обрабатывается как новая строка. Текст, набранный или вставленный в выделенную область, экранируется в «реальном» источнике и отображается так, как будто это не так. (Точно так же, как Eclipse экранирует вставленный текст, он экранирует набранный текст, а также отображает его без обратной косой черты.) Удалите одну из кавычек, чтобы вызвать синтаксическую ошибку, если вы хотите редактировать как обычно. Хм.
а также отображать его без обратной косой черты.) Удалите одну из кавычек, чтобы вызвать синтаксическую ошибку, если вы хотите редактировать как обычно. Хм. а также отображать его без обратной косой черты.) Удалите одну из кавычек, чтобы вызвать синтаксическую ошибку, если вы хотите редактировать как обычно. Хм.String # getBytes () предоставляет копию внутреннего байтового массива, содержащегося в каждом отдельном объекте String, который фактически содержит строку в 16-битной кодировке UTF-16 - байтовый массив будет содержать та же строка, преобразованная в соответствии с кодировкой платформы по умолчанию. Я хочу сказать, что я думаю, что это максимально приближенная к "сырой" строке, которую вы когда-либо могли получить в Java.
Вы можете написать собственное средство чтения свойств без экранирования и поместить свои строки в файл ресурсов.
Я лично считаю данные строк регулярных выражений, а не код, поэтому они мне не нравятся в моем коде, но я понимаю, что это непрактично и непопулярно (Да, я понимаю, вы не вынужден кричать на меня).
Учитывая, что нет собственного способа сделать это, я могу предложить два варианта (ну, три, но третий, ммм, неестественный).
Так что мои личные предпочтения будут быть просто для разбора файла на строки. Вы можете назвать каждую запись в файле и загрузить их все в хеш-таблицу для облегчения доступа из вашего кода.
Второй вариант, создать файл, который будет предварительно обработан в интерфейс java; при этом он может избежать регулярного выражения. Лично я ненавижу генерацию кода, но если файл java на 100% никогда не редактируется человеком, это не так уж плохо (настоящее зло - это сгенерированные файлы, которые вы должны редактировать! )
В-третьих (сложная и, вероятно, плохая идея): вы можете создать собственный доклет, который будет извлекать строки из ваших комментариев в текстовый файл или файл заголовка во время компиляции, а затем использовать один из двух других методов над. Это сохраняет ваши строки в том же файле, в котором они используются. Это может быть действительно сложно сделать правильно, а штрафы за неудачу очень велики, поэтому я бы даже не рассматривал это, если бы у меня не была непреодолимая потребность и какой-то довольно впечатляющий талант.
Я предлагаю это только потому, что комментарии в свободной форме а вещи внутри тега pre достаточно защищены от форматеров и других уродливых систем. Доклет может извлечь это перед печатью javadocs и даже может добавить некоторые из сгенерированных javadocs, указывающих на использование вами строк регулярных выражений.