SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |
   
#180<<  #181  >>#182

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.SQL Server 2000 DTS. Часть 6. Задачи DTS Designer и Package Workflow
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Новые и обновлённые технические статьи Microsoft
2.3.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.1.У меня есть пять минут - с чего мне начать?
4.2.Системы баз данных: проектирование, разработка и использование
4.3.Базы данных: основы, проектирование, использование

СОВЕТЫ

SQL Server 2000 DTS. Часть 6. Задачи DTS Designer и Package Workflow

По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 6 - DTS Designer Tasks and Package Workflow

Как было обещано в предыдущей статье, мы продолжаем обсуждение разных способов использования глобальных переменных в задачах DTS Designer. В частности, мы изучим их роль в обмене данными между пакетами и особенности использования Execute Package task. Заодно мы узнаем, для чего можно использовать DTS Package Workflow.
Основная цель Execute Package task прямо и ясно отражена в его названии - обеспечение возможности исполнение одного пакета в рамках другого (далее мы будем называть такие пакеты, как дочерние и родительские пакеты). Такая возможность позволяет повторно использовать код и получить преимущества модульного дизайна, размещая часто используемые функции в отдельных пакетах. Реализуется эта возможность простым вызовом существующего дочернего пакета с установленными для него параметрами. Поместив типовую функциональность в отдельном пакете, Вы можете вносить изменения в алгоритм её работы в одном месте, а отражаться эти изменения будут везде, где используется этот пакет.
Давайте рассмотрим пример. DTS предоставляет нам возможность записывать сообщения и сведения об ошибках в процессе исполнении пакета в файл журнала (очень полезная возможность для разрешения проблем), однако, эта информация добавляется всегда в конец существующего файла. Кроме того, в DTS нет встроенной функции очистки файла регистрации ошибок. Чтобы как то решить эту проблему, Вы можете создать специальный пакет, который будет удалять журнал (это относительно просто сделать с помощью ActiveX скрипта или Execute Package task) и включить его в каждый пакет, работу которого Вы хотите контролировать более детально. Другим преимуществом использования Execute Package task является возможность внедрения в пакет скрытых от пользователя возможностей (например, осуществлять дополнительную проверку безопасности).
Давайте продемонстрируем описанные выше возможности, создав для этого два пакета. В Enterprise Manager щёлкните правой кнопкой мыши по иконке Local Packages в папке Data Transformation Services и выберете из контекстного меню опцию New Package. Журнал мы будем удалять с помощью Execute Process task, поэтому в меню Task (или на инструментальной панели Task с левой стороны окна DTS Package), выберите пункт Execute Process task, и в открывшемся диалоговом окне Execute Process Task Properties, введите следующую информацию:


Description:   Delete DTS Log
Win32 process: %ComSpec%
Parameters:    /C del C:\Logs\dts.log
Return code:   0
Timeout:       2

Нотация %ComSpec% определяет переменную среды, указывающую на местоположение CMD.EXE. Мы будем использовать одну из внутренних команд операционной системы - DEL, вызываемую как один из параметров процесса Win32. В нашем случае, местом расположения файла регистрации будет: C:\Logs\dts.log, но, вы может изменить это место по своему усмотрению. Код возврата = 0 будет указывать на успешное завершение. Время ожидания (Timeout) = 2 определяет время, по истечении которого процесс будет принудительно завершён. Чтобы проверить работу этого пакета, сохраните его под именем "Delete DTS Log" и создайте текстовый файл C:\Logs\dts.log (его содержание является несущественным). Теперь нужно выполнить пакет (нажав зеленый треугольник в инструментальной панели или выбрав опцию Execute в меню Package) или выполнить задачу (щёлкнув правой кнопкой мыши на ней и выбрав в раскрывшемся контекстном меню Execute). Вы увидите промелькнувшее окно Command Prompt и подтверждение, что пакет или шаг (в зависимости от того, как Вы его запускали) был успешно выполнен. Если Вы проверите содержание папки C:\Logs, то увидите, что файла dts.log там больше нет. Поскольку мы хотим продемонстрировать использование для связи между пакетами глобальных переменных, мы должны устранить жесткую зависимость от имени процесса Win32 и значений его параметров. Достигается это за счёт использования задачу Dynamic Properties Task, которую мы рассматривали в предыдущей статье. В меню Task добавьте задачу Dynamic Properties Task. В её окне Package Properties, щёлкните по кнопке Add, после чего разверните на левой панели открывшегося окна узел Tasks, и выберете запись DTSTask_DTSCreateProcessTask_1. Для этой записи выберете элемент ProcessCommandLine, так что бы он стал подсвеченным. После этого нажмите на кнопке Set, и Вы увидите диалоговое окно Add/Edit Assignment. В списке Source, установите указатель вниз на элемент Global Variable и нажмите кнопку Create Global Variables. Добавьте следующую глобальную переменную:


