0

私のチームと私は少し謎を経験しており、私たちの調査はすべてゼロになっています。SOの誰かが私たちに探索するための追加の道を提供してくれることを願っています。

クエリを実行して結果を表示するWebサイトがあります。このWebサイトが私の開発マシンまたはテストサーバー上にある場合、非常に遅く、タイムアウトすることがよくあります。

Webサイトをデータベースサーバーに公開すると、クエリの実行時間が速くなります。

クエリのペイロードは約10〜15kしかないため、結果セットのサイズがこのようなパフォーマンスに影響を与えることはありません。

私たちのネットワーク管理者は、dbサーバーとテストサーバーが企業LAN上にあり、LAN上のすべてに広くオープンアクセスできることを示しています。

クエリのパフォーマンスに影響を与える可能性のあるものについて誰かが何か提案がありますか?私たちは皆少し混乱しています。接続は正常に開くことができますが、データテーブルにアダプタを入力しようとすると、処理が停止します。

using (SqlConnection cnSource = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ToString()))
        {
            cnSource.Open();                

            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, cnSource))
            {
                adapter.Fill(records); /*** THIS LINE IS SLOW REMOTELY ***/
            }
  • 編集:約100レコード、全体で4列

  • クエリfwiwは次のとおりです。

クエリは次のとおりです。

SELECT ef.Name AS EventFrame, ef.StartTime, efa.Name AS EventFrameAttribute, 
    CAST(efs.Value as String) as AttrValue 
FROM [Reporting].[EventFrame].[EventFrame] ef
    INNER JOIN [Reporting].[EventFrame].[EventFrameAttribute] efa ON efa.EventFrameID = ef.ID 
    INNER JOIN [Reporting].[Data].[EventFrameSnapshot] efs ON efs.EventFrameAttributeID = efa.ID
WHERE ef.StartTime >= N'{0}'
    AND (efa.Name =N'ProductCategory' or efa.Name =N'ActualCases' or efa.Name=N'Target') 
    AND ef.EventFrameTemplateID=N'9b616c78-7ad3-47a1-a5ae-26d299beb50c'
ORDER BY ef.Name, ef.StartTime, ef.EndTime, efa.Path, efa.Name", 
             start.ToString(new CultureInfo("en-CA"))

ありがとう!

クリス

4

1 に答える 1

0

接続文字列でさまざまなサーバー アドレスを試してみてください。(ローカル) として参照すると SQL ステートメントの実行が非常に遅くなるケースがありましたが、IP アドレス 127.0.0.1 を使用すると正常に実行されました。

于 2013-02-20T16:29:03.480 に答える