Настройте URI метаданных, чтобы исключить тип метаданных WorkTable

Ниже приведен код для получения списка зарегистрированных таблиц SAS из метаданных. Он работает нормально, но занимает много времени из-за большого объема WorkTables ( подтип PhysicalTable):

data work.tables (keep=uri name);
  length uri name $256;
  n=1;
  do while(metadata_getnobj("omsobj:PhysicalTable?@Id contains '.'",n,uri)>=0);
    n+1;
    if substr(uri,8,9)='WorkTable' then continue;
    if metadata_getattr(uri, "SASTableName", name)=0 then output;
  end;
run;

Есть ли способ настроить uri, чтобы тип WorkTable можно было исключить из самого запроса метаданных?

Например, следующим образом (не работает):

omsobj:PhysicalTable?@Id contains '.' and @MetadataType ne 'WorkTable'

1 ответ

Решение

Таким образом, следующий URI добился цели, хотя он был только на 20% быстрее:

omsobj:PhysicalTable?@Id contains '.' and @PublicType = 'Table'

Это, конечно, можно сократить до:

omsobj:PhysicalTable?@PublicType = 'Table'

Который сбрил лишние 0,2 секунды.

Другие вопросы по тегам