Name:   gVarCmdLine
Type:   String
Value:  %comspec% /C del C:\Logs\dts.log

Нажмите OK, и Вы вернетесь в диалоговое окно Add/Edit Assignment. В нём, в списке Variable раздела Source, выберите недавно созданную переменную gVarCmdLine. И на последок, в описании задачи замените название "Dynamic Properties Task:undefined" на более понятное: "Set Command Line". После того, как Вы закроете диалоговое окно, Вы должны увидеть в окне DTS Package две задачи: "Delete DTS Log" и "Set Command Line". Также, мы должны гарантировать, что задача Dynamic Properties Task будет выполнятся первой, так как наша новая глобальная переменная должна быть установлена до выполнения процесса Win32. Это можно сделать путём установки порядка исполнения задач, в определении логики пакета - DTS Package Workflow.
DTS Package Workflow определяет последовательность выполнения отдельных задач в рамках пакета. Есть три разных типа порядка исполнения, которые Вы можете определить между двумя задачами (ради простоты, давайте называть их: Task A и Task B, где Task B, как ожидается, следует за Task A):

  • Unconditional - Task B выполнится после завершения Task A, независимо от результата его завершения.
  • On Success - Task B выполнится, только если Task A завершится успешно.
  • On Failure - Task B выполнится, только если Task A завершиться с ошибкой.

В окне DTS Package порядок исполнения задаётся указанием мышью первого, а затем второго по порядку исполнения задания и затем нужно выбрать соответствующий тип порядка в Workflow. В нашем случае, сначала выделите значок Set Command Line, затем Delete DTS Log и выберите значок On Success в меню Workflow. Опять создайте фиктивный журнал (C:\Logs\dts.log) и, как только Вы сохраните и выполните пакет, Вы должны увидеть тот же результат, как и в предыдущей проверке исполнения пакета (dts.log будет удалён).
Теперь пришло время создать родительский пакет, который будет содержать задачу Execute Package task. Начнём опять с создания пакета (выбрав опцию New Package в контекстном меню Local Packages из папки Data Transformation Services). Как только откроется окно DTS Package, выберете Execute Package Task в меню Task и в диалоговом окне Properties укажите следующее:


Description:   Execute Package Example
Location:      SQL Server
Package name:  Delete DTS Log

Указываемый в этом окне режим и параметры аутентификации будут зависеть от настройки вашего SQL Server. Имя пакета (и версия) может быть введено вручную (не рекомендуется) или выбрано от списка существующих пакетов, если щёлкнуть по кнопке - (...). Если на SQL сервере пакет "Delete DTS Log" один - единственный (и есть он только одной версии), его имя появится в текстовом поле имени пакета. Иначе, Вам нужно будет выбрать его вместе с версией (обозначенной датой и временем создания). Как правило, достаточно выбрать имя пакета (вместо указателей на версии с временными метками), и это будет указывать на то, что всегда должна использоваться последняя версия пакета. В первом случае, у Вас будет использоваться ссылка на GUID пакета, а во втором на GUID версии (они обе отображаются на закладке General диалогового окна Properties пакета). Использование GUID версии означает, что Вы должны будете каждый раз корректировать опцию "Package NAME", чтобы указать ссылку на последнюю версию, если Вы вносите изменения в пакет (предполагается, что Вы хотите всё время иметь наиболее современную версию). Если Вы хотите удалить ссылку на GUID версии или целого пакета (чтобы избежать проблемы в случае, если дочерний пакет будет заменён другим с таким же именем), Вы можете удалить PackageID с помощью Disconnected Edit (доступный в меню Package окна DTS Package). Открыв окно Edit All Package Properties, Вы можете просмотреть свойства Execute Package Task и удалить значение соответствующего PackageID.
Диалоговое окно Execute Package Task Properties имеет две дополнительных закладки, это Inner и Outer Package Global Variables. В начале они обе пусты, и Вы можете указать в них глобальные переменные, используемые соответственно для дочернего (Inner) или родительского (Outer) пакета. Например, в нашем случае на вкладке Inner Package Global Variables мы можем увидеть и изменить значение для переменной gVarCmdLine (определенное в дочернем пакете Delete DTS Log). Точно так же, если бы были определены глобальные переменные в неком родительском пакете, мы могли были добавить их в список на вкладке Outer Package Global Variables (хотя для них нет возможности внесения изменение на этой закладке, такие изменения значений можно сделать на закладке Global Variables родительского пакета в диалоговом окне Properties). Важно указать, что внутренние и внешние переменные пакета будут использоваться для определения переменных, которые необходимо передавать дочернему пакету. Главное различие между ними в том, что внутренние (Inner) устанавливаются на уровне задачи, а внешние (Outer) на уровне пакета.
Вы можете пронаблюдать, как используется Inner Package Global Variables, просто выбрав gVarCmdLine из списка в разделе Variables и убедившись, что в поле значений появится: "%comspec% /C del C:\Logs\dts.log". Также, в случае необходимости, здесь Вы можете изменять это значение. Чтобы использовать Outer Package Global Variables, вначале удалите ссылку на переменную на закладке Inner Package Global Variables (если внутренние и внешние переменные пакета имеют одинаковые имена, внутренние будут иметь приоритет). Далее, в родительском пакете создайте глобальную переменную. Как было описано ранее, это может быть сделано на закладки Global Variables в диалоговом окне DTS Package Properties. В нашем случае, Вы должны были бы определить gVarCmdLine с соответствующим значением. После этого, gVarCmdLine добавляется в список на вкладке Outer Package Global Variables. Очевидно, для успешного исполнения, Вы должны указать правильные параметры аутентификации для родительского пакета (указав соответствующую информацию на закладке Logging диалогового окна DTS Package Properties).
В нашей следующей статье, мы продолжим рассмотрение остающихся типов задач DTS Package.

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

Принципы проектирования XML-схем: нужны ли производные сложные типы
Фахеем Кан
Несмотря на то, что в спецификации консорциума W3C XML Schema содержится ряд конструкций, напоминающих понятия объектно-ориентированного программирования - в том числе определение производных типов и полиморфизм, реальная практика показывает, что они скорее усложняют схемы, обладая трудно уловимой взаимосвязью, которая чревата возникновением серьезных проблем, и зачастую могут быть заменены другими конструкциями XML Schema. В этой статье рассмотрены определение производных сложных типов посредством наложения ограничений и расширений, показаны достоинства и недостатки обоих подходов, предложены альтернативные решения...
Подробный анализ структур данных. Часть 1. Введение в структуры данных
Скотт Митчелл
Эта статья - первая статья в серии из шести частей, посвященной важным структурам данных и их использованию при разработке приложений. Мы рассмотрим структуры данных, которые присутствуют в .NET Framework, а также другие важные структуры данных, которые нам придется создавать самим. Настоящая статья - первая в серии - посвящена определению понятия структур данных, тому как проводить анализ их эффективности и почему такой анализ важен. Также, в этой статье мы рассмотрим классы Array и ArrayList...

[В начало]

Новые и обновлённые технические статьи Microsoft

BUG: The Distribution Agent or the Merge Agent does not succeed when you replicate stored procedures or views in SQL Server 2000
BUG: The Generate Wizard in Microsoft Visio does not create the "Unique index with constraint on top" index in a SQL Server database
FIX: A memory leak may occur when you use the sp_OAMethod stored procedure to call a method of a COM object
FIX: Merge Publications Cannot Synchronize on SQL Server 2000 SP3
FIX: sp_addmergearticle May Fail with Error 20009 if Article Added Is Vertically Filtered
FIX: SQL Server Enterprise Manager quits unexpectedly when you modify a DTS package
How to Install SQL Server 2000 SP3 or Security Patch MS02-061 with Commerce Server
How to manually remove a replication in SQL Server 2000
How to troubleshoot connectivity issues in SQL Server 2000
HOW TO: Configure memory for more than 2 GB in SQL Server
HOW TO: Manually remove SQL Server 2000 default, named, or virtual instance
INF: Frequently Asked Questions - SQL Server 2000 - Failover Clustering
Methods to dispose of SQL Server CE managed objects from memory
Microsoft SQL Server 2000 Reporting Services Readme Additions
Named Pipes Support Cannot Be Removed on a Virtual Server That Is Running SQL Server 2000 SP3
PRB: Microsoft Search Full-Text Catalog Population Fails When You Upgrade SQL Server 2000 Failover Cluster to SQL Server 2000 Service Pack 3
PRB: T-SQL Function OpenQuery Fails to Execute on Linked Servers
SQL Server 2000 may not start after you use the Windows Backup system tool

[В начало]

Англоязычные статьи

