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

ホーム > 技術情報 > SQL Server 2014 自習書 No.5 Microsoft Azure SQL Database 入門

SQL Server 2014 自習書シリーズ (HTML 版)
「No.5 Microsoft Azure SQL Database 入門」

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

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

4.5 DAC Framework(DAC Fx)によるデータベースの移行

(2015年1月時点での情報)

既存の SQL Server 環境のデータベースを、Azure SQL Database 上へ、丸ごと移行する方法として、一番お勧めなのが DAC(Data-tier Application:データ層アプリケーション)Framework(以降、DAC Fx と記述)の .bacpac を利用する方法です。この .bacpac は、SQL Server 2014 の CU5 以上、または DAC Fx の最新版をインストールことで利用することができます。

DAC Fx の最初のバージョンは、SQL Server 2008 R2 から提供されて、このときは .dacpac というファイル形式(先頭が b ではなく d)で、スキーマのみ(テーブル構造やビュー、ストアド プロシージャなどのオブジェクト定義のみ)をエクスポートおよびインポートできるものでした(データの移行を行うことはできませんでした)。

これに対して、SQL Server 2012 以降では、DAC Fx のバージョンが 2 へ上がって(通称 DAC Fx v2 となって)、データを移行することもできるようになりました。これは .bacpac というファイル形式になります。

執筆時点(2015年1月)での最新版の DAC FxAzure SQL Database V12 に対応した DAC Fx)は、次の URL(SQL Server Data Tools チームの Blog)からダウンロードするか、SQL Server 2014 の CU5 以降を適用することで利用することができます。

http://blogs.msdn.com/b/ssdt/archive/2014/12/18/sql-server-database-tooling-preview-release-for-the-latest-azure-sql-database-update-v12-preview.aspx

00309

◆ Let's Try

それでは、これを試してみましょう。

1.DAC Fx によるデータベースの移行を行うには、次のように Management Studio のオブジェクト エクスプローラーで、移行元の SQL Server に接続して、移行元となるデータベース(画面は NorthwindJ)を右クリックし、[タスク]メニューの[データベースを Windows Azure SQL データベースに配置]をクリックします。

00310

2.ウィザードが開始されたら、[次へ]ボタンをクリックして、次のページへ進みます。

00311

3.次の[配置の設定]ページでは、「接続」ボタンをクリックします。

00312

サーバーへの接続]ダイアログが表示されたら、[サーバー名]に移行先となる Azure SQL Database のSQL サーバー名、[認証]で「SQL Server 認証」を選択、[ログイン]と[パスワード]にに管理者アカウントの名前とパスワードを入力して、[オプション]ボタンをクリックします。

4.接続プロパティ]タブでは、[暗号化接続]をチェックすることで、暗号化接続を有効化することができます。

00313

設定後、[接続]ボタンをクリックします。

5.配置の設定]ページに戻ったら、[新しいデータベース名]に移行先となるデータベース名(既定は移行元と同じ名前。画面は NorthwindJ)を任意で設定します。

00314

Windows Azure SQL データベースの設定]では、データベースのエディション(Basic、Standard、Premium)などを設定しますが、このウィザードによって作成されたデータベースは課金対象になるので、テスト中は Basic を選択することをお勧めします(もちろん、上位のエディションを選択することで、データ移行をすばやく行えるようになりますが、この自習書の手順を試すには、一番安い Basic エディションで大丈夫です)。

なお、SQL Server 2014 の CU5 を適用していない場合は、エディションの選択で「Web」と「Business」しか選択することができません。この2つは古い料金体系(容量課金)のときのもので、どちらも 2015年 9月に中止される予定のエディションになっています。現時点では、Web や Business エディションを利用することも可能なので、CU5 を適用していない環境の場合は、とりあえず一番安い Web エディションの 1GB を選択しておき、データベースの移行が完了した後に、エディションを Basic や Standard に変更する、ということもできます。

設定後は、[次へ]ボタンをクリックして、次のページへ進みます。

6.次の[概要]ページでは、[完了]ボタンをクリックすることで、データベースの移行が開始されます。

00315

7.データベースの移行中は、次のようにページが表示されます。

00316

