【发布时间】:2015-06-06 04:08:38
【问题描述】:
我在 c# 中使用以下 sqlite 查询。该查询针对 100K 项进行迭代。我觉得执行速度很慢,通过优化查询可以提高速度
insert into salesmetrics(salesid, salesrankcount, volumerankcount, countsales,Avgsales)
select @salesid,sum(salesrank), sum(volumerank), Count(salesrank), avg(salesrank)
from (select salesrank, volumerank
from salesindex
Join SalesData on salesindex.salesindexID = salesData.salesindexID
where SourceID = @Sourceid
and Content like @content
group by salesindex.salesindexID)
表格:
CREATE TABLE `salesindex` (
salesindexID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
salesindex TEXT,
SourceID INTEGER,
salesrank INTEGER,
volumerank INTEGER,
dateAdded DATETIME,
UNIQUE(SourceID,dateAdded)
);
CREATE TABLE `SalesData` (
SalesDataID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
salesindexID INTEGER,
Content TEXT,
dateAdded DATETIME,
UNIQUE(salesindexID,content)
);
CREATE TABLE `salesmetrics` (
salesmetricsID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
salesID INTEGER,
SalesRankCount INTEGER,
VolumeRankCount INTEGER,
countsales INTEGER,
SalesRank FLOAT
);
salesdata 表上的“content”索引和 salesindex 表上的 sourceid
【问题讨论】:
-
显示表定义,以及您拥有的所有索引。
-
我已编辑添加表结构和索引详细信息