|
|
|
Оптимизация Insert
|
|||
|---|---|---|---|
|
#18+
Ситуация такова. Периодически собираются данные с нескольких сот устройств. Данные записываются в таблицу usrType1, содержащие поля: ID устройства, датавремя съема параметров, собственно снятые параметры. Также есть основная таблица usrCommon, которая содержит: ID устройства (первичный ключ) и его неизменяемые данные - IP адрес, название и т.п. Обе таблицы связаны между собой по полю ID. Собрав все данные прога коннектится к серверу, и insertom последовательно вставляет данные в таблицу usrType1 по каждому устройству. Код: plaintext 1. 2. На памяти только ранее уже используемая мною технология, когда в датасет грузится пустая таблица и заполняется новыми данными. После чего создается новый dataset, содержащий только изменения (GetChanges) , который с помощью DataAdapterюUpdate заносит данные в базу. Но я использовал такой способ для "оптовой" записи данных в несвязанную таблицу. На этот раз надо вставлять в связанную таблицу. В запросе мне приходится использовать их обе, поскольку вставляя данные я не зна. ID устройства а только IP адрес, и мне приходится брать его (ID) из таблицы usrCommon. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 09:09 |
|
||
|
Оптимизация Insert
|
|||
|---|---|---|---|
|
#18+
К сожалению, Вы не указали версию сервера. Для MSSQL 2000/2005 можно использовть такой план действий: Данные грузятся в датасет, затем весь датасет в виде параметра типа XML или text отправляется в процедуру на сервер, там парсится, определяются записи, которые надо обновить и обновляются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 23:30 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34836101&tid=1352597]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 379ms |

| 0 / 0 |
