powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Оптимизация Insert
2 сообщений из 2, страница 1 из 1
Оптимизация Insert
    #34829979
Malyav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такова. Периодически собираются данные с нескольких сот устройств. Данные записываются в таблицу usrType1, содержащие поля: ID устройства, датавремя съема параметров, собственно снятые параметры. Также есть основная таблица usrCommon, которая содержит: ID устройства (первичный ключ) и его неизменяемые данные - IP адрес, название и т.п. Обе таблицы связаны между собой по полю ID.

Собрав все данные прога коннектится к серверу, и insertom последовательно вставляет данные в таблицу usrType1 по каждому устройству.
Код: plaintext
1.
2.
INSERT INTO usrType1 (Id, DateTime, TX_Attenuation, TX_Power, RX_Level, PowerSupply) 
SELECT Id, '9.27.2007 11:0:00', 0 , 4 . 45 , 0 , 3 . 05 , 3 . 05 , 42 . 19 , 42 . 19  FROM usrCommon 
Where IpAddress='10.100.100.100'
Вопрос. Можно ли оптимизировать данный алгоритм, чтобы вставка происходила "оптом" , т.е. для всех устройств сразу.

На памяти только ранее уже используемая мною технология, когда в датасет грузится пустая таблица и заполняется новыми данными. После чего создается новый dataset, содержащий только изменения (GetChanges) , который с помощью DataAdapterюUpdate заносит данные в базу.

Но я использовал такой способ для "оптовой" записи данных в несвязанную таблицу. На этот раз надо вставлять в связанную таблицу. В запросе мне приходится использовать их обе, поскольку вставляя данные я не зна. ID устройства а только IP адрес, и мне приходится брать его (ID) из таблицы usrCommon.
...
Рейтинг: 0 / 0
Оптимизация Insert
    #34836101
+2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+2
Гость
К сожалению, Вы не указали версию сервера. Для MSSQL 2000/2005 можно использовть такой план действий: Данные грузятся в датасет, затем весь датасет в виде параметра типа XML или text отправляется в процедуру на сервер, там парсится, определяются записи, которые надо обновить и обновляются.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Оптимизация Insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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