Производительность команды Cleartool: lshistory или find -exec

Я ищу оптимизацию запросов, но IBM не очень болтает об этом в документации по ясному регистру. Короче говоря, у нас есть довольно большой vob, и мы хотели бы перечислить все изменения, сделанные между двумя датами, какой запрос вы считаете самым быстрым, и вы видите какие-либо улучшения?

Способ 1:

cleartool find -avobs -type f -element '(created_since(1-Jun-2016) &&                  !created_since(1-Sep-2016))
 && (Element_Type==""Program"" || Element_Type==""Output"" || Element_Type==""Data"")'
-ver 'created_since(1-Jun-2016) && !created_since(1-Sep-2016)' 
-exec 'cleartool describe -fmt ""#Name:%Xn Date:%Nd User:%u Label:%1.400Cl Attributes:%a Version:%Vn Comment:%Nc \n"" $CLEARCASE_XPN' 
>| test.txt

Способ 2:

cleartool lshistory -avobs -since 1-Jun-2016 -fmt '#Name:%Xn Date:%Nd User:%u Label:%1.400Cl Attributes:%a Version:%Vn Comment:%Nc \n' -nco -pname >| test.txt

Благодарю вас!


person M4hd1Pro    schedule 13.09.2016    source источник


Ответы (1)


cleartool lshistory< /a> относится к записям событий, второстепенные записи можно очистить. Он предлагает меньше вариантов фильтрации, что означает, что вы получаете все и только потом применяете фильтр самостоятельно (grep)

Как правило, cleartool find может быть быстрее, так как вы можете добавить критерии для уточнения поиска.

Из " Дополнительные примеры команды cleartool find", чтобы увидеть все изменения (не только создания на уровне элемента, но и изменения на уровне версии), запрос выглядит следующим образом:

cleartool find . -version "{created_since(date1) && !created_since(date2)}"

-Распечатать

То, что можно добавить:

  • type f (нужны только файлы, а не папки)
  • любые другие критерии (Примечание: я не вижу "Element_Type" в query_language)

Это поможет ускорить запрос.


OP M4hd1 добавляет в комментариях:

Основываясь на вашем комментарии, я изменил запрос на это:

cleartool find -avobs -type f -element '(attr_sub(Element_Type,==,"Output"))' -ver 'created_since(1-Jun-2016) && !created_since(1-Sep-2016)' -exec 'cleartool describe -fmt ""#Name:%Xn Date:%Nd User:%u Label:%1.400Cl Attributes:%a Version:%Vn Comment:%Nc \n"" $CLEARCASE_XPN' >| test.txt

В несколько строк:

cleartool find -avobs -type f -element '(attr_sub(Element_Type,==,"Output"))' \
  -ver 'created_since(1-Jun-2016) && !created_since(1-Sep-2016)'  \
  -exec 'cleartool describe -fmt ""#Name:%Xn Date:%Nd User:%u Label:%1.400Cl Attributes:%a Version:%Vn Comment:%Nc \n"" $CLEARCASE_XPN' \
>| test.txt
person VonC    schedule 13.09.2016
comment
Спасибо за помощь! Основываясь на вашем комментарии, я изменил запрос на это: Sep-2016)' -exec 'cleartool описать -fmt #Имя:%Xn Дата:%Nd Пользователь:%u Метка:%1.400Cl Атрибуты:%a Версия:%Vn Комментарий:%Nc \n $CLEARCASE_XPN' ›| test.txt - person M4hd1Pro; 14.09.2016
comment
@ M4hd1 Молодец! Я включил ваш комментарий в ответ для большей наглядности. - person VonC; 14.09.2016