データベース内の各オブジェクト(テーブルやビュー、ストアド プロシージャ、トリガー)ごとに結果が表示され、すべての[結果]が「成功」と表示されれば、移行が完了です。最後に[閉じる]ボタンをクリックして、ウィザードを終了します。

Basic エディションの場合は、実行(移行)に数分ぐらいかかりますが、上位のエディションに変更することで、実行時間を短縮することができます。

Note: 古い DAC Fx でクラスター化インデックスがないテーブルがある場合
SQL Server 2014 の CU5 以上を適用していない Management Studio の場合は、クラスター化インデックスがないテーブルがある場合は、次のようにエラーが発生して、次へ進むことができません。
00317
Azure SQL Database は、Version 11 のときは、クラスター化インデックスが必須だったので、DAC Fx もクラスター化インデックスが存在するかどうかをチェックしていて、存在しない場合は、このようにエラーを返すように作られていました。今回の NrothwindJ データベース内の「都道府県」テーブルにはクラスター化インデックスを作成していないので、古い DAC Fx を利用している場合には、このようなエラーを確認できます。
Azure SQL Database は、最新の Version 12 では、クラスター化インデックスが必須ではなくなったので、最新の DAC Fx(CU5 以降)であれば、クラスター化インデックスがなかったとしてもエラーにはなりません。

Note: フルテキスト インデックスを作成している場合
Azure SQL Database では(執筆時点では)フルテキスト インデックスがサポートされていないので、SQL Server 側でフルテキスト インデックスを作成している場合は、次のようにエラーが発生します。
00318
このエラーを回避するには、SQL Server 側でフルテキスト インデックスを削除しておくようにします。SQL Server のサンプル データベースである「AdventureWorks」を Azure SQL Database 上に移行して、テストを行いたい場合には、事前にフルテキスト インデックスを削除しておくことで移行できるようになります。

ウィザードが完了したら、Azure SQL Database の SQL サーバーに接続して、移行されたテーブルを参照すると、次のようにデータが正しく移行されていることを確認できます。

00319

◆ ログイン アカウントのパスワードの再設定

DAC Fx では、Azure SQL Database 上にログイン アカウントが既に存在している場合は、そのログイン アカウントを利用し、存在していない場合は、新しく(データベース ユーザーに対応した)ログイン アカウントを自動作成します。

00320

しかし、作成されたログイン アカウントのパスワードは、移行元で設定されたものとは異なるものに設定されてしまっています(.bacpac は、内部的にはスクリプト生成を行っているのですが、パスワードに関しては、セキュリティ強化の目的で、ランダムな英数字が再設定されるようになっています)。

したがって、データベースの移行後は、ログイン アカウントのパスワードを再設定しておくようにします。これを行うには、Azure SQL Database 側で、master データベースに接続して、次のように ALTER LOGIN ステートメントを実行します。

-- Azure SQL Database ログイン アカウントパスワード再設定
ALTER LOGIN sqllogin1 WITH PASSWORD 'P@ssword'
ALTER LOGIN sqllogin2 WITH PASSWORD 'P@ssword'
00321

◆ sqllogin1 でログインして動作の確認

次に、sqllogin1 ログイン アカウントで Azure SQL Database にログインして、オブジェクト権限の設定が正しく動作するか(権限の移行が成功しているか)どうかを確認してみましょう。

1.まずは、次のようにクエリ エディター上で、任意の場所を右クリックして、[接続]メニューから[接続の変更]をクリックします。

00322

2.サーバーへの接続]ダイアログが表示されたら、[サーバー名]に Azure SQL Database の SQL サーバーの名前、[ログイン]に「sqllogin1」、[パスワード]に「P@ssword」と入力(前の手順で再設定したパスワードを入力)して、[オプション]ボタンをクリックします。

00323

接続プロパティ]では、[データベースへの接続]で「NorthwindJ」データベースを選択して、NorthwindJ データベースに接続します。

3.接続後、クエリ エディターで次のように入力して「商品」テーブルを参照してみます。

SELECT FROM 商品

00324

結果はエラーとなり、商品テーブルのデータを参照することはできません(sqllogin1 は、商品テーブルに対する SELECT 権限が付与されていないので、参照することができません)。

