ホームページ >データベース >mysql チュートリアル >SQL Server 2005 で WHERE 句を使用して CASE ステートメントの更新を最適化するにはどうすればよいですか?
SQL Server 2005 での CASE ステートメントの更新を最適化するための WHERE 句の利用
SQL Server 2005 では、CASE ステートメントを使用して更新を行うことができます。指定した条件に基づいて記録します。 ELSE 句を使用すると影響を受けない行を処理できますが、テーブル全体の不必要なスキャンが発生する可能性があります。これは、WHERE 句を使用することで解決できます。
次のステートメントを考えてみましょう:
UPDATE dbo.TestStudents SET LASTNAME = ( CASE WHEN (LASTNAME = 'AAA') THEN 'BBB' WHEN (LASTNAME = 'CCC') THEN 'DDD' WHEN (LASTNAME = 'EEE') THEN 'FFF' ELSE (LASTNAME) END )
このステートメントは、'dbo.TestStudents' テーブル内のレコードを更新し、'LASTNAME' の値を次のように変更します。指定された条件に従って。ただし、ELSE 句は、条件の影響を受けないレコードも含め、テーブル内のすべてのレコードを評価します。
このステートメントを最適化するには、WHERE 句を組み込み、更新する必要があるレコードをフィルタリングできます。
UPDATE dbo.TestStudents SET LASTNAME = CASE WHEN LASTNAME = 'AAA' THEN 'BBB' WHEN LASTNAME = 'CCC' THEN 'DDD' WHEN LASTNAME = 'EEE' THEN 'FFF' ELSE LASTNAME END WHERE LASTNAME IN ('AAA', 'CCC', 'EEE')
WHERE 句を追加すると、ステートメントは「LASTNAME」値が「AAA」、「CCC」、または「CCC」であるレコードのみを評価します。 「ええ」。これによりパフォーマンスが向上し、影響を受けない行の不必要なスキャンが回避されます。したがって、SQL Server 2005 で CASE ステートメントの更新を最適化するには、WHERE 句を組み込むことをお勧めします。
以上がSQL Server 2005 で WHERE 句を使用して CASE ステートメントの更新を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。