【SQL Server】暗黙的型変換ってなに?【CONVERT IMPLICIT】

【SQL Server】暗黙的型変換ってなに?【CONVERT IMPLICIT】

はじめに

コジマです。

暗黙的型変換というものについて簡単にお話ししたいと思います。

暗黙的型変換ってなに?

違う型を比べたり、INSERT、UPDATEしようとしたときに、
データベース側で勝手に型合わせといてくれる機能のことを言います。

SQL Serverの場合、以下の表で●がついているものは暗黙的型変換の対象となります。


データ型の変換 (データベース エンジン)
より引用

暗黙的型変換をすると何か良くないことがある?

まず、暗黙的型変換をするとインデックスが効かなくなり、パフォーマンスが低下する可能性があります。

ゴリゴリ型変換しなきゃいけないような設計なんてほんとはいけないわけでありますが、
長いこと積み重なった政治的な理由により余儀なくされることがあります。

自分の作ったSQLが暗黙的型変換をしているかどうかは
SSMSやAzure Data StudioのExplain機能を使用して吐き出されたXMLを見ればわかります。
COMVERT_IMPLICIT」という文言が吐き出されていたら暗黙的型変換が存在します。

どうしても暗黙的型変換を解消しなければいけないときは
CASTやCONVERTを使用して明示的に型変換を行ってあげることが必要になります。

対応方法も単純なので、DBの性能問題が出てきたときには白羽の矢が立ちやすいです。

さいごに

ここでは暗黙的型変換について簡単にお話しました。

古い記事ですが、こちらの記事がとてもよくまとまっています。
SQL Server のチューニングについてまとめてみる – その6 – ( CONVERT_IMPLICIT、暗黙の型変換の怖さを知ろう )

この記事では暗黙的型変換についてこういうことなんだな~
ってのが分かっていただけたらうれしいです。

暗黙的型変換のまとめ

  • 暗黙的型変換とは、DBがよしなに型を合わせてくれる機能のこと
  • インデックスが効かなくなり、性能が落ちる原因となる
  • CASTやCONVERTを使って型を明示的に合わせてあげよう

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

SQLをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!

SQLはじめましての人!まずあなたの3時間をください。
この講座でまずこれだけは覚えてくれ!という内容をしっかり押さえることができます。
SQLはプログラミング言語がなんであれ、システム開発に必要になります。
この講座を見て最低限必要な知識を身に着けて実践で貢献できるようになりましょう!
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL

データベースの設計について学べる講座です。
設計について学べる教材は少ないので、実務でデータベースを触る人にはとてもうれしい講座です。
データベース講座1:データベース論理設計

ちょっとニッチに感じるかもしれませんが、SQLのインデックスを学ぶことができる講座です。
よい性能でSQLを運用するためにはインデックスの理解は必要不可欠です。
CRUD書いて満足するエンジニアを出し抜きましょう。
SQLServerのインデックスを理解して検索を速くする方法

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


SQLカテゴリの最新記事