REST APIでGETを実行した場合、2000件のデータから1件のみ取得する場合約10秒程度の時間を要してしまいます。
//Grid一覧からボタンを押されたときに、詳細画面を表示する
function showRep(eId) {
var queryString = ‘レコード番号 = "’ + eId + ‘"’;
var fields1 = [‘$id’, ‘レコード番号’];
var thisAppId = kintone.app.getId();
var paramRep = {
‘app’: thisAppId,
‘query’: queryString,
‘fields’: fields1
};
//alert(‘test2’);
//kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, paramRep).then(function(resRep) {
//kintone.api(‘/k/v1/records’, ‘GET’, paramRep, function(resRep) {
kintone.api(‘/k/v1/records’, ‘GET’, paramRep).then(function(resRep) {
//alert(‘test3’);
var lenRep = resRep.records.length;
…
パラメータとしてレコード番号を使用しており、取得される行を1行に限定しているのですが元のデータ数が少ない場合は一瞬でデータの取得ができるのですが、元のレコード数が数百件を超えると結果を取得するだけで10~15秒程度要します。
今のところ取りうる手としては元のレコードを減らすしかなさそうですが、パラメータの扱い方などで何か改善点があればお知らせ願います。
こんにちは。
自分の環境で同じ事を試したのですが、1秒もかからずに結果が返ってきました。(2000件のデータで確認)
文字列フィールドを1つ置いただけなのですが、Fukuda さんの環境はフィールド数はどれぐらいありますか?
あと、アクセス権の設定数が多かったりすると多少影響はありそうですが、アクセス権はどんな感じでしょうか?
asaga様
ご回答ありがとうございます。
フィールド数は30程度、その中にテーブルフィールドが2つありますが、それぞれのテーブルには0~10行ほどのデータが格納される規模感です。
アクセス権については一般ユーザーは「アプリ管理」「ファイル読み込み」のみ利用不可でほかは利用できるようになっておりますが、これは検討した結果なのでこれ以上の機能を制限することは考えていません。
レコード番号をパラメータにして1件抽出するだけなのと、フィールド数も極端に多いとは思えない上にパラメータでfieldsを限定してあるので遅くなる要素はなさそうであり、asaga様の得られた結果が妥当なものと考えられるのですが、想定していなかったので戸惑っています。ちょっとしたことだとは思うのですが。
自分の環境に30フィールドほど追加してみたのですが(テーブルも追加したがデータは空)、それでも一瞬で結果が返りますね。
ちなみに、fieldsを指定しなくてもすぐに結果が返りました。
なんでしょうね(^_^;
切り分けとして、APIの呼び出し元の環境を変えて試してみるというのはどうでしょうか?(ブラウザやクライアントPCに依存した問題かの切り分け)
いくつか方法はありますが、、、
-
HTTP Client Tool for kintoneを使う
https://developer.cybozu.io/hc/ja/articles/115001506986
-
Chromeのデベロッパーツールのコンソールを使う
https://developer.cybozu.io/hc/ja/articles/360025535551
→ブラウザ上での実行なので、今とあまり状況は変わらないかもしれませんが
3.Postmanを使う
https://developer.cybozu.io/hc/ja/articles/360018979492
→OAuth2.0を使う例ですが、パスワード認証でも実行可能です
といったところでしょうか。
すみません本件についてですが、話が複雑になるので詳細は省略しますが、GrapeCityのwijmo Gridを利用して一覧を表示させている際にテーブルに紐付けられていた別アプリのレコードを収集したためにパフォーマンスを落としていたようでした。
このプロセスを省略したら1秒以内にデータを取得することができるようになりました。
別アプリのデータ収集をGrid表示時に行わないことで担当部署とは話をつけたので、本件に関しましては解決とさせていただきます。条件について後出しジャンケンみたいになってしまった点につきましてはお詫びします。
asaga様には重ねてお礼申し上げます。