Writing Cached High Performance Database Applications
Larry Ashworth
Many otherwise outstanding applications fail to meet customer expectations due to database performance issues. Caching is a commonly used method of accelerating applications, but cache aging, data integrity, and multi user issues make caches difficult to implement at the application level. As a server side resource enhancement, caching can only be implemented via expensive technologies with limited application performance enhancement
Snapshot Replication for the Beginner
Andy Warren
If you haven't already, you might want to look at the two previous articles I've written recently on replication (Snapshot Replication and Getting Ready to Replicate) that set the stage for this one. This week I'm going to return to snapshot replication, discussing how to do a basic implementation and pointing out some of the more interesting points along the way. Snapshot is a great way to start learning replication before moving into the more complicated areas of transactional and merge. For this article I'm going to replicate Northwind from one named instance to another. You can of course replicate to another server or even to a different db on the same server
Reducing Round Trips
Andy Warren
One of the best ways to reduce the load on your server and increase application responsiveness is to reduce the number of "round trips" your application makes. A round trip consists of a request sent to the server for data or an action (select query for a request, insert/update/delete for action). Every time you do that it takes time and resources. To the client the time starts when you hit 'GO' and ends when they can proceed. Behind the scenes that time includes set up time in the app, maybe to build a sql string or some other task, then network time to send the request, server time to process the request, network time to return the results, then time to process the results on the client. Resources used included client RAM and CPU, network bandwidth, and server RAM and CPU
MDX in Analysis Services: Optimizing MDX: More on Location, and the Importance of Arrangement
William Pearson
In our last tutorial, Control Location of Processing, we began a three-part mini-series, Optimizing MDX. We stated that the objective of this "triptych" is to explore methods for optimizing the performance we obtain from our MDX queries. We introduced types of intervention, or classifications of approaches, that we can take, to enhance the performance of MDX, with the intent being to cover several of the types as we progress through the mini-series, while introducing practice examples to reinforce an awareness that transfers to our daily work with MDX. In the first lesson of the Optimizing MDX set, we introduced the first intervention type, control of location of query execution
SQL Server 2000 DTS Part 8 - DTS Designer Tasks - Transform Data Task
Marcin Policht
A few more DTS Designer tasks are left to cover out of a total of 17 existing in SQL Server 2000 Data Transformation Services implementation. Arguably, the one that has undergone the most significant changes since the SQL 7.0 release is the Transform Data Task. In this article, we will look at its default behavior. We will follow with a discussion of its more advanced features, providing an explanation of why this task is often referred to as the Multiphase Data Pump
The Trigger-Happy DBA - System Triggers
Steve Callan
So far, the trigger-happy DBA series has dealt with triggers related to Data Manipulation Language (DML) operations. As mentioned in the beginning of the series, another type of useful trigger is that of the system trigger. System triggers can be delineated into two categories: those based on Data Definition Language (DDL) statements, and those based upon database events. Use of system triggers can greatly expand a DBA's ability to monitor database activity and events. Moreover, after having read this article, you'll be able to sharp shoot someone who asks, "How many triggers does Oracle have?" Most people will seize upon the before/during/after insert/update/delete on row/table easy-to-answer OCP test type of question (and answer), which is largely correct where plain vanilla DML triggers are concerned. How would you count INSTEAD-OF triggers when it comes to DML? So, how many other triggers does Oracle have or allow?
Benchmarking Performance of a Query - Part 1 Elapsed Time
Gregory A. Larsen
How many times have you had more than one way to do something and wanted to determine which method was faster and/or which one used more resources? I am going to guess that most developers have run across this dilemma more than once. So how do you decide with method is faster--or which method requires more resources? In this two part series, I will discuss some of the methods I use in Query Analyzer (QA) to help me decide which coding method might be faster and use less resources
Database Performance Philosophy
Tore Bostrup
Most important - design the application so that it saves the user time. If you save a user 50% of his effort to do a job (start to finish - not necessarily an individual task), it *may* not matter that a certain operation in the application takes a minute to complete (of course, you may want to shield the user from having to wait for extended operations to complete - you don't want him or her staring at the hourglass)
The DBA Code of Ethics
Steve Jones
I recently wandered upon a discussion on Slashdot about a sysadmin who planted a logic bomb in his former employer's system and tried to profit from it. While appalled at the story itself, the discussion inside Slashdot led me to a sysadmin Code of Ethics at the SAGE site (System Administrators Guild). I found this interesting reading and encourage everyone to spend a few minutes there
How do I improve my SQL skills?
techrepublic.com.com
SQL is the standard language for working with database systems. Get up to speed on the basics of SQL and increase your SQL prowess with UDFs
How do I improve my SQL server skills?
techrepublic.com.com
SQL Server, Microsoft's powerful database system, continues to gain popularity. Two critical aspects of working with SQL Server involve database restoration and clustering
Optimize SQL Server Data Access
Roger Jennings
Numerical test data with real-world data objects can help you choose a data-access methodology that maximizes the database's overall performance. Moving your data-access applications to ADO.NET and XML Web services from traditional ActiveX Data Objects (ADO) and OLE DB providers presents new challenges for you and your organization's database architects and database administrators (DBAs). The .NET Framework's System.Data.SQLClient namespace and the SQLXML 3.0 update to SQL Server 2000's initial XML-oriented feature set offer a multitude of create, retrieve, update, and delete (CRUD) options. Middle-tier data-access choices you make play a pivotal role in database server load and scalability. You and your IT managers, system architects, and DBAs must be aware of potential performance pitfalls, especially when adopting new service-oriented architecture (SOA) technology for business processes
From the soapbox: Does anyone know what disaster recovery is?
James Luetkehoelter
Disclaimer: From the soapbox does not necessarily represent the views of SQLServerCentral.com, Microsoft, or the author himself. So you have full backups, differential backups and transaction log backups enabled and functioning for your production databases. You have documented procedures for restoring databases, and you perform quarterly tests of the process. Is this disaster recovery for SQL Server?
Block the DBA?
Robert Marda
What?! That can’t be done, can it? The final answer is no. However, you can certainly block an unknowledgeable DBA with the techniques I will describe in this article. The same techniques will block you and other users from forgetting business rules and doing tasks you shouldn’t or simply block you from accidentally dropping the wrong table. I’m quite sure there are other ways to do the same things, ways that are considered better. My goal in this article is to use some extreme methods which could take a sequence of steps to undo and certainly will require some knowledge about system tables
Microsoft's Yukon To Get Reporting Tools, Data Mirroring
Barbara Darrow
CRN. Redmond, Wash. - 3:30 PM EST Wed., Feb. 12, 2003. Microsoft's next-generation database, code-named Yukon, will include integral reporting services, a move that would continue the vendor's headlong push into the business intelligence arena, sources said
How do you setup SqlXml 3.0 on Windows Server 2003?
FAQ #97
This question comes up quite often in the newsgroups. Here are the steps to getting this setup
SQL Server for CE Starting Out
devbuzz.com
The install starts off with the typical extraction followed by a dialog box which looks like this
An overview of SQL Replication options
Jarick Rager
This is a joint effort by both Jarick Rager and John Burdett. Jarick Rager (jrager@askcts.com) is a Senior Software Engineer for Computer Technology Solutions, Inc. based in Birmingham, AL

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Книга по SQL 2000
Почему нежелательно называть поля в таблицах БД по-русски?
Экспортбазы 1С средствами SQL стал работать в 3 раза дольше!!!
Можно ли в базе master хранить свои таблицы?
Недостатки MSSQL
Разработчикам складских баз: подсчет складских остатков
Интересно, а кто как свои SQL сервера называет?
Интенсивная запись в базу
Вопроспро ERP
Многопоточное приложение
Первыйчеловек в космосе!
Эскалация блокировок - баг или фича?
Логическая задачка.
?CONVERT или DATEPART или SUBSTRING как быть?
Перехватить подключение пользователя
Журнал изменений
Можно ли MSDE использовать как
Вьюха на две базы
При применении снапшота пропадают большинство связей. Хелп!!!

[В начало]

Вопросы остались без ответа

Чем архивировать большие файлы
1212
Гад2 маст дай
Транзакционная репликация
Импорт XML
SQLDMO & .NET проблема!
запарились с этим OpenRowset
HPProLiant Integrated Lights-Out Advanced (iLO)
Вопрос по созданию оповещений
Примите участие в обсуждении! Поделитесь знаниями :)
20030127 вышел Reporting Services
2Glory и всем: спасибо, всё заработало (см. внутри)
Shreder, отзовитесь, плз.
Загрузка XML в базу при наличии XML и DTD
ApexSQL
TIBCOTurboXML
TMREQUEST
Остаются старые подключения
импорт BLOB
Официальный тест
Snova a podkluchenii k MS SQL Server 2000
2k Кодировка исходящих сообщений
Ошибки при репликации