4.次に、n_view1 ビューを参照してみます。

SELECT FROM n_view1

00325

このビューに対しては SELECT 権限が付与されているので、データを参照することができています。

以上のように、DAC Fx を利用すれば、既存の SQL Server 環境のデータベースを簡単に Azure SQL Database 上に移行することができます。ログイン アカウントのパスワードの再設定のみが必要になりますが、テーブルやデータだけでなく、制約やビュー、ストアド プロシージャ、トリガー、データベース ユーザー、オブジェクト権限、インデックスなどもそのまま移行することができます。

◆ Contained Database(包含データベース)を利用している場合

前の手順では、ログイン アカウントに紐付いたデータベース ユーザーを利用している場合を想定していましたが、Azure SQL Database は、Contained Database包含データベース)にも対応しています。Contained Database は、SQL Server 2012 から提供された機能で、ログイン アカウントとはマッピングする必要がない(紐付ける必要がない)、データベース内にのみユーザー(包含ユーザー)を作成することができる機能です。SQL Server 2012/2014 を利用している場合は、次のように設定することで、Contained Database 機能を利用できるようになります。

00326

Contained Database 機能を有効化すると、次のように CREATE USER ステートメントで WITH PASSWORD を付けることで、「データベース内にのみ存在するユーザー」=「包含データベース ユーザー」を作成することができます。

00327

これらの Contained Database に関しても、サンプル スクリプトを解凍したフォルダーを展開して、「NorthwindJ_CDB.sql」ファイルを選択し、[開く]ボタンをクリックすれば、試すことができるので、ぜひ試してみてください(NorthwindJ_CDB という名前のデータベースが作成されて、その中に sqluser1 および sqluser2 という包含データベース ユーザーが作成されます)。

Contained Database に設定したデータベースも、DAC Fx(.bacpac)を利用して、同じように Azure SQL Database 上にデータベースを移行することができます。

ただし、移行後は、包含データベース ユーザーのパスワードがリセットされてしまうので(新しいパスワードが再設定されてしまうので)、次のように ALTER USER ステートメントを実行して、パスワードを再設定するようにします。

ALTER USER sqluser1 WITH PASSWORD 'P@ssword'
ALTER USER sqluser2 WITH PASSWORD 'P@ssword'
00328

このように DAC Fx(.bacpac)は、Contained Database(包含データベース)にも対応しています(後述のスクリプト生成ウィザードは、Contained Database には対応していません)。

Note: SQL Server 2012/2014 側で包含データベース ユーザーに変更する方法
SQL Server 2012/2014 では、sp_migrate_user_to_contained システム ストアド プロシージャを利用することで、ログイン アカウントとマッピングされたデータベース ユーザーを、Contained User(包含データベース ユーザー)に変更することもできます。
EXEC sp_migrate_user_to_contained N'DBユーザー名'N'keep_name'N'disable_login'
これを利用すれば、既存のデータベース ユーザーを簡単に包含データベース ユーザーに変更できるので便利です。
データベース ユーザーの数が多い場合には、オンライン ブックの以下のセクションで、すべてのデータベース ユーザーをまとめて変更するためのスクリプトも提供されているので、こちらも参考になると思います。
Contained Database(包含データベース)
https://msdn.microsoft.com/ja-jp/library/ff929071.aspx
DECLARE @username sysname ;
DECLARE user_cursor CURSOR
    FOR 
        SELECT dp.name 
        FROM sys.database_principals AS dp
        JOIN sys.server_principals AS sp 
        ON dp.sid = sp.sid
        WHERE dp.authentication_type AND sp.is_disabled 0;
OPEN user_cursor
FETCH NEXT FROM user_cursor INTO @username
    WHILE @@FETCH_STATUS = 0
    BEGIN
        EXECUTE sp_migrate_user_to_contained 
          @username @username,
          @rename N'keep_name',
          @disablelogin N'disable_login';
    FETCH NEXT FROM user_cursor INTO @username
    END
CLOSE user_cursor ;
DEALLOCATE user_cursor ;

◆ DAC Fx でエクスポートを利用する場合(.bacpac ファイルの作成)

