2017-04-10 15 views
0

Entity Frameworkコードの最初の移行でSQL Azureデータベースの移行を管理するWebツール(C#WebAPI)を構築しました。EFコードの最初の移行、SQL Azureで管理者アカウントを使用しない場合のパフォーマンスの問題

データベースを作成すると、データベースごとにログインとユーザーアカウントも作成されます。

これらのアカウントは、db_datareaderおよびdb_datawriter権限を取得します。

ウェブアプリケーションからこれらのアカウントを使用してデータベースに接続し、現在の移行を取得します。未解決の移行がある場合は、それらを適用します。

何らかの理由で、この操作に毎回(更新を適用せずに)約10秒かかります。

代わりに、AzureでSQLサーバを設定するときに関連付けられたadminアカウントを使用すると、時間は1秒未満になります。

私はパフォーマンスの低下をもたらす何らかの許可が必要であるという結論に達しました。

hereを説明したdb_ddladminの役割を追加しました。成功しませんでした。

Entity Framework MigrationsでDbMigratorクラスを使用して、保留中の移行を取得します。

+0

私はそれが問題かもしれないとは思わない、あなたは再びスクリプトを実行し、 'sys.dm_exec_requests'を使用してデータベースで何が起こっているのか見てみることができますdmv – TheGameiswar

答えて

0

もう少し調査した結果、問題の解決策はmasterデータベースにもSQLユーザーを作成することだとわかりました。

データベースにログインと対応するユーザーが作成される前は、 これによると、post SQL Azureは既定のデータベースをサポートしていないため、マスタデータベースに既定では権限がありませんでした。

ユーザーをmasterデータベースに追加すると、「パフォーマンス」問題が解決されました。

関連する問題