SQL Server Performance

  • Home
  • Articles
  • Forums
  • Tips
  • Training
  • FAQ's
  • Blogs
  • Software
  • Books
  • About Us
RSS Feeds
Sign in | Join


Article Topics

All Articles
Performance Tuning
Audit
Business Intelligence
Clustering
Reporting Services
SQL Azure
Developer
General DBA
ASP.NET / ADO.NET
SQL Azure

USEFUL SITES :

ASP.NET Tutorials
Windows and SQL Azure Tutorials
Cloud Hosting Magazine
SharePoint Tutorials
Windows Server Help

Write for Us

Share your SQL Server knowledge with others and raise your profile in the community More...
Latest Articles

A High Level Comparison Between Oracle and SQL Server - Part ...
A High Level Comparison Between Oracle and SQL Server - Part ...
A High Level Comparison Between Oracle and SQL Server - Part ...
A High Level Comparison Between Oracle and SQL Server

More     
 
Latest FAQ's

Add Node to A SQL Server failover Cluster failed with invalid ...
SQL Server Destination remote server error
Setting Up Data And Log Files For SQL Server
Will Check Constraints Improve Database Performance?

More     
   
Latest Software Reviews

dbForge Review
Spotlight on ApexSQL Diff - Server-based database comparison tool ...
Spotlight on ApexSQL Data Diff - Server-based database comparison tool ...
Spotlight on ApexSQL Doc 2008

More     

articles >> business intelligence >> SQL Server Integration Services Features And Properties ...

SQL Server Integration Services Features And Properties Part 1

By : Arshad Ali
Jan 22, 2009

Introduction
In the first collection of articles (“SQL Server Integration Services - An Introduction”) of this series, SQL Server Integration Services (SSIS) were discussed at introductory level. Covering topics such as what SSIS is; different ways to create SSIS package; and identification of different kinds of components that constitute a package.
This article will explore advanced features and properties
of SSIS such as Event Logging, Event Handling, Transaction Support, Checkpoint Restart and validation process. SSIS package development can be leveraged to make it more robust and improve performance.

Note: where reference is made to “SSIS 2008” it refers to the SSIS version which comes with SQL Server 2008; whereas “SSIS 2005” refers to the SSIS version with SQL Server 2005.

Event Logging
Consider the following scenario: a package has been developed in the development environment, tested it in test environment and finally deployed it onto the production server. In the beginning everything was fine, with the package running as expected. However sometime later the package execution failed each time upon being run. In this situation there is commonly uncertainty regarding what is causing the package to fail. Hence why event logging is very useful. So what is event logging is and how does it help understand problems encountered during runtime.

SSIS package logging is feature which creates a record that traces the execution of components (tasks and containers) within an SSIS package. Logging can be enabled on a per package and per control-flow tasks basis, which all executables should participate in. 

The next article in this series explores the Event Handlers in SSIS.
SSIS package logging can log the information on one or more different selected log providers as mentioned below:

  • SSIS log provider for Text files – logs the information into a text file, during configuration the location and file name need to be specified.
  • SSIS log provider for Windows Event Log – logs the information into the Windows Log Event under Application node and SQLISPackage90/ SQLISPackage100 as source.
  • SSIS log provider for XML files – logs the information into the XML file, of which the location and file name are specified during configuration.
  • SSIS log provider for SQL Profiler – creates a *.trc file which can be opened in SQL Profiler to analyse further.
  • SSIS log provider for SQL Server – logs the information into sysdtslog90/ sysssislog table of msdb database, that requires a connection manager to be provided during configuration. 


Example: To enable Logging, right click on the package and select logging. A logging configuration window will pop-up as shown below:



Containers Tree view on Left-side – displays the hierarchical view of a package and all its executables (containers and tasks). Select the executable to enable for logging as shown above.

Providers and Log Tab - Select one or more different log providers from the combo box and click the Add button on the right as shown below, two log providers have been selected; one to write to text file and the other to write to Windows Event Log.



Details Tab – This tab displays all the events of the selected executable, select which events to log. For example, below OnError and OnTaskFailed event have been selected at the package level.



After
the package has run the result of logging can be seen; since there are no errors, the log will contain this much information only:

Log information from text file
PackageStart,ARALI-LAPTOP,FAREAST\arali,Logging,{9F0475B4-99D5-492F-9D1A-B575E973A6EB},{BC715F16-942A-437C-BD1D-87AFF17FA6C4},12/14/2008 4:30:53 PM,12/14/2008 4:30:53 PM,0,0x,Beginning of package execution.