前の手順では、DAC Fx を利用して、直接データベースを移行する手順を説明しましたが、この方法では、内部的には次のように .bacpac というファイルが作成されています。

  • 移行元のデータベースをエクスポート(.bacpac ファイルの作成)
  • 移行先に .bacpac ファイルをインポートしてデータベースを作成

この .bacpac ファイルの作成(エクスポート)やインポートは、個別に実行することもできるので、これも試してみましょう。

1..bacpac ファイルの作成(エクスポート)を行うには、次のように移行元の SQL Server に接続して、該当データベース(NorthwindJ)を右クリックし、[タスク]メニューの[データ層アプリケーションのエクスポート]をクリックします。

00329

データ層アプリケーションは、DAC(Data-tier Application)の日本語訳です。エクスポート メニューのほかに、[データ層アプリケーションの抽出]や、[データ層アプリケーションの配置]、[データ層アプリケーションのアップグレード]など、似たようなメニューがありますが、これらは、DAC Fx の V1(最初のバージョン)相当の .dacpac(スキーマのみ)を作成(抽出)したり、配置(スキーマを配置)したりするものになっていて、.bacpac(データを含んだもの)とは異なるメニューになるので注意してください。

2.ウィザードが開始されたら、[次へ]ボタンをクリックして、次のページへ進みます。

00330

3.次の[エクスポート設定]ページでは、[ローカル ディスクに保存]を選択して、任意の場所に .bacpac ファイルへのパスを記述します(画面は、C:\temp\NorthwindJ.bacpac)。

00331

Note: .bacpac を Azure ストレージ(BLOB ストレージ)上に保存する場合
エクスポートの設定]ページでは、次のように Azure ストレージ上を指定して、.bacpac ファイルを保存することもできます。
00332
00333

4.次の[概要]ページでは、設定内容を確認して[完了]ボタンをクリックします。

00334

これでエクスポートが実行されます。

5.エクスポートが完了すると、次のように、すべての[結果]が「成功」と表示されます。

00335

これで、.bacpac ファイルの作成が完了です。

Note: .bacpac ファイルの中身
.bacpac ファイルは、内部的には zip 形式で圧縮されたファイルになるので、次のように拡張子を .zip に変更すれば。中身を確認することもできます。
00336
00337
.bacpac では、内部的には、bcp コマンドを利用してデータがエクスポートされています(ネイティブ フォーマットが利用されています)。
スキーマ(オブジェクトの定義)は、次のように XML 形式のファイルとしてエクスポートされています。
00338

◆ Management Studio がない場合 ~SqlPackage コマンド~

ここまでの手順は、Management Studio を利用して DAC Fx(.bacpac)を利用する手順を説明しましたが、Management Studio がない環境の場合でも、DAC Fx をインストールしておけば、SqlPackage コマンドを利用して、.bacpac ファイルを作成することができます。

DAC Fx の執筆時点での最新版(SQL Database V12 に対応したもの)は、SQL Server Data Tools チームの以下の Blog からダウンロード/インストールすることができます。

http://blogs.msdn.com/b/ssdt/archive/2014/12/18/sql-server-database-tooling-preview-release-for-the-latest-azure-sql-database-update-v12-preview.aspx

00339

DAC Fx をインストールすると、次のフォルダーに SqlPackage コマンドがインストールされています(32ビット版をインストールしている場合は、Program Files (x86) を付けたパスになります)。

C:\Program Files\Microsoft SQL Server\120\DAC\bin

00340

SqlPackage コマンドは、コマンド ライン ツールなので、コマンド プロンプトを起動して、次のように記述することで、.bacpac ファイルをエクスポートすることができます(32ビット版をインストールしている場合は cd で移動するパスを変更してください)。

cd C:\Program Files\Microsoft SQL Server\120\DAC\bin
sqlpackage.exe /Action:Export /ssn:"移行元のSQL Serverの名前"
 /sdn:"データベース名" /su:"ログインアカウント名" /sp:"パスワード"
 /tf:".bacpacファイルへのパス"
00341

