SQL Azure

SQL DatabaseからストレージにデータをエクスポートしているとDTUの上限にまで達してしまうのだけど、どうしたらいい?っとstackoverflowで質問されていました。

DTU Limit

 

回答しては、2015年1月段階では次のような状況とのこと。

トランザクション的にデータをエクスポートするには、バックグラウンド大量のクエリを発行する必要があり、フルバックアップが完了するまではクエリが発行され続ける。大きなデータベースだと、そのクエリが原因でDTUの上限に達してしまう。

この問題の解決策としては2つのアプローチが考えられる。

1つ目は、

  • 一時的に上位のサービス帯にアップグレードし、エクスポートをする
  • エクスポートが完了したら、サービス帯を戻す。

2つ目は、

  • ポイントタイムリストア機能を使用して、最も最近のコピーを新しいデータベースにリストアする
  • 新しいデータベースからエクスポートをする(既存のアプリケーションに影響を与えずにすむ)
  • エクスポートが完了したら新しいデータベースを削除する

2つ目の方法がパフォーマンス上優位な対応。

MVP

MVP_FullColor_ForScreen

Microsoft MVP for Windows Azureを受賞しました。
2011年から5年連続5度目の受賞となります。
今年もWindows Azure SQL Databasesを中心にWindows Azureの情報を提供していきます。

 

 

 

 

 

 

ちなみに、こんな感じでmicrosoft.comに自分の自己紹介ページが用意されています。http://mvp.microsoft.com/ja-jp/mvp/Takahito%20Yamatoya-4030576

image

未分類

SQL Server 2014 Management Studio が機能強化し、SQL Database Update V12 (preview) に対応しました。対応は、SQL Server CU5で提供されています。

  • データベースプロパティダイアログの対応
  • テーブルデザイナー
  • オブジェクトエクスプローラーからの各種操作に対応

データベースプロパティでのサービスレベル帯、エディションの表示と変更に対応

image

テーブルデザイナーが対応!

image

Select Top 1000行、Top200行の編集

 

image

マネージメントポータルを開くメニューの追加

 

image

SQL Azure

Azure SQL Databaseのデータベースの状況をモニタリングするためのアプリケーションを開発したときに、使用するデータベースのログイン(ユーザー)についてのお話です。

モニタリング用なので、データベースからユーザーデータが読めたり、データベースの設定をいじれたりしないように、安心でセキュアで信頼できるように最小の権限で設定したいので、最小にする方法が知りたいですよね?
調べた結果をMSDN Blog「Setting up Logins to monitor Azure SQL Databases」に投稿されていたので紹介します。

手順

手順1:LOGINの作成

Create LOGIN APPLOGIN with password=’abcd123?’

手順2:Msterデータベースにユーザー作成

CREATE USER [APPUSER] FOR LOGIN [APPLOGIN] WITH DEFAULT_SCHEMA=[guest]

手順3:対象データベースにユーザー作成

CREATE USER [APPUSER] FOR LOGIN [APPLOGIN] WITH DEFAULT_SCHEMA=[guest]

手順4:対象データベースのユーザーに権限付与

GRANT VIEW DATABASE STATE TO APPUSER

結論

これで、APPLOGINでログインして上げれば、対象のデータベースの動的管理ビューなどは参照できるけど、ユーザーテーブルは参照できないというミニマム権限のモニタリング用ログイン(ユーザー)が作成できました。

次のようなクエリも流せるよ!

データベースサイズのモニタリング

SELECT SUM(reserved_page_count)*8.0/1024
FROM sys.dm_db_partition_stats;
GO

SELECT SUM(reserved_page_count)*8.0/1024
FROM sys.dm_db_partition_stats;
GO

トップ5クエリの抽出

SELECT TOP 5 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time",
MIN(query_stats.statement_text) AS "Statement Text"
FROM
(SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END
– QS.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
GO

SQL Azure

SQL Server PASS Summitで、Azure SQL Databaseに関する大きな発表がありました。

今年(2014年)中に、Azure SQL Databaseの新しいバージョンのプレビューを始めます。
アプリケーションを簡単にクラウドに移行、拡張できるように次のような機能を提供します。

  • オンラインインデックス
  • 並列クエリ(プレミアム・エディションのみ)
  • テーブルパーティショニング
  • ALTERデータベースコマンド
  • 共通言語ランタイムとT-SQLの改善(Windows関数)
  • XMLインデックス
  • 拡張イベントによるモニタリング、トラブルシューティング
  • インメモリ列ストアへの対応(プレミアム・エディションのみ)

参考情報

Preview for greater SQL Server compatibility coming soon to Azure SQL Database

Microsoft announces major update to Azure SQL Database, adds free tier to Azure Machine Learning