SQL Azure Team Blog

SQL Azure Service Update 4 – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。

データベースのコピー、ヘルプシステムの改善、複数のデータセンターにマイクロソフトのプロジェクトコードネーム「Houston」の展開を行うService Update 4の公開を開始しました。

データベースコピーのサポート:データベースコピーを使用すると、データセンター内の別のサーバーにデータベースのスナップショットをリアルタイムに作成することができます。
この新しいコピーの特徴は、SQL Azureのバックアップサポートの第一弾で、スキーマを作成したり、元のデータベースに変更を加える前にSQL Azureのデータベースをバックアップすることができます。簡単にSQL Azureのスナップショットを取得できるようにすることは、SQL Azureへの一番多かった要望です。
詳細については、MSDNのCopying Databases in SQL Azureと言うタイトルのドキュメントを参照してください。

MSDNドキュメントの追加:MSDNにDevelopment: How-to Topics (SQL Azure Database)と呼ばれる新しい項目を追加しました。ドキュメントは、Microsoft SQL Azureを使用した場合の共通的なプログラミングタスクの実行方法を紹介したリンク集です。

Houstonの更新マイクロソフトのプロジェクトコード名「Houston」は、SQL AzureのWebベースの手軽なデータベース管理ツールです。HoustonはWindows Azure上で動作しており、SQL AzureデータベースとHouston間の待ち時間を減らすために、複数のデータセンターに配置しました。

SQL Azure Team Blog

Security Resources for the Windows Azure Platform – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。

SQL Azureのセキュリティ情報を探しているのでしたら、Security Resouces for Windows Azureを見てみてください。このMSDNライブラリの新しいトピックでは、マイクロソフトのエキスパートによって提供されたり、執筆されたWindows Azure Platformのセキュリティに関するウェブキャストや、ビデオ、ブログ、資料へのリンクを提供しています。
Windows Azure、SQL Azure、Windows Azure AppFabricのセキュリティ情報を提供しています。

Windows Azure Platform Information Experienceチームが、新たに公開されたセキュリティ情報を随時更新していく予定です。

SQL Azure Team Blog

Finding Blocking Queries in SQL Azure – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳し紹介したエントリーです。

遅かったり、長い間実行しているクエリは、過度のリソース消費を伴い、クエリのブロッキングの原因となります。つまり、パフォーマンス劣化につながります。ブロッキングの意味は、SQL ServerとSQL Azureで違いはありません。ブロッキングは、ロックによる同時実行制御を行うリレーショナル データベース マネージメントシステムでは避けることができない特徴です。

以下のクエリは、合計時間が長かったり、ほかのクエリにブロッキングされたりして、実行時間が長いクエリのトップ10を表示します。

SELECT TOP 10 r.session_id, r.plan_handle,
    r.sql_handle, r.request_id,
    r.start_time, r.status,
    r.command, r.database_id,
    r.user_id, r.wait_type,
    r.wait_time, r.last_wait_type,
    r.wait_resource, r.total_elapsed_time,
    r.cpu_time, r.transaction_isolation_level,
    r.row_count, st.text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) as st
WHERE r.blocking_session_id = 0 
    and r.session_id in 
    (SELECT distinct(blocking_session_id)
         FROM sys.dm_exec_requests)
GROUP BY r.session_id, r.plan_handle,
    r.sql_handle, r.request_id,
    r.start_time, r.status,
    r.command, r.database_id,
    r.user_id, r.wait_type,
    r.wait_time, r.last_wait_type,
    r.wait_resource, r.total_elapsed_time,
    r.cpu_time, r.transaction_isolation_level,
    r.row_count, st.text
ORDER BY r.total_elapsed_time desc

ブロッキングの原因は、残念なアプリケーション仕様であったり、残念な実行計画や、インデックスの不足が、ブロッキングの原因となりえます。

 

ブロッキングを理解する

 

SQL Azure上で、一つ目の接続が特定のリソースを共有ロックし、2つ目の接続が同じリソースに共有ロックと矛盾するロックを取得しようとした時にブロッキングが発生します。通常、最初の接続(共有ロック)がリソースをロックしている時間はとても短い時間です。ロックを解放したとき、二つ目の接続は、リソースにロックをかけ、プロセスを続けます。これは普通の動作で、頻繁に発生することでパフォーマンスへの影響はほとんどありません。

トランザクションの続行時間が長くなり、クエリがロックをかけ続けていると、ほかのクエリのパフォーマンスに影響が出ます。クエリがトランザクションを実行しておらず、(かつ、ロックヒント文を使用していない)場合、SELECT分はデータを読み取っている間だけ共有ロックを取得します。INSERTやUPDATEやDELETE分は、実行が終了するまでロックを取得しつづけることで、一貫性とロールバックを行うことができます。

クエリの種類や、トランザクションの分離レベルやロックヒントの使用有無などによって、クエリのロック時間や動きが変わります。詳細については、MSDNを参照してください。

まとめ

 

短くて速くて単純なクエリを多用することがブロッキングの減少につながります。長く大きなトランザクションは、ちいさな塊にし、トランザクション量を減らし、効率のいいSQLを書くようにすることがパフォーマンス観点状重要になります。一つの残念な遅いクエリがブロックすると、ほかの早いクエリまでもが遅くなってしまい全体としてパフォーマンスが劣化してしまいます。

SQL Azure Team Blog

Leveraging SQL Azure with Microsoft Access – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。

SQL Server Migration Assistant(SSMA for Access v4.2)はアップデートされて、Microsoft AccessからSQL Azureへのマイグレーションをサポートするようになりました。今回のリリースでは、ローカルのMicrosoft AccessからSQL Azureへ直接簡単にデータ移行が行えるようになりました。SQL Azureに移行することで、高いスケーラビリティと、データの集中管理や分散配置されたデータの統合管理を行えるようになります。
SQL Server Migration Assistantツールキットは、データベースのマイグレーションを行うときに、複雑な変更条件についてはマニュアルで取り組むよう設計されています。SQL Server Migration Assistantを使用することで、顧客とパートナーは結果的に時間とコストとリスクがあるマニュアル作業を減らすことができます。

既存のAccessアプリケーションのフロントエンド部分は、SQL Azureへデータ移行後も使用し続けることができます。Access 2010は、リンクテーブルを使用してSQL Azureへ接続することができます。クラウドへ移行しても、Accessユーザは既存のインターフェイスを使用し続けることができるので、過去の投資は無駄になりません。

Access 2010でSQL Azureを使用する方法に関する詳細な情報は、Access 2010 and SQL Azure – Microsoft Access – Site Home – MSDN Blogsを参照してください。

SQL Azure Team Blog

The Fast Way to Move from MySQL to SQL Azure – SQL Azure Team Blog – Site Home – MSDN Blogsを簡単に翻訳したエントリーです。

SQL Server Migration Assistant(SSMA for MySQL v1.0)はアップデートされて、MySQLからSQL Azureへのマイグレーションをサポートするようになりました。今回のリリースでは、ローカルのMySQLからSQL Azureへ直接簡単にデータ移行が行えるようになりました。SQL Azureに移行することで、高いスケーラビリティと、データの集中管理や分散配置されたデータの統合管理を行えるようになります。
SQL Server Migration Assistantツールキットは、データベースのマイグレーションを行うときに、複雑な変更条件についてはマニュアルで取り組むよう設計されています。SQL Server Migration Assistantを使用することで、顧客とパートナーは結果的に時間とコストとリスクがあるマニュアル作業を減らすことができます。