Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Razinalex
12 / 12 / 3
Регистрация: 17.08.2010
Сообщений: 84
1

Как ускорить запись данных в базу данных?

17.06.2011, 08:31. Просмотров 1682. Ответов 2
Метки нет (Все метки)

Добрый день.

Есть следующий тестовый код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class MyClass
{
public int a;
public int b;
public int c;
}
void main()
{
List<MyClass> mc=new List<MyClass>();
mc.Add(new MyClass()); //example
mc.Add(new MyClass());
 
WriteToBase(mc);
}
void WriteToBase(List<MyClass> mc)
{
//Create Connection
 
string sqlIns = "INSERT INTO table (name, information, other) VALUES (@name,           @information, @other)";
 
SqlCommand cmdIns = new SqlCommand(sqlIns, Connection);
for(int i=0;i<mc.Count;i++)
{
    cmdIns.Parameters.Add("@name", mc[i].a);
    cmdIns.Parameters.Add("@information", mc[i].b);
    cmdIns.Parameters.Add("@other", mc[i].c);
    cmdIns.ExecuteNonQuery();
}
}
Подскажите пожалуйста, как можно модернизировать метод WriteToBase, чтобы ускорить время выполнения?

Добавлено через 8 часов 32 минуты
Какие предложения?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2011, 08:31
Ответы с готовыми решениями:

Как просмотреть базу данных?
Подскажите, пожалуйста, как можно просмотреть, какие таблицы входят в состав базы данных? База...

Как перенести базу данных с SQL server в проект
Добрый вечер участникам , вопрос следующего характера Создал в SQL SERVER EXPRESS базу данных...

Как залить дамп базы данных в базу MySql
у меня есть дамп базы для работы программы, и надо чтобы при первом запуске он загрузил дамп на...

Как добавить добавить данные в базу данных посредством LINQ
Как добавить добавить данные в базу данных посредством LINQ to SQL Ошибка: Нарушение...

Собрался сделать базу данных, но как сделать систему поиска?
Нужна система поиска по данным, желательно в VB.NET Я пока в прграммировании чайник, но может...

2
ArtOfLife
137 / 137 / 26
Регистрация: 09.10.2009
Сообщений: 261
17.06.2011, 12:33 2
Попробуйте как-то так:
C#
1
2
3
4
public void ExecuteNonQuery(string nonQuery)
{
    new SqlCommand(nonQuery, _dbConnection).ExecuteNonQuery();
}
И вызов:
C#
1
2
foreach (var obj in mc)
    ExecuteNonQuery("INSERT INTO table (name, information, other) VALUES (" + obj.a + ", " + obj.b + ", " + obj.c + ")");
П.С. А вообще, мне кажется, что проблема в циклическом накапливании параметров в коллекции SqlParameterCollection. Вы ведь команду создали вне цикла, а с каждой новой итерацией не подчищаете коллекцию. Вполне возможно, что из-за этого и тормозит.
Если же вы работаете с DataGridView, то лучше вообще отказаться от подобных конструкций для Insert, Update и Delete запросов, и использовать адаптер, который все сделает за вас.
0
devstart
15 / 15 / 1
Регистрация: 08.06.2011
Сообщений: 34
17.06.2011, 17:01 3
Еще до кучи рекомендуют не вызывать код вставки записи в базу напрямую, а реализовывать его в серверной хранимой процедуре, и пользоваться только ею.

Так будет выше производительность
А также если логику добавления записи менять будете - править проще будет (только на сервере, в 1 месте)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2011, 17:01

Ищу базу данных из слов
В общем, ищу базу данных из слов, примерно как используются в переводчиках, только мне нужны только...

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender,...

Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru