powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BulkCopy в N таблиц из 1 источника
19 сообщений из 44, страница 2 из 2
BulkCopy в N таблиц из 1 источника
    #39666979
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ну, он чуть преувеличил.
Все варианты одинаковы).

Ни на грамм не преувеличил.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39666995
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot hVostt]LRВью, которое на самом деле не вью, а генерация набора колонок. Триггер, который на самом деле выполняет задачи процедуры. Костыль на костыле. С определённого угла зрения, конечно может выглядеть, как "трюк". Тут уже действительно ИМХО ))

Простое, это процедура, как предложил Алексей К.

Эффективное? Нет. Ни разу, я вас умоляю.

Ну и попробуйте булк в свою вью, посмотрим-с, как это у вас заработает.
Хоть горшком назови, только в печь не станови)) На самом деле вью, генерирующая колонки, это таки вью, а триггер это таки триггер - выполняет задачи процедуры, только чуть более эффективно (внутренняя транзакция + все данные под боком).
Пример булка привел - каждый может попробовать;)
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667004
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПростое, это процедура, как предложил Алексей К.

Эффективное? Нет. Ни разу, я вас умоляю. Это ещё надо доказать.

Тут, если всё аккуратно написать, тонким местом является физическая запись данных на жёсткий диск. Поэтому лично я скептически отношусь к решающему превосходству булкинсерта. Проще сгенерировать SQL-пакет. И никаких ограничений по функциональности.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667013
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRХоть горшком назови, только в печь не станови)) На самом деле вью, генерирующая колонки, это таки вью, а триггер это таки триггер - выполняет задачи процедуры, только чуть более эффективно (внутренняя транзакция + все данные под боком).
Пример булка привел - каждый может попробовать;)

Ну тогды пятитысячная купюра это та же туалетная бумага
За пример, конечно +
Но практика это плохая во многих отношениях.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667017
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПоэтому лично я скептически отношусь к решающему превосходству булкинсерта. Проще сгенерировать SQL-пакет.ну это уже не импорт файла.
Ты пробовал файл 800мегов так вставлять?
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667018
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭто ещё надо доказать.

Если, как я сказал, данные залить в отдельно выделенную таблицу, а потом оттуда импортировать данные, то

1. Можно на полном наборе данных выявлять нарушения, грузить только то, что нужно, детектить дубли, джойнить, отсекать, преобразовывать.
2. Исходную таблицу можно проапдейтить с результатами подготовки к загрузке (п.1), статусами, причинами и проч.
3. Можно избежать длительной блокировки и жирной транзакции (после выполнения проверки в п.1), заливать данные порциями или построчно, при чём это может работать надёжно, полностью асинхронно и любой может видеть текущий прогресс в любой момент из любого клиента и контролировать.
4. Источником данных является таблица, а непонятно откуда и как залетающие данные, которые могут отвалиться по непонятным причинам, что для СУБД является самым лучшим решением.
5. На таком принципе можно логику импорта вынести из СУБД и описывать где угодно в каких угодно нотациях и правилах. Но никто не мешает использовать процедуры и проч.

Это быстро, эффективно, сопровождаемо, расширяемо, не имеет различных костылей, прокладок и хаков.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667019
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПоэтому лично я скептически отношусь к решающему превосходству булкинсерта.

SQL пакет это вообще прибитое ржавыми гвоздями непотребство.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667020
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
И с один ко многм как быть?
Заказы -> детализация
?
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667046
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНу и попробуйте булк в свою вью, посмотрим-с, как это у вас заработает.
Нормально оно заработает:
Код: c#
1.
2.
3.
4.
using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.FireTriggers, null)
{
  ...
}
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667061
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей КПоэтому лично я скептически отношусь к решающему превосходству булкинсерта. Проще сгенерировать SQL-пакет.ну это уже не импорт файла.
Ты пробовал файл 800мегов так вставлять?В чём проблема-то? Никто не заставляет всё пихать в один пакет. Размер пакета определить опытным путём.
Petro123Алексей К,
И с один ко многм как быть?
Заказы -> детализация
?В хранимой процедуре можно организовать любую логику. И не такое вставляли...
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667067
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЭто ещё надо доказать.

Если, как я сказал, данные залить в отдельно выделенную таблицу, а потом оттуда импортировать данные, то

1. Можно на полном наборе данных выявлять нарушения, грузить только то, что нужно, детектить дубли, джойнить, отсекать, преобразовывать.
2. Исходную таблицу можно проапдейтить с результатами подготовки к загрузке (п.1), статусами, причинами и проч.
3. Можно избежать длительной блокировки и жирной транзакции (после выполнения проверки в п.1), заливать данные порциями или построчно, при чём это может работать надёжно, полностью асинхронно и любой может видеть текущий прогресс в любой момент из любого клиента и контролировать.
4. Источником данных является таблица, а непонятно откуда и как залетающие данные, которые могут отвалиться по непонятным причинам, что для СУБД является самым лучшим решением.
5. На таком принципе можно логику импорта вынести из СУБД и описывать где угодно в каких угодно нотациях и правилах. Но никто не мешает использовать процедуры и проч.

Это быстро, эффективно, сопровождаемо, расширяемо, не имеет различных костылей, прокладок и хаков.Признаюсь, я не знаю как это комментировать. Мне надо подумать... Ты уж прости...
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667084
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На нах
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667089
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныНормально оно заработает:
Код: c#
1.
2.
3.
4.
using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.FireTriggers, null)
{
  ...
}



Так и чо, никто не запускал, да?
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667090
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПризнаюсь, я не знаю как это комментировать. Мне надо подумать... Ты уж прости...

Ну ты просил доказательств.. Это так, на поверхности. skyANA привёл картинку с адекватной архитектурой. Просто не все у нас думают хоть на шаг вперёд и смотрят чуть дальше своего носа.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667094
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ хранимой процедуре можно организовать любую логику. И не такое вставляли...

И запинывали ногами... ага, видал такое, и периодически наблюдаю. При чём во всех сферах деятельности, не только в разработке. Оно знаешь, когда видно. Когда ты потребитель, а не исполнитель. Вот с точки зрения потребителя всё становится плохо, дороги, автомобили, банки... А когда ты работаешь на предприятии, чё морочиться, плюнул, пришпандорил, вроде не отваливается -- задача выполнена!
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667095
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPetro123пропущено...
ну это уже не импорт файла.
Ты пробовал файл 800мегов так вставлять?В чём проблема-то? Никто не заставляет всё пихать в один пакет. Размер пакета определить опытным путём.
Petro123Алексей К,
И с один ко многм как быть?
Заказы -> детализация
?В хранимой процедуре можно организовать любую логику. И не такое вставляли...
Вот и получается что при Bulk ты указываешь шару папку на сервере и Целиком файл сначала кпируется и потом вставляется при выкл. Журналов.
Т.е. быстрее.
А тут тебе с хранимкой ВСЕ руками.
Удачи!
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667106
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТак и чо, никто не запускал, да?
Я запускал. Загружается вполне нормально.
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667112
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA привёл картинку с адекватной архитектурой.
Вспомнилось почему-то .
...
Рейтинг: 0 / 0
BulkCopy в N таблиц из 1 источника
    #39667120
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныhVosttskyANA привёл картинку с адекватной архитектурой.
Вспомнилось почему-то .

And stop creating extra work for us in the future for no good reason.

Написание псевдовьюхи, триггера, которые очень сложно отлаживать, с очевидными недостатками, это не экстраворк?

Ну хоть работает, и то ладно.
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BulkCopy в N таблиц из 1 источника
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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