私は現在、剣道グリッドウィジェットによって消費されるOpenEdgeで新しいオブジェクト指向WebSpeedハンドラを使用してREST APIを開発中です。クエリの総レコード数を取得する最速の方法
私が本当に苦労している分野の1つは、ページングを実装することです。剣道グリッドには、そこにいくつのページがあるかを判断するための総レコード数を提供するAPIが必要です。サーバへのリクエストは、グリッドが非常に低迷感じること、ページごとに72msから500msのに上がった -
CREATE QUERY hQuery.
hQuery:SET-BUFFERS(BUFFER sales_order:HANDLE).
hQuery:QUERY-PREPARE("PRESELECT EACH sales_order WHERE co_no = 1").
hQuery:QUERY-OPEN().
oJson:Add("total", hQuery:NUM-RESULTS).
これは、予想通り、愚か遅いですので、同じようThe only recommended way I've found of doing itは、PRESELECT
クエリを実行し、その後NUM-RESULTS
を使用することです。これはページサイズが非常に小さいためです。
ここで明らか解決策は以下のとおりです。
- キャッシュレコード数:私は、データベースの変更を行う権限を持っていない、そしてそれは同期でこれを維持するために、レガシーシステムへの更新を必要とします私はこれがワームの缶を開くように感じる。
- レコードの数を非同期的に取得します。元の要求で合計を返さない場合は、the Kendo grid will only let you get it through a synchronous requestというユーザーエクスペリエンスには不思議なことはありません。
私の質問は、クエリのレコードの総数を取得する高速な方法があるということですか?
この件については、コミュニティレビューに入ったばかりのビジネスエンティティの共通コンポーネント仕様でも説明しています。カウントは挑戦です。キャッシングは素晴らしいアイデアです。結果の数をDBテーブルに格納し、それを一晩中入力します。キャッシュが利用できない場合は、コードのように実行する必要があります。 STOP-AFTER 1ブロックで囲み、1秒より悪くならないようにします。 –
@MikeFechner:私は上司にキャッシングを実装するための議論をしなければならないでしょう。情報をありがとう、私はCCSを見てみましょう。 –
また、剣道UIグリッドページャーのテキストパターンを変更するJavaScriptコードにいくつかのロジックを追加することを検討する必要があります:1 - 10 ???カウントが正確でないか、まったく決定できない場合、動的に1から10に変わる必要があります。 –