2011-08-09 72 views
3

我有一個Visual Studio 2010 Web應用程序項目中的數據集,它使用複雜的SQL語句訪問數據庫。如果我直接在SQL Management Studio中運行語句,它會在不到一秒的時間內加載。但是,如果我使用數據集設計器中的「預覽數據」按鈕來運行它,或者我嘗試在頁面上訪問它(例如使用gridview),則需要40秒以上!如何調試DataSet性能

我應該採取哪些步驟來跟蹤處理數據集時造成這種巨大延遲的原因?

回答

1

有兩種情況:

  • 問題是應用級
  • 問題是出在數據庫層面,實際上是一個SQL查詢本身

因此,作爲第一步嘗試排除之一從我的角度來看,更容易的是調試SQL側:

  1. 運行Sql Profiler
  2. 運行查詢from Management Studio
  3. 保存探查日誌
  4. 清除器日誌
  5. 運行 「預覽數據集」
  6. 比較執行日誌,看看是否在SQL
0

一些步驟有什麼區別遵循

將sql分析器放到d atabase服務器,以確保什麼SQL命令的應用程序正在執行

DataSet類具有非常差的性能,你應該嘗試使用DataReader

您可以使用一個秒錶實例採取diferent次定在哪裏慢代碼行

+0

我使用基於XML的DataSet格式(.xsd)作爲VS2010中的一個選項。有沒有辦法將它切換到DataReader而無需編寫任何新代碼? –

+0

@ user794234:不,這完全是另一種方法,您必須手動處理數據流,搜索MSDN和StackOverflow,我相信有很多示例 – sll