先週、フォルシア株式会社のインターンに参加してきました!
参加したのは「検索アプリケーション高速化コース」で、SQLチューニングが主軸です。
いろいろと振り返ります。
参加前に知っていてよかったこと
- 実行計画取得方法
- SQL、PostgreSQLの基礎
- 一番遅いところから優先度つけて対処していく心構え
全体を通して
実務に近い課題に5日間取り組む形でした。
毎日、個人の振り返りとメンターさんとの会話を30分ずつ確保していただいたので、今どこまでできて何ができないのか明確になり、進めやすかったです。それに自分の成長が言語化されるのはありがたいです。
取り組んでいる最中、考えたことをすべてSlackにぶちまけていたのですが笑、それが良しとされる環境なのもやりやすかったです。メンターさんへの状況共有がスムーズでした。
課題とは別で、フォルシアさんのことを知る機会がたくさんあり、嬉しかったです。自由参加多めで負担ないのも助かりました。特に競プロ勉強会がレベル高すぎて印象に残ってます、、笑
1日目
午前は諸々の説明を受け、メンターの方とランチ。出身や趣味の話が中心だったと思います。
肉厚なハンバーグでとても美味しかったです。
午後はいよいよ、本題に取り掛かります。ソースコードもSQLも長すぎてわけがわからなかったので、とりあえずやったことは、
- メンターさんに聞きつつ処理の流れを理解する
- 遅いSQLをログに吐くようにする
- 実行計画を取得して簡単なところからチューニング
という感じです。
あとは気になったことをメンターさんに聞いて終わりました。
どんな仕事しているんですか、とか、明日別の方針でチューニングしたいですがどんな方法がありますか、とか。
2日目
1日目で簡単なところはやり尽くしたので、2日目はとにかく色々やりました。
- 統計情報再取得
- 索引のカラム順全部試す
- ウィンドウ関数の読み方復習
- リグレッション(結果セットが変わる)をやらかしテストの重要性を体感する
進捗は目標の1つを達成でき、その調子で問題ないと言ってもらいました。
課題複数ありましたが、メンターさんを頼りながら行けるところまで頑張れば良いみたいです。(むしろ難しく作っているので、最後まで解かれるほうが困るとのこと)
2日目もランチを奢っていただきました。新宿のミロードのお店です。
文字通りざっくばらんに、就職後にどんな研修を受けどんな業務をするのかお話伺えました。
3日目
中間発表がありました。社員の方が10名ほど参加される会です。
自分のやったことを共有して別の視点から意見を受けるのが目的です。
特に発表資料は必要なく、ゆるゆると発表して意見をいただく形で進めました。
テーブルの設計周りで手法的なヒントをいただき、今後の方針の大枠が固まったと思います。
参考: そのSQL、もっと速くなりますよ。│FORCIA CUBE│フォルシア株式会社
なお、課題はだいぶ詰まっていました。。笑
ランチは中途入社の方と行きました。大手ハードウェアベンダー出身の方もいて、前職と比べたやりがいの話が印象に残ってます。
おふたりとも楽しそうで、社内での話は聞いていて面白かったです。
退勤後、自由参加のボードゲーム会に参加しました。
特にインサイダーというゲームが面白かったです。人狼みのあるゲームで、社員の方にめっちゃ無礼を働いたと思いますが、皆さん優しく遊んで下さいました笑 楽しかったです!
4日目
昨日の中間発表や振り返りで着想を得たものを片っ端から試しました。
- from内の副問合せを撤去するため代替になる表を探す
- joinの前計算テーブルを作成するがうまくいかない
- PL/pgSQLを完全に理解する
- 諸事情あって100テーブル以上作成した
PL/pgSQLは本当に素晴らしいです…
100テーブル作って試したいことがありつつ、どう考えてもスクラッチにはやりたくなかったのですが、PL/pgSQLなら数分でできます。
商用に使うにはパフォーマンスやセキュリティの問題があるものの、手元でいじくるときには超便利です。
参考: 【PL/pgSQL入門】PL/pgSQLを勉強したのでまとめてみた - Qiita
ランチはお弁当で、インターン生だけで集まって話しました。
そもそも毎日ランチなどで会話していたので、仲は良かったと思います、笑
(Twitter繋がってくれてありがとうございます、勝手に絡むのでこれからも仲良くして下さい~~)
5日目
課題完走とはいかなかったものの、ギリギリまでできることを試し、いざ最終発表会です。
発表の場は好きですが、いかんせん資料作成が苦手で、「早くおわれ~~~(恥)」と思いながら発表していました。笑
質疑応答では私の前職の経験まで踏み込んで下さり、純粋に技術的興味を持っていただけたのが嬉しかったです。あと、チューニングをやっていると「なんか速くなった」が多くて、定量的な結果や原因の分析に踏み込めていない点を自覚できて有り難かったです。
メンターさんからは「方針合っていたので惜しかった」と言われました。悔しい。
一緒にインターンしていた方の発表もすごすぎて、素人ながら聞いていて面白かったです。
私も感化されて優秀にならないかな^^
また、最終日ということで、終了後に懇親会がありました。
ゆるゆるとお酒を飲みつつ、元々FFだった人とお話したり、ボードゲームしたりしました。
帰り際には、社員の方からのフィードバックや、メンターさん・人事さんからのお手紙をいただきました。
嬉しいと同時に今日で終わりなのかと悲しかったです、、
終わりに
フォルシア株式会社の社員のみなさま、5日間本当にありがとうございました!
前職からSQLの仕事はすっごく楽しくて、今回のチューニング漬けで「もっとこの領域を強みにしたい」と感じました。
インターンを通して、フォルシアさんは非常にエンジニアを大切にされている会社だと感じました。
また、新しい手法や考え方を知ることができ、技術的にもたくさん持ち帰らせていただきました。
ありがたいことにお給料も良くて本当にとても助かります、、(5日で10万円)
お読みくださりありがとうございました。
ご興味持たれた方は次回ぜひ応募してみてください!
これからインターンの方もファイトです!!