クラウドとの連携や開発生産性が向上した「SQL Server 2012」。開発生産性を高められるツール「SQL Server Data Tools」やクラウドとオンプレミスの連携が容易になる「データ層アプリケーション」など多くの機能も追加されている。新機能や改善点を紹介し、ユーザーにどのようなメリットがあるかを徹底解説する。最終回となる今回はBIとレポーティングに関する新機能を紹介する。

新しいインデックスは100倍の性能アップ

 列ストアインデックスは、ビジネス・インテリジェンス用のデータ参照性能を向上させられる新しいインデックスである。ビジネス・インテリジェンスでは、特定列の全件、もしくは多くのデータを取得し集計するような処理が多くなる。特定列のデータを効率よく処理できるようにするのが列指向のインデックスである(図9)。

図9●列ストアインデックスの概念
図9●列ストアインデックスの概念

 列ストアインデックスを作成するだけで、クエリオプティマイザが列ストアインデックスの使用も検討するようになる。数十万件から数百万件以上のデータが格納されているテーブルで効力をより発揮する*4。

 ただし、列ストアインデックスが貼られたテーブルはデータを更新できない*5。この制限があるため、更新されないテーブルでの使用になる。もし更新が必要な場合は、列ストアインデックスを無効にした状態で更新し、再度列ストアインデックスを作成する必要がある。

*4 参照性能が数十倍~100倍程度性能が向上することがあるという。
*5 )列ストアインデックスのが貼られたテーブルにInsert、Update、Deleteをすると「メッセージ 35330 INSERT ステートメントが失敗しました」とエラーになる。

レポーティングが使いやすく

 PowerViewは、SQL Server 2012レポーティングサービスとSharePoint Serverで使用する新しい機能である(図10)。ブラウザ上で提供されるPowerViewを使用して、簡単な操作で見栄えの良い分析レポートを作成できる。あらかじめ管理者がデータソースを定義しておくことで、エンドユーザーはブラウザ操作で自由に分析できる。作成したレポートはSharePoint上に登録し、他のユーザーと共有可能だ。

 そのほか、SQL Server 2012では、新たに14個の関数が追加された(表3)。

表3●追加された14個の関数
[画像のクリックで拡大表示]

 月末を返すENMONTH関数は、指定日が含まれた月の最後の日付を取得することができる。例えば、
SELECT EOMONTH ('2012/2/5')
を実行すると、「2012-02-29」を取得できる。

 日付を組み立てる関数は、戻ってくる結果の型ごと関数が用意されている。time、smalldatetime、datetimeoffset、datetime、datetime2、date型が返ってくる。たとえばtime型を返す関数としてDATEFROMPARTS関数、datetime2型を返す関数としてDATETIME2FROMPARTSが提供されている。
SELECT DATETIME2FROMPARTS ( 2010, 12, 31, 23, 59, 59, 0, 0 )
は、引数に指定した数字で日付、時刻を組み立てて、その結果としてDATETIME2型の「2010-12-31 23:59:59.0000000」を返す。