SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

ほとんどのエンジニアは「Staticオジサン」よりひどい1

「Staticオジサン」が炎上して10年ほど経ちましたが、当時、私が指摘した通りほとんどのエンジニアは「Staticオジサン」よりひどく、10年経っても改善してないどころか、更にひどくなっているのではないかと思います。

目次

 

自分はできると思う人は例題にチャレンジ

「自分はできる」と思う人も、思わない人も、下の単純な問題にチャレンジしてみてください。

f:id:Sikushima:20190417101503p:plain

f:id:Sikushima:20190417101601p:plain

答え合わせは以下のリンクで

ほとんどのエンジニアは「Staticオジサン」よりひどい2 - SQLer 生島勘富 のブログ

ほとんどのエンジニアは「Staticオジサン」よりひどい3 - SQLer 生島勘富 のブログ

実行計画のキャッシュについて2 - 各RDBMSについて

SQL文の動的生成を避けるには、実行計画のキャッシュを意識しなければなりません。

そこで、RDBMS毎にキャッシュのやり方が違いますからその違いと、「本当はこういう構造にすれば良いのに」という提案について書きます。

 目次

続きを読む

実行計画のキャッシュについて1 - 分岐を避けるSQL

かつて文字列連結をして、SQL文を構築していた時代がありました。

現在では ORM を利用することが多いかもしれません。

しかし、論理演算をしっかり理解して工夫すれば SQL だけで WHERE句などを分岐せずに作ることが可能です。

目次

  • 目次
  • 分岐(IF文)か計算式か
  • 論理演算について
  • 分岐を避けるSQL
  • パースが必要(実行計画のキャッシュが使えない)

 

続きを読む

SQLでbit演算を使うパターン

WHERE句は論理演算の塊になるため、論理演算の理解は非常に重要です。

論理演算の応用として bit演算も SQL にもあります。

bit演算結果をデータとして保存することは、多用はいけませんが効果が高いこともあるのでご紹介します。

 

目次

  • 目次
  • FROM句、WHERE句での論理演算
  • bit演算式
  • bit演算式の例
  • ■ チューニング

 

続きを読む

第14・15回 SQL Server 2019勉強会より - はてなブログに引っ越し記念

はてなのブログに引っ越しました。

思い出したようにブログを再開したいと思います。

目次

  • 目次
  • Twitterは議論に向かない。
  • 私の主張
    • SQLの方が息が長いからロジックをSQLへ寄せた方が良い
    • SQLが分かりにくいという常識とは?
    • 教育からやり直すべき
    • 嫌いな人に関わらせない!
  • 議論にあたり
    • 技術的な議論
    • 営業的な議論

 

続きを読む

消費税増税で景気を回復させる!

通常、不況は数年で収束するけれど、

バブル崩壊後、日本は全然立ち上がれない。それは……
バブルが急峻すぎたこと。バブル崩壊労働人口減少の始まりの時期が重なってしまったこと。なども、原因ではあるけれど、最大の原因は、日本は目の前の出血を極端に嫌うこと(だと思う)。目の前の出血を嫌ったあまり、

  1.不良債権の処理を極力遅らせた(しなかった)
  2.賃金を落としても雇用を守った。
  3.指名解雇をできるようにしなかった。
  4.非正規を安く使うようになった。

これが未だに尾を引いている。2〜4で、

  賃金上昇が起きない → 価格競争できる → デフレ

という流れが定着してしまった。

ここで、勘違いしないで欲しいのは、非正規が悪いのではなく、非正規の方が賃金が安いことが問題。指名解雇ができれば雇用の流動性が生まれ、労働賃金は市場原理によって動くようになる。だから、タレントや野球選手のように流動性が高い職種では、フリー(非正規)の方が高くなる。他に、流動性が高いIT技術者のような職種も、流動性が高いレベル(中小企業間では)フリーランスの方が高くなっている。しかし、流動性がない大手IT企業の下請けになると、下請け価格は市場原理とは違うところで決まる。というように、流動性が高ければ市場原理が効きやすく、流動性が低いと市場原理ではない価格決定がなされる。

