Ssrs Interview Questions and Answers
Ssrs Interview Questions and Answers
Ssrs Interview Questions and Answers
SQL Server Reporting Services skills are required in more and more IT Developer Jobs
so if you need to interview someone with SSRS skills and you do not know much about
the tool itself than it is worth knowing what are good SSRS Interview questions and
answers. Currently I just prepared not very structured questions but later on I will try to
structure them so you can ask basic junior questions for junior positions and senior
questions for senior positions. These are Developer related question and are not so
much applicable for DBA roles and they are not necessarily commonly asked questions.
Who is it for?:
The questions and answers below are for SQL Server Reporting Services 2008 R2 but I
will also explain briefly differences for 2008 and 2005 (if needed). They are usually open
questions and allow the candidate to talk about their experience with SSRS but I also
give comments how to interpret the answers (best practise). Remember if you know
exactly what you need (or you know how you work) make sure you include this kind of
questions and make them very clear to the candidate so they have a chance to answer
them (without guessing).
GENERAL SSRS QUESTIONS
Question: Which versions of SSRS have you used?
Comment: Differences between 2005 and 2008 are quite big so if someone hasn't used
2008 or 2008 R2 before (or vice versa) than make sure you know this will require a few
days to get up to speed with the new/previous version. If the candidate used several
versions ask to describe the differences between them.
Question: How have you learnt SSRS (on the job, articles, books, conferences)
Comment: The thing is that most people who read good books have usually an
advantage over those who hasn't because they know what they know and they know
what they don't know (but they know it exists and is available). Blog/Articles vary in
quality so best practise articles is a big plus+, conferences can be also a plus.
Question: What languages have you used to query data for SSRS Reports?
Comment: Most answers will probably be SQL (TSQL). But T-SQL is not the only query
language. If someone build reports based on cubes before than they will say MDX. You
can also query data from other sources (not recommended) or use data mining
expressions (DMX = advanced).
Question: What types of graphs do you normally use and what effects do you apply to
them?
Comment: Good graph are bar, line, scatter, bullet graphs. Bad graphs are pie charts,
area graphs, gauges (apart from bullet graph which classified as gauge in SSRS). Effects
should be limited to minimum. Developers should avoid 3D effects, "glass" effect,
shadows etc
SSRS ADVANCED QUESTIONS
Question: Have you used custom assemblies in SSRS? If Yes give an example
Comment: This allows to re-use code in reports and it is not very common. Re-usability
is good but building dependancies is not so good so one small mistake might break
all reports using it; so it should be used with care.
Question: What is the formatting code (format property) for a number with 2 decimal
places?
Comment: N2. Attention to details and good memory is always welcome.
If you are on the other side and soon you will be attending an interview then this post
might help in your preparations.
The questions and answers below are for SQL Server Integration Services 2008 R2 but I
will also explain briefly differences for 2008 and 2005. Currently I will only post several
questions and I will add new ones when I have a minute.
Question: How have you learnt SSIS (on the job, articles, books, conferences)
Comment: The thing is that most people who read good books have usually an
advantage over those who hasn't because they know what they know and they know
what they don't know (but they know it exists and is available). Blog/Articles very in
quality so best practise articles is a big plus+, conferences can be also a plus.
Question: What is your approach for ETL with data warehouses (how many packages
you developer during typical load etc)?
Comment: This is rather generic question. A typical approach (for me) when building ETL
is to. Have a package to extract data per source with extract specific transformations
(lookups, business rules, cleaning) and loads data into staging table. Then a package do
a simple merge from staging to data warehouse (Stored Procedure) or a package that
takes data from staging and performs extra work before loading to data warehouse. I
prefer the first one and due to this approach I occasionally consider having extract stage
(as well as stage phase) which gives me more flexibility with transformation (per source)
and makes it simpler to follow (not everything in one go). So to summarize you usually
have package per source and one package per data warehouse table destination. There
are might be other approach valid as well so ask for reasons.
Hi,
Here are some SSIS related Interview Questions with answers. hope they help.
A control flow consists of one or more tasks and containers that execute when the
package runs. To control order or define the conditions for running the next task or
container in the package control flow, you use precedence constraints to connect the
tasks and containers in a package. A subset of tasks and containers can also be
grouped and run repeatedly as a unit within the package control flow.
SQL Server 2005 Integration Services (SSIS) provides three different types of control
flow elements: containers that provide structures in packages, tasks that provide
functionality, and precedence constraints that connect the executables, containers, and
tasks into an ordered control flow.
A data flow consists of the sources and destinations that extract and load data, the
transformations that modify and extend data, and the paths that link sources,
transformations, and destinations. Before you can add a data flow to a package, the
package control flow must include a Data Flow task. The Data Flow task is the
executable within the SSIS package that creates, orders, and runs the data flow. A
separate instance of the data flow engine is opened for each Data Flow task in a
package.
SQL Server 2005 Integration Services (SSIS) provides three different types of data flow
components: sources, transformations, and destinations. Sources extract data from
data stores such as tables and views in relational databases, files, and Analysis
Services databases. Transformations modify, summarize, and clean data. Destinations
load data into data stores or create in-memory datasets.
For example, a data conversion fails because a column contains a string instead of a
number, an insertion into a database column fails because the data is a date and the
column has a numeric data type, or an expression fails to evaluate because a column
value is zero, resulting in a mathematical operation that is not valid.
-Data conversion errors, which occur if a conversion results in loss of significant digits,
the loss of insignificant digits, and the truncation of strings. Data conversion errors also
occur if the requested conversion is not supported.
-Expression evaluation errors, which occur if expressions that are evaluated at run time
perform invalid operations or become syntactically incorrect because of missing or
incorrect data values.
-Lookup errors, which occur if a lookup operation fails to locate a match in the lookup
table.
Many data flow components support error outputs, which let you control how the
component handles row-level errors in both incoming and outgoing data. You specify
how the component behaves when truncation or an error occurs by setting options on
individual columns in the input or output.
For example, you can specify that the component should fail if customer name data is
truncated, but ignore errors on another column that contains less important data.
Integration Services supports a diverse set of log providers, and gives you the ability to
create custom log providers. The Integration Services log providers can write log entries
to text files, SQL Server Profiler, SQL Server, Windows Event Log, or XML files.
Logs are associated with packages and are configured at the package level. Each task
or container in a package can log information to any package log. The tasks and
containers in a package can be enabled for logging even if the package itself is not.
SQL Server 2005 Integration Services (SSIS) makes it simple to deploy packages to
any computer.
There are two steps in the package deployment process:
-The first step is to build the Integration Services project to create a package
deployment utility.
-The second step is to copy the deployment folder that was created when you built the
Integration Services project to the target computer, and then run the Package
Installation Wizard to install the packages.
Q9:
Variables store values that a SSIS package and its containers, tasks, and event
handlers can use at run time. The scripts in the Script task and the Script component
can also use variables. The precedence constraints that sequence tasks and containers
into a workflow can use variables when their constraint definitions include expressions.
Integration Services supports two types of variables: user-defined variables and system
variables. User-defined variables are defined by package developers, and system
variables are defined by Integration Services. You can create as many user-defined
variables as a package requires, but you cannot create additional system variables.
Scope :
A variable is created within the scope of a package or within the scope of a container,
task, or event handler in the package. Because the package container is at the top of
the container hierarchy, variables with package scope function like global variables and
can be used by all containers in the package. Similarly, variables defined within the
scope of a container such as a For Loop container can be used by all tasks or
containers within the For Loop container.
Question 1 - True or False - Using a checkpoint file in SSIS is just like issuing the
CHECKPOINT command against the relational engine. It commits all of the data to the
database.
False. SSIS provides a Checkpoint capability which allows a package to restart at the
point of failure.
Question 2 - Can you explain the what the Import\Export tool does and the basic steps
in the wizard?
The Import\Export tool is accessible via BIDS or executing the dtswizard command.
The tool identifies a data source and a destination to move data either within 1
database, between instances or even from a database to a file (or vice versa).
Question 3 - What are the command line tools to execute SQL Server Integration
Services packages?
DTSEXECUI - When this command line tool is run a user interface is loaded in order to
configure each of the applicable parameters to execute an SSIS package.
DTEXEC - This is a pure command line tool where all of the needed switches must be
passed into the command for successful execution of the SSIS package.
Question 4 - Can you explain the SQL Server Integration Services functionality in
Management Studio?
You have the ability to do the following:
Login to the SQL Server Integration Services instance
View the SSIS log
View the packages that are currently running on that instance
Browse the packages stored in MSDB or the file system
Import or export packages
Delete packages
Run packages
Question 5 - Can you name some of the core SSIS components in the Business
Intelligence Development Studio you work with on a regular basis when building an
SSIS package?
Connection Managers
Control Flow
Data Flow
Event Handlers
Variables window
Toolbox window
Output window
Logging
Package Configurations
Question 1 - True or False: SSIS has a default means to log all records updated,
deleted or inserted on a per table basis.
False, but a custom solution can be built to meet these needs.
Question 2 - What is a breakpoint in SSIS? How is it setup? How do you disable it?
A breakpoint is a stopping point in the code. The breakpoint can give the
Developer\DBA an opportunity to review the status of the data, variables and the overall
status of the SSIS package.
10 unique conditions exist for each breakpoint.
Breakpoints are setup in BIDS. In BIDS, navigate to the control flow interface. Right
click on the object where you want to set the breakpoint and select the 'Edit
Breakpoints...' option.
Question 3 - Can you name 5 or more of the native SSIS connection managers?
OLEDB connection - Used to connect to any data source requiring an OLEDB
connection (i.e., SQL Server 2000)
Flat file connection - Used to make a connection to a single file in the File System.
Required for reading information from a File System flat file
ADO.Net connection - Uses the .Net Provider to make a connection to SQL Server 2005
or other connection exposed through managed code (like C#) in a custom task
Analysis Services connection - Used to make a connection to an Analysis Services
database or project. Required for the Analysis Services DDL Task and Analysis
Services Processing Task
File connection - Used to reference a file or folder. The options are to either use or
create a file or folder
Excel
FTP
HTTP
MSMQ
SMO
SMTP
SQLMobile
WMI
Question 4 - How do you eliminate quotes from being uploaded from a flat file to SQL
Server?
In the SSIS package on the Flat File Connection Manager Editor, enter quotes into the
Text qualifier field then preview the data to ensure the quotes are not included.
Additional information: How to strip out double quotes from an import file in SQL Server
Integration Services
Question 5 - Can you name 5 or more of the main SSIS tool box widgets and their
functionality?
For Loop Container
Foreach Loop Container
Sequence Container
ActiveX Script Task
Analysis Services Execute DDL Task
Analysis Services Processing Task
Bulk Insert Task
Data Flow Task
Data Mining Query Task
Execute DTS 2000 Package Task
Execute Package Task
Execute Process Task
Execute SQL Task
etc.
Question 3 - Can you explain different options for dynamic configurations in SSIS?
Use an XML file
Use custom variables
Use a database per environment with the variables
Use a centralized database with all variables
Question 5 - Can you name five of the Perfmon counters for SSIS and the value they
provide?
SQLServer:SSIS Service
SSIS Package Instances - Total number of simultaneous SSIS Packages running
SQLServer:SSIS Pipeline
BLOB bytes read - Total bytes read from binary large objects during the monitoring
period.
BLOB bytes written - Total bytes written to binary large objects during the monitoring
period.
BLOB files in use - Number of binary large objects files used during the data flow task
during the monitoring period.
Buffer memory - The amount of physical or virtual memory used by the data flow task
during the monitoring period.
Buffers in use - The number of buffers in use during the data flow task during the
monitoring period.
Buffers spooled - The number of buffers written to disk during the data flow task during
the monitoring period.
Flat buffer memory - The total number of blocks of memory in use by the data flow task
during the monitoring period.
Flat buffers in use - The number of blocks of memory in use by the data flow task at a
point in time.
Private buffer memory - The total amount of physical or virtual memory used by data
transformation tasks in the data flow engine during the monitoring period.
Private buffers in use - The number of blocks of memory in use by the transformations
in the data flow task at a point in time.
Rows read - Total number of input rows in use by the data flow task at a point in time.
Rows written - Total number of output rows in use by the data flow task at a point in
time