1. Understanding the Editions
There are three main editions of SQL Server:
Enterprise, Business Intelligence, and Standard. Beyond these, there are
a variety of specialized editions: Developer, Express, and Evaluation
edition. Before diving into the differences between each of these, it is
important to first discuss 32- and 64-bit architectures, because each
edition may or may not support your preferred hardware configuration.
Demystifying 32-Bit and 64-Bit Architectures
If you are relatively new to working with
technology, you may have seen servers on the x86 or x64 or IA64
processor platform. If not, you will see that nomenclature once you read
which platforms each SQL Server edition supports. Historically, x86
comes from the 86 part of the Intel 8086 chip. This chip design dates
back the late 1970s and has been dramatically transformed over the
years, increasing in performance and capabilities. Lately, the x86 in
servers has been on 32-bit architecture. With 32-bit servers, one of the
more significant limitations is the relatively small amount of
addressable memory. Having large amounts of memory is good because it
allows you to have more active connections and increases performance in
memory-hungry applications like Analysis Services, SQL Server
Integration Services, and the SQL Server database engine.
So, in a perfect world, manufacturers would give
you a 64-bit chip to allow you to address greater amounts of memory.
And they have provided 64 bits, just with some bumps in the road. Up
until 64-bit chips, two main chip manufacturers supported the Windows
operating system: AMD and Intel. In terms of market share, hardware
vendors appeared to prefer Intel’s implementation of x86. When it was
time for 64-bit, Intel veered off into a totally new direction, away
from its popular x86 architecture. This new chipset was called Itanium,
or IA64. AMD also wanted to produce a 64-bit chip, but it produced a
chip that was just like the x86 except the instruction sets were 64-bit.
In effect, AMD made a true 64-bit version of the popular x86 chip; it’s
referred to as x86-64. In the end, hardware vendors and users of these
chips found it much easier and quicker to leverage AMD’s implementation
than Intel’s Itanium. This was because, with AMD, the vendors did not
have to rewrite major parts of their implementations to run on a 64-bit
platform. With the minimal success of its Itanium brand of processors,
Intel was forced to make an x86-64 chip as well. Together, both AMD and
Intel’s version of x86-64 are known to Microsoft as x64. Various
editions of SQL Server support specific architectures, and chances are,
if your company is buying new hardware, it’s probably 64-bit. SQL Server
2012 supports the x86 and x64 platforms. At the time of this writing,
there is no planned support for the Itanium IA64 platform. Also note
that if you are planning on installing SQL Server 2012 on 32-bit
hardware, you will not be able to use addressable windowing extensions
(AWE). This feature was introduced to allow SQL Server to use more than
the 2GB memory normally capped by 32-bit operating systems.
Server Editions
Before SQL Server 2008, there was not much
difference between the features in Standard edition and the ones in
Enterprise edition. Enterprise edition traditionally has had features
that focus on solving the needs of very large and highly available
database systems. Features such as table partitioning, unlimited CPU
usage, online indexing, and online restore are examples of enterprise
features. If companies had unconstrained budgets, chances are they would
probably just buy Enterprise edition and go on with life. In reality,
most organizations are always under tight budget constraints, so
companies were more likely to purchase Standard edition, which costs
about one-fourth as much as Enterprise edition. Starting with SQL Server
2008, the differences between Standard and Enterprise editions are
quite substantial. In fact, the changes added to the Standard edition of
SQL Server 2012 are minimal. Most of the work has been placed
in Enterprise edition and in a new edition called Business Intelligence
edition. The feature sets work a lot like a Russian doll, where
Standard edition is a subset of Business Intelligence edition, which is a
subset of the Enterprise edition features.
Standard Edition
Standard edition is designed for departmental
applications. This edition contains some basic business intelligence
capabilities as well as the fundamental relational database features.
Most of the enhancements to SQL Server are found in the other two
editions; however, you will notice some minor improvements, such as
native auditing support at the server instance level.
Business Intelligence Edition
Business Intelligence Edition contains all the
functionality of Standard edition and includes a full suite of business
intelligence capabilities including the new Power View feature. This
edition contains functionality to integrate well with your SharePoint
environment.
Enterprise Edition
Enterprise Edition is the most comprehensive
offering. It includes all the mission-critical OLTP capabilities as well
as end-to-end business intelligence capabilities. Unlike other database
platform vendors, there are not any add-ons to SQL Server. When you
choose Enterprise edition, you have everything that SQL Server has to
offer.
Specialized Editions
Enterprise edition, Business Intelligence
edition, and Standard edition are the core offerings for SQL Server. If
those editions were all you could buy, you probably wouldn’t be too
happy. There are situations where you need to have access to all the
functionality of Enterprise edition but you can’t afford it. A
development environment is a perfect example of when you might need all
the features available. For this reason and others, several specialized
editions are available. Each of these editions has some restrictions
that are mentioned in the following subsections.
Developer Edition
Developer edition is really Enterprise edition
with some extra development-oriented content and licensing restrictions
on how it can be used. This edition is intended for users to build and
test applications and is not allowed to be run as a production server.
In the event you want to upgrade your Developer edition to Enterprise
edition, this is also possible.
Express Edition
Express edition is Microsoft’s free version of
SQL Server. A long time ago, Microsoft had a free version of a database
called Microsoft Desktop Engine (MSDE). A major issue with MSDE was that
there was no user interface, so it was very difficult to manage.
Microsoft did away with MSDE and introduced the Express edition starting
with SQL Server 2005. Functionally, Express edition is almost the same
as Standard edition except that is limited on CPU and memory use. There
are other differences, such as the absence of the SQL Server Agent job
scheduler and a reduced replication story. After all, what do you expect
for free?
There are a few more versions of Express. One is
called Express with Advanced Services. The name is not really catchy,
but it includes everything in Express plus a version of Reporting
Services. The other is Express with Tools, which is the SQL Server
database engine and SQL Server Management Studio Express version. You
can also download just the SQL Server Management Studio Express version
as a stand-alone install.
SQL Server Express LocalDB
SQL Server Express edition is a free version of
SQL Server that is basically a throttled-down version of the full SQL
Server engine. For SQL Server development, the idea was to include this
free version for developers to use and learn with. One of the problems
with SQL Server Express is it’s a heavyweight in a fight requiring a
featherweight. SQL Server Express is a Windows Service and requires
network configuration and attention.
For developers, there is something better in SQL
Server 2012 called SQL Server Express LocalDB (LocalDB). LocalDB is a
version of SQL Server that installs faster, has fewer prerequisites and
doesn’t require management of a database instance. LocalDB is not an
in-proc DLL that you bind to, rather it’s an application that runs in
the user mode as a separate process. LocalDB is not appropriate for
server-based or multiuser environments, because its opens the database
files for exclusive use. It is, however, ideal for development
environments since it’s fully supports T-SQL.
Evaluation Edition
The evaluation edition is a 180-day free version of Enterprise edition. You can download it for free from www.microsoft.com/sqlserver/en/us/get-sql-server/try-it.aspx
. Note that at the end of the 180-day period, you will either have to upgrade to a paid edition or uninstall SQL Server.
SQL Server Terminology
Before we get too much in depth on describing
how to install and use SQL Server, it is good to introduce some key
concepts about this relational database at this point. In particular,
you should understand the term instance as it is used with respect to SQL Server.
Prior to SQL Server 2000, you could have only
one installation or instance of SQL Server installed on the server. You
can think of an instance of SQL Server as a complete SQL Server
installation including objects like system and user databases, logins,
and SQL Server Agent jobs. Starting with SQL Server 2000, you can
install multiple instances of SQL Server on the same server. These
additional instances will simply listen for user connections on
different ports. Since each instance is effectively a completely
isolated database server, using multiple instances allows for easy
application consolidation.
2. Planning Your Installation
If you are planning on installing SQL Server on
your desktop to just play with it, you probably don’t create a plan,
review it with other folks in your organization, and schedule a time to
implement the plan. Chances are you load setup.exe
and click the Next button a bunch of times until the wizard starts installing SQL Server.
Although installing SQL Server 2012 can be as
simple as clicking a few buttons, it is a good idea to step back first
and create an installation plan. This plan will help you answer
questions that are critical to the success of the installation. Some of
these questions are as follows: Do we meet the hardware requirements of
SQL Server 2012? Are the systems engineering folks aware of our new
installation of SQL Server? The last question is very important. In some
organizations, measures are in place to automatically block network
ports if new applications appear to be running on them. This is an
effort to reduce the risk and damages of viruses. Always get the
necessary people involved when planning an installation of SQL Server.
These people include not only your database administrators but other
folks from IT, such as the people who are responsible for the network
and for the operating systems. The specific list depends on how your
organization is structured.
Assessing the Environment
Most organizations have a good idea of all the
servers that they currently have. However, the larger the organization,
the more likely that there are instances of SQL Server that exist that
may or may not be accounted for or managed by the DBA staff. That
situation may come about for a variety of reasons, even some legitimate
ones. In the end, as a DBA, it is a good idea to keep an active
inventory of which servers and SQL instances you manage. Not only is
this a best practice but it’s a good way to prevent you and your company
from getting into legal trouble. There are a variety of tools that can
help you with SQL Server instance discovery. Microsoft ships a tool
called the Microsoft Assessment and Planning (MAP) Toolkit. This toolkit
is not designed for just SQL Server; rather, it helps users simplify
the planning process for migrating to Windows 8, Microsoft Office 2010,
Windows Server 2008 R2, and other Microsoft products. You can find more
information about this tool at www.microsoft.com/MAP
.
With respect to SQL Server, the MAP tool will
discover and inventory all the SQL Server instances in your
organization. Data collected about each instance includes the version,
edition, and current service pack applied. This tool also captures the
hardware and platform details for computers that are running SQL Server
instances, including determining whether the machines are virtual or
physical. Figure 1 shows a screen shot of the MAP tool.
Figure 1. Microsoft SQL Server discovery summary
The MAP tool creates both a Word document and Excel workbook that are much more detailed than the report shown in Figure 1.
Information gathered from this tool includes SQL Server service packs
installed, editions, disk free space, database names, database sizes,
users and much more.
Choosing the Right Edition
Earlier, you read about the various editions
available with SQL Server. Unless you know your organization is
purchasing Enterprise edition, you need to determine whether the
features and functionality you need are in any of the other versions.
After all, there’s no need to spend money unnecessarily.
Validating Hardware and Software Requirements
Going to college in the great state of Michigan,
I had the opportunity to do an internship with an independent software
vendor that was working on a project for one of the big three automobile
manufacturers. I learned a lot from that experience, and it wasn’t just
Visual Basic and COM development. Rather, it was what was learned from
the water cooler discussions. One time, I overheard a few folks talking
about an investigation into why brakes were wearing out much faster than
they did when tested in their lab. Apparently, the vehicles running
those brakes that had this problem all had aftermarket rims, and these
rims couldn’t dissipate the heat that the brakes generated. The heat
buildup caused the brakes to wear more quickly than with the stock rims.
The moral of this story in relation to SQL Server is to check that the
hardware you plan to install SQL Server on can support the requirements
and thus provide a great end-user experience.
In an enterprise environment, change happens.
You’ll frequently be faced with new requirements and user demand. In the
Enterprise edition of SQL Server, it is possible to hot-add memory and
CPUs, provided both the hardware and the operating system support this
capability. By being able to add memory and CPU without restarting the
server or the SQL Server service, you can maintain high levels of
availability for your database.