Ssis Interview Questions and Answers 2
Ssis Interview Questions and Answers 2
ANSWERS
by Enrico BESENYEI ⋅ Leave a Comment
Q. What is SSIS?
SSIS was first introduced with SQL Server 2005, which was the next generation of SQL
Server software after SQL Server 2000. SSIS is an ETL tool that handles data Extraction,
Transformation and load. In addition, it can handle more tasks besides the ETL tasks such
as data profiling, file system manipulation etc…. If you know C#.net or VB.net, you can use
the script task to perform much more efficient batch operations.
A sequence container is a simple way to group similar tasks together. Think of a sequence
container as an organization container for more complex SSIS packages.
A for loop container is what you can use to execute your tasks to a certain number of times.
For example, you need to update records ten times, you can place the task that updates the
records inside this for loop container and specifies 10 as the end of the loops. by using the
for loop container, you don't have to create either ten different packages to do the same
task or have to run the whole package ten times when you schedule your job.
A for each loop container will be useful when you don’t know a head of time how many
times a task should perform. for instance, let’s say that you want to delete all the files inside
a folder, but you don’t know how many files are there at any particular time, by using for
each loop, it can go through the collection of files and delete them for you, after the
collection is emptied out, it knows that when it should stop.
This will save the package.dtsx file on the projectbin folder. Also, you can create the
deployment utility using which the package can be deployed at either SQL Server or as a file
on any location.
Just as the control flow handles the main workflow of the package, the Data Flow handles
the transformation of data. Almost anything that manipulates data falls into the Data Flow
Category.
Note that the data must be sorted before using the Merge Transformation. you can do this
by using the sort transformation prior to the merge or by specifying an ORDER By clause in
the source connection. Also, the metadata must be the same for both paths. For example,
CustomerID column cannot be a numeric column in one path and a character column in the
other path.
The Union All Transformation works much the same way as the Merge Transformation, but
it does not require the data to be sorted. It takes the outputs from multiple sources or
transforms and combines them into a single result set.
Separating packages into discrete functional workflows makes for shorter development and
testing cycles and facilitates best development practices. in SSIS, the child package is aware
of the parent package parameters and can reach out and access those parameters – level
configuration values. The majority of the configurable properties are in the Package tab of
the Executable package Task Editor.
The first option is to provide the location of the child package. The options here are either
File system and SQL Server. You can deploy SSIS package in the FIle system task as an .dtsx
file, or within the msdb database of a SQL Server instance. if you select file system, you
must first create a new connection manager connection to the child package.
If the child package is located in a SQL Server, you’ll need to provide the OLE DB Connection
Manager for the SQL Server that holds your packages. In either case, browse to and then
select the child package within the connection to set the package to execute in the task.
Require indicates that the container start a transaction, unless one is already started by its
parent container. if a transaction already exists, the containter joins the transaction For
example, if a package that is not configured to support transactions includes a Sequence
container that uses the Required option, the Sequence Container would start its own
transaction. If the package were configured to use the Required option, the Sequence
containter would join the package transaction.
Supported indicates that the container does not start a transaction, but joins any
transaction started by its parent container. For example, if a package with four Executable
SQL tasks starts a transaction and all four tasks use the Supported option, the database
updates performed by the Execute SQL tasks are rolled back if any taks fails. if the package
does not start a transaction, the four execute SQL tasks are not bound by a transaction, and
no database updates except the ones performed by the failed task are rolled back.
Not Supported indicates that the container does not start a transaction or join an existing
transaction. A transaction started by a parent container does not affect child containers that
have been configured to Not Support transactions. For instance, if a package is configured to
start a transaction and a For Loop Container in the package uses the NotSupported option,
none of the tasks in the For Loop can roll back if they fail.
Q. Difference between Execute TSQL Task and Execute SQL Task
In SSIS there is one tasks Execute TSQL task which is similar to Execute SQL task. Will see
what is the difference between two.
Using config file user need to make changes to the config file which package will take
automatically at runtime because of using it you don’t need to every time make changes in
the packages in case you are deploying package on multiple servers or locations. There are
multiple ways in which configuration values can be stored.
. Checkpoint?
A checkpoint is the property in SSIS which enables the project to restart from the point of
failure. When we set the property to true package create the checkpoint file which stores
the information about package execution and use to restart package from the point of
failure. If the package runs successfully, the checkpoint file is deleted, and then re-created
the next time the package runs.
Q. Can I run SSIS packages with SQL Server Express or Web or Workgroup editions?
I have looked at the SQL Server 2008 feature comparison matrix and it lists the
express/web and workgroup editions as having the SSIS runtime. Does this mean it is
possible to develop SSIS packages using the developer edition, and then deploy and run
them on a server running one of the lowly SQL Server editions such as SQL Server 2008
Express edition?