Prior to SQL Server 2008, IntelliSense was available from third-party products. Red-Gate has a pretty good IntelliSense product.
IntelliSense of SQL Server 2008 is ON by default, and can be turn it OFF by using Tools->Options from Management Studio.
The process involves in creating a table object like the following:
DROP TABLE SalesHistory;
CREATE TABLE [dbo].[SalesHistory]
[SaleID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Product] [char](150) NULL,
[SaleDate] [date] NULL,
[SalePrice] [money] NULL
Only the table exists. Use DML statements like SELECT, INSERT against SalesHistory table. A dropdown list of the fields available would be chosen from the table. This helps in knowing the information about columns easier.
DML statements can also be used with IntelliSense. For example type UPDATE statement against the SalesHistory table. A list of available fields are available for UPDATE statement. Not only for UPDATE also other statements.
A user defined tables are allowed between queries using the Table Value Parameters feature of SQL Server 2008. It also supports defining the tables between a client and a server. Querying, joining, inserting values, updating values etc., can be done as is being done with a normal table. Instead of a query taking a long list of parameters, they simple take TVP as a parameter.
For creating TVP, one need to define a user defined type and the columns which the TVP would hold. The following example creates a customer type which holds an id and name.
CREATE TYPE Customer AS TABLE (id int, CustomerName nvarchar(50))
A dummy table is created for persisting the information.
CREATE TABLE Customers (id int, CustomerName nvarchar(50)) GO
A procedure can also be created which takes a single parameter as a Table Value Parameter. Data can be inserted into two different tables, however from the outside it is a single object and only a single stored procedure is being called.
CREATE Procedure AddCustomers(@customer Customer READONLY) AS
INSERT INTO Customers SELECT id, CustomerName FROM @customer
The TVP as parameter must have the READONLY attribute and TVPs are basically temporary tables persisted on the server in tempdb.
Data compression is a feature which is used to reduce disk storage space and increase the performance of the query by reducing the I/O operations.
SQL Server 2008 supports two types of compression - Row-level compression and Page-level compression.
A row-level and page-level compression takes place on the metadata.
Page level compression results in persisting certain common data that affects rows in a single location.
The compression takes place into number of bits. For example, the length of ‘varchar' will be stored in 3 bits.
Plan freezing is a new concept that allows the DBAs to persist plan guides. These guides could be reverted to when the queries either fail or drain the resources after the upgrade. The stability to queries is achieved by Plan Freezing. Several monitoring features for checking when the query is succeeded or failed are included with Plan Freezing.
Automatic auditing is a true auditing solution for enterprise customers. STL Trace can be used for satisfying several auditing needs. SQL Server Auditing feature offers a number of advantages that attracts and help DBAs with much more easily achievable goals. These include meeting regulatory compliance requirements. These include -
Provision for centralized storage of audit logs and integration with system center
Better performance that is noticeable
Permits free-grained auditing in which an audit can be targeted for some specific actions by a principle against a particular object.
Allows the objects of audit to be treated as first class database objects, which mean Transact-SQL DDL statements can create these objects.
The database object is controlled by database engine's permission model and enforcement control.
A new level permission is featured in SQL Audit - ALTER ANY SERVER AUDIT- which allows a principle to CREATE, ALTER and DROP an Audit Specification object.
A database level permission - ALTER ANY DATABASE AUDIT - is introduced to allow a principle to CREATE, ALTER and DROP a Database specification object..
Compound operators feature is enhanced in SQL Server 2008. They are like compound operators in languages like C, C++ etc.
Compound operators are a combination of operator with another operator.
The compound assignment operators are - arithmetic operators - +=,-=,*=, /=, %=, bitwise operators -&=, ^=,|=
Declare @number int
Set @number = 10
--using Compound assignment operator
Select @number as MyResult
The benefits of Filtered indexes are:
Has only that row which satisfies the filter criteria defined. This results in reducing the storage space need for the index.
The filtered index statistics are accurate and more compact. The reason is they consider only the tuples / rows in the filtered index and it reduces the cost of overhead of updating the statistics.
The data modification impact is less by using filtered index. Because it is updated only at the time where the data of the index is impacted.
The cost of maintenance will be reduced, because only the subset of rows will be considered which rebuilding the index.
Filtered index in SQL Server 2008 is an index WHERE clause. A filtered index is an optimized non-clustered index. It allows for defining the filter predicate with WHERE clause at the time of creating index. The rows from the filtered index are available in B-Tree will contain the rows which only satisfy the criteria of the filter while creating the index.
Merge statement allows a single statement for INSERT, DELETE and UPDATE a row that depends on a condition. The target table for certain operations is based on the results of join with a source table. The following example illustrates the use of MERGE.
MERGE InventoryMaster AS invmstr
USING (SELECT InventoryID, Descr FROM NewInventory) AS src
ON invmstr. InventoryID = src. InventoryID
WHEN MATCHED THEN
UPDATE SET invmstr.Descr = src.Descr
WHEN NOT MATCHED THEN
INSERT (InventoryID, Descr) VALUES (src. InventoryID, src.Descr);.
Resource Governor enables the DBA for managing the work load of SQL Server and critical system resource consumption. The limits of CPU and memory which are the incoming sessions to the SQL Server will be controlled by Resource Governor.
The various scenarios that occur when sudden spike in CPU and memory utilization that result in slow responses for querying requests. The Resource Governor enables the DBA's to differentiate the workloads and allocates the shared resources which allow the available CPU and memory resources.