Как ускорить InsertBatch?
От: Holms США  
Дата: 14.03.11 20:32
Оценка:
При таком простом класе

internal class pthist
  {
    public DateTime Timestamp { get; set; }
    public string Ticker { get; set; }
    public double Open { get; set; }
    public double High { get; set; }
    public double Low { get; set; }
    public double Close { get; set; }
    public double Volume { get; set; }
  }
  
  
  ...
  List<pthist> batch = new List<pthist>();
  ...
  pthist h = new pthist
                     {
                       Ticker = fieldTicker.str(),
                       Timestamp = DecomrpessDateTime(fieldDateTime.str()),
                       Open = DecompressPrice(fieldOpen.str()),
                       High = DecompressPrice(fieldHigh.str()),
                       Low = DecompressPrice(fieldLow.str()),
                       Close = DecompressPrice(fieldClose.str()),
                       Volume = (int)DecompressVolume(fieldVolume.str()),
                     };
        batch.Add(h);
...

if (rcCount > 1000000)
        {
          manager.InsertBatch(batch); // ОООООЧЧЕЕЕЕНЬ долго работает
        }



и милионе записей, InsertBatch работает около 5 минут для SQL Server 2008.
сервер в той же сети что и мой комп.
Сеть совершенно не забита другими вещами.

Как такое может быть?

Как добиться большей скорости.
Индексов в таблице нету.


Спасибо
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
The life is relative and reversible.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.