2017-10-04 16 views
0

ファイルの履歴を追跡する必要があり、選択したノードに基づいてユーザーに履歴を表示する必要があります。私はApache jackrabbitを使って特定のバージョンラベルのデータを取得しています。私は、次のクエリ使用しています:Jackrabbitが40分の時間を取るバージョンのラベルを照会する

SELECT versioned.[jcr:uuid] 
FROM [nt:frozenNode] AS versioned 
INNER JOIN [nt:version] AS version 
ON ISCHILDNODE(versioned,version) INNER JOIN [nt:versionLabels] as node 
ON node.[20170921114713] = version.[jcr:uuid] 

をしかし、私のバージョンDBは133129件のレコードを持っています。クエリの実行に35分かかります。最高のパフォーマンスタイムをどのように達成できるか教えてください。似たような要求を持ち、優れたパフォーマンスで実装されている人は、私に教えてください。前もって感謝します。

答えて

0
Found that query is taking too much of time because of huge data in forzen node. Also getting GC over limit . 

Used API to fetch the data. now time decreased to 90seconds. 

TreeTraverser traverse = new TreeTraverser(node, null, TreeTraverser.InclusionPolicy.LEAVES); 
     int count = 0; 
     for (Node r : traverse) { 
      count++; 
      Node parent = r.getParent(); 
      String test = parent.getPath(); 
      VersionHistory history1 = session.getWorkspace().getVersionManager().getVersionHistory(test); 
      HashSet<String> test1 = printHistory1(history1); 
      map.put(test, test1); 
     } 
関連する問題