ソートの速度に「デフォルト言語」の設定は影響するのか?

デフォルト言語 とは

Claris FileMaker Pro のフィールドのオプションに、
デフォルト言語の設定があります。

これは索引についての話題でよく登場する設定ですが、
画面上に書いてある通り、
ソートにも影響を及ぼしそうです。

検索動作 での日本語 と Unicode の違い

検索やリレーションの成立において、
このデフォルト言語の設定が日本語の場合、
次の文字は同じ文字として扱われます。

  • A(半角)、A(全角)、a(半角)、a(全角)
  • ア(半角)、ア(全角)
  • 1(半角)、1(全角)

この設定が Unicode の場合は上記はそれぞれ異なる文字として扱われます。
日本語の場合上記の文字を同じものとして演算する余計な時間がプラスされているため、
検索スピードでは Unicode の方が速くなります。

ソート での日本語 と Unicode の違い

テキストフィールドの場合のソートでも動作が異なります。
日本語での昇順は、0(半角)、0(全角)、1(半角)、1(全角)、A(半角)、A(全角)になり、
Unicodeでの昇順は、0(半角)、1(半角)、A(半角)、0(全角)、1(全角)、A(全角)になります。

ソートの速度に「デフォルト言語」の設定は影響するのか?

そんな中タイトルの質問がお風呂に入っている日曜日の夜に頭に浮かび検証しました。
スピードはどうなんだと。

画像は M1 mac 、FileMaker Pro 19.6.1 で 50,000 レコードの検索結果です。
数値は マイクロ秒 です。

Unicode の方が速い

まず明らかに Unicode の方が速いみたいです。
検索の場合は明らかなオーバーヘッドの分だけ遅くなることはわかりますが、
ソートにおいてもそうだったのは意外な結果でした。

非保存の計算フィールドであっても速度に影響がある

非保存の計算フィールドでは、
索引がもてないので索引設定はグレーアウトされますが、
デフォルト言語の選択は可能です。

さすがに索引を持っているフィールドに比べて、
非保存の計算フィールドの方が遅くはなっていますが、
同じ非保存であればこちらも Unicode の方が速いようです。
非保存の計算フィールドでもデフォルト言語の設定が影響するのも意外な結果でした。

さいごに

今回の ローカルファイルで実施した結果です。
クライアント・サーバーで実施した場合は異なる結果がでる可能性、
もしくはもっと大きな差がつくかもしれません。

しかし、最近の FileMaker はキャッシュを上手に使ったり、
ソートをサーバーで行ったり行わなかったりなど、
検証結果から結論を得るのは難しくなっています。
もしこれから更に検証してみたいという方はその点お忘れなく、
検証結果が見えてきたらぜひ教えて下さい。

 

 

【 余談 】
最近下記リンク先への流入増大したいこともあり、
流入量が多いとブログの価値が高まりますます投稿を加速していきたいと思います。
リンク先を開いていただけると大変助かります。
Claris International Inc. (日本語)
ご協力いただけましたら幸いです。

【 開発者募集中 】
弊社では Claris FileMaker を使った高度な開発力で、モバイルデバイスのビジネス利用を楽しく発展させていく仲間を随時募集しています。
詳しくは採用ページをご覧ください。