/Action オプションで Export を指定することで、.bacpacファイルのエクスポートを行うことができ、/ssn オプションで移行元となるSQL Serverの名前を指定(画面は MATUMO)、/sdn オプションで移行元となるデータベースの名前(画面は NorthwindJ)、/su と /sp オプションで SQL Server に接続するためのログイン アカウントとパスワード、/tf オプションで .bacpacファイルへのパスを記述します。

エクスポートした .bacpac ファイルを、Azure SQL Database 上にインポートするには、次のように SqlPackage コマンドを実行します(以下のように作成したデータベースは、Standard エディションの S0 として作成されるので、インポートの完了後は、必要に応じてエディションを変更したり、テストが終わったらデータベースの削除をし忘れないように注意してください)。

sqlpackage.exe /Action:Import /tsn:"SQLサーバー名.database.windows.net
   /tdn:"移行先となるデータベース名" /tec:"True"
   /tu:"管理者アカウント名" /tp:"管理者アカウントのパスワード"
   /sf".bacpacファイルへのパス"

インポートするときは、/Action オプションで Import と指定し、/tsn オプションで移行先となる Azure SQL Database の SQL サーバーの名前を指定、/tdn オプションで移行先となるデータベースの名前(新しくデータベースが作成されます)、/tu と /tp オプションで Azure SQL Database の管理者アカウントの名前とパスワード、/sf オプションで .bacpacファイルへのパスを記述します。/tec:"True" は、暗号化接続を行うための指定です。

インポートが完了した後は、ログイン アカウントのパスワードを再設定すれば、データベースの移行が完了です。

◆ Management Studio で .bacpac ファイルのインポート

Management Studio を利用して、Azure SQL Database 上に .bacpac ファイルをインポートする場合は、次のように操作します。

1.まずは、移行先となる Azure SQL Database の SQL サーバーに接続して、[データベース]フォルダーを右クリックして、[データ層アプリケーションのインポート]をクリックします。

00342

2.ウィザードが開始されたら、[次へ]ボタンをクリックして、次のページへ進みます。

00343

3.次の[インポートの設定]ページでは、[ローカル ディスクからインポート]を選択して、インポートしたい .bacpac ファイルを選択します。

00344

4.次の[データベースの設定]ページでは、[新しいデータベース名]で移行先となるデータベース名(既定は移行元と同じ名前)を任意で設定します。

00345

Windows Azure SQL データベースの設定]では、データベースのエディション(Basic、Standard、Premium)などを設定しますが、このウィザードによって作成されたデータベースは課金対象になるので、テスト中は一番安い Basic エディションを選択することをお勧めします。

5.次の[概要]ページでは、[完了]ボタンをクリックすることで、インポートを開始できます。

00346

6.インポート中は、次のページが表示されます。

00347

7.次のように、すべての[結果]が「成功」と表示されれば、インポートが完了です。

00348

インポートが完了した後は、ログイン アカウントのパスワードを再設定すれば、データベースの移行が完了です。

このように、.bacpac ファイルを利用すれば、エクスポートとインポートを利用して、既存の SQL Server 環境のデータベースを、Azure SQL Database 上へ、データを含めて丸ごと簡単に移行することができます。

Note: Azure ポータルで Azure ストレージ上の .bacpac をインポート
.bacpac ファイルを Azure ストレージ上にエクスポートしている場合は、Azure ポータルを利用して、次のように[サーバーの構成]ブレードからインポートすることもできます。
00349
データベースのインポート]をクリックすると、次のように[データベースのインポート]ブレードが表示されるので、[ストレージ]で .bacpac ファイルが格納されているストレージ アカウントのコンテナーを指定します。
00350
後は、[価格レベル]と[データベース名]を指定して、管理者アカウントの名前とパスワードを入力すれば、インポートが開始されます。
00351
インポート中は、次のように[インポート/エクスポート履歴]をクリックすると、進行状況を確認できるようになっています。
00352

◆ データベース サイズが大きい場合の考慮事項

.bacpac では、データベース サイズが大きい場合には、次のように行うのがお勧めです。

  • .bacpac ファイルをエクスポート(ローカル ドライブに保存)
  • エクスポートした .bacpac ファイルを Azure ストレージ上にコピー(AzCopy ツールなどを利用)
  • Azure ポータルを利用して、.bacpac ファイルをインポートする

