SIer

SIerで必要な技術力レベルについて【Lv3:チューニング】

2019年6月15日

歯車

 

どうも、陽翔(@engineer_yosho)です。

 

未経験でエンジニアを目指すあなたへ。 どれくらいの技術力的があれば現場で通じるか、気になっていませんか?

 

答えを言います。

 

SIの現場のエンジニアになるのであれば、高い技術力は必要ないです。ただし、並レベルのコミュニケーション能力は必要です。

 

つまり、並レベルの技術力と並レベルのコミュニケーション力があれば通用します。

 

 

陽翔
本記事のシリーズでは必要な技術力レベルを4つのレベルで解説いたします。

 

  • SIerでは具体的にどのくらいの技術力が必要か?
    • 【Lv1】最低限必要なレベル
    • 【Lv2】次の段階はスピードアップと品質向上
    • 【Lv3】パフォーマンスチューニング
    • 【Lv4】トラブルシュート

 

SIerで必要な技術力レベルについて【エンジニアを目指す人向け】シリーズTOPへ

 

 

本記事では【Lv3】パフォーマンスチューニングについて説明します。

 

是非、最後までお付き合いください。

さあ、どうぞ。

 

 

SIエンジニアは具体的にどのくらいの技術力が必要か?

黒板に数式

 

 

前提のまでのおさらいです。

  • SIプロジェクト
  • 業務アプリケーション開発
  • Webアプリケーション
  • サーバーサイドはJava+RDB

 

【Lv2】までSI現場のエンジニアとしては一応、一人前として通じると思います。

 

【Lv3】パフォーマンスチューニング

さて、次のステップは求める技術レベルが上がります。ですがこのレベルになるとできるエンジニアの仲間入りです。

 

パフォーマンスチューニングというとちょっと難しく聞こえるかもしれません。

 

実際に難しいのですが具体的にイメージをつかんでもらいたいので、専門用語を並べてしまいます。

 

SQLチューニング

業務要件は満たしているけど処理性能が出ない場合、90%くらいの確率でSQLのSELECT文が犯人です。チューニングが必要ですが、SQLのより深い知識が必要となります。

 

SIエンジニアの中で高めの技術力が高めというポジションになりたければ、SQLチューニングのスキルを身に付けるのがコスパが非常に良いです。一応、理由書いておきます。

  • Javaは特だけどSQLが苦手というエンジニアは多い
  • SQLチューニングは深い世界だが、基本技で解決できるケースが多い

 

要するにチューニングの基本さえ抑えておけば、多くのケースに対応できる上、人材としてちょっと希少になれるからですね。

 

陽翔

はい、コスパが良いと思います。

 

本記事は技術記事ではないので詳細は省きますが、知っておくと良い観点はこのあたりですね。(SQLは得意分野なので、需要があればいつか細かく解説するかもです)

  • 無駄に発行しているSQLを廃止
  • インデックスを貼る
  • 効率のよいSQLに書き換える

 

 

プログラムのチューニング【Javaなど】

SQLではなくてJavaなどのプログラムのロジックが犯人の場合もあります。パターンは色々ありますが、参考までによくありそうな2パターンを紹介しておきます。

 

①SQLチューニングとの併せ技

  • ループ内のSQLを怪しむ
    • それがSELECT文だったらそのままループの外に出せる可能性大
    • それがDML(INSERT、UPDATE、DELETE)だったら、ループの外に出してSQLを書き換える(例)1行1行UPDATEではなくて複数行一括でUPDATEなど(ぐるぐる系⇒ガツン系へ書き換え)
  • 動的にSQL文を作り上げるロジックは要注意
    • 一覧検索画面によくあるパターンで、指定した条件のみをWHERE句として動的にSQLを組むケース
    • 【条件が多かったり、複数選択でIN句を作り上げるケースなど】出来上がりのSQLが劇遅ケースがある。全パターンチェックする。

 

②無駄なオブジェクト、非効率なオブジェクト

  • DBから取得した値を格納するJavaオブジェクト(一般的にDTOと呼称)が無駄なケース。数カラムだけが必要なケースに、全カラムを取得している。カラム数が多いテーブルの一覧表示画面などで起こりえる。 ⇒ 必要なカラムのみを取得するSQLとDTOを作る事で改善。
  • Mapを使うべきところ配列やArrayListを使っている。 ⇒ 値の出し入れを良くするような場合、配列やArrayListで無駄なループをしているケース。Mapであれば出し入れは一瞬だし、ソースもきれいになる。

 

やっぱりちょっと込み入った内容になってしまいました。

 

現段階でこの記事の内容が理解できなくても問題ありません。

 

パフォーマンスチューニングは奥が深くて、このレベルが出来るようになると出来るエンジニアの仲間入りとだけ覚えていてください。

 

最後までお付き合い頂きありがとうございました。

 

SIerで必要な技術力レベルについて【エンジニアを目指す人向け】シリーズTOP

 

SIerで必要な技術力レベルについて【Lv4:トラブルシュート】

PC
SIerで必要な技術力レベルについて【Lv4:トラブルシュート】

続きを見る

 

-SIer

Copyright© 陽翔キャリア , 2020 All Rights Reserved.