当我使用SQL Server CE 4.0 DLL从我的应用程序运行数据库查询时,返回结果所需的时间比使用VS2010的SQL Server CE工具箱插件在同一数据库上运行相同查询要长5倍。
有谁知道我做错了什么?
查询类似于:
SELECT * FROM WHERE column1> ''和第2列< ''AND column3 IN(14)
数据库文件非常大,大约600 MB,运行查询的表中有超过300万行。
上述查询中使用的所有3列都已编入索引。
查询返回大约5000行。
以下是一些查询性能数字:
在我的C ++代码中,我使用ATL / OLEDB来访问数据库:
CCommand<CDynamicParameterAccessorEx> cmd;
HRESULT hr = videosCmd.Create(dbsession,
querystmt.c_str());
void* pDummy;
// Bind the parameters.
hr = cmd.BindParameters (/* can't show args here because of SO weirdness */);
// set the second parameter- start time
DBTIMESTAMP dbStart;
tzLocalTimeToUTC(startLocal, &start_utc);
ConvertTime(start_utc, &dbStart);
videosCmd.SetParam(1, &dbStart);
// set the first parameter- end time
DBTIMESTAMP dbEnd;
tzLocalTimeToUTC(endLocal, &end_utc);
ConvertTime(end_utc, &dbEnd);
videosCmd.SetParam(2, &dbEnd);
hr = cmd.Open();
hr = cmd.MoveFirst();