SQLCMDの実装の仕方
前提
まず、SQLの処理を大きくRead,Writeと2つに分類する。Readは、SELECT
を使う。Writeは、INSERT
、UPDATE
、DELETE
、ALTER
である。テーブル自体のスキーマを変更するALTER
をWriteに含めるなら、WITH
という一時的にメモリするキーワードも加えた方が良かったかもしれない。とにかく、データベースのクエリエンジン側に命令文を渡して処理してもらうという構図では、Readの方が早く、Writeには時間がかかる。
SQLの結果は、データベースサーバー(クエリエンジンが載っているとこ)からクライアント(ウィンドウに書く側)に転送されると思っている。この際にデータサイズが大きすたら時間がかかると思っている。ユーザーがデータベースサーバーから結果を取得するというオペレーション自体を自動化したいということで、ざっくり「SQL自動化」というマイクロサービスの要件をまとめてみる。
背景
さて、SQLをマニュアルで取得するオペレーションを実世界で経験した人ならオペレーションの全容が想像できると思う。データを理解するためにSELECT
で試行錯誤する。それからSQLを論理立てる、そしてウィンドウにSQLを貼り付けて結果の取得まで待つ・・・まだ、待ってる・・・10分経った、まだかな・・・
と言ったように、データセットのサイズや煩雑なSQLになってしまう場合、10分、40分、下手したら4時間かかってしまうことがある。
そこで、SQL自動化について考えてみよう。どうしたら良かったんだろうね?
実はもう答えは出ているけど、あえて質問にしました。
0