1

メタデータから 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;

メタデータ クエリ自体で WorkTable タイプを除外できるように uri を調整する方法はありますか?

たとえば、次のようにします (動作しません)。

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

1 に答える 1

1

したがって、次の URI はうまくいきましたが、20% しか高速ではありませんでした。

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

もちろん、これは次のように短縮できます。

omsobj:PhysicalTable?@PublicType = 'Table'

これにより、さらに0.2秒短縮されました。

于 2016-11-07T13:28:49.243 に答える