適切なデータ型を選択する

完了

SQL Server ではさまざまなデータ型を選択でき、選択によりパフォーマンスがさまざまな形で影響を受ける可能性があります。 SQL Server は一部のデータ型を自動的に変換できますが (これを ‘暗黙的変換’ と言います)、変換はコストがかかり、クエリ プランに悪影響を及ぼす可能性があります。 代わりの方法に明示的型変換があります。この変換では、コードで CAST 関数または CONVERT 関数を使用してデータ型を強制的に変換します。

このほか、必要よりも大幅に大きなデータ型を選んでしまうと、記憶域の無駄遣いになるうえ、読み取らなければならないページ数も増えてしまいます。 大切なのは、特定のデータ セットに適切なデータ型を選ぶことです。そうすることで、データベースに必要なストレージの総量が減り、実行されるクエリのパフォーマンスが向上します。

注意

場合によっては、変換がまったくできないことがあります。 たとえば、日付をビットに変換することはできません。 変換を使用すると、シークが可能でもインデックス スキャンが実行されるほか、変換自体の CPU オーバーヘッドが発生するため、クエリのパフォーマンスが低下する可能性があります。

次の図は、SQL Server で暗黙的型変換が行われる場合と、コードで明示的にデータ型を変換する必要がある場合を示したものです。

Chart of Type Conversions in SQL Server and Azure SQL

SQL Server では、あらゆるデータについてシステムによりデータ型のセットが提示され、テーブルやクエリで使用できます。 SQL Server では、T-SQL または .NET フレームワークのいずれかでユーザー定義のデータ型を作成できます。