Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6224353
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T08:39:22+00:00 2026-05-24T08:39:22+00:00

I am working on a project to process three files…two CSVs and one XML.

  • 0

I am working on a project to process three files…two CSVs and one XML. These files are being moved from a file share to a SQL Server database table using BizTalk. The xml file is being transformed into the same flat file format as the two flat files using a C# component in SSIS. Then, these flat files are processed by SSIS packages. There is a lot of business logic in the SSIS transformations. The SSIS packages also do several look-ups using linked servers. All lookups and transforms are done on a row-by-row basis (which is slow). Also, any errors that occur are put in a separate database table depending on the business object that causes the error (i.e. BusObj1_error, BusObj2_error, BusObj3_error).
Basically, I was hoping someone could suggest a better architecture that would improve performance, allow scalability and flexibility, and allow many developers works as a team on the same pieces of functionality.
E.g.
– Put validation rules in a db rather than hardcoded into SSIS.
– Instead of using different error tables, use a single error table with a errorTypeId FK to an ErrorType table.
– Migrate all transformations from SSIS C# so that multiple developers can work on different Business logic classes at same time.

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T08:39:24+00:00Added an answer on May 24, 2026 at 8:39 am

    I don’t know anything about BizTalk. So, I don’t know what it can or cannot do. With respect to SSIS, my suggestions would be as following:

    1. If you are having lots of business logic code embedded within Script Task/Script Component. I would suggest that you create a C# class library project and register the DLL in GAC to reference it within SSIS package. Make the DLL generic so that very little code is required to implement it within SSIS package. This way you can also reuse the logic.

    2. Regarding the Lookup using Linked server, I hope that I am understanding this correctly. Are you saying that you have linked servers pointing to other instances and your lookup is pointing against these linked servers? If the databases are on SQL Server instances, why not create a connection string directly pointing to the database and do the lookup? This would speed up things a lot.

    3. Are you using lots of OLE DB Command transformations in your package? If it is a direct insert, try to use OLE DB Destination in order to speed up things.

    4. Have a look at this SO answer How can I load a large flat file into a database table using SSIS? where I have explained how you can split up row transformation to multiple destination to speed up the process.

    5. Since you are writing errors custom designed database, I think it is good idea to have a header-detail table structure to store the error messages instead of having to create multiple error tables. I prefer to keep it more generic so the logic can accommodate future scope changes.

    Hope that gives you some idea.

    Edit 1:

    I had a feeling that you are going to say that the lookup database is DB2. Still, Linked server might slow down the package. Lookup transformation does support querying directly against DB2 database along with SQL Server and Oracle (MSDN). You could avoid Lookup through linked server.

    Once the C# class library project is compiled to a dll, you can reference it from VB.NET as well. As long as your DLL is targeting towards .NET Framework 2.0, I think you should be good in referencing it within SSIS 2005.

    Also, there are other ways to improve depending on what logic is embedded in the .NET code. Is that logic something that can be written in a stored procedure? In that case, load the data into a staging table, run a stored procedure that applies the logic on the stage data and then transfer the data to your destination table.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Hi I'm working a project where we need to process several xml files once
While working a project tonight, I ended up using one .js resource file for
My company is working on a project that needs to read XML files within
I'm working on a project in which I need to process a huge amount
I'm working on a web project, which have to process so many client requests.
I'm working on an installer project, during the install process I'd like the user
I am working on a project in which javascript files are dynamically loaded into
I'm working on a project in VB.net which takes large text files containing T-SQL
I'm working in VS 2008 and have three projects in one solution. I'm debugging
I'm currently working on a fairly large project that has been migrated from Ant

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.