All streams
Search
Write a publication
Pull to refresh
45
0.2
Вадим Петряев @ptr128

Архитектор ИС

Send message
Никаких секретных возможностей. BCP не более чем обертка над SQL командой BULK INSERT и именно так я его и использую. Но только без использования диска (даже ram disk). Только через кеш, благодаря ramfs.
Я утверждаю только, что если SSIS или еще что-то использует BULK LOAD, то без файла ему не обойтись.
Где вы там увидели, что COPY — это в чём-то быстрее чем обычный Sequential scan SELECTа?

COPY вообще никаких данных не передает клиенту, а SELECT — передает. При любых раскладах передача данных через TCP/IP будет медленней, чем запись в кеш, где данные и останутся при использовании ramfs, вплоть до удаления файла.

В качестве референса, ваш EXEC с прилинкованной таблицей (тот который исполнялся CPU time = 8187 ms, elapsed time = 14793 ms) у меня даёт CPU time = 11343 ms, elapsed time = 16634 ms. То есть в целом сетап виртуалки медленнее, работает с IO на обоих концах, но делает это быстрее чем ваш вариант.

Зачем брать в качестве референса пример, который не устраивал? В решении было CPU time = 0 ms, elapsed time = 881 ms.
Почему для сравнения Вы берете вообще неизвестно какую таблицу с неизвестным количеством строк, а не пример из статьи? Что с чем сравниваете?

Elapsed: 2.328 seconds

Это в разы медленней, чем 881 ms.

какой-то экспериментальный билд

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

Сами почитайте.
Ни Kerberos авторизации, ни сторонних компонентов, ни каталога.

Просто модифицируйте свой код на C# так, чтобы он выполнял ровно ту же задачу, что описана в статье. Тогда сразу увидите, что он медленней варианта, предложенного в решении.
хотите использовать именно Bulk Insert Task
Естественно. Уже на сотнях тысяч записей он в разы быстрее любой другой альтернативы.
И не надо никаких текстовых файлов.
BULK INSERT физически не может быть не из файла. Просто по его определению.

Поймите простую вещь. Никакие сервисы или классы все равно не могут использовать какие-то секретные SQL команды. Они при общении с SQL сервером так же ограничены только теми командами, которые доступны пользователю при прямом общении с SQL сервером. И если в их реализации использование временного файла скрыто от пользователя, из этого совершенно не следует, что он не используется.
– Видишь суслика?
– Нет.
– Вот и я не вижу. А он есть.
раздать его по сети

Ключевая фраза. Файловый доступ по любой сети будет медленней, чем прямая передача по TCP в TDS и, тем более, чем локальная запись на ramfs, которая обозначает не более чем сохранение данных в кеше. Это совсем не ram disk, который требует физического копирования данных на него.
Так же следует понимать, что ramfs никто по сети не расшарит ни при каком условии, так как это легко может привести к падению сервера.

И Вы так и не ответили на вопрос об управлении правами доступа к файлам. Прямой путь через локальные права и SFTP — медленный. Через NFS/SMB и расширенные атрибуты — для ramfs не применим.
История ядерной и космической гонок демонстрирует обратное.
Просто недопустимо концентрироваться только на одном пути достижения основной цели. Ваши 7нм — лишь одно из средств, причем необязательно находящееся на критическом пути. Например, молибденит и графен имеют очень высокий потенциал в микроэлектронике. На последнем рубеж в 400 ГГц уже взят.
А цель — это, для примера, доминирование Китая в TOP-500 суперкомпьютеров.
При строительстве ГЭС в горной местности, затопляемые водохранилищем площади на порядок меньше, чем на равнине. Это минимизирует отрицательное влияние на природу.

А про рентабельные способы передачи электроэнергии на расстояние порядка 5 тысяч километров я не в курсе. Рекорд сейчас в два раза меньше по протяженности. И с неизвестным результатом по окупаемости.
Эту фразу можно применить к любой не только научной, но даже просто инженерной задаче.
Не потратив средства невозможно узнать, что, например, на создание мюона-катализатора надо потратить 5ГэВ, а получить удается энергии только 2ГэВ. Как можно оценить тут «выхлоп», если получили только знания?
При чем тут Data Flow Task. если Bulk Insert Task существенно производительней? Название статьи помните?
Читайте:
To use the Bulk Insert task to transfer data from other database management systems (DBMSs), you must export the data from the source to a text file and then import the data from the text file into a SQL Server table or view.
Для начала, просьба дать ссылочку, где же я говорил о потребительском тарифе. А когда не сможете, то после этого объясните, что есть Ваша фраза. Демагогия с подменой тезиса или нет?
Как Вы представляете себе крупный завод вдали от населенных пунктов? Полностью роботизированный что ли?

адская кислота

Адская кислота — это наоборот хорошо. Им крупно повезло. Плохо, когда внутренний диаметр обсадной трубы ежемесячно уменьшается на несколько миллиметров.

получая пар

Пар в РФ можно получить только на Камчатке и Курилах. Причем, как я уже писал выше, в таких местах, куда только на вертолете доберешься.

Московское энергокольцо полвека назад сбалансировали

