2011-06-29 272 views
0

我將VB.Net 2代碼(VS 2005)移植到VB.Net 4(VS 2010)中。到目前爲止事情一直比較順利。但是,在測試我的新移植代碼時,我遇到了一個奇怪的行爲。SqlClient.SqlDataAdapter.Update()執行速度很慢

在VS 2005(.Net 2)中,我有一個填充數據的DataTable。然後我使用DataAdapter將更新發送回SQL Server。當我執行SqlClient.SqlDataAdapter.Update()命令時,它大約在4秒內執行。在VS 2010(.Net 4)的同一張表上,相同的代碼在1分17秒內運行。這是完全不能接受的。但是,我不知道爲什麼它正在發生。 .Update()方法是一個內部命令,不是以任何方式修改的。它不會出錯,它只是非常緩慢。

任何人有任何想法?

+0

有沒有人聽說過或遇到過這個問題?沒有人注意到使用.Net 4的SQLClient.SQLDataAdapter降低性能? – TekkGuy

+0

沒有見過類似的東西,打開舊的和新的探查器比較相同的操作,可能會給你一些線索 –

回答

2

經過多個月與Microsoft直接合作......找到了解決方案/答案。

我不覺得這麼糟糕,因爲它花了六個不同的微軟程序員,差不多六個月的時間才發現答案。顯然,Visual Studio 2010的IDE的行爲與Visual Studio 2005相比有很大不同。在IDE中運行應用程序時,VS2010掛接到正在運行的可執行文件實際上會顯着阻礙應用程序的性能。有一個隱藏的選項(沒有在菜單結構中找到)在沒有附加調試器的情況下運行應用程序。熱鍵是CTRL + F5。當應用程序在此模式下運行時,我們的性能問題消失了。這是一個愚蠢而簡單的答案......但是讓我感覺更好的兩件事是VS2005沒有這個問題,沒有菜單中沒有列出「run w/o debugger」選項,六位微軟程序員確定這是問題所在。

因此,對於似乎有同樣問題的任何人...嘗試CTRL + F5。 :-)