2013-09-05 246 views
2

我面對的SQLite一個問題,我需要一些幫助。 我正在使用SQLite預編譯DLL在C#.NET中開發應用程序。我使用的版本是x86的「1.0.66.0」和x64處理器的「1.0.79.0」。的executeQuery命令運行速度很慢

我用下面的命令來得到一些結果

*using (DbDataReader reader = _database.ExecuteQuery(selectCommand))* 

的場景如下:

#1我建立與目標平臺的exe:x64和加載SQLite的x64版本 在這種情況下,ExecuteQuery執行selectCommand並在1秒內返回結果(37行)。

#2我建立與目標平臺的exe:x86和加載的SQLite 86版本在這種情況下的executeQuery執行的SelectCommand並返回55秒的結果(37行)。

這是非常奇怪的,因爲代碼完全相同,唯一改變的事情就是爲了在這兩種類型的處理器上運行的sqlite的DLL。

任何思考如何解決這個問題呢?

PS。當我在數據庫上運行相同的命令時,手動在1秒內返回數據。查詢時比86版本執行

+0

你在這三種情況下使用什麼版本的SQLite的? (嘗試'SELECT sqlite_version()') –

+0

@CL -My SQLite的版本是3.7.6.1 –

+0

,其他兩個? –

回答

-1

64版本使用更大的虛擬空間。因此,x86平臺的執行時間大於x64,並且將其最小化的唯一方法是將索引添加到查詢的表中。

+0

這是錯誤的; SQLite使用完全相同的頁面緩存大小(2000頁)。 –

相關問題