新しいWindows Azure SQL Databaseのサービスアップデートが発表されました。
主な新しい機能は次の通り。
- Windows Azure SQL DatasebaseをSQL Serverのリンクサーバーと分散クエリの対象にすることができるようになった
- Windows Azure SQL Databaseで再起トリガーに対応
- Windows Azure SQL DatabaseでDBCC SHOW_STATISTICSに対応
- データベースレベルでWindows Azure SQL Databaseファイヤーウォールルールを設定できるようになった
Azure SQL Databaseをリンクサーバーと分散クエリの対象にできる
Windows Azure SQL Databaseをリンクサーバーに追加できるようになり、それを使用してオンプレミスとクラウド間で、分散クエリを発行できるようになりました。
従来はODBC~OLEDBプロキシを使用することで分散クエリを発行できましたが、パフォーマンスに難がありました。
オンプレミスとクラウド間で分散クエリを発行できるようになったということは、
オンプレミスのデータベースのテーブルと、クラウドのデータベースのテーブルとを
結合するようなクエリを発行できるということです。
リンクサーバーの設定
次のクエリを、オンプレミスのSQL Serverで実行します。
なお今回の対応は、オンプレミスとクラウド間のリンクサーバーと分散クエリの対応なので、
クラウドとクラウドは対応していません。
Azure SQL Databaseにクエリを発行して、リンクサーバーを定義しようとしてもはじかれます。
リンクサーバーを定義します。
EXEC sp_addlinkedserver
@server=’nora’, — 任意のリンクサーバー名を指定する
@srvproduct=”,
@provider=’sqlncli’, — SQL Server native clientを使用します
@datasrc=’xxxxxx.database.windows.net’, — Azure SQLのサーバー名を指定する
@location=”,
@provstr=”,
@catalog=’AdventureWorksDWAZ2008R2’ — データベース名を指定する
リモートサーバー(Azure SQL Database)の認証情報を設定します。
EXEC sp_addlinkedsrvlogin
@rmtsrvname = ‘nora’, — 上で指定したリンクサーバー名を指定する
@useself = ‘false’,
@rmtuser = ‘userName’, — ログイン名を指定する
@rmtpassword = ‘P@ssw0rd’ — パスワードを指定する
EXEC sp_serveroption ‘nora’, ‘rpc out’, true;
この2つのクエリを発行すると、オンプレミスのSQL Serverにリンクサーバーを定義できます。
SQL Server Management Studioのオブジェクトエクスプローラーで確認できます。
この状態で、オンプレミスのSQL Serverに対して次のようなクエリを発行できるようになります。
select *
into test
from nora.AdventureWorksDWAZ2008R2.dbo.DimDate
Windows Azure SQL Databaseのテーブルからデータを取得して、それをオンプレミスのテーブルに格納しています。
当然、クエリの結合も可能です。
リンクサーバーの詳細については、http://technet.microsoft.com/ja-jp/library/ms188279.aspxを参照してください。
再起トリガーの作成
再起トリガーを実行できるようになりました。
データベースの既定値がONになっているので、再起トリガーを実行できる状態になっています。
再起トリガーの有効、無効の切り替えは次のクエリで実行できます。
ALTER DATABASE YOURDBNAME SET RECURSIVE_TRIGGERS ON|OFF;
再起トリガーの詳細については、http://msdn.microsoft.com/ja-jp/library/ms190739.aspxを参照してください。
DBCC SHOW_STATISTICSが使用できる
Windows Azure SQL Databaseで、どのような統計情報が生成されているのかを確認できるコマンドを使用できるようになりました。
詳細は、http://msdn.microsoft.com/ja-jp/library/ms174384.aspxを見てください。
//ムッシュBlogによると前からつかえたような…?
Azure SQL Databaseでデータベース毎にFirewall設定ができる
「Azure SQL Databaseでデータベース毎にFirewall設定ができるようになりました!」で、案内している通り、データベース毎にルール設定できます。
詳細は、http://msdn.microsoft.com/ja-jp/library/windowsazure/ee621782.aspxを参照してください。これBlogで告知し忘れていた?のか、今さらなアピールですね。
情報源