Его балансируют каждую минуту вообще то. На вопрос лучше ответьте.
У меня одного устойчивое ощущение, что если бы все средства, которые уже не один десяток лет вливаются в «зеленую энергетику», были бы направлены в термоядерную энергетику, то мы бы уже давно He3 на Луне добывали и вообще никаких проблем с энергией не испытывали?
Так в том то и проблема, что геотермальные источники, обычно, находятся вдали от населенных пунктов. А использовать их для получения электроэнергии сложно и дорого. Сильная минерализация приводит к быстрому выходу из строя оборудования. Например, запустили в 2007 году Океанскую ГеоЭС на Курилах. И через 10 лет вывели из эксплуатации, когда выяснилось, что минерализация разрушила уже все настолько, что дешевле новую ГеоЭС строить, чем эту восстанавливать.
Преимущественно ГеоЭС используются все же для отопления и горячего водоснабжения. Думаете просто так геотермальные станции в РФ есть только на Камчатке и на Курилах? Одно дело, когда глубина термальных вод нулевая (сами на поверхность прут), а совсем другое — когда 1-2 километра.
Ну разведано на Северном Кавказе почти полсотни геотермальных месторождений суммарной мощность в 200 МВт. Так это в 6 раз меньше одного энергоблока АЭС, который обойдется всяко дешевле, чем полсотни ГеоЭС.

Как Вы собираетесь балансировать то же московское энергокольцо из Сибирских рек и Камчатских геотермальных источников?
МГТС [...] не подпускают на пушечный выстрел.
И все жители обходятся без фиксированной телефонной связи и даже не имеют шансов установить городской телефон? Можете дать подтверждающую ссылку про дом, куда МГТС не пускают? Я скорее поверю в то, что МГТС кого-то не пускает.

ардуина с сетевым модулем
А можно опять таки попросить подтверждающую ссылку? Я не встречал такого, чтобы TCP можно было бы реализовать, а SSH — уже нет. Та же ардуина на ESP8266 замечательно с SFTP дружит.

ни разу не конфиденциальная информация
А чем тогда tftp не устраивает? И проще, быстрее и реализация действительно:
занимает меньше места в памяти, оставляя ее для других полезных вещей
Ведь раз для ftp два TCP сокета открывать не надо и работаем только по UDP, то памяти вообще почти не требуется.
Что касается SSIS, я же явно высказался, что он тоже вынужден работать через текстовый файл. Просто потому, что иного BULK INSERT не позволяет.
SSIS при коммуникации с источником данных точно так же ограничен тем же SQL, что используется при прямом обращении к этому источнику данных. Никакие специальные секретные команды ему не доступны. И ничего кроме того, что описано в статье он сделать не может. Вот только вместо быстрой COPY он будет вынужден фетчить результат SELECT, а вместо ramfs на том же хосте, что и PostgreSQL вынужден будет использовать свой локальный диск для временного файла. И никакого толку от его встроенной многопоточности Вы тут не получите. Все будет строго последовательно.

При чем тут dtexec мне вообще не понятно. SSIS — выделенный хост не потому, что его нельзя физически поставить на тот же хост, что и продуктивный SQL Server. А потому, что во-первых, это не рекомендуется самим MS, во-вторых, я в здравом уме и твердой памяти не стану ограничивать SQL серверу память и ядра ради SSIS. Просто потому, что общая производительность тогда точно упадет. А если не ограничивать в памяти SQL Server, то можно получить проблемы в SSIS из-за нехватки памяти ему.

Что касается установки SSIS на Linux, то это доступно пока скорее только для ознакомления. Слишком много ограничений для продуктивного использования.
В рамках моей статьи он не применим. Потому что формирование его из PostgreSQL — слишком сложная и ресурсоемкая задача. Увы, если источник не MS SQL, то при загрузке в bcp вынужденно используем текстовый формат.
Зачем Вы переходите на демагогию? Вы не уважаете читателей Хабра?
Или Вы искренне считаете, что строительство железных дорог приводит к увеличению себестоимости продукции промышленного производства в государстве, так же как и повышение стоимости электроэнергии?
А цена этого? По Вашей же ссылке экпорт электроэнергии упал на 43%. О возросшем импорте скромно умолчали. А если во Франции вдруг друзья зеленые начнут АЭС закрывать, то энергетика Германии просто ляжет без перетоков из Франции. А это далеко не единственное государство, откуда Германия импортирует электроэнергию для покрытия неравномерной выработки из ВИЭ.

Порой у меня возникает подозрение, что зеленая энергетика в ЕС — дальновидный ход США. Чем дороже будет энергия в ЕС, тем конкурентней будет промышленность США.
А можно пример посложнее? Например, с рекурсивным CTE и оконными функциями.
Исландия — исключение, благодаря исключительной географии и низкой плотности населения. Например, в РФ гидроэлектростанции можно строить в Сибири. Но электроэнергии там и так избыток. А в европейской части строительство новой гидроэлектростанции нанесет такой удар по экологии, что «зеленой» ее назвать язык не повернется.
Геотермальные электростанции можно строить на Камчатке. В Паратунке даже работает маломощная. Вот только большие мощности можно получить только ближе к Долине Гейзеров, до которой, кроме как на вертолёте, не доберешься.
Вы ошиблись, потому, что не прочитали даже названия статьи.
SSIS медленней, чем описанный в статье способ.

Все равно в нем Вы будете делать те же шаги: экспортировать данные из PostgreSQL в текстовый файл и загружать их BULK INSERT из этого текстового файла в MS SQL. Но передавать по сети данные будете дважды (SSIS — выделенный хост).

Information

Rating
2,870-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity