SQL Server 2005 For Oracle Professionals
SQL Server 2005 For Oracle Professionals
Contents
Abstract ......................................................................................................................................................................5
Database Architecture ................................................................................................................................................5
Database System Catalogs .....................................................................................................................................6
Physical and Logical Storage Structures................................................................................................................8
Data Files on Disk..................................................................................................................................................9
Background Processes ................................................................................................................................................9
Partitioning...........................................................................................................................................................10
Transaction Logs and Automatic Recovery .........................................................................................................11
Backing up Data in SQL Server 2005 ......................................................................................................................12
Full Backup ..........................................................................................................................................................12
Full Differential backup .......................................................................................................................................13
Partial Backup ......................................................................................................................................................13
Partial Differential Backup ..................................................................................................................................13
File backup, Filegroup backup.............................................................................................................................13
Transaction log backup ........................................................................................................................................13
Network Configuration Components .......................................................................................................................14
SQL Server Security Model .....................................................................................................................................15
Network Security .................................................................................................................................................15
Login Accounts ....................................................................................................................................................15
Database User Name ............................................................................................................................................15
Groups, Roles, Schemas and Permissions............................................................................................................16
Data Encryption ...................................................................................................................................................19
High Availability Features .......................................................................................................................................21
Database snapshots ..............................................................................................................................................23
Management Infrastructure and Tools......................................................................................................................23
SQL Server Management Studio .........................................................................................................................23
Scalability Experts Inc. may have patents, patent applications, trademarks, copyright, or other intellectual property rights covering subject matter in this document.
Except as expressly provided in any written license agreement from Scalability Experts Inc., the furnishing of this document does not give you any license to these
patents, trademarks, copyright, or intellectual property.
Windows, Windows NT, Windows Server 2003, SQL Server 2000 and SQL Server 2005 are either registered trademarks or trademarks of Microsoft Corporation in
the USA and/or other countries.
Other product and company names mentioned herein may be trademarks of their respective owners.
Abstract
This whitepaper explains the key differences between Microsoft® SQL Server™ 2005 databases and Oracle
databases. It compares SQL Server and Oracle database architecture and provides information on the newest
features in SQL Server 2005. This paper is intended for Oracle professionals who want to leverage their Oracle
knowledge to manage SQL Server or prepare to migrate an Oracle database to SQL Server 2005. Other topics
discussed in this white paper include backups, database security, management options and high availability
options.
Database Architecture
In Oracle, a database refers to the entire Oracle RDBMS environment and includes the following components:
• SYSTEM tablespace containing one centralized system catalog, which is made up of one or more
datafiles.
• Other optional tablespaces as defined by the database administrator (DBA), each made up of one or more
datafiles.
• The model database—a template for all newly created user databases and tempdb.
• The tempdb database—is similar to an Oracle temporary tablespace in that it is used for temporary
working storage and sort operations. Unlike the Oracle temporary tablespace, users can create temporary
tables that are automatically dropped when the user logs off.
• The msdb database—which supports the SQL Server Agent and its scheduled jobs, alerts, and replication
information.
• The AdventureWorks and AdventureWorksDW databases—are sample databases for testing and training
purposes that can be optionally installed.
For more information about the default databases, see SQL Server Books Online.
Note: You can download and install SQL Server Books Online without installing SQL Server at the following
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx. Books Online is a
comprehensive resource for SQL Server which includes detailed documentation, code samples and tutorials.
• Database objects (tables, indexes, stored procedures, views, triggers, and so on).
• Constraints.
• Schema Objects
• Replication definition
• Snapshot definitions
The system level information for an instance of SQL Server 2005 is recorded by the master database. The
recorded information includes the following:
• Database names and the primary file location for each database.
• System messages.
• Remote and/or linked servers—a feature in SQL Server 2005 which enables you to execute commands
against OLEDB Data sources on remote servers (including Oracle).
2K 2K 2K 2K 8K 8K 8K 8K
block block block
block 6 x 2K = 12K page page page page
EXTENT 8 pages =
2K 2K 2K 2K 8K 8K 8K 8K
1 EXTENT
block block block block 12K + 16K = 28K page page page page
(8 x 8K = 64K)
2K 2K 2K 2K SEGMENT 8K 8K 8K 8K
(Table/Index) 64K + 64K = 128K
block block block block page page page page
HEAP/INDEX
2K 2K 2K 2K 8K 8K 8K 8K
block block block block page page page page
2K 2K 2K 2K 8K 8K 8K 8K
block block block block page page page page
8 pages =
2K 2K= 16K 2K
2K 8 x 2K 8K 8K 8K 8K
1 EXTENT
block block
block EXTENT block page page page page
(8 x 8K = 64K)
2K 2K 2K 2K 8K 8K 8K 8K
block block block block page page page page
2K 2K 2K 2K 8K 8K 8K 8K
block block block block page page page page
SQL Server uses filegroups at the database level to control the physical placement of tables and indexes.
Filegroups are logical containers of one or more files, and data contained within a filegroup is proportionally
filled across all files belonging to the filegroup.
If filegroups are not defined and used, database objects are placed in a default filegroup that is implicitly defined
during the creation of a database. Filegroups allow you to:
• Distribute and partition large tables across multiple files to improve I/O throughput.
• Store indexes on files different from their respective tables, to improve I/O throughput and disk
concurrency and also to partition these indexes.
• Store text, ntext, and image columns (large objects) on separate files from the table.
Background Processes
SQL Server 2005 also uses several different background processes to efficiently manage computer resources. One
example is checkpoints. SQL Server periodically generates automatic checkpoints in each database. Checkpoints
flush dirty data and log pages from the buffer cache of the current database, minimizing the number of
modifications that have to be rolled forward during a recovery.
Another background process is called Lazywriter which is unique to each instance. The lazywriter process sleeps
for an interval of time then wakes to scan through the buffer cache where it checks the size of the free buffer list.
If the free buffer list is below a certain point (dependent on the size of the cache) the lazywriter process scans the
buffer cache to reclaim unused pages and write dirty pages that have not been recently referenced, while
frequently referenced pages remain in memory. If Lazywriter is used on a NUMA-capable server then a
lazywriter process will be spawned for each NUMA node for an instance.
While SQL Server 2005 made LazyWriter to control only data pages in the buffer memory, another thread called
ResourceMonitor was introduced to control behavior the rest of the memory caches and clerks. Its role is to react
to internal and external memory pressures dynamically. The ResourceMonitor background thread won't allow
overall cache memory to exceede 70% of Buffer Pool. If SQL Server's prediction mechanism detects such a
possibility, the ResourceMonitor starts running and shrinks the caches. In addition, ResourceMonitor won't allow
any single cache to be larger than 50% of the Buffer Pool.
Partitioning
Partitioning in SQL Server 2005 enables more efficient management of large tables in the database. Partitioned
Views has been part of SQL Server for many years, but Table and Index Partitioning features, new in SQL Server
2005 make it easier to implement horizontal partitioning of tables and related indexes.
While generally not required for most databases, there are some significant benefits when partitioning very large
tables (over tens of millions of rows). The benefits include:
• Improved manageability—various management operations are easier and faster to perform on partitioned
tables. For example, data can be loaded or unloaded by partitions then added to or removed from an
existing partitioned table. Partitioning allows users to deal with just volatile portions of the data which is
usually a small subset of the table instead of the entire table. This is also a significant benefit for users
that have “sliding window” scenarios where portions of data need to be removed or archived periodically
so that only active data is kept in the main database.
• Improved performance—with the ability to perform resource demanding operations such as loading large
volumes of data or performing index management operations against large table offline and in smaller
chunks, the overall performance of the system is maintained. For example, even though rebuilding an
index can be performed online with SQL Server 2005, doing so with a very large table will consume a
sizeable amount of resources. With a partitioned table, users can re-index only the volatile partition(s)
leaving the static partitions untouched. That will consume significantly less system resources such as
memory.
• Reduced cost—partitioned tables further allow easy placement of specific partitions onto designated
storage devices. For example, in a large table that tracks financial information, historical data that no
longer changes (only kept online for read access) can be stored on lower cost storage with minimal rapid
recovery features. Current data can be stored on high performance storage with redundancy and rapid
recovery capabilities. This can result in significant cost savings especially in systems that need to store
historical data for many years for accounting or regulatory compliance purposes.
SQL Server 2005 currently supports range partitioning and other schemes are planned for future support.
• If you add a new chunk to the transaction log which is 20 MB (through auto growth or through manual
growth) then the number of VLFs that are added is 4.
• If you add a chunk which is greater than 64 MB but less than or equal to 1 GB, you'll add 8 VLFs.
• Full Backups
• Partial Backups
Full Backup
A full backup (also known as a database backup) backs up the entire database, including part of the transaction
log (so that the full backup can be recovered). A full back up is a representation of the database at the time of the
backup being successfully completed. By developing a backup strategy that combines full backups with partial
transaction log backups allows the recovery of the database to a specific point of time.
A full backup can be executed from the Backup task in the SQL Server Management Studio or by using the
BACKUP DATABASE statement. Like other backup methods, full backup can also be scheduled using SQL
Server Agent or via the Database Maintenance Wizard.
Partial Backup
Partial backup is an enhanced feature in SQL Server 2005. A partial backup consists of each file in the default
Primary Filegroup and every read/write Filegroup and specific read-only files that are specified using the Backup
command. The partial backup is a new feature introduced in SQL Server 2005 in order to add more flexibility to
the backup procedure in SQL Server databases. It is an ideal model to back up write intensive portions of a
database.
using the Backup task in SQL Server Management Studio. Upon successful completion of a transaction log
backup, the portion that has been backed up is truncated and available for use by new transactions.
A database can be restored to a certain point in time by applying transaction log backups or differential backups to
a full database backup. A database restore overwrites the data with the information contained in the backups.
Restores can be performed using SQL Server Management Studio or the RESTORE DATABASE statement.
Online restores are supported in SQL Server 2005.
• SQL Server Native Client (SNAC)—This is a new technology introduced in SQL Server 2005 which
combines the functions of OLEDB and ODBC for SQL Server into one native library. The native client
supports Net-libraries and TDS (Tabular Data stream) endpoints for multiple protocols in SQL Server.
TDS is the internal client/server data transfer protocol in SQL Server.
SNAC is loaded with the installation of SQL Server 2005 and does not require a separate install. It can be
installed separately on machines which do not have SQL Server installed, but requires SQL Server access.
SNAC configuration can also be performed after the installation of SQL Server using the SQL Server
Configuration Manager.
Network Security
Microsoft SQL Server 2005 can use Secure Sockets Layer (SSL) to encrypt data transmitted across a network
between an instance of SQL Server and a client application. The SSL encryption is performed within the SQL
Native Client Net-Library and applies to all inter-computer protocols supported by SQL Server 2005.
SSL encryption works with instances of SQL Server running on a computer that has been assigned a certificate
from a public certification authority. The computer on which the application is running must be configured to
trust the certificate's root authority. (Encryption with a self-signed certificate is possible and described in the next
section, but a self-signed certificate offers only limited protection.)
The Net-Library encryption is implemented using the Secure Sockets Layer API. The level of encryption, 40-bit
or 128-bit, depends on the version of the Microsoft Windows operating system that is running on the application
and database computers.
Login Accounts
A login account allows a user to access a SQL Server Instance and its administrative options. It allows connection
to the instance but does not carry data access privileges. A login account is typically mapped to a database user
name. Accessing data and/or administration functions are controlled via user names.
There is a guest login account that allows users to log in to SQL Server and only view databases that allow guest
access. However, inline with security best practices, the guest account is not set up by default and must be created
manually if needed.
Windows Authentication
A DBA can specify which Windows login accounts can be used to connect to an instance of SQL Server 2005.
Users logged into Windows using these accounts can connect to SQL Server 2005 without having to specify a
separate database login and password. When using Windows Authentication, SQL Server 2005 uses the security
mechanisms of NTLM or Kerberos to validate login connections, and relies on a user's Windows security
credentials. Users do not need to enter login IDs or passwords for SQL Server 2005 because their login
information is taken directly from the trusted network connection. Windows authentication is similar in
functionality to the IDENTIFIED EXTERNALLY option associated with Oracle user accounts.
Authentication Modes
With the two authentication methods, SQL Server 2005 provides two modes for authenticating users. DBAs can
choose the most appropriate mode based on application and system requirements and constraints:
1. Windows Authentication Mode (also known as Integrated Security in earlier versions of SQL Server) —
in this mode, SQL Server 2005 allows only connections that use Windows Authentication. Users will not
be able to login using a SQL Server login ID.
2. Mixed Mode — in this mode, connections can be made using either Windows Authentication or SQL
Server Authentication. Users can connect to SQL Server using either their Windows login account (if they
have been granted permission) or a valid SQL Server login account.
For more information about these security mechanisms, see SQL Server Books Online.
SQL Server statement-level and object-level permissions can be granted directly to database user accounts.
However, it is often easier to administer permissions to database roles. SQL Server roles are used for granting and
revoking privileges to groups of database users (much like Oracle roles). Roles are database objects associated
with a specific database. There are a few fixed server roles associated with each installation, which apply across
all databases. An example of a fixed server role is sysadmin. Windows groups can also be added as SQL Server
logins, as well as database users. Permissions can be granted to a Windows group or a Windows user.
A database can have any number of roles or Windows groups. The default role public is always found in every
database and cannot be removed. The public role functions much like the PUBLIC account in Oracle. Each
database user is always a member of the public role. A database user can be a member of any number of roles in
addition to the public role. A Windows user or group can also be a member of any number of roles, and is also
always in the public role.
• A Windows group login can be mapped to a database role. Individual Windows accounts that are
members of that group can then connect to the database.
Members of the db_owner or db_accessadmin roles, or the sysadmin fixed server role create the database user
account roles. An account can include several parameters: the SQL Server login ID, database user name
(optional), and up to one optional role name. The database user name does not have to be the same as the user's
login ID. If a database user name is not provided, the user's login ID and database user name are identical. If a
role name is not provided, the database user is only a member of the public role. After creating the database user,
the user can be assigned to as many roles as necessary. However, it is strongly recommended that users be
assigned to the minimum number of roles required to perform their tasks inline with the principle of least
privileges for secure systems.
Members of the db_owner or db_accessadmin roles can also create a guest account. The guest account allows any
valid SQL Server login account to access a database even without a database user account. By default, the guest
account inherits any privileges that have been assigned to the public role; however, these privileges can be
changed to be greater or less than that of the public role. The guest user account exists by default in every
database but is disabled. You need to explicitly enable the guest account to allow connections.
A Windows user account or group account can be granted access to a database, just as a SQL Server login can.
When a Windows user who is a member in a group connects to the database, the user receives the permissions
assigned to the Windows group. If a member of more than one Windows group that has been granted access to the
database, the user receives the combined rights of all of the groups to which he belongs.
• Creating databases.*
Schemas
SQL Server 2005 supports a new feature called schemas. A schema is a collection of database entities that form a
single namespace. A namespace is a set in which every element has a unique name. This helps in creating a
logical separation between the application user and the database objects.
The abstraction of database users from schemas provides several benefits to administrators and developers as
listed below:
• Multiple users can own a single schema through membership in roles or Windows groups. This extends
the familiar functionality allowing roles and groups to own objects.
• Dropping database users is greatly simplified as it does not require the renaming of objects contained
within that user's schema. Schema owners can also be changed with no impact to existing application
code. Thus it is no longer necessary to revise and test applications that refer explicitly to schema-
contained objects after dropping the user that created them.
• Multiple users can share a single default schema for uniform name resolution.
• Shared default schemas allow developers to store shared objects in a schema created specifically for a
specific application, rather than in the DBO schema.
• Permissions on schemas and schema-contained objects can be managed with a higher degree of
granularity than in earlier releases.
• Schemas increases the level of granularity at which permissions are managed. Permissions can be given
for a specific user to manage and own objects within a schema as compared to the entire database. For
instance, User 1 can be given permissions to modify the objects in the “Sales" schema within a database
but the user will be restricted from modifying objects in the “inventory” schema within the same
database.
Data Encryption
SQL Server 2005 natively supports all encryption infrastructure requirements natively within the database and are
fully integrated with a key management infrastructure. SQL Server secures data with a hierarchical encryption and
key management infrastructure. Each layer secures the layer below it, using a combination of certificates,
asymmetric keys, or symmetric keys. This feature works with Windows Server 2003 or later.
Each SQL Server instance has a Service Master Key, created automatically during setup, which is encrypted with
a Data Protection API (using the credentials of the SQL Server service account) provided by the underlying
Windows Server 2003 operating system. Its main purpose is to secure system data, such as passwords used in
instance-level settings such as linked servers or connection strings).
The Service Master Key is also used to secure each of the Database Master Keys (protected additionally with a
password supplied when a Database Master Key is created). Within each database, its master key serves as the
basis for creating certificates or asymmetric keys, which subsequently can be applied to protect data directly or to
further extend the encryption hierarchy (i.e., by creating symmetric keys). Creation, storage, and other certificate
and key management tasks can be handled internally within SQL Server, without resorting to features of the
operating system or third party products. Encryption and decryption is provided by pairs of functions
complementing each other such as EncryptByCert() and DecryptByCert().
For more details on data encryption, refer to SQL Server Books Online.
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. This copy is known as the principal
database. Updates made by clients to the principal database are mirrored on the other copy of the database, known
as the mirror database. Mirroring involves applying transactions from every insert, update, or delete transaction
made on the principal database onto the mirror database.
The principal database and mirror database must reside on separate server instances (that is, instances of the
Microsoft SQL Server database engine). The two server instances communicate and cooperate as partners in a
database mirroring session. The two partners perform complementary roles in the session: the principal role and
the mirror role. At any given time, one partner performs the principal role, and the other partner performs the
mirror role. Each partner is described as owning its current role. The partner that owns the principal role is known
as the principal server, and its copy of the database is the current principal database. The partner that owns the
mirror role is known as the mirror server, and its copy of the database is the current mirror database.
The benefits of data mirroring include:
• Database mirroring provides complete or nearly complete redundancy of the data. For more information,
see Database Mirroring Sessions in SQL Server Books Online
• Server instances communicate over a direct network connection and can be in separate locations. If
necessary, they can be at considerable distances from each other to provide protection against major site
disasters. No special hardware is required. This feature can also be implemented in conjunction with
MSCS (Microsoft cluster service) in order to provide a disaster recovery solution over a hardware
dependent Cluster solution.
• A database owner can use the database snapshots in the database on the mirror server to make the
database available for limited reporting needs.
• Database mirroring can work as a non hardware dependent failover alternative over clustering.
An optional component called the Witness can be employed in a Database Mirroring setup to provide automatic
failover. The purpose of the Witness is to monitor the status of the two servers in a mirrored pair and form a
quorum with the surviving server in the event one server fails. This ensures that the system will not experience a
“split-brain” condition.
Database Mirroring does not rely upon application code for client redirection in the case of a failover. The SNAC
and ADO.NET data providers are fully database mirroring aware. The following figure illustrates a client
connection to the initial partner, Partner_A, for a mirrored database named Db_1. This figure shows a case in
which the initial partner name supplied by the client correctly identified the current principal server, Partner A.
The initial connection attempt succeeded, and the data-access provider stores the name of the mirror server
(currently Partner_B) as the failover partner name in its local cache. The following figure illustrates the manner
in which the client name is stored in the provider. Should Partner_A fail, the client will attempt to re-connect to
Partner_A to ensure the client’s inability to connect to Partner_A was not due to network congestion problems. If
repeated attempts fail, the client will then attempt to connect to Partner_B and if successful, normal operations
resume.
Database snapshots
A powerful feature combination is the use of database snapshots with database mirroring. Database snapshots are
read-only databases providing an exact copy of a user database at a specific point in time. A source database can
have many snapshots.
Database snapshots operate at the data-page level and do not have a 2X disk requirement. Before a page of the
source database is modified for the first time, the original page is copied from the source database to the snapshot.
This process is called a copy-on-write operation. The snapshot stores the original page, preserving the data
records as they existed at the point in time when the snapshot was created. Subsequent updates to records in a
modified page do not affect the contents of the snapshot. The same process is repeated for every page that is being
modified for the first time. In this way, the snapshot preserves the original pages for all data records that have
ever been modified since the snapshot was taken but does not take use up the same amount of disk space as the
original database at the time of creation. Given the nature database snapshots and that they can be created and
dropped in a matter of seconds, users typically create snapshots that are used for brief periods before dropping and
creating a new database snapshot.
Apart from using database snapshots for reporting, it can also be used for rapid recovery from user errors. For
example, a user that accidentally deleted all the data from a large table instead of deleting just a few rows, can
have the table recovered rapidly using a valid database snapshot instead of performing a full restore from backup.
Though it does not have the same level of flexibility and functionality, SQL Server 2005’s Database Snapshots
can provide some of the functionality found in Oracle’s Flashback database feature.
• Supports most administrative tasks for SQL Server 2005 and SQL Server 2000 such as configuration of
server parameters, backup and restore, and configuring replication.
• New management dialogs for managing objects in the SQL Server Database Engine, Analysis Services,
Reporting Services, Notification Services, and SQL Server Mobile, that allows you to execute your
actions immediately, send them to a code editor, or script them for later execution.
• Exporting and importing SQL Server Management Studio server registration from one management
studio environment to another.
• Save or print XML Showplan or Deadlock files generated by SQL Server Profiler, review them later, or
send them to administrators for analysis.
• New error and informational messages provide more information and allow you to send Microsoft a
comment about the messages, or to copy messages to the clipboard, and allows you to easily e-mail the
messages to your support team.
• A new activity monitor for collecting server process information which can be filtered and automatically
refreshed at periodic intervals.
• Code editor for T-SQL, MDX (multi-dimensional expressions), CLR (Common Language Runtime) and
XML. The code editor is a very rich user interface for writing, debugging and tuning T-SQL, MDX and
CLR scripts in a single interface. Some of the features of the code editors include
o Color coding of syntax to improve the readability of complex statements.
o Presentation of query windows as either tabs in the document window, or in separate documents.
There are two types of DMVs in SQL Server 2005; server scoped and database scoped. As the name implies, the
information provided by the different views will be relevant to the scope it resides. All dynamic management
views and functions exist in the sys schema and follow the naming convention dm_*.
When using a dynamic management view or function, you must prefix the name of the view or function by using
the sys schema. For example, if you wanted to find out what are the current pending I/O requests in SQL Server,
run the following query:
SELECT * FROM sys.dm_io_pending_io_requests
When used with Catalog view and Performance Monitor counters, DMVs can provide the same functionality as
Oracle10g’s Automatic Workload Repository (AWR). However, when working with SQL Server 2005, much of
the intended purpose of Oracle’s AWR is not needed because SQL Server automatically monitors and captures
various statistics and dynamically re-configures various parameters to optimize performance. Oracle’s AWR is
intended to do the same but still requires explicit instruction to execute on configuration changes.
Moving Databases
Similar to Oracle’s transportable tablespaces feature, SQL Server provides a simple way to move databases from
one instance to another. The move can be a logical and/or physical move and the difference in execution is
minimal and the operations can be performed via SQL Server Management Studio or command line using T-SQL.
To move a SQL Server database from one instance to another, you only need to detach the database from one
instance and attach it to another. If physical movement is necessary, simply move the datafiles and log files
associated with that database to the desired new location before attaching to the new instance.
Moving to different platforms is irrelevant in SQL Server since it only runs on the Windows platform. However,
the process to move from one edition or version of Windows to another is done the same way as moving within
the same edition or version. Do note that different versions/editions of Windows have different levels of
functionality so please be aware of your database’s requirements prior to moving.
Data Replication
Replication is a set of technologies for copying and distributing data and database objects from one database to
another and then synchronizing between databases to maintain consistency. Using replication, you can distribute
data to different locations and to remote or mobile users over local and wide area networks, dial-up connections,
wireless connections, and the Internet. SQL Server 2005 supports all popular types of replication including
transactional, peer-to-peer transactional (aka multi-master), merge and snapshot. SQL Server also supports
replication with non SQL Server databases including Oracle.
Implementation methods and requirements will differ depending on the type of replication needed but for all
practical purposes, these models deliver on most of the combined capabilities provided by Oracle replication and
Oracle Streams. Setting up, monitoring and managing replication can be done through SQL Server Management
Studio or through T-SQL and some replication system stored procedures.
Transaction/Isolation Levels
In SQL Server 2005, the isolation level is the type of locking that is applied when working with sets of data and
how other readers are isolated (or not) from data that is currently being read/modified. SQL Server has always
supported the four ANSI standard isolation models – read uncommitted, read committed (default), repeatable read
and serializeable but in SQL Server 2005, snapshot isolation support is introduced. Snapshot Isolation uses row
versioning to provide transaction-level read consistency and only schema locks are acquired. This allows systems
with mixed workloads to function effectively with large number users without having readers block writers and
vice-versa. Row versioning is implemented in TEMPDB and the rows are persisted for as long as there are
transactions that require the information. This is different from Oracle’s implementation which uses the undo
tablespace to implement the same functionality. SQL Server users will not encounter an equivalent of Oracle’s
“Snapshot Too Old” error.
Conclusion
Microsoft SQL Server 2005 is a comprehensive, integrated end-to-end data management solution that empowers
users across the organization by providing them with a secure, reliable, and productive platform for enterprise
data and business intelligence (BI) applications. SQL Server 2005 delivers powerful and familiar tools to
information technology professionals and information workers.
SQL Server 2005 is designed with goals to increase business value through reduced TCO, ease of use and
extensive integration capabilities for information management. SQL Server 2005 also offers various services and
infrastructure to deploy Business Intelligence systems with significantly reduced development and integration
effort. Further capabilities offered by features like Service Broker and Query Notification allows today’s IT
Professionals to design and deploy both classic client/server and web applications, and more advanced web
services based applications with service oriented architectures.
Additional Resources
• For more information on Microsoft SQL Server 2005, visit www.microsoft.com/sql/2005