powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
5 сообщений из 5, страница 1 из 1
Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
    #37854082
doonet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две бази MSSQL2000 and MSSQLCE
надо скопировать с одной бази табличку с частичными данными в другую базу (и наоборот)
делаю ниже приведенным кодом.
записи добавляются только очень медленно...
как оптимизировать код или вообще изменить (если можно то пример)?
прошу помочь...
я только учусь :)
кусок кода:
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
SqlConnection SourceCon = new SqlConnection("Data Source=********");
            SqlCeConnection destCon = new SqlCeConnection("Data Source=*********");
            SourceCon.Open();
            destCon.Open();
            SqlCommand commandSource = new SqlCommand("SELECT Id, FullName, MacroId, ProdId, Art3Id, Ed_izm FROM Goods "+
                " WHERE MacroId=1  "+
                " Order by id"
                , SourceCon);
            SqlDataReader reader = commandSource.ExecuteReader();
            while (reader.Read()) 
            {
                DataRow row = storeDataSet.Goods.NewRow();
                row["id"] = reader["Id"];
                row["FullName"] = reader["FullName"];
                row["MacroId"] = reader["MacroId"];
                row["ProdId"] = reader["ProdId"];
                row["Art3Id"] = reader["Art3Id"];
                row["Ed_izm"] = reader["Ed_izm"];
                SqlCeDataAdapter ceAdap = new SqlCeDataAdapter();
                int @id = Convert.ToInt32(reader[0]);
                string @FullName = Convert.ToString(reader[1]);
                int @MacroId = Convert.ToInt32(reader[2]);
                int @ProdId = Convert.ToInt32(reader[3]);
                int @Art3Id = Convert.ToInt32(reader[4]);
                string @Ed = Convert.ToString(reader[5]);
                decimal @Price = Convert.ToDecimal(0);
                SqlCeCommand insCe = new SqlCeCommand("INSERT INTO GOODS VALUES ( "
                    + @id + ", " +"'" + @FullName + "'"+ ", " + @MacroId + ", " + @ProdId + ", " + @Art3Id + ", " +
                "'" + @Ed + "'" + " )" , destCon);                
                textBox1.Text = Convert.ToString(insCe);
                insCe.ExecuteNonQuery();
                storeDataSet.EnforceConstraints = true;
                storeDataSet.Goods.Rows.Add(row);
                storeDataSet.AcceptChanges();
            }
            SourceCon.Close();
            destCon.Close();
...
Рейтинг: 0 / 0
Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
    #37854623
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doonet,

Код: sql
1.
2.
INSERT INTO GOODS
SELECT Id, FullName, MacroId, ProdId, Art3Id, Ed_izm FROM Goods 


Так не проще?
...
Рейтинг: 0 / 0
Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
    #37855074
doonet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lelouch,

Базы то разные на MsSqlCe и MsSql2000(enterp.edition). Соединения тоже.
...
Рейтинг: 0 / 0
Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
    #37855546
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doonet,

тогда сделать вставку в 1 транзакции на все записи)

Код: c#
1.
2.
3.
4.
5.
var transaction = destCon.CreateTransaction(); // До цикла
...
insCe.Transaction = transaction; // Внутри
...
transaction.Commit(); // после


P.S. ceAdap не используется, зачем его создавать
...
Рейтинг: 0 / 0
Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
    #37859771
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну либ в пара потоках..выборку ты можеш попилить между потоками
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как убрать тормоза ... MSSQLCE+MSSQL2000+INSERT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]