PackageEnd,ARALI-LAPTOP,FAREAST\arali,Logging,{9F0475B4-99D5-492F-9D1A-B575E973A6EB},{BC715F16-942A-437C-BD1D-87AFF17FA6C4},12/14/2008 4:30:57 PM,12/14/2008 4:30:57 PM,0,0x,End of package execution.

Now run the package again and see the result, this time data has been uploaded into a table with duplicate values for a column which has primary key defined on it, here is the log result:

Log information from text file
PackageStart,ARALI-LAPTOP,FAREAST\arali,Logging,{9F0475B4-99D5-492F-9D1A-B575E973A6EB},{2C23C3A3-141C-4F51-B98F-4E883CA73254},12/14/2008 4:40:42 PM,12/14/2008 4:40:42 PM,0,0x,Beginning of package execution.

OnError,ARALI-LAPTOP,FAREAST\arali,Data Flow Task,{5d83172d-d03a-477b-8120-17ed9723ded3},{2C23C3A3-141C-4F51-B98F-4E883CA73254},12/14/2008 4:40:43 PM,12/14/2008 4:40:43 PM,-1071636471,0x,SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.

An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80004005  Description: "The statement has been terminated.".
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80004005  Description: "Violation of PRIMARY KEY constraint 'PK__vSalesPe__7A591C1805D8E0BE'. Cannot insert duplicate key in object 'dbo.vSalesPerson'.".

OnError,ARALI-LAPTOP,FAREAST\arali,Logging,{9F0475B4-99D5-492F-9D1A-B575E973A6EB},{2C23C3A3-141C-4F51-B98F-4E883CA73254},12/14/2008 4:40:43 PM,12/14/2008 4:40:43 PM,-1073450974,0x,SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "OLE DB Destination" (79) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (92). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.

OnTaskFailed,ARALI-LAPTOP,FAREAST\arali,Data Flow Task,{5d83172d-d03a-477b-8120-17ed9723ded3},{2C23C3A3-141C-4F51-B98F-4E883CA73254},12/14/2008 4:40:43 PM,12/14/2008 4:40:43 PM,0,0x,(null)
PackageEnd,ARALI-LAPTOP,FAREAST\arali,Logging,{9F0475B4-99D5-492F-9D1A-B575E973A6EB},{2C23C3A3-141C-4F51-B98F-4E883CA73254},12/14/2008 4:40:43 PM,12/14/2008 4:40:43 PM,1,0x,End of package execution.

Log information from Windows Event Log



An executable can inherit logging settings from its parent or define its own settings as shown below. Please note the Execute SQL Task check box is grayed, it means it will inherit its settings from its parent whereas the Data Flow Task check box is non-grayed, it means it has its own setting defined and will not inherit them from the parent.



There is a property of package and its executables called LoggingMode which accepts three values Enabled, Disabled and UseParentSetting and which is used to control the Logging behavior as discussed above.

Note:
Logging information is quite helpful in troubleshooting the package if it is failing but it puts overhead on SSIS and slows down the package performance. It is recommended to log only required events which will be helpful in package troubleshooting. Logging can be disabled on tasks or packages (using LoggingMode Property dynamically) during normal running and enabled only when debugging or troubleshooting the package is being done.

The next article in the series explores the Event Handlers in SSIS.


        








C# Help and Tutorials | PHP MySQL Tutorial | Sharepoint Tutorial | Azure Tutorial | Cloud Hosting Magazine | ASP.NET Tutorials | Windows Server Help | Windows Phone Pro | Silverlight Ace | Visual Studio Tutorials | Home | Peformance Articles | Audit Articles | Business Intelligence Articles | Clustering Articles | Developer Articles | Reporting Services Articles | DBA Articles | ASP.NET / ADO.NET Articles | SQL Server Training Videos | DBA FAQ's | Developer Peformance FAQ's | DBA Peformance FAQ's | Developer FAQ's | Clustering FAQ's | Error Messages | Audit Tool Reviews | Backup Tool Reviews | Coding Tool Reviews | Compare Tool Reviews | Documentation Tool Reviews | Design Tool Reviews | Monitoring Tool Reviews | Log Tool Reviews | Reporting Tool Reviews | Clustering Tool Reviews | Security Tool Reviews | Change Management Tool Reviews | Remote Access Tool Reviews | Book Reviews | Security Tool Reviews | ADO.NET / ASP.NET | Administration | Analysis/OLAP Services | Application Development | Configuration | Components | ETL | Hardware | High Availability | Hints | Index | Misc | Operating Systems | Performance Tuning | Replication | T-SQL | Views


              © 2010 Jude O'Kelly. All rights reserved