SQL Server 2008
SQL Server 2008
1. What are the basic functions for master, msdb, model, tempdb and resource
databases?
1. The master database holds information for all databases located on the SQL Server
instance and is theglue that holds the engine together. Because SQL Server cannot start
without a functioning masterdatabase, you must administer this database with care.
2. 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.
3. The tempdb holds temporary objects such as global and local temporary tables and stored
procedures.
4. The model is essentially a template database used in the creation of any new user
database created in the instance.
5. The resoure Database is a read-only database that contains all the system objects that
are included with 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.
Service Broker is a message-queuing technology in SQL Server that allows developers to integrate
SQL Server fully into distributed applications. Service Broker is feature which provides facility to
SQL Server to send an asynchronous, transactional message. it allows a database to send a
message to another database without waiting for the response, so the application will continue to
function if the remote database is temporarily unavailable.
3. Where SQL server user names and passwords are stored in SQL server?
Policy Management in SQL SERVER 2008 allows you to define and enforce policies for configuring
and managing SQL Server across the enterprise. Policy-Based Management is configured in SQL
Server Management Studio (SSMS). Navigate to the Object Explorer and expand the Management
node and the Policy Management node; you will see the Policies, Conditions, and Facets nodes.
Database mirroring can be used with replication to provide availability for the publication database.
Database mirroring involves two copies of a single database that typically reside on different
computers. At any given time, only one copy of the database is currently available to clients which
are known as the principal database. Updates made by clients to the principal database are applied
on the other copy of the database, known as the mirror database. Mirroring involves applying the
transaction log from every insertion, update, or deletion made on the principal database onto the
mirror database.
A sparse column is another tool used to reduce the amount of physical storage used in a database.
They are the ordinary columns that have an optimized storage for null values. Sparse columns
reduce the space requirements for null values at the cost of more overhead to retrieve nonnull
values.
The TOP operator is used to specify the number of rows to be returned by a query. The TOP
operator has new addition in SQL SERVER 2008 that it accepts variables as well as literal values
and can be used with INSERT, UPDATE, and DELETES statements.
2
8. What is CTE?
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.
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.
11. 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
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.
3
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.
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.
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:
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.
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.
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.
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.
stmts..
END CATCH
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.
Master database is system database and it contains information about running server's
configuration. When SQL Server 2005 is installed it usually creates master, model, msdb, tempdb
resource and distribution system database by default. Only Master database is th one which is
absolutely must have database. Without Master database SQL Server cannot be started. This is the
reason it is extremely important to backup Master database.
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.
The xml data type lets you store XML documents and fragments in a SQL Server database. An XML
fragment is an XML instance that is missing a single top-level element. You can create columns
and variables of the xml type and store XML instances in them. The xml data type and associated
methods help integrate XML into the relational framework of S Server.
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.
Catalog views return information that is used by the SQL Server Database Engine. Catalog Views
are the most general interface to the catalog metadata and provide the most efficient way to
obtain, transform, and present customized forms of this information. All user- available catalog
metadata is exposed through catalog views.
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.
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.
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.
AVG, MIN CHECKSUM_AGG, SUM, COUNT, STDEV, COUNT_BIG, STDEVP, GROUPING, VAR, MAX.
VARP
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.
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.
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.