Настройка потока данных в пакете служб SSIS в выпуске Enterprise Edition (видеоматериал по SQL Server)
Продукт: службы Microsoft SQL Server Integration Services |
Автор: Дэвид Ноор (David Noor), корпорация Майкрософт |
Продолжительность: 00:15:50 Размер: 68,1 МБ Тип: WMV-файл |
Краткое содержание видеоролика
В этом видеоролике показано, как повысить производительность потока данных в пакете служб Integration Services. В материале содержатся сведения о настройке следующих этапов потока данных:
- извлечение;
- преобразование;
- загрузка.
Эти советы по настройке производительности можно применять во время проектирования, разработки и выполнения потока данных.
Благодарности
Благодарим Томаса Кейзера (Thomas Kejser) за участие в подготовке материала для серии — Службы SSIS: проектирование и настройка для повышения производительности (серия видеороликов по SQL Server). Этот видеоролик второй в серии.
Благодарим Карлу Саботту (Carla Sabotta) и Дугласа Лауденшлягера (Douglas Laudenschlager) за рекомендации и ценные отзывы.
Текст видеоролика
Временная метка видеоролика | Звук |
---|---|
00:00 |
Здравствуйте, меня зовут Дэвид Ноор, я старший разработчик служб SQL Server Integration Services в корпорации Майкрософт. Наш видеоролик посвящен настройке потока данных в пакете служб SSIS в выпуске Enterprise Edition. Это вторая часть серии видеороликов, озаглавленной Службы SSIS: проектирование и настройка для повышения производительности. В первой части серии Денни показал, как лучше всего выполнить измерение производительности пакетов служб SSIS и интерпретировать полученные результаты. Здесь, опираясь на данные первой части, мы рассмотрим вопросы повышения производительности потока данных в пакетах служб SSIS. Сначала мы определим общие составляющие, присутствующие во всех потоках данных, и покажем, с каких компонентов потока данных следует начинать работу по повышению производительности. После выявления проблем с производительностью можно вносить в поток данных разнообразные изменения, которые позволят ускорить работу и повысить эффективность. Мы рассмотрим ряд советов, предназначенных для этапов проектирования, разработки и выполнения потока данных. Начнем! Большинство задач потока данных в пакетах занимаются извлечением, преобразованием и загрузкой важных данных. Такие операции часто рассматриваются совместно. Настройка потоков данных заключается в настройке каждого из таких этапов потока данных: извлечения, преобразования и загрузки. Для задач извлечения данных мы рассмотрим настройку компонентов-источников служб SSIS и выполняемые ими запросы, которые обеспечивают лучшую производительность и минимальное воздействие на исходные системы. Для настройки преобразований в потоке данных анализируется выполняемый объем работы и выбирается оптимальный метод действий путем исключения необязательных этапов. Иногда операции преобразования помещаются в исходные запросы. Наконец, для настройки компонента потока данных, выполняющего загрузку, необходимо настроить компоненты-назначения служб SSIS, сети, механизм блокировки и другие факторы, которые могут помешать выполнению потока данных в ходе загрузки данных в назначение. В этом видеоролике мы дадим практические советы по настройке различных составляющих потока данных на всех трех этапах. Перед подробным разбором советов важно заметить, что для проблем производительности обычно не находится универсального решения. Маловероятно, что какой-то из приведенных здесь советов подойдет к любым проблемам с производительностью потока данных. Эти советы хорошо действуют в распространенных ситуациях, однако решение проблемы — это не слепое применение всех возможных рекомендаций. Для достижения оптимального результата следует всегда понимать назначение задач потока данных и проектировать их в соответствии с этим назначением, измерять текущую производительность и последовательно вносить изменения в поток данных, повторяя на каждом шаге процедуру измерения для определения влияния на производительность. В процессе анализа проблемы с производительностью легко увлечься подробностями, относящимися к определенной технологии или отдельному компоненту, иногда по причине хорошего знакомства с технологией или кодом. Однако в любом случае нужно представлять поток данных в контексте экосистемы в целом, состоящей, скорее всего, из нескольких реляционных баз данных, сети, операционных систем, файловых систем — множества компонентов. Чем больше известно об экосистеме в целом, тем более полным будет представление о реальных проблемах производительности, стоящих перед отдельным компонентом, что позволит более эффективно и с меньшей степенью риска вносить изменения. |
03:38 |
Сначала рассмотрим операцию извлечения, с которой начинается поток данных. Если в качестве источника используется SQL Server или любая другая база данных с интерфейсом массовых операций, следует подобрать увеличенный размер пакета. В обычных ситуациях хорошо работает установленное в SQL Server значение по умолчанию (4096), но, поскольку в ходе извлечения будут перемещаться данные большого объема, увеличение этого параметра должно помочь. Чтобы увеличенный размер пакета оказал влияние на работу, нужно попросить сетевого администратора включить в сети крупные кадры. При этом следует проверить воздействие таких изменений на пакет. Если для массовых операций и однострочных операций используется один диспетчер соединений (например, источник OLE DB и команда OLE DB command), рекомендуется создать второй диспетчер соединений для команд OLE DB и использовать в нем пакеты меньшего размера. Как уже отмечалось, если операции извлечения, преобразования и загрузки выполняются в Windows 2008 на многоядерном компьютере с несколькими сетевыми адаптерами, то можно несколько повысить производительность сети, привязав сетевые адаптеры к разным ядрам. Дополнительные сведения см. в сообщении в блоге Масштабирование объемного сетевого трафика в Windows на веб-узле MSDN (на английском языке). В ходе настройки извлечения данных проще всего заниматься настройкой применяемых запросов. Часто выглядит весьма заманчивым выбрать таблицу для извлечения и разрешить выборку всех столбцов, однако, если выбирать только действительно необходимые столбцы, результаты окажутся заметно лучше. Это не только снизит объем сетевого трафика и используемой памяти, но также заметно уменьшит число операций ввода-вывода, выполняемых сервером для обработки запроса. Здесь показано, как для SQL Server можно с помощью подсказки указать, что в операции выбора не нужно применять совмещаемые блокировки, поэтому запрос потенциально может считывать незафиксированные или «грязные» данные. Используйте такой метод только в случаях, когда действительно необходима максимальная производительность и считывание «грязных» данных не вызовет проблем с операциями извлечения, преобразования и загрузки. Уточняющие запросы можно считать извлечением или преобразованием, но в любом случае следует применять принципы, показанные на предыдущем слайде. Здесь еще более важно выбирать только необходимые столбцы, поскольку наряду с оптимизацией сети это позволит оптимизировать кэш в памяти. Если используется SQL Server 2008, одной из новых функций, отлично подходящих для настройки производительности, является новый общий кэш уточняющих запросов. Общий доступ к кэшу уточняющих запросов позволяет один раз получать эталонные данные и использовать их в нескольких операциях уточняющего запроса в рамках пакета или даже в различных пакетах, сохранив кэш в файле. Если несколько компонентов «Уточняющий запрос» ссылаются на одну таблицу, следует обратиться к этой новой функции, чтобы существенно повысить скорость пакетов. Она используется очень просто: создайте в пакете диспетчер соединений с кэшем, заполните кэш с помощью нового преобразования «Кэш», а затем измените уточняющие запросы так, чтобы они обращались за эталонными данными к этому соединению с кэшем. |
06:29 |
Переходим ко второму этапу: преобразование данных. В процессе преобразования работа идет с данными, уже загруженными в поток данных, чтобы придать им нужную структуру перед загрузкой в систему. В службах SSIS каждое преобразование представляется объектом, который можно перетащить в схему пакета, однако не все преобразования одинаковы. Рассмотрим три типа преобразований, существующие в службах SSIS.
После основных принципов перейдем к более специализированным советам.
|
11:59 |
Переходим к этапу загрузки данных. В процессе загрузки в SQL Server есть два способа повышения производительности.
Во всех этих случаях установка нулевого фиксируемого размера позволит максимально ускорить загрузку. Весьма распространенной практикой является удаление индексов в системе назначения при загрузке больших объемов данных, однако это следует делать на основе разумных рекомендаций. Например, удаление индексов часто выбирается в зависимости от процентного увеличения ожидаемой нагрузки и типов индексов, построенных на таблице.
Если данные загружаются в таблицу, с которой выполняются другие операции, понадобится выработать определенную стратегию. Операции массовой загрузки, скорее всего, заблокируют большую часть целевой таблицы (или всю таблицу), и если блокировка нежелательна, то следует применить секционирование. Если нужно выполнять загрузку в рабочую базу данных, может потребоваться организация секции для загрузки, чтобы сохранить активность рабочих данных. Если нагрузка обрабатывается медленно, следует проверить, какие другие операции выполняются с таблицей или секцией, и убедиться, что не возникает конфликт. Прекрасное руководство по повышению производительности массовой загрузки данных и работе с секциями содержится в статье SQLCAT Руководство по производительности загрузки данных, доступной на веб-узле MSDN (на английском языке). Кроме того, в случае повторной загрузки для очистки данных используйте команду TRUNCATE, а не DELETE, чтобы удаление не выполнялось посредством транзакций. Назначения, которые используют сетевое подключение, также подвержены сетевым проблемам, описанным раньше. Следите за ростом размера пакетов и включите в сети крупные кадры, чтобы добиться оптимальной производительности во время загрузки. |
15:02 |
На этом мы завершим вторую часть серии материалов, посвященных производительности. Выражаю особую благодарность Томасу за все ценные сведения, ставшие основой этой серии видеороликов, а также Карле и Дугласу за помощь в создании серии. Дополнительные сведения по этим темам см. в статье 10 рекомендаций по службам SQL Server Integration Services. Спасибо за внимание. Непременно ознакомьтесь с остальными тремя частями серии Службы SSIS: проектирование и настройка для повышения производительности. Надеемся, что эта информация оказалась полезной, и будем искренне рады получить ваши отзывы. Ссылка, позволяющая оценить материал и оставить отзыв, находится в правом верхнем углу на странице видеороликов. |