What is CTE?
CTE is an abbreviation Common Table Expression. A Common Table
Expression (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.
What are the Advantages of using CTE?
1.
Using CTE improves the readability and makes maintenance of
complex queries easy.
2.
The query can be divided into separate, simple, logical building
blocks which can be then used to build more complex CTEs until final result set
is generated.
3.
CTE can be defined in functions, stored procedures, triggers or
even views.
4.
After a CTE is defined, it can be used as a Table or a View and
can SELECT, INSERT, UPDATE or DELETE Data.
What is
MERGE Statement?
MERGE is a new feature that provides an efficient way to perform
multiple DML operations. In previous versions of SQL Server, we had to write
separate statements to INSERT, UPDATE, or DELETE data based on certain
conditions, but now, using MERGE statement we can include the logic of such
data modifications in one statement that even checks when the data is matched
then just update it and when unmatched then insert it. One of the most
important advantages of MERGE statement is all the data is read and processed
only once.
What is
Filtered Index?
Filtered Index is used to index a portion of rows in a table
that means it applies filter on INDEX which improves query performance, reduce
index maintenance costs, and reduce index storage costs compared with
full-table indexes. When we see an Index created with some where clause then
that is actually a FILTERED INDEX.
Which are new data types introduced in SQL
SERVER 2008?
1.
The GEOMETRY Type: The
GEOMETRY data type is a system .NET common language runtime (CLR) data type in
SQL Server. This type represents data in a two-dimensional Euclidean coordinate
system.
2.
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.
3.
New Date and Time Datatypes: SQL
Server 2008 introduces four new datatypes related to date and time: DATE, TIME,
DATETIMEOFFSET, and DATETIME2.
1.
DATE: The new DATE type
just stores the date itself. It is based on the Gregorian calendar and handles
years from 1 to 9999.
2.
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.
3.
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 + a time + a time-zone
offset. The offset is based on how far behind or ahead you are from Coordinated
Universal Time (UTC) time.
4.
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 1753 lower
boundary 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
Where SQL server user names and passwords are stored in SQL
server?
They get stored in System Catalog Views sys.server_principals
and sys.sql_logins.
What are synonyms?
Synonyms give you the ability to provide alternate names for
database objects. You can alias object names; for example, using the Employee
table as Emp. You can also shorten names. This is especially useful when
dealing with three and four part names; for example, shortening
server.database.owner.object to object
What is use of EXCEPT Clause?
EXCEPT clause is similar to MINUS operation in Oracle. The
EXCEPT query and MINUS query returns 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.
How would you handle error in SQL SERVER 2008?
SQL Server now supports the use of TRY...CATCH con handling.
TRY...CATCH lets us build error handling at the level we need, in the way w to,
by setting a region where if any error occurs, it will break out of the region
and head to an error handler.
The basic structure is as follows:
BEGIN TRY
stmts..
END TRY
BEGIN CATCH
stmts..
END CATCH
The basic structure is as follows:
BEGIN TRY
stmts..
END TRY
BEGIN CATCH
stmts..
END CATCH
What is Isolation Levels?
Transactions specify an isolation level that defines the degree
to which one transaction must be isolated from resource or data modifications
made by other transactions. Isolation levels are described in terms of which
concurrency side-effects, such as dirty reads or phantom reads, are allowed.
Transaction isolation levels control:
1.
Whether locks are taken when data is read, and what type of
locks are requested.
2.
How long the read locks are held.
3.
Whether a read operation referencing rows modified by another
transaction:
1.
Blocks until the exclusive lock on the row is freed.
2.
Retrieves the committed version of the row that existed at the
time the statement or transaction started.
3.
Reads the uncommitted data modification.
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.
What is Data Compression?
In SQL SERVE 2008 Data Compression comes in two flavors:
1.
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.
2.
Page Compression: Page
compression allows common data to be shared between rows for a given page. Its
uses the following techniques to compress data:
1.
Row compression.
2.
Prefix Compression. For every column in a page duplicate
prefixes are identified. These prefixes are saved in compression information
headers (CI) which resides after page header. A reference number is assigned to
these prefixes and that reference number is replaced where ever those prefixes
are being used.
3.
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
prefix is only restricted to one column while dictionary is applicable to the
complete page.
What is PIVOT and UNPIVOT?
A Pivot Table can automatically sort, count,
and total the data stored in one table or spreadsheet and create a second table
displaying the summarized data. The PIVOT operator turns the values of a
specified column into column names, effectively rotating a table.
UNPIVOT table is reverse of PIVOT Table.
What is Dirty Read ?
A dirty read occurs when two operations say, read and write
occurs together giving the incorrect or unedited data. Suppose, A has changed a
row, but has not committed the changes. B reads the uncommitted data but his
view of the data may be wrong so that is Dirty Read.
What is Aggregate Functions?
Aggregate functions perform a calculation on a set of values and
return a single value. Aggregate functions ignore NULL values except COUNT
function. HAVING clause is used, along with GROUP BY, for filtering query using
aggregate values.
Following functions are aggregate functions.
AVG, MIN CHECKSUM_AGG, SUM, COUNT, STDEV, COUNT_BIG, STDEVP, GROUPING, VAR, MAX. VARP
Following functions are aggregate functions.
AVG, MIN CHECKSUM_AGG, SUM, COUNT, STDEV, COUNT_BIG, STDEVP, GROUPING, VAR, MAX. VARP
What do you mean by Table Sample?
TABLESAMPLE allows you to extract a sampling of rows from a
table in the FROM clause. The rows retrieved are random and they are not in any
order. This sampling can be based on a percentage of number of rows. You can
use TABLESAMPLE when only a sampling of rows is necessary for the application
instead of a full result set
What is the difference between UNION and UNION ALL?
1.
UNION The UNION command
is used to select related information from two tables, much like the JOIN
command. However, when using the UNION command all selected columns need to be
of the same data type. With UNION, only distinct values are selected.
2.
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
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:
1.
root node: A root node
contains node pointers to branch nodes which can be only one.
2.
branch node: A branch node
contains pointers to leaf nodes or other branch nodes which can be two or more.
3.
leaf nodes: A leaf node
contains index items and orizantal pointers to other leaf nodes which can be
many.
Good work Praveen!! Keep doing these kind of stuffs.
ReplyDelete