2016-09-20 14 views
0

私は、次のコードを実行する方法があります:Azureで実行中にメソッドが停止するのはなぜですか?

var subresulta1 = (from s in surveys 
      select new SurveyViewModel() 
      { 
       Id = s.Id, 
       Name = s.Name.Translation(Language.En), 
       IsActive = s.IsActive, 
       Locations = (from l in resulta.Select(a => a.Question.Location).Distinct() 
        select new LocationViewModel() 
        { 
         Id = l.Id, 
         Name = l.Name.Translation(Language.En), 
         Questions = (from q in resulta.Select(a => a.Question).Distinct() 
          where q.LocationId == l.Id 
          select new QuestionViewModel() 
          { 
           Text = q.QuestionText.Translation(Language.En), 
           Scores = (from a in resulta 
            where a.QuestionId == q.Id 
            select new ScoreViewModel() 
            { 
             Value = (int) a.Value, 
             PositionId = a.SurveyAnswers.PositionId, 
             Date = a.SurveyAnswers.CreatedDate, 
             Location = new LatLonViewModel() 
             { 
              Latitude = a.SurveyAnswers.Latitude, 
              Longitude = a.SurveyAnswers.Longitude 
             } 
            }).ToList() 
          }).ToList() 
        }).ToList() 

      }).ToList(); 

私は私のテストマシン(SQL Server 2012のでのWindows Server 2008 R2)上でそれを実行すると、それが完了するまでに3秒を周りになります。 Azure SQL DBに接続されたアプリケーションサービスとして実行すると、〜4分後に完了します。アプリケーションサーバーの価格設定階層は「標準:1大」とDBサーバー「S2」ですので、マシンのパフォーマンスはここで問題にはならないと思います。もちろん、両方のデータベースのデータは同じです。誰も似たような問題に遭遇しましたか?

EDIT 私はそれがSQLサーバーの問題ではないと思います。私はアプリの問題だと思う。私はDBからすべてのデータを最初に取得し、すべてのロジックを適用するコードを書き直しました。これはより速く完了する(30秒)が、私の自身のサーバーの性能にまだ匹敵しない。どんなアイデアも高く評価されています。

+0

クエリが実行されているときに待機統計を検索する必要があります – TheGameiswar

+0

sys.dm_exec_requests – TheGameiswar

答えて

0

問題は2倍でしたが、最大の問題は、Azureのアプリインスタンスとdbインスタンスのジオロケーションでした。次回AzureでWebアプリケーションを作成するときは、WebアプリとDBサーバーが同じ地域(西ヨーロッパなど)にあることを確認してください。 Azureはデフォルトでランダムなものを入れようとします(私の場合、Central/West US/Brazilです)。

関連する問題