アベノミクスについては、極端な円高を放置した民主党政権がひど過ぎたので金融緩和をする必要があった。戦力の逐次投入なんて意味がないので、黒田バズーカは悪いとは言わない。
しかし、リフレで経済問題が解決するはずがないから、ちゃんとした出口戦略として成長戦略が必要だし、財政再建も考えないと行けない。私は、上の通り成長戦略のキモは、解雇規制の撤廃と考えている。指名解雇ができるようになれば労働市場に市場原理が効くようになる。

  悪い上司が、滅多やたらにクビを切ったらどうするのか?
  そんな上司がいるところはさっさと辞めればよい。
  労働者不足でも会社は潰れるのですから、滅茶苦茶にクビに
  する会社なんて潰れるでしょう。貴方に給料分の能力がある
  なら、会社は貴方のクビを切ることはありません。

市場原理が働けば、同じ仕事をするなら不安定な非正規の方が高くなる。日本は労働人口が減少していくことは確定しているため、潜在成長率は基本的にゼロと考えるべき。今、少し上向いているのは、リーマンショック民主党政権の悪政というマイナスからの調整局面で、本質的に何も変わってない。それでも、バブル崩壊時まで戻ってないから、労働市場に市場原理を入れることによってそれぐらいには戻ると予想している。その先は、余程のイノベーションが起きたり、大きな新しい産業が生まれない限り、ゼロベースじゃないですかね。

ゼロベースで高齢化が進み社会保障費が掛かるようになるから、財政再建は非常に難しく、消費税増税でやるしかない。

ここで、どういう訳か現役世代でも消費税が嫌いな人が多いので、消費税の意味を考えると……

金を持っている老人から取るには、
    消費税
    贈与税(実際に払うのは貰ったおそらく現役世代)
    相続税(実際に払うのは貰ったおそらく現役世代)
しかない。ぶっちゃけ、消費税が一番手っ取り早い訳。
    直接税は、働いている人しか払わない税金。
    消費税は、老人からも取れる税金。
という意味をよく考える必要がある。

例えば、2014年に消費税は3%上がったが、2014年からでも社会保険と厚生年金は、合計で3%近く上がっている。消費税がなければ、さらに高率で社会保険料所得税などがジリジリ上がる。完全に現役世代から搾り取られているのに、なぜ不満の声が上がらないのか理解できない。

消費税を止めるべきという人は、「自分たちだけで老人を支えます」と言ってるのと同じで、その考え方は改めるべき。潜在成長率がゼロなのに、「景気回復させて所得税法人税で」という考え方も、あっという間に自分のクビを絞めることになる。バブル崩壊から回復できないのと同じように……。

つまり、財政再建(老人を支える原資)は消費税増税で行うべき。消費税を上げなければ、現役世代だけに掛かる直接税や、社会保障費が上がるだけ。そんな不公平をなくすには、消費税は20%ぐらい要ることは間違いない。

もちろん、一気に20%にはできないから、12年間、毎年1%ずつ上げ続ければよい。そうすれば、現金資産を持っている人にとって、12年後には確実に12%価値が目減りすることになる。

フロー(現金収入)ではなく、ストック(現金資産)に課税できる訳。

「できる限り今年中に物に変えよう」
今年を逃しても、来年になったら、11年後には11%目減りすると考えられるから、
「やっぱり早く現金を物に変えよう」
という消費に対するインセンティブを引き起こせる。

現金資産を持っている老人に、「使わないと損」言う状況を作り出す。金が回れば景気は回復する。更に、財政は確実に良くなり、積極的に社会保障の体制を作り直すことができる。

ここで、消費税増税をしたら、
年金生活者が」とか、
「失業者が」とか、
言う人が出るけれど、そう言う人はリフレ派だったりするのです。

リフレ派の言う通り、毎年2%のインフレが達成されるようになったとしましょう。
年金は-0.9で物価スライド。つまり、年金生活者は、毎年、0.9複利で生活が苦しくなる。失業保険も、かなり遅れて物価(賃金)でスライドするが、毎年複利になるインフレは、消費税増税とほぼ同じか、むしろ増税より厳しい。

更に、リフレ派のやり方では、景気回復分しか税収が伸びないばかりか、国債発行額は積み増しされて行くけれど、消費税増税なら、財政再建が進むので、本当に生活が苦しい人に社会保障を回す原資を作ることができる。

