【发布时间】:2014-06-11 16:19:48
【问题描述】:
我有一个程序,它有一个带有表的 SQLite 数据库:CREATE TABLE files(path TEXT, last_backup DATETIME)
总数据库大小为 33Mb,其中大约有 250000 条记录。
我正在运行一段代码,它将选择路径字段与字符串匹配的任何记录并返回 last_backup DATETIME 值。如果没有找到记录,则返回 DateTime.MinValue。
当我最初运行我的程序时,数据库是空的,所以它每次都会返回最小日期。现在有很多记录可以检查程序运行同一个进程要慢很多。
我查询表的代码块是:
internal DateTime lastBackupDate(String file)
{
DateTime date = DateTime.MinValue;
string sql = "SELECT * FROM files WHERE path=@param1";
SQLiteCommand command = new SQLiteCommand(sql, _connection);
command.Parameters.AddWithValue("@param1", file);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
date = (DateTime)reader["last_backup"];
}
return date;
}
我的问题是,有什么办法可以加快速度吗?
【问题讨论】:
-
也许 SQLite 不是适合这项工作的工具,也许尝试切换到 MS SQL?
标签: c# sql performance sqlite datetime