Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Коллеги, добрый вечер. Есть идея перенести все банковские процессы и реализовать их ПОЛНОСТЬЮ посредством dtsx пакетов с отказом от процедур. В данный момент базу обслуживают процедуры, немного dtsx пакетов, однако в VS пакет представляет собой этапы с однойменными процедурами, ссылающиеся на последние. Вопрос: 1) возможно ли перенести обслуживание всех процессов посредством SSIS пакетов? 2) возможно ли почти полностью отказаться от процедурной части, которая в данный момент эксплуатируется? 3) какие положительные моменты появятся в случае успешной реорганизации? 4) какие отрицательные моменты появятся в случае реализации? С уажением ваш коллега. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:26 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Зачем? Заняться нечем особо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:01 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичЗачем? Заняться нечем особо? SSIS пакеты работают быстрее. Хочу ускорить процессы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:04 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
dermama, 1) возможно, SSIS всё-таки workflow среда со скриптовыми блоками, так что реализация практически любой программной логики вполне возможна 2) конечно, например элементарно посылая текст процедуры на исполнение в виде SQL скрипта вместо того чтобы её вызывать на сервере готовую 3) и 4) - зависит от специфики текущего процесса и как это реализовать на SSIS, универсального ответа нет, у SSIS есть свои преимущества у SQL/DB свои, можно просто разбить процесс используя лучшее из каждого решения для компенсации недостатков/слабостей другого. если есть необходимость и такая задача с реальной пользой от результата - то вперёд, иначе: работает - не трожь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:21 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
dermamaSSIS пакеты работают быстрее. Хочу ускорить процессы.Не может условный join работать вне сервера быстрее, чем внутри. Но если у вас альтернативно одаренный код внутри TSQL-процедур, то это не повод переносить все наружу -- надо просто это разгрести, что у вас там понаписано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:26 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич, теоретически конечно, только он ещё не говорит пока о движении данных между системами там тогда ещё отказоустойчивость (вероятность сбоя уже в двух системах а не одной) , дополнительные ресурсы/лицензии, откат при сбое (и/или перезапуск с шага..), логирование.. и куча других невероятных граблей.. о преимуществах - SSIS в некоторых сценариях легче отслеживать прогресс (хотя и в процедурах можно результаты пошагово в служебные таблицы писать) как недостаток - вроде ведь SSIS умирает давно .. вся нормальная автоматизация глубоко в скрипты уходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:35 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Перенести логику из хранимых процедур в сервер приложений - ещё понятная идея. Хотя ИМХО плохая. Но идея использовать SSIS как сервер приложений - это совсем никуда не годиться. Вы не сможете это нормально разрабатывать и поддерживать. Да и работать будет очень медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 08:02 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичНе может условный join работать вне сервера быстрее, чем внутри. Может и легко. У SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п. Разрабатываю всю загрузку ХД посредством SSIS, начиная от получения данных из шины (напрямую), файлов, таблиц БД. Пакеты крутятся на выделенном сервере ETL и минимально нагружают основной сервер ХД. Работает быстро, потребляет мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 10:04 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийУ SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п.SSIS умеет забирать данные из MSSQL мимо транзакционности и статистики выполнения? Чем нагружается лог при чтении? Как выполнить соединение на клиенте не выкачав все данные в нем участвующие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 10:19 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmSSIS умеет забирать данные из MSSQL мимо транзакционности и статистики выполнения?Чем нагружается лог при чтении? Я отвечал на вопрос о join-е. Давайте не будем произвольно расширять вопрос и притворяться глупее, чем мы есть. invmКак выполнить соединение на клиенте не выкачав все данные в нем участвующие? ETL-средство не может оптимизировать непосредственно выкачку данных из таблиц и очень ограниченно - вставку, за счет разбиения на порции. Основная выгода получается за счет операций над выкачанными наборами данных (начиная с декомпозиции запросов к источникам). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 10:37 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
радует, мышкопрограммисты атакают автор. Основная выгода получается за счет операций над выкачанными наборами данных (начиная с декомпозиции запросов к источникам). мы поставили второй сервер что бы сказать что теберь всё быстрее на первом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 10:43 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийЯ отвечал на вопрос о join-е. Давайте не будем произвольно расширять вопрос и притворяться глупее, чем мы есть.А мои вопросы к чему относятся? Или join в SSIS - это некая магия? Есть тут на форуме один персонаж, который некоторое время назад утверждал, что "мержить" данные из БД в SSIS гораздо выгоднее, чем на сервере. Доказать не смог. У вас пока что тоже с доказательствами беда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 10:54 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
TaPaKрадует, мышкопрограммисты атакают Вы напомнили мне одного моего дальнего родственника, программиста на плюсах. Как-то раз он мимоходом сказал, что SQL - это не программирование, а так. Я в ответ хмыкнул, пожал плечами и подумал: молодой еще, авось потом поймет. Лично я комбинирую внутри SSIS квадратики, SQL и C#, выбирая то, что проще и эффективнее решит конкретную потребность. У меня три инструмента, у других один. TaPaKмы поставили второй сервер что бы сказать что теберь всё быстрее на первом Именно так. И это очень хорошая практика, когда нагрузку можно разнести по разным машинам в зависимости от ее типа, изолировать постоянно работающий ETL от аналитических запросов. invmА мои вопросы к чему относятся? Или join в SSIS - это некая магия? Не магия, по сути это обычный merge join. Как только вы захотите изменить данные посредством join внутри СУБД, вы сталкиваетесь с теми самыми издержками, о которых я говорил выше. Без изменения данных это не ETL и потому оффтопик. invmЕсть тут на форуме один персонаж, который некоторое время назад утверждал, что "мержить" данные из БД в SSIS гораздо выгоднее, чем на сервере. Доказать не смог. У вас пока что тоже с доказательствами беда... Если рассматривать понятие "мержить" максимально широко, то я соглашусь с тезисом этого персонажа. Доказываю это своим работающим решением моему руководству и работодателю. Доказывать лично вам... ну, если вежливо попросите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 11:30 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
авторКак только вы захотите изменить данные посредством join внутри СУБД дивный новый мир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 11:32 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийНе магия, по сути это обычный merge join.А входные данные для merge кто будет сортировать? .ЕвгенийКак только вы захотите изменить данные посредством join внутри СУБД, вы сталкиваетесь с теми самыми издержками, о которых я говорил выше.Как интересно. Оказывается SSIS еще и писать умеет в БД минуя транзакционность и статистику выполнения. Не говоря уже о том, что посредством join данные в БД изменить нельзя. .ЕвгенийДоказываю это своим работающим решением моему руководству и работодателю.Работоспособность решения не есть доказательство его превосходства над другими работоспособными решениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 12:04 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmА входные данные для merge кто будет сортировать? Либо сервер БД, либо SSIS. invmКак интересно. Оказывается SSIS еще и писать умеет в БД минуя транзакционность и статистику выполнения. Не говоря уже о том, что посредством join данные в БД изменить нельзя. Вы цепляетесь к словами, что, на мой взгляд, не имеет разумной цели. Если вам так не нравится слово "посредством", я напишу "с применением join". Вопрос исчерпан? В одном случае транзакция блокирует таблицы-источники, а также ресурсы для преобразований данных. В другом - отдельные и независимые (опционально) транзакции на чтение и изменение (обычно bulk insert). invmРаботоспособность решения не есть доказательство его превосходства над другими работоспособными решениями. Согласен с вами. Более того, я считаю это очевидным не только для нас, но и для моего руководства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 12:28 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Как только люди не извращаются! А каков размер базы в общем и размер средней таблицы, каков поток чтений и записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 12:39 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Кесарь, до 500 xml сообщений (по 1-100 кб) в секунду, таблицы до нескольких сотен млн записей, задержка обновления данных до пары минут (от появления сообщения в шине), минимальное влияние на сервер ХД (короткие insert и update). Посредственное виртуальное железо. Реализованы разрешение идентификаторов без ограниченного окна загрузки; СККД и автоматическая загрузка после исправления ошибки (например, элемент справочника пришел позже ссылающегося на него факта). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 12:54 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Так у вас затык получается в моменте вставки данных из внешних систем, я правильно понял? Не знаю как вы собрались работать на SSIS-е, ИМХО он слабо предрасположен для этого. Вещь очень плохо поддерживаемая. Лучше туда никакую логику не засовывать, умучаетесь потом. Прочем дело ваше. Как мне видится расшивка этого узкого места: вся входящая инфа валится на «сервер» (это может быть вовсе не один сервер, впрочем в этих технологиях я не очень), на котором работают микросервисы (что позволяет широкое масштабирование в зависимости от нагрузки), которые парсят XML-сообщения и складывают в некую достаточно лёгкую базу. Задачей базы является присвоение сквозного ID каждой сущности и отправка её в обмен. Из обмена она уже забирается основной базой, в которой лежит вся инфа и реализована бизнес-логика на процедурах. Лёгкая база регулярно чистится, ессно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:13 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийКесарь, до 500 xml сообщений (по 1-100 кб) в секунду, таблицы до нескольких сотен млн записей, задержка обновления данных до пары минут (от появления сообщения в шине), минимальное влияние на сервер ХД (короткие insert и update). Посредственное виртуальное железо. Реализованы разрешение идентификаторов без ограниченного окна загрузки; СККД и автоматическая загрузка после исправления ошибки (например, элемент справочника пришел позже ссылающегося на него факта). server broker курильщика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:21 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
dermama, SSIS работаю эффективно при обработке и загрузке данных из внешних источников. Для внутрисерверных запросов оптимальны типовые SQL запросы. Основное преимущество SSIS в том, что с их помощью можно достаточно быстро обрабатывать потоки внешних данных без создания локальных "перевалочных" буферов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:35 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Кесарь, в общем-то у меня нет затыка. На вход загрузки подается в разы меньше данных, чем она способна обработать (средняя нагрузка около 100 сообщений/сек). Аналог микросервисов реализован пакетами SSIS. Одна посредственная виртуалка, без контейнеров, кластеров и прочей атрибутики для лентяев. Бизнес-логику, удовлетворяющую заданным требованиям, посредством одного SQL реализовать невозможно (мое личное мнение). Если не углубляться, то не получится совместить минимальные задержку и влияние. TaPaKserver broker курильщика Уже был RabbitMQ. Кроме того, я не видел решение, позволяющее парсить такой поток сообщений на таком железе. Поэтому сделал так, как сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:36 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийЛибо сервер БД, либо SSIS.Т.е. об этих дополнительных накладных расходах вы решили скромно умолчать? .ЕвгенийВы цепляетесь к словами, что, на мой взгляд, не имеет разумной цели.Да неужели? Вы просто не в состоянии внятно объяснить свои пассажи и путаетесь в показаниях. .ЕвгенийВ одном случае транзакция блокирует таблицы-источники, а также ресурсы для преобразований данных.Да? И как же она их блокирует так, что они остаются монопольно заблокированными на время транзакции? И, главное, зачем? И что такое ресурсы для преобразования данных? И чтоб эти ресурсы не блокировались нужно добавить отдельный сервер для ETL со своими ресурсами? А лучше несколько, так сказать для надежности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:38 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Выделение машины под ETL требуется в случае обработки несортированных данных значительного объема. То есть при объемах, начиная с нескольких десятков гигабайт и загруженностью 24/7. В других случаях выглядит избыточным... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:45 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийКесарь, в общем-то у меня нет затыка. На вход загрузки подается в разы меньше данных, чем она способна обработать (средняя нагрузка около 100 сообщений/сек). Тогда я не понял, в чём проблема. .ЕвгенийБизнес-логику, удовлетворяющую заданным требованиям, посредством одного SQL реализовать невозможно (мое личное мнение). Если не углубляться, то не получится совместить минимальные задержку и влияние. И ещё раз не понял. Бизнес-логика легко реализуется на sql любая, которая может быть представлена в виде транзакций (у вас ведь не управление атомной станцией?). Банковские операции заведомо реализуемы в sql. По определению. Задержки относятся не к бизнес-логике, а к архитектуре, качеству кода, качеству работы команды админов и наконец просто напросто к мощности железа. Что есть "влияние" я тоже не понял. В общем то ли вы не можете сформулировать ясными словами ваши проблемы, то ли их вовсе нет, то ли вы их сами не до конца понимаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 13:53 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmТ.е. об этих дополнительных накладных расходах вы решили скромно умолчать? Что значит - дополнительных? Join СУБД никаких расходов не несет (не сортирует для merge, не создает хеш для hash)? invmДа? И как же она их блокирует так, что они остаются монопольно заблокированными на время транзакции? И, главное, зачем? Вы очевидно приписали мне слово "монопольно". Вам так важен данный спор? Успокойтесь и представьте себе две ситуации. В первом случае соединяется десяток таблиц, чтобы вставить результат в одиннадцатую. Во втором случае - все операции чтения и записи независимы. Для простоты все чтения в обоих ситуациях фуллскан. Вопрос: есть ли разница в потреблении ресурсов СУБД? invmИ что такое ресурсы для преобразования данных? Это выделение памяти, ядер, запись в лог, обновление статистики выполнения. Я говорю об этом максимально обще, как о том, что не расходуется SSISом или расходуется, но принципиально иначе - за счет чего можно выиграть. invmИ чтоб эти ресурсы не блокировались нужно добавить отдельный сервер для ETL со своими ресурсами? Вы совершенно правы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 14:02 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийЧто значит - дополнительных? Join СУБД никаких расходов не несет (не сортирует для merge, не создает хеш для hash)?То и значит. У сервера три стратегии соединения, у SSIS - одна, которая по-любому требует упорядоченных наборов на входе. И, к сведению, хеш эффективнее мержа на больших объемах с необходимостью сортировки. Я уже промолчу про параллелизм при выполнении запросов... .ЕвгенийВы очевидно приписали мне слово "монопольно"Конечно приписал. Ибо без "монопольно" ваше объяснение про заблокированные "таблицы-источники" не имеет смысла. И, кстати, вы так не объяснили - зачем же их так жестко блокировать? .ЕвгенийВ первом случае соединяется десяток таблиц, чтобы вставить результат в одиннадцатую. Во втором случае - все операции чтения и записи независимы. Для простоты все чтения в обоих ситуациях фуллскан. Вопрос: есть ли разница в потреблении ресурсов СУБД?Ну так объясните нам, неразумным: - что такое зависимость операций записи от операций чтения? - чем N фуллсканов в одном запросе хуже тех же N фуллсканов, но с передачей всего насканированного клиенту? .ЕвгенийВы совершенно правы.Вы, видимо, работаете у какого-то вендора ПО. Ибо только там считают, что клиенту дешевле купить пару-тройку новых серверов со всеми необходимыми лицензиями на софт, чем нарастить ресурсы на одном сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 14:45 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Не пойму о чем спор, слияние, которое выполняет SSIS заведомо менее эффективно при работе с данными одного сервера, так так требует обязательную сортировку и не может быть выполнено параллельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 14:54 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
Кроме того, для корректной работы слиянию требуется дополнительная задача преобразование символьных данных в юникод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 14:57 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
КесарьТогда я не понял, в чём проблема. Я не dermama, у меня нет проблемы с решением. У меня есть непонимание с человеком, притворяющимся неразумным. Но даже это не является проблемой. КесарьБизнес-логика легко реализуется на sql любая, которая может быть представлена в виде транзакций (у вас ведь не управление атомной станцией?). Банковские операции заведомо реализуемы в sql. По определению. Задержки относятся не к бизнес-логике, а к архитектуре, качеству кода, качеству работы команды админов и наконец просто напросто к мощности железа. Ну хорошо, приведу конкретный пример. В таблице области Stage лежит, скажем, десять тысяч записей. Нужно "смержить" ее с соответствующей таблицей в детальной области, содержащей полмиллиарда записей, в течение 1 минуты. Спустя еще одну минуту - повторить. При этом минимально влияя (конкурируя за ресурсы) с аналитическими запросами к детальным данным. Жду предложений, как это сделать на SQL, причем на скромном виртуальном сервере. invmТо и значит. У сервера три стратегии соединения, у SSIS - одна И это значит, что у вас три инструмента, у меня - четыре. Понимаете разницу? Или снова прикинетесь? Также в SSIS есть кешируемый лукап - это пятый инструмент, когда не ожидается размножение строк. Наконец, в SSIS есть Script Task с возможностями C# - это шестой инструмент. Конечно, в MS SQL есть CLR - но кому придет в голову использовать его для соединений? invmКонечно приписал. Ибо без "монопольно" ваше объяснение про заблокированные "таблицы-источники" не имеет смысла. Конечно, приписывать собеседнику свои слова в цивилизованном разговоре не стоит. Вместо этого лучше использовать вопрос: "Правильно ли я понял, что...?" и объяснить свои сомнения. Например, правильно ли я понял, что блокировки S вы блокировками не считаете? Когда вы просто читаете таблицу-источник, то блокируете S текущую читаемую страницу, освобождая сразу по окончании чтения. Когда вы используете таблицу-источник внутри оператора модификации данных, то блокируете с учетом эскалации S всю таблицу (прочитанные данные) и освобождаете по окончании транзакции. С этим вы согласны или нет? invmНу так объясните нам, неразумным Извините, но я специально просил вас "не притворяться глупее, чем мы есть". Почему вы считаете нормальным игнорировать мою просьбу и одновременно ожидать ответа на свою? Если вы неразумный, то какой смысл тратить на вас время? invmВы, видимо, работаете у какого-то вендора ПО. Ибо только там считают, что клиенту дешевле купить пару-тройку новых серверов со всеми необходимыми лицензиями на софт, чем нарастить ресурсы на одном сервере. А вам сама архитектура с выделенным сервером не кажется избыточной в сравнении с файл-серверной? Access намного дешевле MS SQL, а SQLite и вовсе бесплатен. В моем случае две скромных виртуалки, специализированные по нагрузке, обходятся дешевле и работают эффективнее, чем один универсальный сервер. Да и надежнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 16:12 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.Евгений, эскалация это конечно страшнющая вещь.. А вот если просто читать в никуда, то это быстро и увлекателно и ничего не блокирует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 16:38 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийНу хорошо, приведу конкретный пример. В таблице области Stage лежит, скажем, десять тысяч записей. Нужно "смержить" ее с соответствующей таблицей в детальной области, содержащей полмиллиарда записей, в течение 1 минуты. Спустя еще одну минуту - повторить. При этом минимально влияя (конкурируя за ресурсы) с аналитическими запросами к детальным данным. Жду предложений, как это сделать на SQL, причем на скромном виртуальном сервере. Мёрж 10 тысяч записей делается легко и существенно менее минуты. Ну при наличии конечно нормальных идентификаторов и индексов. Как сделать, чтобы не конкурировать с чтением? Читаемая реплика базы на отдельном сервере. P.S. Если вы хотите, чтобы вас тут похвалили и оценили, то вы - безусловно молодец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:25 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийИ это значит, что у вас три инструмента, у меня - четыре. Понимаете разницу? Или снова прикинетесь? Также в SSIS есть кешируемый лукап - это пятый инструмент, когда не ожидается размножение строк. Наконец, в SSIS есть Script Task с возможностями C# - это шестой инструмент. Конечно, в MS SQL есть CLR - но кому придет в голову использовать его для соединений?Не надо уводить дискуссию в сторону. Речь идет о ваших утверждениях о преимуществе join на стороне SSIS. Итого 1.5 стратегии соединения на сторогне SSIS и 3 на стороне сервера. Или вы опять все рассматриваете в "широком смысле"? Действительно, это очень удобный способ уходить от ответов не неудобные вопросы... .ЕвгенийКонечно, приписывать собеседнику свои слова в цивилизованном разговоре не стоит.Не учите меня жить - это не в вашей компетенции. .ЕвгенийНапример, правильно ли я понял, что блокировки S вы блокировками не считаете?Неправильно..ЕвгенийКогда вы просто читаете таблицу-источник, то блокируете S текущую читаемую страницу, освобождая сразу по окончании чтения. Когда вы используете таблицу-источник внутри оператора модификации данных, то блокируете с учетом эскалации S всю таблицу (прочитанные данные) и освобождаете по окончании транзакции. С этим вы согласны или нет?1. Блокировки бывают не только страничные. Есть еще три гранулярности. 2. На TIL RC S снимается как только данные прочитаны, вне зависимости от нахождения или нет таблицы-источника в инструкции модификации данных. 3. На TIL RC S вообще может не накладываться, если страница не "грязная". 4. Эскалация наступает при соблюдении целого ряда условий, в том числе при отсутствии несовместимых блокировок, а не по вашему хотению. 5. Если требуется TIL старше RC (кроме снепшотных), то вам в SSIS придется работать в транзакции. И, т.к. отсутствует predicate pushdown, - можете легко получить количество S-блокировок значительно больше, чем выполняя запрос на сервере. .ЕвгенийЕсли вы неразумный, то какой смысл тратить на вас время?Вас никто не заставляет тратить ваше драгоценное время. Еще раз - не учите меня жить. .ЕвгенийА вам сама архитектура с выделенным сервером не кажется избыточной в сравнении с файл-серверной?Не сравнивайте теплое с мягким. Впаривание дополнительных серверов клиенту для решения задач, которые спокойно можно решать без оных - просто развод клиента на деньги. И не надо подводить под такое впаривание "научное обоснование". .ЕвгенийВ моем случае две скромных виртуалки, специализированные по нагрузке, обходятся дешевле и работают эффективнее, чем один универсальный сервер. Да и надежнее.Я рад за вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:35 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmНе надо уводить дискуссию в сторону. Речь идет о ваших утверждениях о преимуществе join на стороне SSIS. Итого 1.5 стратегии соединения на сторогне SSIS и 3 на стороне сервера. Второй раз. Я сказал, что join снаружи может быть быстрее, чем join внутри. Не обязан быть быстрее всегда, а может . Используя ETL, я могу осознанно передавать ему эти случаи. invmНе учите меня жить - это не в вашей компетенции. Приятно повеяло годами моей молодости, а именно лозунгом "Не учите меня жить, лучше помогите материально". Вот мне не зазорно учиться даже у неразумных людей: я приму ваши слова о блокировках к сведению и разберусь, почему у меня сложилось мнение, о котором я написал выше. Не прямо сейчас, но позже. Если же вам кажется, будто я пытаюсь вас чему-то учить, то вы ошибаетесь. Я просто поступаю в своем стиле и объясняю, почему. Заставлять вас следовать моему примеру не стану, ибо по большому счету пофиг. Да и, как говорится, можно подвести лошадь к воде, но нельзя заставить ее пить. Впрочем, не беря в расчет конкретно блокировки и возвращаясь к преимуществам ETL, любой запрос с модификацией все равно пишет в лог, выделяет память и потоки под обработку данных - то, что SSIS не делает или делает, но совсем иначе. invmНе сравнивайте теплое с мягким. Впаривание дополнительных серверов клиенту для решения задач, которые спокойно можно решать без оных - просто развод клиента на деньги. Ваше убеждение в том, что выделенные серверы (только ETL? какие-то еще?) не нужны, вы никак не обосновываете. Я привел пример задачи, которая, по словам другого участника темы, требует дополнительного сервера. Только одной задачи среди многих выполняемых. Видимо, вы этого замечать не желаете. invm не нравится сервер ETL, alexeyvg не нравится шина... Надеюсь, я не столь агрессивен и категоричен в отношении хадупа. КесарьЕсли вы хотите, чтобы вас тут похвалили и оценили, то вы - безусловно молодец. Когда я действительно захочу, чтобы меня оценили именно на форуме, я напишу доклад или презентацию. Пока мне достаточно оценки со стороны руководства. Хотя можно обкатать тезисы, типа "ETL имеет право на жизнь"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 19:24 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийВторой раз. Я сказал, что join снаружи может быть быстрее, чем join внутри. Не обязан быть быстрее всегда, а может .Ну вот и продемонстрируйте каким образом и засчет чего это "может" происходит. Пока что от вас только бла-бла-бла. .ЕвгенийВпрочем, не беря в расчет конкретно блокировки и возвращаясь к преимуществам ETL, любой запрос с модификацией все равно пишет в лог, выделяет память и потоки под обработку данных - то, что SSIS не делает или делает, но совсем иначе.Еще раз - не уходите в сторону. Обсуждается join на стороне SSIS, а не преимущества ETL. .ЕвгенийВаше убеждение в том, что выделенные серверы (только ETL? какие-то еще?) не нужны, вы никак не обосновываете.Выделение под какую-то задачу отдельного сервера требует обоснования. Утверждение типа "я знаю как это сделать на SSIS на выделенном сервере, но не знаю как тоже самое равноэффективно реализовать на сервере БД" таковым не является. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 20:16 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
авторна стороне SSIS, а не преимущества ETL. хотелось бы понять почему ETL это монополия SSIS, а не просто модель доствки данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 20:46 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
TaPaK...хотелось бы понять почему ETL это монополия SSIS , а не просто модель доствки данных...у Gartner ETL (Data Integration) для MS выделено весьма серединное место, и даже внутри MS не является монопольным (не говоря уже о SP_.. , Agent, PS и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 23:16 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
vikkivTaPaK...хотелось бы понять почему ETL это монополия SSIS , а не просто модель доствки данных...у Gartner ETL (Data Integration) для MS выделено весьма серединное место, и даже внутри MS не является монопольным (не говоря уже о SP_.. , Agent, PS и т.д.) Ssis успел отделиться от ms? Или о чем посыл, тем более если брать этот маркетинговый квадрат, то ms нагенерил и наступал все чтобы в одной точке выглядеть прилично :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 00:02 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmНу вот и продемонстрируйте каким образом и засчет чего это "может" происходит. Пока что от вас только бла-бла-бла. Т.е. вы требуете демо-пример, и ради вашего убеждения я должен развернуть тестовую среду, подготовить опытные примеры и собрать по ним статистику выполнения. Ок, могу. Но не бесплатно. Вы готовы оплатить мой труд? invm.ЕвгенийВпрочем, не беря в расчет конкретно блокировки и возвращаясь к преимуществам ETL, любой запрос с модификацией все равно пишет в лог, выделяет память и потоки под обработку данных - то, что SSIS не делает или делает, но совсем иначе.Еще раз - не уходите в сторону. Обсуждается join на стороне SSIS, а не преимущества ETL. Вы не понимаете, что именно об этом я и говорил - о том, что SSIS при выполнении join не делает или делает, но совсем иначе, в сравнении с MS SQL. invmВыделение под какую-то задачу отдельного сервера требует обоснования. Утверждение типа "я знаю как это сделать на SSIS на выделенном сервере, но не знаю как тоже самое равноэффективно реализовать на сервере БД" таковым не является. Во-первых, реализовывать задачи на сервере БД не является самоцелью. Невыделение отдельных серверов - тоже не самоцель. Во-вторых, отсутствие способа это частный случай незнания способа. Когда выбирается способ решения более-менее сложной задачи, то человек с опытом и без избытка тщеславия не заявит безусловную невозможность решения задачи некими средствами (в данном случае сервером БД). Он скажет: "Если такой способ и существует, то я его не знаю". И предложит свой вариант решения. В-третьих, а знаком ли вам вкус устриц, чтобы обсуждать его в столь самоуверенной форме с теми, кто их уже ел? Приходилось ли вам работать со средствами ETL в целом и SSIS в частности и насколько глубоко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 13:38 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийТ.е. вы требуете демо-пример, и ради вашего убеждения я должен развернуть тестовую среду, подготовить опытные примеры и собрать по ним статистику выполнения. Ок, могу. Но не бесплатно. Вы готовы оплатить мой труд?Ну не я же утверждал, что join на стороне SSIS может выполняться быстрее. Предлагаете поверить вам на слово? Не заслужили пока... А для хоть каких-то доказательств достаточно хотя бы в псевдокоде написать то, что будет происходить при выполнении join в SSIS. С указаниями где выигрышь и почему. Но вы даже этого сделать не в состоянии. ЗЫ: Остальное словоблудие и попытку помериться письками игнорирую как оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 13:53 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийSSIS при выполнении join не делает или делает, но совсем иначе, в сравнении с MS SQL.Если нужно получить связанные с другим множеством данные, то первый вариант исключаем - join сделать надо. По пункту "иначе", хотелось бы подробностей - какие секретные технологии скоростного join-а используются в SSIS, и почему разработчики не поделились ими с разработчиками Database Engine? .Евгенийзнаком ли вам вкус устриц, чтобы обсуждать его в столь самоуверенной форме с теми, кто их уже ел?А вы уверены, что знакомы, поэтому считаете правильным использовать в беседе настолько самоуверенные формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 13:55 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
alexeyvgЕсли нужно получить связанные с другим множеством данные, то первый вариант исключаем - join сделать надо. По пункту "иначе", хотелось бы подробностей - какие секретные технологии скоростного join-а используются в SSIS, и почему разработчики не поделились ими с разработчиками Database Engine? Прошу вас, читайте мои предыдущие сообщения. Повторяю свою фразу: "У SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п." alexeyvgА вы уверены, что знакомы, поэтому считаете правильным использовать в беседе настолько самоуверенные формы? Я стараюсь избегать самоуверенности, если у меня не получилось - укажите, где это произошло. Я не требую делать те или иные задачи на SSIS или строго доказать мне нежелательность его применения. Но когда заявляют некую невозможность, а у меня есть противоположный опыт, то я могу им поделиться. Если кого-то мой опыт возмущает - это его проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 14:14 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийПрошу вас, читайте мои предыдущие сообщения. Повторяю свою фразу: "У SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п."Не надо юлить и пытаться считать оппонента идиотом со склерозом. Лучше на конкретном примере покажите какие издержки транзакционности, лога и статистики выполнения у join на стороне сервера. И почему данные издержки будут отсутствовать, когда вы будете забирать данные с сервера для выполнения join в SSIS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 14:32 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийalexeyvgЕсли нужно получить связанные с другим множеством данные, то первый вариант исключаем - join сделать надо. По пункту "иначе", хотелось бы подробностей - какие секретные технологии скоростного join-а используются в SSIS, и почему разработчики не поделились ими с разработчиками Database Engine? Прошу вас, читайте мои предыдущие сообщения. Повторяю свою фразу: "У SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п."SSMS должен получить с сервера данные, от этого никуда не деться, и от издержек транзакционности не уйти. Может, вы имеете в виду дополнительное время блокировки, которая в случае MSSQL будет держаться до конца джойна? Да, такое есть, но это увеличение - мизер, сами то издержки никуда не делись (то есть сама установка и снятие блокировки). А вот основное, то есть примитивный механизм JOIN-а в SSIS, намного важнее. SSIS может делать JOIN тупым циклом, причём даже исключительно в одном потоке! Никаких тебе мердж-хэш и т.п., никаких использований наиболее подходящих для джойна индексов, в общем, мрак. Алгоритмы JOIN-а в SSIS, по сути, равны алгоритмам рядового кодера, который тупо пройдёт вложенными циклами, перебором по массивам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 20:30 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
alexeyvgМожет, вы имеете в виду дополнительное время блокировки, которая в случае MSSQL будет держаться до конца джойна?О каких блокировках речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 22:07 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
.ЕвгенийПовторяю свою фразу: "У SSIS намного меньшие издержки, ему не нужно поддерживать транзакционность, лог, статистику выполнения и т.п."Вы с упертостью барана отвечаете одной и той же фразой даже не понимая что несете чушь которая ну никак не подтверждает заявленные вами утверждения. .ЕвгенийНо когда заявляют некую невозможность, а у меня есть противоположный опыт, то я могу им поделиться. Если кого-то мой опыт возмущает - это его проблемы.За свой опыт вы только что попросили денег. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 22:28 |
|
||
|
Перенос процесса.
|
|||
|---|---|---|---|
|
#18+
invmalexeyvgМожет, вы имеете в виду дополнительное время блокировки, которая в случае MSSQL будет держаться до конца джойна?О каких блокировках речь?Ну как, блокировка при селекте, как минимум схемы, если запрос с nolock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 23:07 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1687710]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 414ms |

| 0 / 0 |
