Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > скорость добавления данных


Автор: delphi_ 7.10.2010, 14:10
для свои нужд пишу маленькую программу для добавления случайных данных в БД

и так

 
Код

private void button1_Click(object sender, EventArgs e)
        {
            int[] array1 = new int[1024];      
            string b;

            pBar1.Minimum = 1;
            pBar1.Maximum = 1024;
            pBar1.Value = 1;
            pBar1.Step = 1;

            foreach (int I in array1)
            {
                b = Convert.ToString(I);
                table3TableAdapter.Insert(b, textBox1.Text);
                pBar1.PerformStep();


            }
            db1DataSet.AcceptChanges();
            table3TableAdapter.Update(db1DataSet);
        }
    }


на это уходит приблизительно 30 секунд

процессор- core i5 750.

это нормально,или у меня кривой код?

Автор: Выхухоль 7.10.2010, 16:11
а что такое pBar1??

у тебя в таблице PrimoryKey или какой другой идекс в таблице....
и ваще переходи на LINQ to SQL тама проще, хотя по производительности чуточку уступает

Автор: delphi_ 7.10.2010, 17:11
pbar это Progressbar 

таблица это id ака праймери ки и два текстовых поля

причем я их даже не заполняю,меняется только id (auto increament)

но всеравно медленно....



Автор: jonie 8.10.2010, 08:55
delphi_, ну оно быстро не будет, т.к. TableAdapter во первых при каждом вызове UpdateChanges (внутреняя кухня) если соединение не было открыто, то производится "открытие-закрытие"... при этом он производит по одному SQL Statement-у типа insert, вместо скажем конструкции вида:
Код

insert into blablabla
select 1 as f1
union all
select 2 as f2 
....

что конечно быстрее..

Автор: delphi_ 8.10.2010, 10:21
гм
а как ускорить то ?

Автор: Экскалупатор 8.10.2010, 12:06
ну очевидно руками. т.е. не полагаться на визарды, а собирать запросы самому и выполнять их.

Автор: jonie 8.10.2010, 14:33
.. если речь про MSSQL , то прочитать также в BooksOnline про BULK INSERT-ы...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)