SQL Server のことなら SQL Quality SQL Server パフォーマンス チューニング、コンサルティング、アドバイス、相談、定期診断、トレーニング

ホーム > 技術情報 > SQL Server 2012 自習書 DWH 関連の新機能

SQL Server 2012 自習書シリーズ (HTML 版)
新機能編 No.3「DWH(データ ウェアハウス)関連の新機能」

松本美穂と松本崇博が執筆した SQL Server 2012 自習書シリーズの「新機能編 No.3 DWH 関連の新機能」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2014年12月26日]

目次へ | 前のページへ | 次のページへ

2.3 列ストア インデックスでのデータ更新

◆ 列ストア インデックスでのデータ更新

次に、列ストア インデックスがある場合のデータ更新を試してみましょう。

1.次のように UPDATE ステートメントを実行して、a=1 のデータを更新してみます。

-- データ更新
UPDATE t1
 SET 999
  WHERE 1

00038

結果は、上画面のエラーになり、UPDATE ステートメントは失敗します。列ストア インデックスを設定した場合は、データの更新(UPDATE/DELETE/INSERT)ができなくなります。データ更新を行うには、列ストア インデックスを無効化または削除する必要があります。

2.列ストア インデックスを無効化するには、次のように ALTER INDEX ステートメントで DISABLE を指定します。

-- ストア インデックス無効化
ALTER INDEX cidx1
 ON t1
  DISABLE

00039

コマンドは正常に完了しました」と表示されれば、無効化が完了です。

3.次に、もう一度 UPDATE ステートメントを実行して、データを更新してみましょう。

-- データ更新
 UPDATE t1
  SET 999
   WHERE 1

00040

今度は、データ更新が成功していることを確認できます。

4.次に、SELECT ステートメントを実行して、更新された結果を確認しておきましょう。

-- 確認
SELECT FROM t1
 WHERE 1

00041

a=1 のデータの b 列の値が 999 に更新されていることを確認できます。

5.次に、列ストア インデックスを明示的に指定して、GROUP BY 演算を実行してみましょう。

SELECT bMAX(a)
 FROM t1 WITH(INDEX=cidx1)
 GROUP BY b

00042

結果は、エラーとなります。列ストア インデックスが無効化されている場合は、列ストア インデックスを利用することができません。

6.無効化した列ストア インデックスを有効化するには、次のように ALTER INDEX ステートメントで REBUILD(再構築)を指定します。

-- ストア インデックス有効化
ALTER INDEX cidx1
 ON t1
  REBUILD

00043

コマンドは正常に完了しました」と表示されれば、有効化が完了です。有効化にかかる時間は、再構築(再作成)にかかる時間と同じなので、列ストア インデックスを作成したときと、ほぼ同じぐらいの時間がかかります。

7.有効化が完了したら、列ストア インデックスを指定して、GROUP BY 演算を行ってみましょう。

-- 有効化したこと実行できること確認
SELECT bMAX(a)
 FROM t1 WITH(INDEX=cidx1)
 GROUP BY b

00044

今度は、結果を取得できたことを確認できます。

このように、列ストア インデックスでは、データ更新を行うことができないので、データを更新する前に、無効化または削除を行っておく必要があります。

[HTML 版補足]: SQL Server 2014 からは、列ストア インデックスでデータ更新が行えるようになりました。この更新可能な列ストア インデックスは、「クラスター化列ストア インデックス」(CCSI)と呼ばれています。これについては、SQL Server 2014 自習書シリーズの「SQL Server 2014 の新機能ダイジェスト」編で解説しているので、こちらもぜひご覧いただければと思います。

目次へ | 前のページへ | 次のページへ

事例1

MPNロゴ


SQLQualityは執筆とセミナーを通じて技術の啓蒙やエンジニアの育成支援も行っています
最新刊
SQL Server 2012 の教科書
SQL Server 2012 の教科書(ソシム)

弊社オリジナル制作の
SQL Server 2012 自習書も
マイクロソフトのサイトで公開中!
ロングセラー
ASP.NET でいってみよう  SQL Server 2000 でいってみよう
ASP.NET でいってみよう
第7刷 16,500 部発行
SQL Server 2000 でいってみよう
第12刷 28,500 部発行


セミナー風景
セミナー風景

弊社執筆の
SQL Server 2012 自習書
マイクロソフトのサイトで公開中
全30冊
ダウンロードはこちら
弊社執筆の
SQL Server 2008 R2 自習書
マイクロソフトのサイトで公開中
全30冊
目次はこちら
松本美穂のコラム
(公開活動などのお知らせ)

第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回:iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回:PASS Summit 2012 参加レポート
第31回:SQL Server 2012 Reporting Services 自習書のお知らせ
第30回:SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回:書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回:SQL Server 2012 の Power View 機能のご紹介
第25回:SQL Server 2012 の Data Quality Services
第24回:SQL Server 2012 自習書のご案内と初セミナー報告
第23回:Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加

技術コミュニティでも活動中

Microsoft MVP for SQL Server

松本崇博 Blog(SQL Server Tips)
松本美穂ブログ(SQL Serverノート)