2013-02-19 60 views
0

我和我的團隊正在經歷一些謎團,我們所有的調查結果都是零。我希望SO上的某個人能爲我們提供額外的探索途徑。從遠程網站緩慢執行的SQL Server查詢

我有一個網站,執行查詢並顯示結果。當這個網站在我的開發機器或測試服務器上時,它的速度極慢,甚至超過它。

當我發佈網站的db服務器時,查詢執行時間很快。

查詢的有效載荷只有10-15k左右,所以結果集的大小不應該像這樣影響性能。

我們的網絡管理員指出數據庫服務器和測試服務器位於企業局域網上,它可以廣泛訪問局域網中的所有設備。

有沒有人有什麼建議可能會影響查詢性能?我們都有點慌張。我可以打開連接正常,但只要我努力,以填補一個數據表,我的適配器,事情搪塞:

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")) 

謝謝!

Chris

+0

有多少行被返回? – msmucker0527 2013-02-19 15:56:43

+0

顯示您正在使用的查詢來獲取數據... – Pandian 2013-02-19 15:58:12

+3

您是否在數據庫服務器上放置了跟蹤以確定它是否快速執行查詢?如果您通過桌面上的SSMS執行查詢會怎麼樣? IOW,你做了什麼來隔離鏈條的各個元素? – alroc 2013-02-19 16:07:05

回答

0

嘗試在連接字符串中試驗不同的服務器地址。我有一個sql語句被引用爲(本地)時執行得非常緩慢的情況,但當我使用IP地址127.0.0.1時正常執行

+0

不錯的建議,不幸的是,在給它一個旋轉之後,我們仍然表現得很慢。 – 2013-02-22 15:31:37