web-dev-qa-db-ja.com

専用マシン上のAzure SQL DatabaseとMS SQL Server

現在、私は次の仕様で270ドル/月でレンタルする専用マシンでMS SQL Server 2014(12.1.4100.1)のインスタンスを実行しています。

  • Intel Xeon E5-1660プロセッサ(6つの物理3.3GHzコア+ハイパースレッディング+ターボ-> 3.9GHz)
  • 64 GB登録済みDDR3 ECCメモリ
  • 240GB Intel SSD
  • 45000 GBの帯域幅転送

Azure SQL Databaseを少しいじってみましたが、彼らのプラットフォームに切り替えるというアイデアを楽しんでいます。 V12サーバーでP2 Premiumの価格帯を使用してAzure SQLデータベースを起動し(テストのためだけに)、既存のデータベースのコピーを(専用マシンから)ロードしました。

専用マシンのデータベースに対して1つ、P2 Azure SQLデータベースに対して1つ、いくつかのクエリセットを並べて実行しました。結果は一種の衝撃的でした:私の専用マシンは、毎回大きなマージンでAzure dbを(実行時間の点で)優れていました。通常、専用dbインスタンスは、Azure dbの実行にかかった時間の1/2から1/3未満で終了します。

これで、Azureプラットフォームの多くの利点を理解できました。専用マシン上で管理されたセットアップと管理されていないセットアップの比較、私が持っているものよりもポイントインタイムの復元が優れている、ファイアウォールの設定が簡単、ジオレプリケーションなどがあります。しかし、データベースには各テーブルに数千から数億のレコードを含む数百のテーブルがあり、複数の結合などでクエリを実行する必要がある場合があるため、実行時間に関するパフォーマンスが本当に重要になります。毎月270ドルの専用機レンタルの次に930ドル/月のサービスのパフォーマンスが悪いことは衝撃的です。私はまだSQL全体としてはかなり新しく、サーバー/なども非常に新しいですが、これは他の誰かに追加されませんか?おそらく誰かが私がここで見逃していることについて何らかの洞察を持っていますか、それともAzure SQL Databaseの他の「管理された」機能が価格の違いを補うことになっていますか?

結論として、私は専用のマシンの能力でさえ成長し始めており、AzureのSQL Databaseが素敵な次の足がかりになることを本当に望んでいましたが、何かを逃さない限り、そうではありません。私はまだビジネスの規模が小さすぎて、外に出て他のプラットフォームに何十万も費やすことができません。

私が何かを見逃しているのか、または私が見ているパフォーマンスはあなたが期待するものと一致していますか?現在実行している専用マシンよりも優れたパフォーマンスを発揮できる他のオプションはありますか? Azure SQL Databaseで実行時間を短縮するためにできること(構成/設定)はありますか?繰り返しますが、どんな助けも大歓迎です。

編集:多分それをもう少し明確にするために私の質問を修正させてください:私が期待する完全な実行時間の観点から見ているものです、専用サーバーは$ 270 /月でMicrosoftのSQL SQL @ 930ドル/月?マネージドとアンマネージドのような他の「特典」を無視し、Azureのような本番用などの意図された使用を無視します。単一の専用マシンのパフォーマンス。

27
Daniel A. Burke

MicrosoftからAzure SQL DBへの代替手段があります。

「AzureでのSQL Server仮想マシンのプロビジョニング」

https://Azure.Microsoft.com/en-us/documentation/articles/virtual-machines-provision-sql-server/

2つのオファリングの違いの詳細な説明:「Azure VMでのAzure SQL DatabaseとSQL Serverの理解」

https://Azure.Microsoft.com/en-us/documentation/articles/data-management-Azure-sql-database-and-sql-server-iaas/

スタンドアロンのSQL ServerとAzure SQL DBの大きな違いの1つは、SQL DBを使用すると、異なるマシンで複数のインスタンスを実行することで実現される高レベルの可用性に料金を支払うことです。これは、4台の専用マシンをレンタルしてAlwaysOn可用性グループで実行するようなもので、コストとパフォーマンスの両方が変わります。ただし、可用性については一度も言及しなかったので、これはあなたのシナリオでは問題ではないと思います。 VMのSQL Serverは、ニーズに合っている場合があります。

11
Jack Richins

