SQLで高速化を図る
Updated Date: 2024/01/01 02:55
最近こんなことばっかり考えさせられている。
とはいえ、僕自身はSQLがあまり理解できていない。
SQLを上手く使いこなすには、顧客業務や欲しいデータについてを理解した上でないと出来ないと思う。
突如としてやってきた助っ人が、いきなりSQLを改善してしまった! とかいう夢物語はそうそうPJでは生まれないのもそのためだ。
だから、SQLを高速化するためには、
顧客業務を知り、データについてリレーショナルに考え、
少しずつこんがらがった(抽象的なデータ像)を紐解いていく作業が必要となる。
これは結構論理的な思考が当たり前ながら必要で、
場当たり的または直感的な行動がベースな僕にとって、非常に辛い作業なのだ。。
でも、システムを作るうえでDBとの関りはある程度避けては通れない部分だし、
知識を持っておかないと知らず知らずのうちに性能悪化の原因たらしめるSQLやトランザクション制御を行ってしまう可能性は大いにある。
やらなくちゃいけないとは頭では分かっているものの、
現行システムの出すSQLを見ていると、JOINや複合クエリー、副問い合わせの連続で、
切り分けが全く出来ないしそもそも頭にどこがどのデータを絞り込んでいるのかが入ってこない。
いくらリレーショナルだからといっても、
SQLだけ眺めていては何も分からない……(というか長すぎる)
僕はいつまでシステム改修という名の埋め合わせ作業を行うのだろうか……。
既存の問題を解決するのは確かに、挑戦する価値はある。
でも、そうなった理由は実際のところ作り手や進め方に問題がある場合がよくあると既に知っているから、
多分自然と自分からは触れたくないと思っているんだろう。
要するに、面倒な人間関係のコミュニケーションの管理・連携が、SQL云々よりも非常に不安だということ。