2012-02-17 41 views
0

我有一個函數用WHERE子句創建一個SELECT語句。然後這個函數被多次調用(WHERE子句每次都會有所不同)。我有這個函數的兩個版本。打開記錄集,然後用MoveNext迭代每行,並填充每行的一些變量。另一個版本打開記錄集,然後調用GetRows來填充數組。使用第一個版本,我的應用需要9秒,但使用GetRows版本需要79秒。我讀過GetRows更高效。這不是這種情況嗎?ADO GetRows比GetFields和MoveNext更慢

+0

很難說沒有看到你的代碼。這聽起來像你正在做的事情,你不應該在GetRows版本。也許你可以發佈代碼? – 2012-02-17 16:11:37

回答

1

只要你沒有用完內存,效率就會更高(例如,如果你的可用內存已經很少,而且我們正在談論一張大桌子,那麼把它們放到內存中可能會使你的內存應用程序開始分頁到磁盤,而另一種方法不會因爲它每次獲得一些)。

爲什麼不張貼有問題的代碼來查看是否有其他問題導致問題?