お勧めする一番の理由は、Azure ポータルを利用することで、インポートの進捗状況を確認できる点です(前ページの Note に記載)。進捗状況が確認できれば、あとどれぐらいで完了するのかを推測することができるので、移行計画を立てやすくなります。実際の移行にあたっては、事前に、実際のデータベース サイズよりも、小さいサイズのものを作成して(データを一部削除するなどして)、移行(インポート)にどれぐらいの時間がかかるのかを計測しておくことをお勧めします。

参考までに、弊社のお客様データ(実際のデータを 1億件スケールに変更したもの)を移行したときの結果が次のとおりです。

00353

データベースのサイズは 2GB で、この中に、テーブル(テーブル名を伏せるために t1 に変更)のサイズ 2GB、データ件数 1億件のものが入っています。

このデータベースに対して、Management Studio(CU5)から .bacpac ファイルのエクスポートを実行して、そのときにかかったおおよその時間は 26分でした(利用したハードウェアは、Core i7 2600K 3.4GHz、32GB メモリ、SSD Crucial MX550 1TB)。

.bacpac ファイルのサイズは、240MB になりました(8分の 1ぐらいにまで圧縮されていました)。

00354

この 240MB の .bacpac ファイルを、AzCopy ツールを利用して、Azure ストレージ上にコピーしたときのスピードは、1分 16秒でした。

00355

AzCopy ツールは、ローカルのファイルを Azure ストレージ上にコピーできるツールですが、監査の最後の項で説明した「Azure SDK 2.5」をインストールしていれば、利用することができます。AzCopy は、次のように利用できます。

cd C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy
azcopy /Source:コピーしたい.bacpacファイルを格納しているローカルフォルダーへのパス
    /Dest:https>://ストレージアカウント名.blob.core.windows.net/コンテナ名 
    /Pattern:".bacpacファイル名前" /DestKey:ストレージアカウントのアクセスキー

/Source オプションでコピーしたい .bacpacファイルを格納しているローカルフォルダーへのパス、/Pattern オプションで .bacpacファイルの名前を指定して、/Dest オプションにストレージ アカウントのコンテナーへの URL、/DestKey オプションにストレージ アカウントへのアクセス キーを入力すれば、ファイルをコピーすることができます。コンテナーの URL やアクセス キーは、次のように Azure ポータルで確認することができます。

00356

このように、Azure ストレージ上にコピーした .bacpac ファイルは、Azure ポータルを利用して、次のようにインポートを行うことができます。

00357

インポート中は、次のように進行状況を確認することができます。

00358

00359

画面は、P2 でインポートを行った場合ですが、37分 19秒で完了することを確認できました。なお、同じ .bacpac ファイルを、P3 でインポートを行った場合には、14分 46秒で完了することも確認できました。インポートの注意点としては、インポート中も、データベースの課金が発生するという点になります(インポートの最初のフェーズでデータベースが作成されるので、そこから課金対象になります)。もちろん、上位のエディション/パフォーマンス レベルを選択することで、インポート時間を大きく短縮することができるので、それとのトレードオフになります。

◆ インポート後、インデックスの再構築をするのがお勧め

インポートが完了した後は、インデックスの再構築をしておくことがお勧めになります。元々の環境では、1億件 2GB のテーブル サイズでしたが、インポートによって、次のように 3.3GB に大きくなりました。

00360

00361

このようにサイズが大きいままだと、クエリ性能に影響が出るので(読み取りI/O 数が増えることになるので)、インデックスの再構築を行って、サイズを元の大きさに戻しておくことがお勧めになります。インデックスの再構築は、次のように ALTER INDEX ステートメントで行えます。

ALTER INDEX インデックス名
 ON テーブル名 REBUILD
00362

インデックスの再構築後は、次のようにサイズが 2GB(移行元と同じサイズ)になることを確認できました。

00363

00364

このように、.bacpac ファイルをインポートした後は、インデックスを再構築しておくことをお勧めします。

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

事例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冊
目次はこちら
松本美穂のコラム
(公開活動などのお知らせ)

第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第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ノート)