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

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
04.12.2006, 14:04
    #34174758
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
SqlBulkCopy - Вы часом не об этом?
...
Рейтинг: 0 / 0
04.12.2006, 14:15
    #34174812
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
2 Sa: Если это всё, что смог сделать "мелкий", то меня это расстраивает, от велосипедов видимо не получится избавиться, а жаль.
А в принципе хотелось получить вставку данных, но напрямую из dataset-a как будто это темповая табла типа такого
Код: plaintext
 INSERT INTO TTT FROM select  a1,a2.... FROM #T
Не хочется иметь построчную вставку. А бач не до конца решает этой проблемы.
...
Рейтинг: 0 / 0
04.12.2006, 14:22
    #34174836
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
авторНе хочется иметь построчную вставку. А бач не до конца решает этой проблемы.
Можно сливать на сервер датасет в формате xml и далее через openxml. Скрипт, расставляющий соответствия схемы датасета и набора таблиц на сервере пишется достаточно быстро.
...
Рейтинг: 0 / 0
04.12.2006, 14:33
    #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
04.12.2006, 15:45
    #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
04.12.2006, 15:47
    #34175219
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
Дополню слегка. После упаковки можно получить плюс или минус (кому как): текст в профайлере будет совершенно нечитабелен :-))
...
Рейтинг: 0 / 0
04.12.2006, 16:09
    #34175308
Proga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
2 Roman S. Golubin: Ещё раз спасибо. Интересный способ, я о сериализации.
Буду пытаться.
...
Рейтинг: 0 / 0
06.12.2006, 22:19
    #34181708
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакетное обновление и добавление
Proga
Очень жаль, видимо я как написал в своё время свой пакетный обновлятель на VB, так
его на корню и перетащу на шарпу, а хотелось чего-нибудь стандартного от создателя

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

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

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

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

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


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