Я настроил базу данных для использования с 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 на моем тестовом компьютере (не на том же компьютере, что и сервер)
ВЫБРАТЬ a. *, B. * ОТ цитаты ВНУТРЕННЕГО СОЕДИНЕНИЯ цитаты b ON a.DBDate =
b.DBDate AND a.TickerID = 956 и b.TickerID = 957 порядок по 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();
заполнение списка занимает более секунды. Это слишком долго. Как я могу ускорить это? (Мне это нужно в списке)
С уважением,
Matthijs