Escolar Documentos
Profissional Documentos
Cultura Documentos
Posts covering interview questions and answers always make for interesting reading.
Some people like the subject for their helpful hints and thought provoking subject, and
others dislike these posts because they feel it is nothing more than cheating. I’d like to
discuss the pros and cons of a Question and Answer format here.
I have administrated hundreds of interviews during my career and I have noticed that
sometimes an interviewee with several years of experience lacks an understanding of the
fundamentals. These individuals have been in the industry for so long, usually working
on a very specific project, that the ABCs of the business have slipped their mind.
Or, when a college graduate is looking to get into the industry, he is not expected to have
experience since he is just graduated. However, the new grad is expected to have an
understanding of fundamentals and theory. Sometimes after the stress of final exams and
graduation, it can be difficult to remember the correct answers to interview questions,
though.
An interview Question and Answer discussion can be very helpful to both these
individuals. It is simply a way to go back over the building blocks of a topic. Many
times a simple review like this will help “jog” your memory, and all those previously-
memorized facts will come flooding back to you. It is not a way to re-learn a topic, but a
way to remind yourself of what you already know.
A Question and Answer discussion can also be a way to go over old topics in a more
interesting manner. Especially if you have been working in the industry, or taking lots of
classes on the topic, everything you read can sound like a repeat of what you already
know. Going over a topic in a new format can make the material seem fresh and
interesting. And an interested mind will be more engaged and remember more in the end.
Another argument against interview Question and Answers is that it will give candidates
a false sense of confidence, and that they will appear more qualified than they are. Well,
if that is true, it will not last after the first interview when the candidate is asked difficult
questions and he cannot find the answers in the list of interview Questions and Answers.
Besides, confidence is one of the best things to walk into an interview with!
In today’s competitive job market, there are often hundreds of candidates applying for the
same position. With so many applicants to choose from, interviewers must make
decisions about who to call back and who to hire based on their gut feeling. One
drawback to reading an interview Question and Answer article is that you might sound
very boring in your interview – saying the same thing as every single candidate, and
parroting answers that sound like someone else wrote them for you – because they did.
However, it is definitely better to go to an interview prepared, just make sure that you
give a lot of thought to your answers to make them sound like your own voice.
Remember that you will be hired based on your skills as well as your personality, so don’t
think that having all the right answers will make get you hired. A good interviewee will
be prepared, confident, and know how to stand out.
My Opinion
A list of interview Questions and Answers is really helpful as a refresher or for beginners.
To really ace an interview, one needs to have real-world, hands-on experience with SQL
Server as well. Interview questions just serve as a starter or easy read for experienced
professionals. When I have to learn new technology, I often search online for interview
questions and get an idea about the breadth and depth of the technology.
Next Action
I am going to write about interview Questions and Answers for next 30 days. I have
previously written a series of interview questions and answers; now I have re-written
them keeping the latest version of SQL Server and current industry progress in mind. If
you have faced interesting interview questions or situations, please write to me and I will
publish them as a guest post. If you want me to add few more details, leave a comment
and I will make sure that I do my best to accommodate.
Tomorrow we will start the interview Questions and Answers series, with a few
interesting stories, best practices and guest posts. We will have a prize give-away and
other awards when the series ends.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 2 of 31
What is RDBMS?
What are the Properties of the Relational Tables?
What is Normalization?
What is De-normalization?
How is ACID property related to Database?
What are the Different Normalization Forms?
What is Normalization?
Database normalization is a data design and organization process applied to data
structures based on rules that help building relational databases. In relational database
design, the process of organizing data to minimize redundancy is called normalization.
Normalization usually involves dividing a database into two or more tables and defining
relationships between the tables. The objective is to isolate data so that additions,
deletions, and modifications of a field can be made in just one table and then propagated
through the rest of the database via the defined relationships.
What is De-normalization?
De-normalization is the process of attempting to optimize the performance of a database
by adding redundant data. It is sometimes necessary because current DBMSs implement
the relational model poorly. A true relational DBMS would allow for a fully normalized
database at the logical level, while providing physical storage of data that is tuned for
high performance. De-normalization is a technique to move from higher to lower normal
forms of database modeling in order to speed up database access.
Isolation keeps transactions separated from each other until they are finished.
Durability guarantees that the database will keep track of pending changes in such a way
that the server can recover from an abnormal termination. (Read more here)
Make a separate table for each set of related attributes, and give each table a primary key.
Each field contains at most one value from its attribute domain.
If attributes do not contribute to a description of the key, then remove them to a separate
table. All attributes must be directly dependent on the primary key. (Read more here)
BCNF: Boyce-Codd Normal Form
If there are non-trivial dependencies between candidate key attributes, then separate them
out into distinct tables.
No table may contain two or more 1:n or n:m relationships that are not directly related.
There may be practical constrains on information that justify separating logically related
many-to-many relationships.
A model limited to only simple (elemental) facts, as expressed in Object Role Model
notation.
What is a Trigger?
A trigger is a SQL procedure that initiates an action when an event (INSERT, DELETE or
UPDATE) occurs. Triggers are stored in and managed by the DBMS. Triggers are used to
maintain the referential integrity of data by changing the data in a systematic fashion. A
trigger cannot be called or executed; DBMS automatically fires the trigger as a result of a
data modification to the associated table. Triggers can be considered to be similar to
stored procedures in that both consist of procedural logic that is stored at the database
level. Stored procedures, however, are not event-drive and are not attached to a specific
table as triggers are. Stored procedures are explicitly executed by invoking a CALL to the
procedure while triggers are implicitly executed. In addition, triggers can also execute
stored procedures.
Nested Trigger: A trigger can also contain INSERT, UPDATE and DELETE logic within
itself; so when the trigger is fired because of data modification, it can also cause another
data modification, thereby firing another trigger. A trigger that contains data modification
logic within itself is called a nested trigger. (Read more here)
1) DML Trigger
1. Instead of Trigger
Instead of Triggers are fired in place of the triggering action such as an insert, update, or
delete.
2. After Trigger
After triggers execute following the triggering action, such as an insert, update, or delete.
2) DDL Trigger
This type of trigger is fired against Drop Table, Create Table, Alter Table or Login events.
DDL Triggers are always After Triggers.
What is a View?
A simple view can be thought of as a subset of a table. It can be used for retrieving data
as well as updating or deleting rows. Rows updated or deleted in the view are updated or
deleted in the table the view was created with. It should also be noted that as data in the
original table changes, so does the data in the view as views are the way to look at parts
of the original table. The results of using a view are not permanently stored in the
database. The data accessed through a view is actually constructed using standard T-SQL
select command and can come from one to many different base tables or even other
views.
What is an Index?
An index is a physical structure containing pointers to the data. Indices are created in an
existing table to locate rows more quickly and efficiently. It is possible to create an index
on one or more columns of a table, and each index is given a name. The users cannot see
the indexes; they are just used to speed up queries. Effective indexes are one of the best
ways to improve performance in a database application. A table scan happens when there
is no index available to help a query. In a table scan, the SQL Server examines every row
in the table to satisfy the query results. Table scans are sometimes unavoidable, but on
large tables, scans have a terrific impact on performance.
What is a Cursor?
A cursor is a database object used by applications to manipulate data in a set on a row-by-
row basis, instead of the typical SQL commands that operate on all the rows in the set at
one time.
In order to work with a cursor, we need to perform some steps in the following order:
Declare cursor
Open cursor
Fetch row from the cursor
Process fetched row
Close cursor
Deallocate cursor
What is Collation?
Collation refers to a set of rules that determine how data is sorted and compared.
Character data is sorted using rules that define the correct character sequence with
options for specifying case sensitivity, accent marks, Kana character types, and character
width.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 4 of 31
What is the Difference between a Function and a Stored Procedure?
What is subquery? Explain the Properties of a Subquery?
What are Different Types of Join?
What are Primary Keys and Foreign Keys?
What is User-defined Functions? What are the types of User-defined Functions
that can be created?
A cross join that does not have a WHERE clause produces the Cartesian product of the
tables involved in the join. The size of a Cartesian product result set is the number of
rows in the first table multiplied by the number of rows in the second table. The common
example is when company wants to combine each product with a pricing table to analyze
each product at each price.
Inner Join
A join that displays only the rows that have a match in both joined tables is known as
inner Join. This is the default type of join in the Query and View Designer.
Outer Join
A join that includes rows even if they do not have related rows in the joined table is an
Outer Join. You can create three different outer join to specify the unmatched rows to be
included:
Left Outer Join: In Left Outer Join, all the rows in the first-named table, i.e. “left”
table, which appears leftmost in the JOIN clause, are included. Unmatched rows
in the right table do not appear.
Right Outer Join: In Right Outer Join, all the rows in the second-named table, i.e.
“right” table, which appears rightmost in the JOIN clause are included.
Unmatched rows in the left table are not included.
Full Outer Join: In Full Outer Join, all the rows in all joined tables are included,
whether they are matched or not.
Self Join
This is a particular case when one table joins to itself with one or two aliases to avoid
confusion. A self join can be of any type, as long as the joined tables are the same. A self
join is rather unique in that it involves a relationship with only one table. The common
example is when company has a hierarchal reporting structure whereby one member of
staff reports to another. Self Join can be Outer Join or Inner Join. (Read more here)
A scalar user-defined function returns one of the scalar data types. Text, ntext, image and
timestamp data types are not supported. These are the type of user-defined functions that
most developers are used to in other programming languages.
An Inline table-value user-defined function returns a table data type and is an exceptional
alternative to a view as the user-defined function can pass parameters into a T-SQL select
command and in essence provide us with a parameterized, non-updateable view of the
underlying tables.
What is an Identity?
Identity (or AutoNumber) is a column that automatically generates numeric values. A
start and increment value can be set, but most DBAs leave these at 1. A GUID column
also generates unique keys. Updated based on the comment of Aaron Bertrand.
What is DataWarehousing?
Subject-oriented, which means that the data in the database is organized so that all
the data elements relating to the same real-world event or object are linked
together;
Time-variant, which means that the changes to the data in the database are tracked
and recorded so that reports can be produced showing changes over time;
Non-volatile, which means that data in the database is never over-written or
deleted, once committed, the data is static, read-only, but retained for future
reporting.
Integrated, which means that the database contains data from most or all of an
organization’s operational applications, and that this data is made consistent.
This language is used for retrieving data from SSAS cubes. It looks very similar to T-
SQL, but it is very different in the areas of conceptualization and implementation.
DMX – Data Mining Extensions:
This is again used for SSAS, but rather than cubes it is used for data mining structures.
This language is more complicated than MDX. Microsoft has provided many wizards in
its BI tools, which further reduced number of experts for learning this language, which
deals with data mining structures.
This is mainly used for SSAS administrative tasks. It is quite commonly used in
administration tasks such as backup or restore database, copy and move database, or for
learning Meta data information. Again, MS BI tools provide a lot of wizards for the same.
1) Hot Standby:
Hot Standby can be achieved in the SQL Server using SQL Server 2005 Enterprise
Edition and the later enterprise versions. SQL Server 2005 has introduced Mirroring of
database that can be configured for automatic failover in a disaster situation. In the case
of synchronous mirroring, the database is replicated to both the servers simultaneously.
This is a little expensive but provides the best high availability. In this case, both primary
and standby servers have same data all the time.
2) Warm Standby:
In Warm Standby, automatic failover is not configured. This is usually set up using Log
Shipping or asynchronous mirroring. Sometimes warm standby is lagging by a few
minutes or seconds, which results into loss of few latest updates when the primary server
fails and secondary server needs to come online. Sometimes a warm standby server that
is lagging by a few transactions is brought back to the current state by applying the recent
transaction log.
3) Cold Standby:
Code Standby servers need to be switched manually, and sometimes all the backups as
well as the required OS need to be applied. Cold Standby just physically replaces the
previous server.
1.FROM
2.ON
3.OUTER
4.WHERE
5.GROUPBY
6.CUBEROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.TOP
11. ORDER BY
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 6 of 31
Which TCP/IP port does the SQL Server run on? How can it be Changed?
What are the Difference between Clustered and a Non-clustered Index?
What are the Different Index Configurations a Table can have?
What are Different Types of Collation Sensitivity?
What is OLTP (Online Transaction Processing)?
What’s the Difference between a Primary Key and a Unique Key?
What is Difference between DELETE and TRUNCATE Commands?
A non-clustered index is a special type of index in which the logical order of the index
does not match the physical stored order of the rows on disk. The leaf node of a non-
clustered index does not consist of the data pages. Instead, the leaf nodes contain index
rows.
No indexes
A clustered index
A clustered index and many non-clustered indexes
A non-clustered index
Many non-clustered indexes
Kana Sensitivity – When Japanese Kana characters Hiragana and Katakana are treated
differently, it is called Kana sensitive.
Width sensitivity – When a single-byte character (half-width) and the same character
represented as a double-byte character (full-width) are treated differently, it is width
sensitive.
TRUNCATE
TRUNCATE is faster and uses fewer system and transaction log resources than
DELETE. (Read all the points below)
TRUNCATE removes the data by deallocating the data pages used to store the
table’s data, and only the page deallocations are recorded in the transaction log.
TRUNCATE removes all the rows from a table, but the table structure, its
columns, constraints, indexes and so on remains. The counter used by an identity
for new rows is reset to the seed for the column.
You cannot use TRUNCATE TABLE on a table referenced by a FOREIGN KEY
constraint.
Using T-SQL – TRUNCATE cannot be rolled back unless it is used in
TRANSACTION. OR TRUNCATE can be rolled back when used with BEGIN
… END TRANSACTION using T-SQL.
TRUNCATE is a DDL Command.
TRUNCATE resets the identity of the table.
DELETE
DELETE removes rows one at a time and records an entry in the transaction log
for each deleted row.
DELETE does not reset Identity property of the table.
DELETE can be used with or without a WHERE clause
DELETE activates Triggers if defined on table.
DELETE can be rolled back.
DELETE is DML Command.
DELETE does not reset the identity of the table.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 7 of 31
What are Different Types of Locks?
What are Pessimistic Lock and Optimistic Lock?
When is the use of UPDATE_STATISTICS command?
What is the Difference between a HAVING clause and a WHERE clause?
What is Connection Pooling and why it is Used?
What are the Properties and Different Types of Sub-Queries?
What are the Authentication Modes in SQL Server? How can it be Changed?
Pessimistic Locking is when you lock the record for your exclusive use until you have
finished with it. It has much better integrity than optimistic locking but requires you to be
careful with your application design to avoid Deadlocks.
Types of Sub-query
Single-row sub-query, where the sub-query returns only one row.
Multiple-row sub-query, where the sub-query returns multiple rows, and
Multiple column sub-query, where the sub-query returns multiple columns
What is an SQL Profiler?
SQL Profiler is a graphical tool that allows system administrators to monitor events in an
instance of Microsoft SQL Server. You can capture and save data about each event to a
file or SQL Server table to analyze later. For example, you can monitor a production
environment to see which stored procedures are hampering performances by executing
very slowly.
Use SQL Profiler to monitor only the events in which you are interested. If traces are
becoming too large, you can filter them based on the information you want, so that only a
subset of the event data is collected. Monitoring too many events adds overhead to the
server and the monitoring process and can cause the trace file or trace table to grow very
large, especially when the monitoring process takes place over a long period of time.
Windows Mode
Mixed Mode – SQL and Windows
To change authentication mode in SQL Server, go to Start -> Programs- > Microsoft SQL
Server and click SQL Enterprise Manager to run SQL Enterprise Manager from the
Microsoft SQL Server program group. Select the server; then from the Tools menu, select
SQL Server Configuration Properties and choose the Security page.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 8 of 31
Which Command using Query Analyzer will give you the Version of SQL Server
and Operating System?
What is an SQL Server Agent?
Can a Stored Procedure call itself or a Recursive Stored Procedure? How many
levels of SP nesting is possible?
What is Log Shipping?
Name 3 ways to get an Accurate Count of the Number of Records in a Table?
What does it mean to have QUOTED_IDENTIFIER ON? What are the
Implications of having it OFF?
What is the Difference between a Local and a Global Temporary Table?
What is the STUFF Function and How Does it Differ from the REPLACE
Function?
What is PRIMARY KEY?
What is UNIQUE KEY Constraint?
What is FOREIGN KEY?
A global temporary table remains in the database accessible across the connections. Once
the connection where original global table is declared dropped this becomes unavailable.
What is the STUFF Function and How Does it Differ
from the REPLACE Function?
STUFF function is used to overwrite existing characters using this syntax: STUFF
(string_expression, start, length, replacement_characters), where string_expression is the
string that will have characters substituted, start is the starting position, length is the
number of characters in the string that are substituted, and replacement_characters are the
new characters interjected into the string. REPLACE function is used to replace existing
characters of all occurrences. Using the syntax REPLACE (string_expression,
search_string, replacement_string), every incidence of search_string found in the
string_expression will be replaced with replacement_string.
UNION ALL
The UNION ALL command is equal to the UNION command, except that UNION ALL
selects all values.
The difference between UNION and UNION ALL is that UNION ALL will not eliminate
duplicate rows, instead it just pulls all rows from all the tables fitting your query specifics
and combines them into a table.
What is B-Tree?
The database server uses a B-tree structure to organize index information. B-Tree
generally has following types of index pages or nodes:
Root node: A root node contains node pointers to only one branch node.
Branch nodes: A branch node contains pointers to leaf nodes or other branch
nodes, which can be two or more.
Leaf nodes: A leaf node contains index items and horizontal pointers to other leaf
nodes, which can be many.
If someone is using db it will not accept sp_renmaedb. In that case, first bring db to
single user mode using sp_dboptions. Use sp_renamedb to rename the database. Use
sp_dboptions to bring the database to multi-user mode.
e.g.
USE MASTER;
GO
EXEC sp_dboption AdventureWorks, 'Single User', True
GO
EXEC sp_renamedb 'AdventureWorks', 'AdventureWorks_New'
GO
EXEC sp_dboption AdventureWorks, 'Single User', False
GO
To Rename Table
e.g.
To rename Column
e.g.
e.g.
You can run the following command and check the advanced global configuration
settings.
sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE
GO
Many-to-Many relationships are implemented using a junction table with the keys from
both the tables forming the composite primary key of the junction table.
Operations
When Commit is executed, every statement between BEGIN and COMMIT becomes
persistent to database. When Rollback is executed, every statement between BEGIN and
ROLLBACK are reverted to the state when BEGIN was executed.
e.g.
In the above example, col1 and tab1 are the column alias and table alias, respectively.
They do not affect the performance at all.
Here are few methods which can be used to protect again SQL Injection attack:
EXEC master..xp_fixeddrives
What is a Hint?
Hints are options and strong suggestions specified for enforcement by the SQL Server
query processor on DML statements. The hints override any execution plan the query
optimizer might select for a query.
There are three different types of hints. Let us understand the basics of each of them
separately.
Join Hint
This hint is used when more than one table is used in a query. Two or more tables can be
joined using different types of joins. This hint forces the type of join algorithm that is
used. Joins can be used in SELECT, UPDATE and DELETE statements.
Query Hint
This hint is used when certain kind of logic has to be applied to a whole query. Any hint
used in the query is applied to the complete query as opposed to a part of it. There is no
way to specify that only a certain part of a query should be used with the hint. After any
query, the OPTION clause is specified to apply the logic to this query. A query always
has any of the following statements: SELECT, UPDATE, DELETE, INSERT or MERGE
(SQL 2K8); and this hint can be applied to all of them.
Table Hint
This hint is used when certain kind of locking mechanism of tables has to be controlled.
SQL Server query optimizer always puts the appropriate kind of lock on tables, when any
of the Transact SQL operations SELECT, UPDATE, DELETE, INSERT or MERGE is
used. There are certain cases when the developer knows when and where to override the
default behavior of the locking algorithm, and these hints are useful in those scenarios.
e.g.
An index seek, on the other hand, means that the Query Optimizer relies entirely on the
index leaf data to locate rows satisfying the query condition. An index seek will be most
beneficial in cases where a small percentage of rows will be returned. An index seek will
only affect the rows that satisfy a query condition and the pages that contain these
qualifying rows; in terms of performance, this is highly beneficial when a table has a very
large number of rows.
It is easy to measure how much data is retrieved from server to client side. The SQL
Server Management Studio has feature that can measure client statistics.
Option 1:
Option 2:
We can use RECOMPILE hint with a query and recompile only that particular query.
However, if the parameters are used in many statements in the stored procedure and we
want to recompile all the statements, then instead of using the RECOMPILE option with
all the queries, we have one better option that uses WITH RECOMPILE during stored
procedure creation or execution.
This method is not recommended for large stored procedures because the recompilation
of so many statements may outweigh the benefit of a better execution plan.
UPDATE TableName
SET Col1 ='Value', Col2 ='Value2'
Option 2:
UPDATE TableName
SET Col2 ='Value2', Col1 ='Value'
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 14 of 31
What are the basic functions for master, msdb, model, tempdb and resource
databases?
What is the Maximum Number of Index per Table?
Explain Few of the New Features of SQL Server 2008 Management Studio
Explain IntelliSense for Query Editing
Explain MultiServer Query
Explain Query Editor Regions
Explain Object Explorer Enhancements
Explain Activity Monitors
The msdb database stores information regarding database backups, SQL Agent
information, DTS packages, SQL Server jobs, and some replication information such as
for log shipping.
The tempdb holds temporary objects such as global and local temporary tables and stored
procedures.
The model is essentially a template database used in the creation of any new user
database created in the instance.
The resource Database is a read-only database that contains all the system objects that
are included in the SQL Server. SQL Server system objects such as sys.objects are
physically persisted in the Resource database, but they logically appear in the sys schema
of every database. The Resource database does not contain user data or user metadata.
After implementing IntelliSense, we will not have to remember all the syntax or browse
online references. IntelliSense offers a few additional features besides just completing the
keyword.
SSMS 2008 has a feature to run a query on different servers from one query editor
window. First of all, make sure that you registered all the servers under your registered
server. Once they are registered, right click on server group name and click New Query.
SELECT
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ProductVersion') AS ProductVersion
When the T-SQL code is more than hundreds of lines, after a while, it becomes more and
more confusing.
Statements between BEGIN – END, BEGIN TRY – END TRY, BEGIN CATCH – END
CATCH
In Object Explorer Detail, the new feature is Object Search. Enter any object name in the
object search box and the searched result will be displayed in the same window as Object
Explorer Detail.
Additionally, there are new wizards which help you perform several tasks, from policy
management to disk monitoring. One cool thing is that everything displayed in the object
explorer details screen can be right away copied and pasted to Excel without any
formatting issue.
All the four tabs provide very important information; however, the one which I refer most
is “Recent Expensive Queries.” Whenever I find my server running slow or having any
performance-related issues, my first reaction is to open this tab and see which query is
running slow. I usually look at the query with the highest number for Average Duration.
The Recent Expensive Queries monitors only show queries which are in the SQL Server
cache at that moment.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 15 of 31
What is Service Broker?
Where are SQL server Usernames and Passwords Stored in the SQL server?
What is Policy Management?
What is Database Mirroring?
What are Sparse Columns?
What does TOP Operator Do?
What is CTE?
What is MERGE Statement?
What is Filtered Index?
Which are the New Data Types Introduced in SQL SERVER 2008?
What is CTE?
CTE is the abbreviation for Common Table Expression. A CTE is an expression that can
be thought of as a temporary result set which is defined within the execution of a single
SQL statement. A CTE is similar to a derived table in that it is not stored as an object and
lasts only for the duration of the query.
The GEOGRAPHY Type: The GEOGRAPHY datatype’s functions are the same as with
GEOMETRY. The difference between the two is that when you specify GEOGRAPHY,
you are usually specifying points in terms of latitude and longitude.
New Date and Time Data types: SQL Server 2008 introduces four new data types related
to date and time: DATE, TIME, DATETIMEOFFSET, and DATETIME2.
DATE: The new DATE data type just stores the date itself. It is based on the
Gregorian calendar and handles years from 1 to 9999.
TIME: The new TIME (n) type stores time with a range of 00:00:00.0000000
through 23:59:59.9999999. The precision is allowed with this type. TIME
supports seconds down to 100 nanoseconds. The n in TIME(n) defines this level
of fractional second precision from 0 to 7 digits of precision.
The DATETIMEOFFSET Type: DATETIMEOFFSET (n) is the time-zone-
aware version of a datetime datatype. The name will appear less odd when you
consider what it really is: a date + time + time-zone offset. The offset is based on
how far behind or ahead you are from Coordinated Universal Time (UTC) time.
The DATETIME2 Type: It is an extension of the datetime type in earlier versions
of SQL Server. This new datatype has a date range covering dates from January 1
of year 1 through December 31 of year 9999. This is a definite improvement over
the lower boundary of 1753 of the datetime datatype. DATETIME2 not only
includes the larger date range, but also has a timestamp and the same fractional
precision that TIME type provides.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 16 of 31
What are the Advantages of Using CTE?
How can we Rewrite Sub-Queries into Simple Select Statements or with Joins?
What is CLR?
What are Synonyms?
What is LINQ?
What are Isolation Levels?
What is Use of EXCEPT Clause?
What is XPath?
What is NOLOCK?
What is the Difference between Update Lock and Exclusive Lock?
e.g.
USE AdventureWorks
GO
WITH EmployeeDepartment_CTE AS (
SELECT EmployeeID,DepartmentID,ShiftID
FROM HumanResources.EmployeeDepartmentHistory
)
SELECT ecte.EmployeeId,ed.DepartmentID, ed.Name,ecte.ShiftID
FROM HumanResources.Department ed
INNER JOIN EmployeeDepartment_CTE ecte ON ecte.DepartmentID = ed.DepartmentID
GO
What is CLR?
In SQL Server 2008, SQL Server objects such as user-defined functions can be created
using such CLR languages. This CLR language support extends not only to user-defined
functions, but also to stored procedures and triggers. You can develop such CLR add-ons
to SQL Server using Visual Studio 2008. (Read more here)
What is LINQ?
Language Integrated Query (LINQ) adds the ability to query objects using .NET
languages. The LINQ to SQL object/relational mapping (O/RM) framework provides the
following basic features:
Whether locks are taken when data is read, and what type of locks are requested.
How long the read locks are held.
Whether a read operation referencing rows modified by another transaction
o blocks until the exclusive lock on the row is freed,
o retrieves the committed version of the row that existed at the time the
statement or transaction started, and
o reads the uncommitted data modification.
What is Use of EXCEPT Clause?
EXCEPT clause is similar to MINUS operation in Oracle. The EXCEPT query and
MINUS query return all rows in the first query that are not returned in the second query.
Each SQL statement within the EXCEPT query and MINUS query must have the same
number of fields in the result sets with similar data types. (Read more here)
What is XPath?
XPath uses a set of expressions to select nodes to be processed. The most common
expression that you’ll use is the location path expression, which returns back a set of
nodes called a node set. XPath can use both an unabbreviated and abbreviated syntax.
The following is the unabbreviated syntax for a location path:
/axisName::nodeTest[predicate]/axisName::nodeTest[predicate]
What is NOLOCK?
Using the NOLOCK query optimizer hint is generally considered a good practice in order
to improve concurrency on a busy system. When the NOLOCK hint is included in a
SELECT statement, no locks are taken on data when data is read. The result is a Dirty
Read, which means that another process could be updating the data at the exact time you
are reading it. There are no guarantees that your query will retrieve the most recent data.
The advantage to performance is that your reading of data will not block updates from
taking place, and updates will not block your reading of data. SELECT statements take
Shared (Read) locks. This means that multiple SELECT statements are allowed
simultaneous access, but other processes are blocked from modifying the data. The
updates will queue until all the reads have completed, and reads requested after the
update will wait for the updates to complete. The result to your system is delay
(blocking). (Read more here)
Update Lock is a type of Exclusive Lock, except that it can be placed on the row which
already has Shared Lock on it. Update Lock reads the data of the row which has the
Shared Lock as soon as the Update Lock is ready to change the data it converts itself to
the Exclusive Lock.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 17 of 31
How will you Handle Error in SQL SERVER 2008?
What is RAISEERROR? What is RAISEERROR?
How to Rebuild the Master Database?
What is the XML Datatype?
What is Data Compression?
What is Use of DBCC Commands?
How to Copy the Tables, Schema and Views from one SQL Server to Another?
How to Find Tables without Indexes?
BEGIN TRY
<code>
END TRY
BEGIN CATCH
<code>
END CATCH
So if any error occurs in the TRY block, then execution is diverted to the CATCH block,
and the error can be resolved.
What is RAISEERROR?
RaiseError generates an error message and initiates error processing for the session.
RAISERROR can either reference a user-defined message stored in the sys.messages
catalog view or build a message dynamically. The message is returned as a server error
message to the calling application or to an associated CATCH block of a TRY…CATCH
construct. (Read more here)
To rebuild the Master database, run Setup.exe, verify, and repair a SQL Server instance,
and rebuild the system databases. This procedure is most often used to rebuild the master
database for a corrupted installation of SQL Server.
Row Compression
Page Compression
Row Compression
Row compression changes the format of physical storage of data. It minimize the
metadata (column information, length, offsets etc) associated with each record. Numeric
data types and fixed-length strings are stored in variable-length storage format, just like
Varchar. (Read more here)
Page Compression
Page compression allows common data to be shared between rows for a given page. It
uses the following techniques to compress data:
Row compression.
Prefix Compression. For every column in a page, duplicate prefixes are identified.
These prefixes are saved in compression information headers which resides after
the page header. A reference number is assigned to these prefixes and that
reference number is replaced where ever those prefixes are being used.
Dictionary Compression
Dictionary compression searches for duplicate values throughout the page and stores
them in CI. The main difference between prefix and dictionary compression is that the
former is only restricted to one column while the latter is applicable to the complete page.
What is Use of DBCC Commands?
The Transact-SQL programming language provides DBCC statements that act as
Database Console Commands for SQL Server. DBCC commands are used to perform the
following tasks.
1. “Detach Database” from one server and “Attach Database” to another server.
2. Manually script all the objects using SSMS and run the script on a new server.
3. Use Wizard of SSMS.
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(OBJECT_ID,'IsIndexed') = 0
ORDER BY schema_name, table_name;
GO
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Day 18 of 31
How to Copy Data from One Table to Another Table?
What is Catalog Views?
What is PIVOT and UNPIVOT?
What is a Filestream?
What is SQLCMD?
What do you mean by TABLESAMPLE?
What is ROW_NUMBER()?
What are Ranking Functions?
What is Change Data Capture (CDC) in SQL Server 2008?
This method is used when table is already created in the database earlier and data have to
be inserted into this table from another table. If columns listed in the INSERT clause and
SELECT clause are same, listing them is not required.
2) SELECT INTO
This method is used when table is not created earlier and it needs to be created when data
from one table must be inserted into a newly created table from another table. The new
table is created using the same data types as those in selected columns. (Read more here)
What is a Filestream?
Filestream allows you to store large objects in the file system and have these files
integrated within the database. It enables SQL Server-based applications to store
unstructured data such as documents, images, audios and videos in the file
system. FILESTREAM basically integrates the SQL Server Database Engine with New
Technology File System (NTFS); it basically stores the data in varbinary (max) data type.
Using this data type, the unstructured data is stored in the NTFS file system, and the SQL
Server Database Engine manages the link between the Filestream column and the actual
file located in the NTFS. Using Transact-SQL statements users can insert, update, delete
and select the data stored in FILESTREAM-enabled tables.
What is SQLCMD?
sqlcmd is enhanced version of the isql and osql, and it provides way more functionality
than other two options. In other words, sqlcmd is better replacement of isql (which will
be deprecated eventually) and osql (not included in SQL Server 2005 RTM). sqlcmd can
work in two modes – i) BATCH and ii) interactive modes. (Read more here)
What is ROW_NUMBER()?
ROW_NUMBER() returns a column as an expression that contains the row’s number
within the result set. This is only a number used in the context of the result set; if the
result changes, the ROW_NUMBER() will change.
In the above scenario, if table has clustered index, it is called bookmark lookup (or key
lookup); if the table does not have clustered index, but a non-clustered index, it is called
RID lookup.
NO_WAIT:
Specifies that if the requested database state or option change cannot complete
immediately without waiting for transactions to commit or roll back on their own, then
the request will fail.
SELECT is_auto_create_stats_on,is_auto_update_stats_on
FROM sys.databases
WHERE name =‘YOUR DATABASE NAME
SELECT *
FROM sys.indexes
WHERE OBJECT_ID=OBJECT_ID('HumanResources.Shift')
Conditions – Criteria that specifies the state of facet to true or false. For example, you
can adjust the state of a facet that gives you clear specifications of all stored procedures
in the Schema ‘Banking’.
Policy – A set of rules specified for the server objects or the properties of database.
According to MSDN, FILLFACTOR specifies a percentage that indicates how much the
Database Engine should fill each index page during index creation or rebuild. Fill-factor
is always an integer valued from 1 to 100. The fill-factor option is designed for
improving index performance and data storage. By setting the fill-factor value, you
specify the percentage of space on each page to be filled with data, reserving free space
on each page for future table growth.
Specifying a fill-factor value of 70 would imply that 30 percent of each page will be left
empty, providing space for index expansion as data is added to the underlying table. The
fill-factor setting applies only when the index is created or rebuilt.
Once the view is created and if the basic table has any column added or removed,
it is not usually reflected in the view till it is refreshed.
One of the most prominent limitations of the View it is that it does not support
COUNT (*); however, it can support COUNT_BIG (*).
It means that when a query is fired, SQL Server doesn’t need to go to the table to retrieve
the rows, but can produce the results directly from the index as the index covers all the
columns used in query.
When I Delete any Data from a Table, does the SQL
Server reduce the size of that table?
When data are deleted from any table, the SQL Server does not reduce the size of the
table right away; however, it marks those pages as free pages, showing that they belong
to the table. When new data are inserted, they are put into those pages first. Once those
pages are filled up, SQL Server will allocate new pages. If you wait for sometime, the
background process de-allocates the pages, finally reducing the page size.
Resource Waits. Resource waits occur when a worker requests access to a resource that
is not available because that resource is either currently used by another worker or it’s not
yet available.
Queue Waits. Queue waits occur when a worker is idle, waiting for work to be assigned.
External Waits. External waits occur when an SQL Server worker is waiting for an
external event.
If you change your recovery model to Simple Recovery Model, then you will not
encounter the extraordinary growth of your log file. However, please note if you have one
long running transaction it will for sure grow your log file till the transaction is complete.
In this Full Recovery Model, your transaction log will grow until you take a backup of it.
You need to take the T-Log Backup at a regular interval. This way, your log would not
grow beyond some limits.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Data Warehouseing
Concepts – Day 21 of 31
What is Data Warehousing?
What is Business Intelligence (BI)?
What is a Dimension Table?
What is Dimensional Modeling?
What is a Fact Table?
What are the Fundamental Stages of Data Warehousing?
What are the Different Methods of Loading Dimension tables?
Describes the Foreign Key Columns in Fact Table and Dimension Table?
What is Data Mining?
What is the Difference between a View and a Materialized View?
BI systems provide historical, current, and predictive views of business operations, most
often using data that has been gathered into a data warehouse or a data mart and
occasionally working from operational data.
Data warehouses in this initial stage are developed by simply copying the database of an
operational system to an off-line server where the processing load of reporting does not
impact on the operational system’s performance.
Data warehouses in this stage of evolution are updated on a regular time cycle (usually
daily, weekly or monthly) from the operational systems, and the data is stored in an
integrated reporting-oriented data structure
Data warehouses at this stage are updated on a transaction or event basis, every time an
operational system performs a transaction (e.g. an order or a delivery or a booking)
Integrated Data Warehouse:
Data warehouses at this stage are used to generate activity or transactions that are passed
back into the operational systems for use in the daily activity of the organization.
(Reference: Wikipedia)
Conventional (Slow):
All the constraints and keys are validated against the data before it is loaded; this way
data integrity is maintained.
Direct (Fast):
All the constraints and keys are disabled before the data is loaded. Once data is loaded, it
is validated against all the constraints and keys. If data is found invalid or dirty, it is not
included in index, and all future processes on this data are skipped.
What is OLTP?
OLTP is abbreviation of On-Line Transaction Processing. This system is an application
that modifies data At the very instant it is received and has a large number of concurrent
users.
What is OLAP?
OLAP is abbreviation of Online Analytical Processing. This system is an application that
collects, manages, processes and presents multidimensional data for analysis and
management purposes.
Process Goal
Database Design
OLTP: Normalized small database. Speed will be not an issue because of a small
database, and normalization will not degrade performance. This adopts the entity
relationship (ER) model and an application-oriented database design.
OLTP: Regular Database backup and system administration can do the job.
OLAP: Reloading the OLTP data is considered as a good backup option.
What is ODS?
ODS is the abbreviation of Operational Data Store - a database structure that is a
repository for near real-time operational data rather than long-term trend data. The ODS
may further become the enterprise-shared operational database, allowing operational
systems that are being re-engineered to use the ODS as their operation databases.
What is ER Diagram?
Entity Relationship (ER) Diagrams are a major data modeling tool and will help organize
the data in your project into entities and define the relationships between the entities. This
process has enabled the analyst to produce a good database structure so that the data can
be stored and retrieved in a most efficient manner.
What is ETL?
ETL is abbreviation of extract, transform, and load. ETL is software that enables
businesses to consolidate their disparate data while moving it from place to place, and it
doesn’t really matter that that data is in different forms or formats. The data can come
from any source. ETL is powerful enough to handle such data disparities. First, the
extract function reads data from a specified source database and extracts a desired subset
of data. Next, the transform function works with the acquired data – using rules or lookup
tables, or creating combinations with other data – to convert it to the desired state.
Finally, the load function is used to write the resulting data to a target database.
What is VLDB?
VLDB is abbreviation of Very Large Database. For instance, a one-terabyte database can
be considered as a VLDB. Typically, these are decision support systems or transaction
processing applications serving a large number of users.
1. SCD1: The new record replaces the original record. Only one record exists in
database – current data.
2. SCD2: A new record is added into the customer dimension table. Two records
exist in the database – current data and previous history data.
3. SCD3: The original data is modified to include new data. One record exists in
database – new information is attached with old information in same row.
SQL SERVER – Interview Questions and Answers –
Frequently Asked Questions – Data Warehouseing
Concepts – Day 24 of 31
What is Hybrid Slowly Changing Dimension?
What is BUS Schema?
What is a Star Schema?
What Snow Flake Schema?
Differences between the Star and Snowflake Schema?
What is Difference between ER Modeling and Dimensional Modeling?
What is Degenerate Dimension Table?
Why is Data Modeling Important?
What is a Surrogate Key?
What is Junk Dimension?
What is a Data Mart?
What is the Difference between OLAP and Data Warehouse?
What is a Cube and Linked Cube with Reference to Data Warehouse?
What is Snapshot with Reference to Data Warehouse?
What is Active Data Warehousing?
What is the Difference between Data Warehousing and Business Intelligence?
What is MDS?
Explain the Paradigm of Bill Inmon and Ralph Kimball.
Snow schema: Any dimension with extended dimensions is known as snowflake schema;
dimensions maybe interlinked or may have one-to-many relationship with other tables.
This schema is normalized, and results in complex join leading very complex query (as
well as slower results).
In computer science, data modeling is the process of creating a data model by applying a
data model theory to create a data model instance. A data model theory is a formal data
model description. In data modeling, we are structuring and organizing data. These data
structures are then typically implemented in a database management system. In addition
to defining and organizing the data, data modeling will impose (implicitly or explicitly)
constraints or limitations on the data placed within the structure.
Managing large quantities of structured and unstructured data is a primary function of
information systems. Data models describe structured data for storage in data
management systems such as relational databases. They typically do not describe
unstructured data, such as word processing documents, email messages, pictures, digital
audio, and video. (Reference: Wikipedia)
What is MDS?
Master Data Services or MDS helps enterprises standardize the data people rely on to
make critical business decisions. With Master Data Services, IT organizations can
centrally manage critical data assets companywide and across diverse systems, enable
more people to securely manage master data directly, and ensure the integrity of
information over time.
Paras Doshi is known SQL Azure Expert has written following guest
blog post to keep alive the spirit of Interview Questions and Answers Series. I
encourage all the readers to read his excellent blog and follow him on twitter.
[TIP: Remember Key words On Demand, Scalable, Self-service, and Measurable. Now
take the first word from each key word which gives us OSSM which can be pronounced
as Awesome. Thus remember cloud computing is Awesome! Tip courtesy: Dave
Nielsen]
SQL Azure is a cloud based service and so it has own set of pros and cons when
compared to SQL server. SQL Azure service benefits includes on demand provisioning,
high availability, reduced management overhead and scalability. But SQL Azure abstracts
some details from the subscriber which can be good or bad which depends on the context
of the need.
4.How many replicas are maintained for each SQL Azure database?
For each database, three replicas are maintained for each database that one provisions.
One of them is primary replica. All read/write happen on primary replica and other
replicas are kept in sync with primary replica. If for some reason, primary goes down,
other replica is promoted to primary. All this happens under the hood.
For Data Migration, we can use BCP or SSIS. And for schema Migration we can use
Generate Script Wizard. Also, we could use a Tool called SQL Azure migration wizard
available on codeplex.
6.Which tools are available to manage SQL Azure databases and servers?
We can manage SQL Azure database using SQL server management server 2008 R2.
Also, we can manage SQL Azure databases and servers through a Silverlight app
integrated in Azure management portal.
SQL Azure service allows blocking a request based on its IP address through SQL Azure
firewall. It uses SQL server Authentication mechanism to authenticate connections. Also
connections to SQL Azure are SSL-encrypted by default.
8.What is SQL Azure Firewall?
SQL Azure firewall is a security mechanism that blocks requests based on its IP address.
SQL Azure Web edition database Max Size is 5 GB whereas the business edition supports
Max Size up to 50 GB. The size of a web edition database can be increased (/decreased)
in the increments (/decrements) of 1 GB whereas the size of a business edition can be
increased in the increments of 10 GB.
SQL Azure keeps three replicas of a database to tackle hardware level issues. To tackle
user level errors, we can use COPY command that allows us to create a replica of a SQL
Azure database. We can also backup SQL Azure data to local SQL server using BCP,
SSIS, etc. but as of now, point in time recovery is not supported.
As of now, we have to build custom solution at application level that can handle scale out
of underlying SQL Azure databases. But Microsoft has announced, SQL Azure
Federations that will assist scaling out of SQL Azure databases. And scale out means that
we are splitting the data into smaller subsets spread across multiple databases.
15.What happens when the SQL Azure database reaches Max Size?
Read operations continue to work but create/insert/update operations are throttled. You
can drop/delete/truncate data.
16.How many databases can we create in a single server?
150 databases (including master database) can be created in a single SQL Azure server.
We can tune a SQL Azure database using information available from execution plan and
statistics of a query. We could use SQL Azure’s Dynamic Management views to monitor
and manage SQL Azure database.
Code near application topology means that the SQL Azure database and the windows
azure hosted service consuming the data are hosted in the same Azure datacenter.
[FYI: in the code far application topology, the app connects to SQL Azure from outside
the Microsoft data center]
Latest SQL Azure updates include multiple servers per subscription, SQL Azure co
administrator support, creating Firewall rules for servers with IP detect.
When database reaches its maximum size update/insert/create operations get throttled.
Also there are policies in place that does not allow to a workload to exploit a shared
physical server. In other words, the policies make sure that all workload get a fair share of
shared physical server. Now, a workload can get soft throttled that means that the
workload has crossed the safety threshold. A workload can also got hard throttled which
means that a SQL Azure machine is out of resources and it does not accept new
connections. We can know more about what happened by decoding reason codes.
These were SQL Azure specific interview questions but remember that SQL server
specific interview questions that we have seen so far can also appear in SQL Azure
context since SQL Azure is “SQL server in the cloud”. Also questions specific to
supported/unsupported features can be asked. I have not included the questions specific
to unsupported features because it keeps on changing. Read general guidelines and
limitations. Also note that SQL Azure is evolving very fast and it is important to keep a
tab on the features that are added in service releases.
SQL SERVER – Interview Questions and Answers –
Guest Post by Malathi Mahadevan – Day 26 of 31
Malathi has asked a simple question which have several answer. Each answer make you
think and ponder about the reality of the IT world. Look at the simple question – ‘What
is the toughest challenge you have faced at your present job and how did you handle
it’? and its various answers. Each answer has its own story.
One of the questions i was asked – and a regular at most interviews where i work is
‘What is the toughest challenge you have faced at your present job and how did you
handle it’?
Before looking at various responses I will explain some reasons why this question is
asked…#1 reason is that we don’t believe in grilling a person technically…it is the one
thing most people dread in interviews, and many times people who even know the subject
well get totally flustered and upset if they cannot answer something.On the other hand it
is vitally important to test an individual’s technical skills, especially when the company
cannot afford a big learning curve, and person needs to get started on the job right away
on production system. The easiest way to gauge a person’s expertise is to get them talking
about what they did…they may not know all that they are needed to know but as an
interviewer one can clearly understand how much and what this person is capable of.
Always try to be honest about this question. There is definitely a risk involved,
particularly if you are a junior DBA trying to transition into a more senior level..and the
company is looking for senior level expertise already. Experience shows - in the technical
jargon we use, how comfortable we are describing what we did, in everything.
Sometimes just the way you answer can impress the interviewer and get you the job. But
never try to pass off something you read or someone else’s experience as your own. You
may not be able to get very far with that, and it rarely fools a smart interviewer.
Some answers I have given and heard:
3 Had to convince application team to learn and use SSIS instead of TSQL for several
ETL processes. Ther was lot of resistance as SSIS was not easy for them to learn and they
were very used to writing TSQL code. But i had to arrange several demos and show them
advantages – particularly in terms of performance with data transforms, eliminating the
need for intermediate tables, filtering bad data and exception handling. Had to talk to the
manager and migrate couple of packages initially, did it all myself..when they saw how it
performed they started learning it and came on board totally. The main lesson i learnt was
to understand their resistance and deal with it maturely instead of forcing opinions.
4 Had a database that was using GUIDs heavily and suffering performance issues due to
high fragmentation. Tried to mitigate the issue by reindexing more often – to some extent
it helped. Then we moved to sequential GUIDs and it got little more better. But the main
issue i had was to force them to adopt integer keys – they kept insisting it would result in
i/o hotspots and this and that..but proved that wrong too by recreating the database using
integer keys and using multiple files to avoid contention. When they saw performance
improvement they were sold!
In some cases you may be allowed a few minutes to describe the situation like this and
answer – in some cases interviewee would just cut you short and say ‘ok, what did you do
for this or that’, or ‘what if they still refused to moved to integer keys instead of guids’
and so on…the best way is to practice the answers at home repeatedly, perhaps have a
friend or family member stop you at every sentence and ask questions. Also try to talk
easily and fluently in technical terms, stammering with technical terms is often times a
clue to what the person knows and does not know.
SQL SERVER – Interview Questions and Answers –
Guest Post by Rick Morelan – Day 27 of 31
Rick Morelan of Joes2Pros has written excellent blog post on subject how to find top N
values. Most people are fully aware of how the TOP keyword works with a SELECT
statement. After years preparing so many students to pass the SQL Certification I noticed
they were pretty well prepared for job interviews too. Yes, they would do well in the
interview but not great. There seemed to be a few questions that would come up
repeatedly for almost everyone. Rick addresses similar question in his lucid writing skills.
Rick A. Morelan is finest SQL Expert. He is very much known for his excellent book
series Joes 2 Pros. His books are not only inspiration to many who wants to learn SQL
Server properly but a MUST read for any SQL enthusiast. He has written following guest
blog post to keep alive the spirit of Interview Questions and Answers Series. I
encourage all the readers to read his MUST read books Joes 2 Pros.
After years preparing so many students to pass the SQL Certification I noticed they were
pretty well prepared for job interviews too. Yes, they would do well in the interview but
not great. There seemed to be a few questions that would come up repeatedly for almost
everyone. Most of these questions were not even programming questions but short
queries with deep strategic thought. These questions separated the junior SQL query
writers from the advanced SQL query writers. That is because most advanced interview
questions combine two or more intermediate level skill sets into 1 solution.
Realizing years ago that just writing and training people for the Microsoft test was not
always enough to get them where they wanted to go. Maybe half the time they would get
the job so I vowed to do something extra to increase those odds. Perhaps needed to create
an entire course on the how to ace SQL query interviews.
Since it seemed 80% of the interview questions were about the advanced queries that is
where my focus must be directed. The end result is my SQL Query book on certification
(SQL Queries Joes 2 Pros: SQL Query Techniques for Microsoft SQL Server 2008ISBN
1-4392-5318-) doubled in size to nearly 600 pages. In fact this book now adorns more
interview prep then certification prep. It’s proven to be a big payoff and my students
almost always get the job offer after the interview.
Let’s get on to one of the common interview questions. Most people are fully aware of
how the TOP keyword works with a SELECT statement. For example if you wanted to
look at the 3 top most expensive products from the [Grant] table of the sample database
JProCo then this query would do the trick (note: you can download my sample database
from Joes2Pros.com).
SELECT TOP (3) *
FROM [Grant]
ORDER BY Amount DESC
The real interview question assumes this is already easy to you and instead they want to
find just the 3rd highest Grant. In other words just the record that is in 3rd place by
amount. To do this you need rank the records and then predicate for 3rd place. Let’s start
off by sorting all the records of the table by highest price.
SELECT *
FROM [Grant]
ORDER BY Amount DESC
The ORDER BY clause picks what records are listed first based on the field and sort
order you pick. In this case we choose amount from highest to lowest. Now we want to
use the power of the ORDER BY to pick the rank. Follow the RANK() with OVER()
and the put the ORDER BY inside and not the end of the query. Your query and output
look like the sample below.
SELECT *,
RANK() OVER(ORDER BY Amount DESC)
FROM [Grant]
7Ben@MoreTechnology.com 10 41000 1
8www.@-Last-U-Can-Help.com 7 25000 2
3Robert@BigStarBank.com 7 18100 6
SELECT *,
RANK() OVER(ORDER BY Amount DESC) AS GrantRank
FROM [Grant]
Almost done right? You can see the 3rd highest grant is Thank you @.com for $21,500.
Just 1 critera way from victory. You might think it would be as simple as saying
GrantRank = 3. If you try to predicate on a field alias you will discover that the WHERE
clause runs before the field expression and you get the following error.
SELECT *,
RANK() OVER(ORDER BY Amount DESC) AS GrantRank
FROM [Grant]
WHERE GrantRank = 3
GrantRank is not a column until after the query has run so the where clause can’t find
what you’re talking about. What can you do? Simply materialize the query like a table by
using a Common Table Expression or a Derived Table. Both examples are below.
GrantIDGrantName EmpIDAmountGrantRank
9 Thank you @.com11 21500 3
SQL SERVER – Interview Questions and Answers –
Guest Post by Nakul Vachhrajani – Day 28 of 31
Nakul explains the word – ‘interview ‘ with entire different angle to the subject. What
really attacks in Nakul’s writing is his extremely clear ideas which are super crisp and to
the point. Nakul talks about ‘Educational Qualification is never the only requirement’
with such a decent argument, that makes this article a must read.
Interviews – A Definition
The Merriam-Webster English dictionary defines an “Interview” in two ways.
Interviews are therefore nothing new, but yet there is always an anxiety when we, as an
interviewee, are a prospective student or an employee. And it is not wrong because
Darwin’s rules on evolution are kicking in and “survival of the fittest” is seen in its pure
form. As a general rule, as defined above, if your qualifications are the best, you will be
selected.
On the part of the interviewee, it is the prime challenge to understand what is required by
the prospective employer. Job requirement postings are typically developed by HR
professionals, who guided by the technical team sometimes obfuscate the core
requirement. Doing the same serves two purposes.
Most requirements are very specific. However, finding the candidates matching the exact
requirement is almost always very difficult. Hence, most organizations have a “tolerance”
margin – wherein if the candidate falls within the tolerance margin, they can be trained
and ramped up to the specific requirement.
Often I hear from new recruits that they are not happy with a job simply because they
were interviewed for one technology (e.g. Web-technologies), but have been placed into
another (e.g. client-server technologies). I would say that for the most part, the recruit is
to blame. Interviews are the best places to clear out any questions that one may have
about the work that would be assigned once the interview is cleared.
It is not wrong to ask the interviewer about the tentative projects that they would be
placed in. I have had experienced candidates ask me – “If you decide to select me, what
will I be required to work on? I can work on ABC technologies and can learn something
if you want me to.” The reason is that as experienced professionals, they know,
understand, and have accepted the tolerance margin.
Sometimes, the first assignment may be exactly what one is interviewed for, but the next
one may not. It becomes very easy to work in such situations if one understands that in a
service or consultation-based industry, it is almost impossible to be extremely specific
about the technology and domain.
Fresher graduates (and in some cases, experienced resources as well), however, have a
misconception that because they are trained in a technology, they should work in the
same technology. Not getting the desired work because of their misconceptions causes
undue stress to both – the individual and to the employer. After an initial high-speed
growth by jumping around from one organization to another, such individuals often end
up in stagnation.
Aside from professional work experience, others are soft skills. I have at many times
chosen candidates with a very positive drive towards innovation, customer satisfaction,
learning, and strong work ethics v/s a higher academic qualification.
Having a wide requirement defined during an interview call ensures that such candidates
will take a chance and come over.
What I want to emphasize is that as students, focus on what you like best. Excel in it,
make sure the world knows about it, hone your soft skills, and then leave the rest up to
fate. Even the karma theory in the Mahabharata has this as one of its most important
teachings.
Summary
I could fill up pages on the topic of interviews;, however, summarizing, I would like to
present a bulleted list of some of the most important points that needs to be taken care of
during an interview:
Interviewee
Be honest. Always
Don’t stress out
Don’t be afraid to ask questions
Do not use salary as a negotiation tool
Interviewer
Check your biases at the door
Ask questions keeping the experience level of the interviewee in mind
Answering interviewee’s questions and making the interviewee feel at home goes
a long way
The Interviewee is a human and is allowed to commit a few mistakes due to stress
and anxiety of the interview
Organization
You may be the dream company for a lot of people attending your interview.
Ensure that you extend the same level of comfort and services that you do so to
your employees (facilities, catering services, security, etc.)
I would like to thank Pinal for running this month-long series on Interviews & Interview
questions. To all those who read this post, I wish you all the best for your interviews in
the future!
SQL SERVER – Interview Questions and Answers –
Guest Post by Feodor Georgiev – Day 29 of 31
Feodor is our most read gust blog author. He always comes up with interesting subject.
Feodor start writing with interesting concept that – the job interview is like an enchanted
dance between a potential employee and a potential employer which plays a defining role
in their entire collaboration. This article has many witty comments and many interesting
subject. A long article which has not a single dull moment.
About a month ago I wrote a post Job interviewing – the right way and for the right
reasons in which I explored the factors involved in a productive job search and the
proper points of view involved in the process. This blog post can be considered as part 2
of the series, which in its turn extends the topic to a broader level: incentives and motives
leading to mutual compromises during a job interview.
In short, the job interview is like an enchanted dance between a potential employee and a
potential employer which plays a defining role in their entire collaboration. Of course,
both sides have sometimes contrasting motivations, different priorities and are moved by
different incentives, but in the end, the interviewing process is the host of all unlimited
possibilities.
I do consider the incentives to be one of the most powerful energy sources in human
history and as examples of incentives I would point to monetary (good salary or bonus),
psychological (a good pat on the back), self-appreciation (the perception of self-
overachievement) and so on. (Fear is also an incentive, but I sincerely hope that no
company runs on this kind of evil fuel!)
I will mention motivation again later on, but for now, let’s look at some essential aspects
of quality points of view during the interviewing and hiring process.
During the interviewing process the main goal boils down to ‘defining the absolute
qualities wanted, absolute qualities not wanted and all the gray areas in-between’. And
this is valid, of course for both sides – the interviewer and the interviewee. (I should be
really calling both sides ‘interviewers’, since both sides are interviewing each other on
equal grounds, unless one of them is really desperate.)
So, what are the absolute qualities wanted? Let’s say, in the specific case of interviewing
a DBA for a developer position: the understanding of the Query Optimizer and the
techniques of T-SQL development are essential. From the point of view of the potential
employee an absolute quality expected would be most likely the proper pay.
How do the absolute ends meet in the middle? Let’s say that the job candidate in the
example above has great understanding of the QO, great T-SQL development skills, but
has never worked with VLDBs and is consciously willing to improve in the area,
simultaneously wanting to get as close as possible to his own ‘absolute end’ – the proper
pay.
Here we enter a gray area where the two absolute ends would (hopefully) meet: the
potential employer will suggest that the new experience would be of great value, the
potential employee will acknowledge the fact, but will point out that it is in a way a long-
term investment, and eventually the absolute ends will meet due to mutual compromise.
This is a simplified example, but in general the mechanics of negotiation flow by these
rules.
The simple truth about all cars we saw is that ‘all of them will take you from point A to
point B’, however, the different cars…
During interviewing it is also very important for each side to note and calculate the
capabilities, costs and timing of the other side and decide whether the ROI (time and
effort nowadays are serious investment considerations!) is valuable enough.
And, of course, the potential employee has to have a potential to fit the team in a way
which does not disrupt the morale or the rhythm.
Curiosity
For a moment I would like to get back to my previous article on Interviewing
(http://blog.sqlauthority.com/2011/06/20/sqlauthority-news-job-interviewing-the-right-
way-and-for-the-right-reasons-guest-post-by-feodor-georgiev/). In that article I made a
point that the most valuable quality in a potential employee is the level of curiosity.
Curiosity indeed is a base quality, which – if mixed well with the proper incentives – can
bring great results.
Again, this is valid for both employees and employers since, as I mentioned above, the
absolute ends meet somewhere in the gray area, and eventually the gray area will have to
get re-evaluated after some time. In this aspect curiosity is a very well paying investment.
Take this example: as I mentioned above, the DBA who has great database developer
skills landed a great job despite their lack of experience with VLDBs and the agreement
with the employer was that the initial pay would be a bit below the standard for the
industry, but both parties agreed that re-evaluation will be performed in 6 months and
adjustments will be made accordingly.
The employee is expected to invest time and effort in feeding their curiosity and, if the
results are good, a shifting of incentives will happen at the end of the 6 month period.
People (hence, employees) always have the free will to prioritize, according to the
incentives.
The point is that a quality interview should cover the most important aspects of
incentives-motivation relation.
So, to recap:
To wrap everything up and to make sense of what I have said so far I would like to do
two things:
Incentives are the fuel of the interviewing, hiring and work processes;
The (accurate) relative evaluation of the weight of incentives vs. motivations
determines the long-term relationship between both sides;
The curiosity is the investment, fed by the incentives;
The motivation is the final result of the mix between incentives and curiosity;
And hopefully the results are corresponding to the investments made during the
interviewing process.
Jacob Sebastian is a SQL Server MVP, Author, Speaker and my personal friend. Jacob
is one of the top rated expert in SQL Community. Jacob wrote the book The Art of XSD –
SQL Server XML Schema Collections and wrote the XML Chapter in SQL Server 2008
Bible. He has written following guest blog post to keep alive the spirit of Interview
Questions and Answers Series. I encourage all the readers to participate in T-SQL
Challenges.
I am very much impressed with the interview questions series Pinal has been doing since
the beginning of this month. When he asked me whether I am interested to contribute, I
readily agreed. I see that Pinal and various other contributors have done a good job
covering several interesting SQL Server areas. I thought of adding a few question from
the XML side for the sake of completeness.
The purpose of the questions and their answers given below is to ensure that the people
who read them and learn them will get a basic understanding of the XML functionalities
provided by SQL Server. SQL Server 2000 introduced a very interesting function
OPENXML() which allowed us to read the content of an XML document from TSQL.
SQL Server 2005 added more XML support by introducing XML data type, support for
XQuery, XML Indexes and XML Schema Collections. Together, they provide a very
power set of functionalities that empowers you to perform most of the XML processing
requirements you might come across in your day-to-day programming life.
SQL Server 2005 introduced support for all these operations by exposing a number of
XML related features. XQuery support in TSQL allows you to read the content of XML
documents. XQuery functions along with OPENROWSET(BULK…) can be used to
access XML documents stored in the disk.
SQL Server 2000 introduced “FOR XML” which allows you to transform the result of a
SELECT query into XML format. This is further enhanced in SQL Server 2005 to allow
you create XML documents with almost any structure and shape.
SQL Server 2005 introduced XSD support in the form of XML Schema collections which
allows you to describe and validate XML data type variables and columns.
The short set of questions and answers given below intend to summarize the basic XML
functionalities that SQL Server provides.
What is XSD?
XSD stands for XML Schema Definition Language, which is a W3C standard
specification that allows you to describe and validate and XML document. Once an XSD
schema is created, a Schema Validator can verify an XML document against a schema
and say whether the document follows the rules and structure defined in the XSD
document.
What is XQuery?
XQuery is a W3C recommended language for querying XML documents. In simple
words, we could say, “XQuery is to XML, what SQL is to a relational database”. XQuery
allows you to query and modify XML documents.
If you are dealing with UNTYPED XML, try to convert them to TYPED XML. When
using TYPED XML values, SQL Server has got better understanding of the structure of
the XML document, data types of elements and attributes etc. This allows SQL Server to
process the XML document more efficiently.
XML Indexes can be used to speed up queries that read information from XML data type
columns.
SQL SERVER – The Difficult Interview Question –
Moment of the Life – Day 31 of 31.
I guess the title says all – Interview is the moment of life. Final write up on this subject
by myself.
We have spent the last 30 days going over questions and answers you may come up
against when you are being interviewed. Of course, I am only human and I can’t provide
you with the answer to every question, or even the answer to every situation – because
sometimes acing an interview is more than getting all the answers right.
Sometimes acing an interview is more about impressing the interviewer with your
personality or with your reasoning abilities. Remember that you are probably being hired
to work at a company with many other employers, so your interviewer is not only
concerned with how much you know but how well you will work in a team.
Even if you are totally prepared and are a great team player, you might also just have the
bad luck to have a cranky interviewer, accidentally say the wrong thing, or just have an
“off” day. Here is my best advice for situations like that.
Bad Interviews
We all have bad days, it is part of life. Usually we are just unproductive or make a
mistake that can be corrected later, and we can go on with our life. But if your bad day
happens to fall during an interview, you may feel like you have ruined your entire life.
Having a bad interview can mean you don’t get the job, and this might have seemed like
your dream job. You may beat yourself up afterwards about all the wrong things you did
or said, and how nothing will ever go right for you.
The best advice for a situation like this is: treat it like just another bad day. Go on with
your life. In the first place, the interview might not have gone as badly as you think.
Sometimes the words might not come out of your mouth the way you want them to, but
that doesn’t mean you sounded stupid to the interviewer. Keep your head up and think
positive thoughts.
If the interview truly went badly and you know you did not get the job, then there is no
reason to beat yourself up! The position might have seemed like your dream job – but
remember the saying “God’s greatest gift is unanswered prayers.” We can’t see the
future, and it may have turned out that you would have been miserable at the job
anyway. Above all: do not let one bad interview make you lose your confidence. Keep
going on interviewers – the worst that can happen is that you improve your interviewing
skills.
The biggest thing that can be out of control is nervousness. Everyone says “just relax!”
but sometimes it is not that easy. If you think you are going to be nervous about an
interview, take time before that day to figure out how to calm your nerves. You might
need to take a long walk, or just relax with a book or movie to take your mind off of it.
Make sure you are well prepared beforehand so that you won’t be trying to cram
information into your brain 10 minutes before the interview. Practice relaxing before the
interview day, so that you can calm yourself down while you wait in the office or lobby.
And, of course, make sure you know how to get to the interview place so that you don’t
get lost!
Another thing that is completely out of your control – other people. The interviewer may
ask you a question you just don’t know the answer to. This can be something out of your
expertise, or a detail about something that you have forgotten. If this happens, do not
panic. If you have no experience with the subject in question, don’t lie! Answer
truthfully, but also add that you would be willing to learn the procedure, or are planning
on training. If it a small detail you can’t quite remember, offer to look up the
information and let them know at a later time. Many interviewers will give you a
business card or at least a phone number, so you can provide this information to them
when you leave the interview, and also look like a dedicated employee.
Not only can you not control the interviewer’s questions, you also cannot control their
personality. Sometimes you will simply meet a person who is not very nice. The best
thing to do in this situation – be polite and get out of there as quickly as you can! The
interviewer may be mean because they are just that kind of person – or they could be
testing you. Don’t lose your temper, but answer calmly and demonstrate your ability to
deal with unpleasant people. If you are good at diffusing situations with humor, try that.
The interviewer might be trying to see how you work under pressure.
The technology giants hire a lot of people, and by all accounts they are a great company
to work for. Their employees are often very smart, highly motivated, and can think
outside the box. So how did they end up with such great employees? They ask very
strange interview questions!
Imagine going into an interview for a simple engineering position, and being asked why
manhole covers are round. You won’t be working with manholes, so why does this
question matter? It is a test of how well you can think logically – and under pressure.
The answer is: a round cover will not fall through into a round hole, no matter the
configuration, while any other shape could twist and fall into the sewer and possibly
injure workers below. The answer seems simple when you hear it, right?
More and more companies are learning that these kinds of questions can weed the good
employees from the bad. If you are asked a weird interview questions, what is the first
thing you should do? Not panic!
Remember, the interviewer does not expect you to immediately know the answer, this
isn’t a trivia quiz it is a test of rational thinking. If you blurt out the answer, they will
probably just come up with another one. Also, the question might not have a real
answer. The best thing to do is sit and think about the question logically, and try to come
up with an answer that will show your mental process. It is like in mathematics – show
your work!
Conclusion
So – do you feel ready for your interview? I hope your answer is “mostly.” Just
remember that interviews are kind of like a test about life. Unlike tests in school, you can
never be 100% prepared, because you cannot control life. But if you are 99% prepared,
you will be a great interview candidate.