[В начало]

ПОЛЕЗНОСТИ

Рассылка:  Вопросы и ответы по Microsoft SQL Server

Автор рассылки: Сергей Кошкин

Выпуск No. 27 от 2004-01-30
Вопрос : Помогите! Мне сказали, что я должен сопровождать базу данных SQL Server. У меня есть пять минут - с чего мне начать?
Ответ

Системы баз данных: проектирование, разработка и использование.

Роб П.

Цена: 389р. Серия: Внесерийные книги. Издательство: BHV. Место издания: Санкт-Петербург. Количество страниц: 1200. Формат: 70*100/16,7БЦ. ISBN: 5-94157-299-9

Последовательное и всестороннее описание процесса разработки и реализации базы данных. Подробное описание теоретических основ баз данных подкрепляется контрольными вопросами и задачами в конце каждой главы, что способствуют получению практического опыта. Отдельные главы посвящены е-коммерции, разработке базы данных для Web (с помощью ColdFusion 4.0), хранилищам данных. Для студентов и преподавателей/

[В начало]

Базы данных: основы, проектирование, использование.

Малыхина М.

Учебное пособие/ Объём: 512 стр. ISBN: 5-94157-310-4. Формат: 84х108/16. Серия: Программист - программисту.

Автор в простой и доступной форме рассказывает об основных концепциях проектирования и построения баз данных. В книге подробно описываются архитектуры современных систем управления базами данных и модели баз данных (особое внимание уделяется реляционной модели), рассматриваются вопросы последовательной их нормализации и преобразования концептуальной модели в реляционную, а также дается описание языков программирования баз данных - SQL и QBE. Автор касается проблемы администрирования и безопасности использования баз данных. Книга адресована широкому кругу читателей, интересующихся проблемами разработки и проектирования баз данных.

Книгу можно приобрести в магазине: ozon.ru: 244.00 руб. Купить

[В начало]

#180<<  #181  >>#182
Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013