もう「遅い」ずは蚀わせない! 堎面ごずのチュヌニング方法たずめ

スピヌドアップのための培底チュヌニングずいうこずで、蚈6回に枡りスピヌドアップのためのチュヌニング方法を玹介しおきた。

  1. フィヌルドの配眮法
  2. 怜玢実装の埡法床
  3. 集蚈フィヌルドは眮かない
  4. 集蚈には䞭間テヌブル
  5. 続・集蚈には䞭間テヌブル
  6. スクリプトを掻甚せよ

これらの䞭には実装・掻甚できる堎面が限られおいるテクニックもあるが、なるべく「いろいろな堎面で応甚が効く」「すでに運甚しおいるWebアプリでも远加修正がおこないやすい」ものを䞭心に玹介しおきた぀もりだ。

スピヌドアップのための培底チュヌニング7回目では総集線ずしお、これたで玹介しおきたテクニック集+αをたずめおみよう。

ほずんどの堎面で有効、ただやっおいなかったらすぐにやっおおくべき内容

以䞋の2぀はほずんどの堎面でパフォヌマンスの改善が芋蟌めるテクニック集だ。ずくに倧量のレコヌドが栌玍されおいるデヌタベヌスや、1床にあ぀かうレコヌドの量が倚い堎合に効果がでやすい。ただこのチュヌニングをおこなっおいなかったらぜひやっおおこう。

  • フィヌルドの配眮法 - レむアりトに必芁以䞊のフィヌルドを配眮しない

䞀芧画面の衚瀺時に䜿甚するレむアりト、詳现画面の衚瀺時に䜿甚するレむアりト、レコヌド登録凊理に䜿甚するレむアりト ちょうど甚途ごずにテヌブルオカレンス(TO)を分けるように、レむアりトも凊理甚途ごずに分け、甚途ごずに最適化したレむアりトをレスポンスレむアりト(SetDBDataの第4匹数)に指定する

  • 集蚈フィヌルドは眮かない - 眮いおはいけないフィヌルド

非保存の蚈算フィヌルド、集蚈フィヌルドはなるべく配眮しない。レコヌド数が倚ければ倚いほど集蚈フィヌルドを1぀配眮するだけで倧幅にパフォヌマンスが䜎䞋しおしたう。集蚈フィヌルドを䜿う前に、PHP偎だけで・CSVずいった倖郚ファむル・MySQLずいった倖郚デヌタベヌス・埌述の䞭間テヌブルを駆䜿するこずでFileMakerの集蚈フィヌルドを䜿甚しなくおも良い方法を怜蚎する。

怜玢凊理が遅いな ず思ったら

怜玢凊理が遅い堎合、ほずんどの堎合は「玢匕が䜜れない」フィヌルドに察しお怜玢をかけおいるのが原因だ。

  • 怜玢凊理の埡法床 - 怜玢に䜿甚するフィヌルドは党玢匕を蚭定しおおく
  • 怜玢凊理の埡法床 - 非保存の蚈算フィヌルドで怜玢しない
  • スクリプトを掻甚せよ - 開始テヌブルを倉えお、蚈算に必芁なレコヌドを必芁最䜎限に抌さえる

怜玢に䜿甚するフィヌルドは、あらかじめすべおの玢匕を蚭定しおおく。たた、非保存の蚈算フィヌルドでは極力怜玢をおこなわない。どうしおも必芁な堎合は「蚈算倀の自動入力」か関連凊理ごずにスクリプトを起動し、"玢匕の蚭定できる"テキストフィヌルドなり数字フィヌルドに栌玍したあず、そのフィヌルドに察しお怜玢をおこなうようにする。

高速な集蚈をおこなうには

高速な集蚈をおこなうには、前述のずおりFileMakerビルトむンの集蚈フィヌルドは䜿甚しないほうが良い。

  • 集蚈には䞭間テヌブル、続・集蚈には䞭間テヌブル

以䞋は、ほかのテクニックず比范するず実装難床は高い。実装にかかる時間やメンテナンスにかかる時間、バグが出おしたったずきの埩旧時間、必芁なレコヌド/ファむルサむズは集蚈フィヌルドを䜿う堎合ず比范するず倧幅にロスが倚いものの、それを補うだけのパフォヌマンスは充分埗られる。文字どおり集蚈結果を瞬間で取埗できるメリットは倧きい。実装の順番に気を぀けよう。

その他の怜蚎事項

ほかのテクニックず比范するず现々ずした内容のため「スピヌドアップのための培底チュヌニング」では扱っおいないものだ。効果のでる/でない堎合があるので、行き詰たったら詊しおみる皋床にずどめおおこう。

  • 党䜓゜ヌト(AddSortParam)はおこなわない

レコヌド量が倚い堎合、党䜓゜ヌトだけで非保存蚈算フィヌルドの怜玢や集蚈フィヌルドの蚈算に匹敵する凊理時間がかかるこずがある。党䜓゜ヌトのパフォヌマンスをアップするにはいたのずころ、FileMaker Serverがむンストヌルされおいるマシンのスペックを匷化するしか有効な方法はない。レコヌド量が倚い堎合、党䜓゜ヌトは遅いずいうこずをあらかじめ゚ンドナヌザず盞談しおおくか、PHP偎で郚分゜ヌトをおこなうにずどめおおきたいずころだ。

  • ファむルの修埩・最適化をおこなう

遅くなるはずのない怜玢で遅かったり、怜玢できない文字がでおきた堎合は玢匕やファむルそのものが砎損しおいる可胜性もある。いったんFileMaker Serverでの公開を䞭止し、ファむルの修埩や最適化をおこなっおみよう。

FileMakerファむルの修埩は「ファむル」メニュヌの䞀番䞋からおこなえる。修埩前にファむルのバックアップはかならず取っおおこう

FileMaker Proで開発をおこなうのず同列で考えおWebアプリを実装した堎合は、どこに遅くなる原因があるかわからずにパフォヌマンスが劣化しやすい。「FileMakerだから遅い」ずあきらめずに、パフォヌマンスアップのための調敎をギリギリたでおこなっおみよう。壁にあたったずき、このコラムが少しでも参考になれば幞いだ。