powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Пакетное обновление и добавление
10 сообщений из 10, страница 1 из 1
Пакетное обновление и добавление
    #34174452
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и туплю, понедельник однако, многие на форуме говорили, что в реализовано во 2-серии(ADO.NET 2), но сам всё никак не могу найти, киньте ссылку, где можно почитать, очень нада, задолбался рисовать велосипеды.
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34174689
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. MSDN Performing Batch Updates with a DataAdapter

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34174758
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SqlBulkCopy - Вы часом не об этом?
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34174812
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sa: Если это всё, что смог сделать "мелкий", то меня это расстраивает, от велосипедов видимо не получится избавиться, а жаль.
А в принципе хотелось получить вставку данных, но напрямую из dataset-a как будто это темповая табла типа такого
Код: plaintext
 INSERT INTO TTT FROM select  a1,a2.... FROM #T
Не хочется иметь построчную вставку. А бач не до конца решает этой проблемы.
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34174836
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе хочется иметь построчную вставку. А бач не до конца решает этой проблемы.
Можно сливать на сервер датасет в формате xml и далее через openxml. Скрипт, расставляющий соответствия схемы датасета и набора таблиц на сервере пишется достаточно быстро.
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34174887
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserSqlBulkCopy - Вы часом не об этом?
Прочитал, интересная фича.
но всё опошлило вот это
This sample will not run unless you have created the work tables as described in Creating Tables for the Bulk Copy Examples. This code is provided to demonstrate the syntax for using SqlBulkCopy only. If the source and destination tables are in the same SQL Server instance, it is easier and faster to use a Transact-SQL INSERT … SELECT statement to copy the data.


2 Roman S. Golubin: Попытки релизации на основе XML были, очень наворочено, дорого в поддержке (я думаю вы меня поняли), и главное проигрывает по скорости, причем прилично, стандартной вставке из темпа.

Очень жаль, видимо я как написал в своё время свой пакетный обновлятель на VB, так его на корню и перетащу на шарпу, а хотелось чего-нибудь стандартного от создателя.
Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34175205
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Xml - как вариант. Ни чуть не лучше и не хуже. Просто в свете "Не хочется иметь построчную вставку" это как вариант. Для массовой заливки конечно не фонтан, но для передачи с клиента отдельных отредактированных документов - идеальный вариант.

Другой вариант - создавайте скрипт для вставки через union all:
Код: plaintext
1.
2.
3.
4.
insert table
select ... union all
select ... union all
select ... union all
...

Да, еще 2005-му серверу можно передавать объекты типа DataSet через сериализацию - что мешает использовать этот вариант? :-) На клиенте сериализация->упаковка->перекодировка в base64, на сервере все в обратную сторону и возвращаем результат обратно в виде таблицы / набора таблиц . Только серверную процедуру надо будет на CLR писать.

Да, кстати, этот самый "другой вариант" - это та же сериализация, вид сбоку, его точно так же можно упаковать и т.п. :-)
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34175219
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню слегка. После упаковки можно получить плюс или минус (кому как): текст в профайлере будет совершенно нечитабелен :-))
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34175308
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Roman S. Golubin: Ещё раз спасибо. Интересный способ, я о сериализации.
Буду пытаться.
...
Рейтинг: 0 / 0
Пакетное обновление и добавление
    #34181708
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga
Очень жаль, видимо я как написал в своё время свой пакетный обновлятель на VB, так
его на корню и перетащу на шарпу, а хотелось чего-нибудь стандартного от создателя

А что у Вас было на VB? DTS - пакет?
Proga
Прочитал, интересная фича.
но всё опошлило вот это...

а что тут страшного? ясно что чем ближе к телу тем быстрее... даешь
сравнительный тест на своих реальных данных :-))).

Пока не понятна задача посоветовать что либо сложно....
Если Вы обязанны использовать DataSet , значит SqlBulkCopy вам
не подходит. и здесь немного облегчит жизнь UpdateBatchSize .
Если подобных ограничений нет, то используйте SqlBulkCopy ИМХО решение
попрозрачнее, чем реинкарнация VB.

Вообщем тестируйте смотрите что быстрее, что медленнее. что проще в сопровождении и
т.д.
PS. только не умрите от оптимизационного паралича выкраивая лишние миллисекунды

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Пакетное обновление и добавление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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