我已经设置了一个与 dblinq 一起使用的数据库。
CREATE TABLE 'quotes' (
'DBDate' int(8) unsigned NOT NULL,
'TickerID' int(11) unsigned NOT NULL,
'Open' double(12,4) NOT NULL,
'High' double(12,4) DEFAULT NULL,
'Low' double(12,4) DEFAULT NULL,
'Close' double(12,4) DEFAULT NULL,
'AdjClose' double(12,4) DEFAULT NULL,
'Volume' int(11) unsigned NOT NULL,
PRIMARY KEY ('TickerID','DBDate'),
CONSTRAINT 'quotes_ibfk_1' FOREIGN KEY ('TickerID') REFERENCES 'tickers' ('TickerID') ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
以上是mysql表调度 MySQL服务器在不同的机器上。当我在我的测试机器上运行这个 mysql 查询时(所以与服务器不同的机器)
SELECT a.*, b.* FROM quotes a INNER JOIN quotes b ON a.DBDate = b.DBDate AND a.TickerID=956 and b.TickerID=957 order by a.dbdate asc;
我会得到预期的输出:2934 行集合(0.03 秒)
但是当我想在我的 C# 环境中使用 DBLinq 获得相同的结果时,如下所示:
var tradeAbleA = (from a in _db.Quotes where a.TickerID == 956 select a);
var tradeAbleB = (from a in _db.Quotes where a.TickerID == 957 select a);
var myDataSet = (from a in tradeAbleA.AsEnumerable() join b in tradeAbleB.AsEnumerable() on a.DbdAte equals b.DbdAte orderby a.DbdAte ascending select new { a, b }).ToList();
填写列表需要一秒钟多的时间。这太长了。我怎样才能加快速度?(我需要它在列表中)问候,
马蒂斯