パフォーマンスと可用性は別として、考慮すべき他のいくつかの重要な要素があります。

  • 総費用:270ドルのレンタル費用は、多くの費用要因の1つにすぎません。スペース、電力、空調はその他の物理的コストです。それから管理の費用があります。火曜日の各パッチと、WindowsまたはSQL Serverのいずれかがサービスパックまたは累積更新プログラムを出荷するときに、あなたがしなければならない仕事を考えてください。展開する前にテストしなくても、時間と労力がかかります。テストを行う場合、2番目のマシンがあり、テストのために製品インスタンスとワークロードを複製します。
  • セキュリティ:気になるデータをクラウドに保存するのがどれほど悪いか、危険で危険かについて書かれたLOTがあります。個人的には、主要なクラウドプロバイダー(Microsoft、Amazon、Google)で見たよりも、ローカルサーバー(銀行や連邦政府機関でも)でのセキュリティの実装とプロセスが非常に悪いことがわかりました。物事を正しくするのは多くの作業であり、それをさらに正しく行うにはさらに多くの作業が必要です。また、セキュリティSLAを確認および監査できます(Azureの http://Azure.Microsoft.com/en-us/support/trust-center/ を参照)。
  • スケーラビリティ:生のスケーラビリティだけでなく、スケーリングのコストと労力。 Azure SQL DBは最近、テストしたP2の7倍の計算能力を備えた巨大なP11エディションをリリースしました。スケールアップとスケールダウンは瞬時ではありませんが、非常に簡単で合理的に迅速です。最良の部分は(とにかく)、大規模なクエリを実行したり、インデックス作成操作を再実行したり、「通常の」ロードのために再度ダウンさせると、上位エディションにバンプされる可能性があります。これは、ベアメタル上の通常のSQL Serverでは困難です。90%の時間アイドル状態にある非常に大きなボックスをレンタル/購入するか、ダウンタイムをかけて移動します。 VMの場合は少し簡単です。オンラインでメモリを増やすことができますが、CPUを増やすにはインスタンスをバウンスする必要があります。スケールアップ/ダウン操作中、Azure SQL DBはオンラインのままです。
15
SQLmojoe

(免責事項:AzureでもSQL Serverでもありませんが、Microsoftで働いています)。

「Azure SQL」は「SQL Server」と同等ではありません。個人的には、Azure SQLの代わりに一種の「ホストされたSQL Server」を提供したいと思います。

表面的には、この2つは同じです。両方とも、T-SQLのクエリ機能を備えたリレーショナルデータベースシステムです(どちらも、内部で同じDBMSを使用しています)。

Azure SQLは、ideaが2つのデータベースを持っているという点で異なります:ローカルSQLサーバー(理想的には2012以降)を使用する開発データベースとAzure SQL上の運用データベース。 Azure SQLデータベースを直接変更することは決してすべきではありません。実際、SSMSにはAzure SQLの設計ツール(テーブルデザイナー、ビューデザイナーなど)が用意されていないことがわかります。代わりに、ローカルのSQL Serverデータベースを設計および操作し、「DACPAC」ファイル(またはSSDTで生成できる特別な「変更」XMLファイル)を作成します。次に、開発データベースをコピーするようにAzure DBを変更します。 「設計複製」システムの。

それ以外の場合、お気づきのとおり、Azure SQLは組み込みの復元力、バックアップ、管理の簡素化などを提供します。

パフォーマンスに関しては、インデックスやその他の最適化が欠落していた可能性がありますか?また、ローカルSQL Serverと比較してAzure SQLのレイテンシーがわずかに高いことに気付くかもしれません。ping時間(Azure VMからAzure SQL Hostまで)が約5〜10ミリ秒であるため、設計する必要がありますアプリケーションの負荷を軽減するか、ページの読み込み時間を短縮するためにデータ取得操作を並列化します(これが構築しているWebアプリケーションであると仮定します)。

15
Dai

SQL DBには、可用性(パフォーマンスに影響を与える可能性があります)、特定時点の復元機能、およびDR機能が組み込まれています。使用量に基づいてDBを拡大/縮小して、コストを削減するオプションがあります。グローバルクエリ(シャードデータ)を使用して、クエリのパフォーマンスを向上させることができます。 SQl DBは自動アップグレードとパッチ適用を管理し、管理性のストーリーを大幅に改善します。あなたはそれのために少しプレミアムを支払う必要があるかもしれません。アプリケーションレベルのキャッシュ/負荷の均等な分散、コールド時のダウングレードなどにより、データベースのパフォーマンスが向上し、コストが最適化される場合があります。

2