理論的には、リフレよりは上手く行きますが、

    解雇規制撤廃(指名解雇制)
    消費税を20%まで増税

どちらも、字面だけでも怖く、特にリフレ派の人なんて検討もしてないはず。しかし、20年以上も不況が続くやり方が正しい訳はないし、4年続けてマイナス金利までやっても、リフレ派の言う通りインフレは起きない!民主党政権がやった暗い雰囲気を戻すために、背中を押す程度のことでしかない。もう、間違いを認めた方が良い。

もちろん、消費税を考えるとき、「中小企業に云々」と言う人がでるが、そう言う人は消費税の仕組みを理解できてない。是非、図の内容は理解してから考えて欲しい。

元請には消費税が何%でも影響は全くないのに、元請に「消費税込みでと言われた」というのは、単純に値引き要求をされただけで、消費税は全く関係ない。営業マンの中には理解していない人もいるし、「夏祭りだから値引け」みたいにノリで言ってる可能性もある。何にしても値引き要求に勝てないのは、消費税のせいではない。

=============

私の言ってることは、マイナス金利よりは常識的な考えなんですけどね。
あり得ないと思っている側に答えがあるものです。
ちなみに、本業の方も、皆さんが目先で考える反対側の主張をしています。逆張りじゃなく、常識を取っ払って、ゼロベースで考えたらそうなるだけです。

「艦これ」についてのまとめ #艦これ

「艦これ」についてというには、遠いけれど、「艦これ」からソーシャル系のシステムについて考えた話についてまとめました。

一覧

「艦これ」から、ソーシャル系のサーバ構成を考える http://d.hatena.ne.jp/Sikushima/20130901/1378021345
お手製クラスター構成は良くないよというお話。

「艦これ」もう少し思い出して考えてみた http://d.hatena.ne.jp/Sikushima/20130904/1378261621
アニメーションの間、非同期で処理してる?というお話。

もうちょっと「艦これ」からSQLを考えてみる1 http://d.hatena.ne.jp/Sikushima/20131014/1381715465
SQLでするとこんな感じになるというお話。

もうちょっと「艦これ」からSQLを考えてみる2 http://d.hatena.ne.jp/Sikushima/20131104/1383554586
システム全体の流れから、SQLを考えてみる。

もうちょっと「艦これ」からSQLを考えてみる3 http://d.hatena.ne.jp/Sikushima/20131108/1383876997
もう少し、システム全体の流れを考えてみる。RDBMS を使う限り SQLを使わなければ、必ず非効率になるという話。

もうちょっと「艦これ」からSQLを考えてみる4 http://d.hatena.ne.jp/Sikushima/20131110/1384051720
ストアドファンクション(プロシージャ)を利用すればここまでキレイにできるという話。

とにかくやった方が良い

何にしても、RDBMSを使う限り、SQLを使うか、SQLをショートカットするAPIを使わない限り、システムの負荷も、パフォーマンスも悪くなる。負荷とパフォーマンスを犠牲にするのは、顧客に対する便益を犠牲にするということ。SQLができない人が多い、ということは技術者(システム会社)の都合でしかない。

できない技術者のために犠牲にしているのは、100倍(10000%)という単位のロス。

Javaや.Netなどで下手糞に作っても100倍という差は中々出ないけれど、数十%の差でも鬼の首を取った様に大騒ぎするが、「SQLはできなくても良い」というのは、技術者としてどうなのか?

日本で最も取得者が多い資格は、初級シスアドで、中学生から、OL、主婦まで取ってきました。それは、業界としての常識と言って差し障りはないでしょう。その初級シスアドの問題を見れば、技術者ばかりでなく、営業や経営者まで、全員ができて当たり前なんです。

できないと言うだけでなく、SQLを使いきらなければ負荷が下がらないということに、「炎上」とかいって絡んで来た馬鹿が大勢いました。彼らはいっぱしの技術者のつもりでしょうが、こんなシステムの単純なフロー http://d.hatena.ne.jp/Sikushima/20131108/1383876997 が頭の中になく RDBMSブラックボックスとしている証拠です。この程度のフローが分かってないのは技術者とは言えない。技術者どころか人間のクズでしょう。

人間のクズにならないように勉強した方が良い。工数の差は見せようがないのですけど、そら滅茶苦茶な差が付きますよ。