Monday, 29 April 2013

SQL Server 64-bit Migration Benefits


 SQL Server 64-bit Migration Benefits 

Limitations of the 32-Bit Platform.

The x86 platform has been the mainstay processor for PC architecture from the inception of the Personal Computer. However, the 32-bit has limitations, mainly, the 32-bit processor is limited to a maximum of 4GB of addressable memory.

For many of today’s memory hungry applications, 4GB is simply not enough.

Database applications such as SQL Server derive definite benefits from larger memory address spaces.

The way the 32-bit Windows OS allocates memory actually exacerbates the addressable-memory limitation.

Under 32-bit Windows, 2GB is reserved for the OS which leaves only 2GB to run all the  applications.

Microsoft developed a technology for Windows 2000 Server - Address Windowing Extensions (AWE) - designed to help circumvent this problem by letting AWE compliant applications access up to 8GB of RAM on Win2K Advanced Server (Win2K AS) and 64GB of RAM on Win2K Datacenter Server.

However, AWE has limitations as well. Applications must be specially written to take advantage of AWE.

Also, AWE’s paged memory access scheme imposes overhead without providing any benefits to the OS.

How does 64-bit Help.

The 64-bit platform solves these problems.

The maximum addressable memory using 64-bit architecture is increased to 1TB.

And, unlike the AWE implementation, both the OS and the applications can use this memory.

In addition, in 64-bit editions of SQL Server, not only the buffer cache but also the procedure cache and other SQL Server mechanisms can use the memory.

The larger 64-bit address space lets the system move and process essentially twice as much data per CPU cycle as the older 32-bit design.

Effectively doubling the raw data processing power can have a significant impact on data-centric applications such as SQL Server.

Microsoft Support for the 64-bit Architecture.

The first official Microsoft support for the 64-bit platform came with the 2005 release of the 64-bit editions of Windows 2003 Standard, Enterprise, and Datacenter editions.

Internally, Microsoft had begun a trial deployment of the 64-bit platform using a pre release version of Windows 2003 64-bit for the Web servers that comprise its www.microsoft.com site.

Microsoft reported several significant performance benefits resulting from the migration to the 64-bit systems.

According to Microsoft’s internal performance measurements, the CPU load on the servers decreased by 50 percent.

In addition, page response times for some applications were reported to be more than 15 times faster.

For more information about the Microsoft 64-bit deployment, go to

Microsoft also used the improved scalability that the 64-bit architecture provided in the Microsoft Treasury project. The Microsoft Treasury manages the financial assets and foreign currency exposure for Microsoft.

In this instance, the Microsoft Treasury reduced the time required to run its risk-analysis software from 40 hours on the 32-bit platform to 13 hours on the 64-bit platform, a 325 percent increase in overall system performance.

This improvement required no code upgrades and resulted from the 32-bit applications’ greater memory use and the more efficient system architecture.

For more information about the Microsoft 64-bit Treasury project, go to

A number of Microsoft partner projects also demonstrate the scalability and performance improvements that the 64-bit architecture enables.

CROSSMARK, a point-of-sale (POS) data warehouse, implemented its 3TB data warehouse on the 64-bit platform using SQL Server 2005 and achieved a 12-fold increase in data-loading capability with 64-bit Integration Services.

Bank Leu, a leading Swiss private bank replaced its management account system with a solution based on the SQL Server 2005 Enterprise Edition 64-bit and achieved better system responsiveness that resulted in a 40 percent improvement in management account productivity.


 Windows 2003 Standard, Enterprise, and Datacenter x64 Editions.


As you might expect, the 64-bit editions of Windows 2003 can take advantage of the increased system capabilities that the 64-bit platform provides.

Windows 2003 32-Bit vs. 64-bit Editions
OS
32-Bit Maximums
64-Bit Maximums
Windows 2003, Standard Edition
4GB RAM
Up to 4 processors
32GB  RAM
Up to 4 processors
Windows 2003, Enterprise Edition
4GB (64GB Using AWE) RAM
Up to 4 Processors
1TB
Up to 8 processors
Windows 2003, Datacenter Edition
4GB (64GB Using AWE) RAM
Up to 32 Processors
1TB
Up to 64 processors

By increasing the available system memory, the 64-bit platform solves the virtual memory limitations that have restricted the scalability of the 32-bit versions of Windows Server.

The 32-bit version of Windows Server is limited to 4GB of addressable memory split evenly between the OS and applications. 

You can change this allocation in the 32-bit versions of Windows 2003 by using the /3GB switch in the boot.ini file. Doing so lets the Windows 2003 OS increase the applications’ memory allocation to 3GB.

However, this change also reduces the amount of memory available to the OS, which can result in performance degradation for kernel-intensive implementations.

Memory Availability in Windows 2003 32-Bit and x64 Editions
Windows Server Memory Usage
32-Bit
64-Bit
Total virtual address space
4GB
16TB
Virtual address space per 32-bit process
2GB (3GB with /3GB switch)
2GB (4GB if compiled with
/LARGEADDRESSAWARE)
Virtual address space per 64-bit process
N\A
8TB
Paged pool
47MB
128GB
Nonpaged pool
256MB
128GB
System Page Table Entry (PTE)
660MB to 900MB
128GB

The 64-bit x64 architecture increases the amount of virtual memory that Windows can address from 4GB to 16TB. 

As is true of the 32-bit version of Windows, the virtual address space is split evenly between the OS and the applications (i.e., between kernel mode and user mode). 

The net result is that native 64-bit x64 applications have 8TB of available virtual memory address space.

 SQL Server 2005 Standard and Enterprise Editions.

 When Microsoft released SQL Server 2005 in November 2005, the company provided support for the x64 platform in the Standard and Enterprise editions.

SQL Server 2005 32-Bit and 64-Bit Compatibility
SQL Server 2005 Edition
32-bit
64-bit
SQL Server 2005 Express
Yes
WOW64
SQL Server 2005 Workgroup
Yes
WOW64
SQL Server 2005 Standard
Yes
Yes
SQL Server 2005 Enterprise
Yes
Yes

Both the SQL Server 2005 Standard Edition and the SQL Server 2005 Enterprise Edition provide native support for the x64 architecture, which means that they must run on the 64-bit Windows 2003 x64 OS.
The SQL Server 2005 Express Edition and the SQL Server 2005 Workgroup Edition are 32-bit only.
However, they can use the WOW64 subsystem to run on the 64-bit Windows 2003 x64 edition.

SQL Server 2005 64-Bit Advantages.

 64-bit is seen as the natural progression for next generation computing.

The architectural advantages that 64-bit computing offers can be particularly beneficial to several application workloads.

The server applications that probably derive the most benefit from running on a 64-bit platform (i.e., a 64-bit server running a 64-bit OS) are relational database and business intelligence (BI) workloads.

The servers that run these workloads often process very large data sets and benefit greatly from theadded memory capacity and improved I/O bandwidth that the 64-bit platform offers.

To take full advantage of the 64-bit hardware to run one of the 64-bit editions of SQL Server 2005, you must have a 64-bit OS installed.

64-Bit Relational Database Benefits.

 The 64-bit versions of SQL Server 2005 can achieve higher levels of scalability than the previous 32-bit editions of these products. 

A primary reason for the improved scalability is an increase in available physical and virtual memory.

Relational databases such as SQL Server 2005 must often execute queries and other SQL statements that work with very large amounts of data. The larger memory address space that 64-bit processors provide lets SQL Server process larger datasets in memory—thereby avoiding expensive and slow I/O operations. Disk access is always the slowest operation that relational database servers perform. (RAM access is hundreds of times faster.)

Increasing the server’s available memory lets it process a greater portion of its workload in memory, which significantly reduces the number of times it needs to perform disk I/O
The 32-bit architecture is limited to a maximum of 4GB of memory.

Although that amount might be adequate for most desktop applications or smaller scale databases, 4GB isn't adequate to support larger relational databases applications.

Also, running on 32-bit Windows, the actual addressable memory for applications (e.g., SQL Server) is only 2GB; the other 2GB is reserved for the OS.

Microsoft developed a technology called Address Windowing Extensions (AWE) that lets AWE-enabled applications access up to 64GB on Windows Datacenter Server. Many SQL Server installations have adopted AWE because of the increased memory support that it provides to SQL Server.

However, AWE is restricted because it:-
  •  has no OS benefits - Only applications can access AWE memory. It does nothing to let the OS access more memory.
  • requires specially written applications - Only AWE-enabled applications can take advantage of the increased memory. Other applications get no benefits.
  • incurs performance overhead - AWE uses a paged memory access scheme whose performance is inferior to that of typical flat memory access.
  • During checkpoint intervals, databases take up processor time; any overhead to the processor (e.g., AWE) will only slow down system performance
  • offers limited SQL Server benefits - Even though SQL Server supports AWE, only specific areas (e.g., the buffer cache) can use the increased memory AWE provides.


Other areas (e.g., the procedure cache) receive no benefits from AWE.
Likewise, other subsystems (e.g., Analysis Services, Integration Services, Reporting Services) aren’t AWE-enabled and receive no benefits from AWE.

Running on Windows 2003 Datacenter, Enterprise, or Standard editions, the 64-bit processors let SQL Server 2005 Enterprise and Standard editions break through the 4GB memory ceiling that the 32-bit version of Windows imposes.

The increased memory capacity lets SQL Server 2005 handle larger databases and more complex application requirements





Database Performance Enhancements.


 Many elements of database performance benefit from the 64-bit implementation. For example:-

Queries submitted to the database engine derive substantial benefits from the increased memory available for in-memory buffer caching.

Extended plan caching benefits statement execution.

Index creation is improved by allowing larger in-memory data sorting.

The increased memory also lets various types of sort conditions execute more efficiently.

Supports a higher maximum number of concurrent users.

Processor parallelism can better support multi threaded workloads.

Faster Query Performance.

64-bit computing offers a larger addressable memory space, which SQL Server 2005 can use to increase the size of its buffer cache.

The increased size of the buffer cache is probably the single area that benefits SQL Server most. (The need for buffer cache space is the reason that 32-bit AWE support focused on increasing the available buffer cache size.)

The SQL Server relational database engine’s buffer cache contains recently used data as well as read-ahead data that the SQL Server engine anticipates using.

When the SQL Server relational database engine executes a query, it first looks in the buffer cache for data to satisfy that query.

The larger buffer cache lets SQL Server store more data in and pull more data from the buffer cache, which helps eliminate the need for disk I/O.

The more memory the buffer cache has available, the more effectively the SQL Server caching mechanism works.

The net result is less disk I/O and faster query performance.


Faster Statement Execution and Improved Engine Efficiency.

With the 32-bit platform, AWE support was limited to the buffer cache.

With the 64-bit platform, many system components can benefit from the added memory that the platform makes available. One of the most important of those components is the SQL Server procedure cache.

Whereas the buffer cache contains data, the procedure cache contains query plans for recently executed T-SQL statements and stored procedures.

Because of the dynamic nature of database requests, old execution plans must be continually deleted from the procedure cache.

The greater memory capacity of the 64-bit architecture lets SQL Server create a larger procedure cache and hold more execution plans. The increased number of execution plans enables faster statement execution for cached plans because no additional time is required to recreate the query plan.

Finding more execution plans in the cache reduces demand on the CPU because fewer new execution plans need to be compiled.

Faster Indexing.

 Index creation is one SQL Server relational database engine operation that benefits from added memory.

SQL Server supports clustered, non clustered, and full-text indexes.

The creation process for all of three types of indexes benefits from the expanded addressable memory that 64-bit processors.

When an index is created, the column data that comprises the index is brought into memory and sorted.

The increased amount of available memory lets more of the sort be performed in memory without the need to write intermediate results to disk.

This increase in available memory is even more important for full-text indexes because they typically use much more data.

Microsoft customer deployments of full-text searches on the 64-bit platform have shown tremendous gains when rebuilding full-text indexes.


Faster SQL Operations.

 In addition to benefits to the SQL Server engine itself, the 64-bit architecture also provides performance enhancement for specific SQL operations.

Hash joins, aggregates, sorting, and server-side cursors are all SQL operations that can derive significant benefits from the 64-bit platform’s added memory.

Hash joins are fast and highly memory-intensive. More available memory lets the system execute hash joins more freely rather than being forced into slower but less memory-demanding execution plans.

Aggregates and sorting perform significantly better with more working memory because they often use temporary storage to process large data sets.

Because temporary storage in turn requires disk I/O, you can drastically increases the time and system requirements needed to satisfy the operation.

Server-side cursors are memory and system resource intensive operations that can benefit from a move to a 64-bit platform.

Support for More Concurrent Users.

SQL Server must also allocate system memory for each open database and each user connected to the system.

Because the number of databases is finite and typically a known quantity, database allocations are seldom an issue.

However, that’s not always the case with user connections especially for systems that service Web applications for which the number of concurrent user connections can be enormous and isn’t predictable.

Each user connection requires the system to create a user context that’s stored in memory.

The increased memory capacity of the 64-bit processors lets the system create more simultaneous users contexts thereby increasing the number of concurrently connected users the server can support.

Greater System Throughput.

The enhanced 64-bit architecture lets more data move through the system in shorter periods of time, which increases system scalability.

The performance increase improves the system’s ability to perform parallel processing, which is used effectively in simultaneous data loading from multiple data sources as well as in parallel database backup and recovery operations.

Improved Availability.

When implemented as part of a high-availability Microsoft Windows Clustering Services solution, the x64 platform can also improve availability. The greater 64-bit system performance reduces the time to complete a fail-over operation, making the system available again sooner.


64-Bit Business Intelligence Advantages.

BI technologies such as OLAP, extraction, transformation, and loading (ETL), reporting, and data mining must be able to efficiently process, aggregate, and query very large data sets.

Servers running these BI workloads must process large amounts of data and can benefit tremendously from the higher processing power, increased memory capacities, and improved I/O bandwidth that the x64 platform offers.

SQL Server 2005 x64 editions and BI features

Feature
Express
Workgroup
Standard
Enterprise
Number of CPUs
1
2
6
64
Maximum Ram
1GB
3GB
OS maximum
OS maximum
Import/Export

Integration Services


Analysis Services


Unified Dimensional Model


Business Analytics


Proactive Caching



Advanced Data Management



Full Write back Support



Data Mining


Data Warehousing


Import/Export


Integration Services


Analysis Services


Unified Dimensional Model


Business Analytics


Report Server
Report Builder

Scale Out Report Servers




Only Enterprise and Standard Editions are native 64-bit applications. The Work-group and the Express Editions are 32-bit applications that run in the Windows on Windows64 (WOW64) subsystem that the Windows Server 2003 x64 editions offers to provide 64-bit support.

Reflecting their small business orientation, Workgroup and Express editions offer limited support for CPUs and RAM.

Because the BI features that SQL Server 2005 provides are primarily oriented toward mid-size and large businesses, they’re available in the Enterprise and Standard Editions.

In fact, Workgroup and Express Editions contain just two BI features: the SQL Server Integration Services Import/Export Wizard and Reporting Services.

Analysis Services, the core SQL Server Integration Services designed for ETL transfers, and Data Mining only comes with Enterprise and Standard Editions.

Enterprise Edition also ships with several advanced BI functions.

These functions include proactive caching, advanced data management (which supports partitioning cubes), and the ability to scale out Reporting Services servers.

The BI features in the x64 editions of SQL Server 2005 are native 64-bit applications fully able to take advantage of the enhanced x64 platform.

64-Bit BI Benefits.

The 64-bit platform lets SQL Server 2005’s BI subsystems in the Enterprise and Standard editions achieve higher levels of scalability than was possible with the previous 32-bit editions of these features.

The increased scalability is possible primarily because of the boost in computing power and the increase in available memory (up to 1TB).

Below is a summary of the 32 bit Limitations, followed by some of the areas in which these BI features specifically benefit from the 64-bit computing architecture.



32-Bit BI Limitations.

Unlike the 32-bit SQL Server relational database engine, which uses (AWE) to boost the internal capacity of its buffer cache and thereby relieve some of the 32-bit memory constraint.

Analysis Services and the other BI subsystems ( Integration Services & Reporting Services) were never AWE-enabled.

Therefore, the 32-bit SQL Server BI components ran under the 32-bit Windows 4GB memory ceiling.

By default, this 4GB of memory is split evenly between the Windows OS and the applications.

Realizing the constraints that the memory ceiling could place on applications such as the SQL Server BI stack, Microsoft developed a way to tune Windows’ allocation of the available 4GB of memory address space.

For certain versions of the Windows Server OS, Microsoft added a /3GB start-up parameter that let users shift the balance of RAM in favour of the applications.

Using this switch with Windows start-up lets Windows devote 3GB to the applications, leaving 1GB for the Windows Server OS. Although this switch can benefit the applications, it’s a doubled edged sword—giving memory to the applications but taking it from the OS.

Workloads that stress the Windows kernel face the danger of becoming memory constrained, which can severely degrade overall system performance.

Even in situations in which this workaround succeeds in improving overall system performance, it still only adds 1GB of memory for application use.

Analysis Services Performance Enhancements.

The 64-bit editions of Analysis Services 2005 provide significantly enhanced performance for aggregation and processing of large sets of OLAP data.

The ability to process much larger amounts of data in memory without the need to perform the much slower I/O required to use temporary disk files significantly improves performance over the 32-bit editions of Analysis Services.

As the data sets increase in size, the benefits of 64-bit computing grow substantially. The increased memory that the x64 editions of Analysis Services provides can support larger cubes, improve performance for processing large dimensions, and process cubes faster.

The greater processing power of the 64-bit Architecture provides better support for parallel processing operations both for simultaneously processing cubes and for accessing partitioned cubes.

The 64-bit architecture’s increased memory support also enables a higher maximum number of concurrent users. And the more powerful and scalable 64-bit systems allow us to implement server consolidation to an extent that isn't possible with 32-bit Analysis Services.

Below is a list of how the 64-bit architecture benefits each of these areas in more detail.





 Support for Very Large Cubes.

 The 64-bit platform’s increased memory capacity provides Analysis Services with a much larger working data cache. The larger data cache enables significant performance benefits for very large cubes.

The extended data cache reduces the need for physical I/O to satisfy queries.

The increased memory capacity is especially useful when you have cubes with many fact tables, partitions, and large numbers of aggregates.

 Huge Dimensions Supported in Memory.

 Analysis Services caches dimensions in memory.

The memory capacity of the 64-bit platform allows Analysis Services to better handle very large dimensions, which might include millions of members.

The increased memory is especially crucial when you use custom security in Analysis Services.

Custom security caches a separate copy of the dimension for each custom security role assigned.

(For 32-bit implementations, the memory required is an extremely significant concern.)
The increased memory that 64-bit architecture offers lets it effectively handle large dimensions and dimensions that use custom security roles.

Faster Query Processing.

Much as the SQL Server relational database engine uses its buffer cache to store recently used query results, Analysis Services’ data cache stores recently used query results.

Because of the dynamic nature of the data cache, older query results are continually being expelled from the cache. When Analysis Services resolves user queries, it first attempts to use the data in its data cache to respond to the query.

It either retrieves the specific data set from the cache or attempts to create the requested data set from other data already present in the cache.

If the query can be addressed using cached data, it’s referred to as a warm cache query. If the query can’t be satisfied by the cache and I/O is required to resolve the query, it’s referred to as a cold cache query.

The 64-bit architecture’s expanded memory capacity lets Analysis Services maintain a much larger data cache; the result is a higher percent of warm cache queries that don’t resort to physical I/O.

Faster Cube Processing.

The additional memory capacity of 64-bit architecture also enables faster cube processing.

Analysis Services cubes consist of data aggregations; these aggregations don’t take place in real time. Instead, the cube data must be periodically refreshed by “processing the cube.

The greater memory available reduces the need to write temporary files to the disk subsystem while processing the cube data.

With the reduced need to perform disk I/O, cube processing can be performed much faster and therefore more often as well.

Faster Parallel Processing and Querying.

The Direct Connect Architecture also offers faster simultaneous cube processing and data querying.

The typical data mart or data warehouse contains numerous cubes that must be reprocessed periodically. In many cases, some cubes must be refreshed while other cubes remain in active use.

The increased memory capabilities of the 64-bit architecture allow the system to more effectively process cubes while simultaneously satisfying ongoing end-user query requests.

Larger Number of Concurrent Users

Like the relational database engine, the 64-bit architecture’s larger memory capability lets the server support more simultaneous user contexts and a higher number of connections.

Each user connection requires a set of data structures that maintain the state of each connection to the server. The larger addressable memory space increases the number of active user connections that a server can support.

Increased Performance Using SQL Shared Memory Provider.

Although the 64-bit platform’s larger address space provides clear benefits for several internal areas of the SQL Server relational database engine and for Analysis Services, one area in which the benefits are not so obvious is server consolidation.

Co-hosting the SQL Server relational database engine and Analysis Services on the same server is not usually recommended because either entity can require most if not all of the available memory on a 32-bit server.

However, the massive increase in headroom provided by the 64-bit platform make it possible to consolidate your SQL Server relational database instance with Analysis Services.

32-bit
SQL Server relational
database engine.
32-bit
Analysis Services.
64-bit
SQL Server relational database
engine and Analysis Services.

Running the SQL Server relational database engine and Analysis Services on the same system lets you use the Shared Memory provider to connect Analysis Services cubes to the SQL Server relational databases.

Unlike the TCP/IP or Named Pipes client protocols, Shared Memory is an in-memory provider that doesn’t need to drop down into the system networking layers to make the connection between Analysis Services and SQL Server.

This in-memory capability supports the fastest possible connection between Analysis Services and SQL Server because they run on the same system.

The connection is many times faster than the networked connection required when Analysis Services and the SQL Server relational database engine reside on separate systems. 

Integration Services Performance Enhancements.

SQL Server Integration Services (SSIS) performs ETL tasks for SQL Server 2005.

Like the 32-bit Analysis Services, the 32-bit SSIS can’t take advantage of AWE and is confined to the 2GB or 3GB address space that the 32-bit editions of Windows provide.

The increased memory that the 64-bit platform offers improves overall SSIS performance significantly.

The access to increased memory capacities vastly improves the performance of memory-intensive tasks such as row-by-row calculations, lookups, aggregation, and sorting.

The additional working memory lets SSIS do more work in memory, reducing the need to perform intermediate disk reads and writes.

Additionally, SSIS’s multi-threaded parallel data loading ability lets it use the greater system throughput.

The ability to work with larger data sets in memory not only speeds up the specific task but also helps free up server resources to be applied to other workloads.

Improved Performance for Row-by-Row Calculations.

The 64-bit platform provides improved performance for SSIS tasks that execute operations row by row.

Examples of such tasks include performing lookups, creating calculated columns, and executing data and character conversions.

The enhanced power of the 64-bit platform allows performing these operations more rapidly, and the increased memory capacity lets SSIS bring more rows into working memory, enhancing the query performance for applications that use these row by row functions.





Improved Performance for Aggregations.

The increased memory that the 64-bit platform provides vastly improves performance for tasks that perform aggregation and sorting.

Aggregation and sorting require manipulating large amounts of data at the same time.
Such operations perform significantly better with more memory because the data sets involved can consist of thousands or millions of rows and are usually too large to fit into memory.

To process these tasks, SSIS must use temporary storage to store intermediate results.

Using temporary storage requires disk I/O, which increases the time needed to perform the task.

More memory lets more data be manipulated at one time, reducing the need to perform disk I/O to store intermediate results.



Faster Loading of Multiple Data Sources.

SSIS is a multithreaded application capable of performing parallel processing by simultaneously loading data from multiple data sources and writing data to multiple targets. 

The 64-bit architecture can support much higher system throughput, which SSIS parallel operations use effectively.

Reporting Services Performance Enhancements.

Reporting Services also benefits from 64-bit computing.

Like Analysis Services and Integration Services, Reporting Services can’t use AWE support.

However, the 64-bit SQL Server 2005 Reporting Services can take advantage of the increased memory available on the 64-bit architecture to process and render complex reports.

Faster Report Rendering.

 SQL Server 2005’s Reporting Services is a native 64-bit .NET application designed to run on the 64-bit version of the Microsoft Common Language Runtime (CLR).

Using the CLR’s dynamic memory management, the 64-bit edition of Reporting Services can access all physical memory available to the CLR, resulting in performance improvements for rendering large and complex reports.

 64-Bit Database Application Development.

 SQL Server 2005 x64 T-SQL Application Development.

DBA’s and T-SQL Database Developers perform common development tasks include creating and maintaining database objects (e.g., tables, views, stored procedures, triggers, user-defined functions). T-SQL scripts perform the vast majority of these tasks.

This type of development T-SQL for 32-bit SQL Server is 100 percent compatible with the native 64-bit platform.

Existing T-SQL scripts function on the 64-bit editions of SQL Server 2005 exactly as they do on the 32-bit editions.

Microsoft redesigned SQL Server in 1998 knowing that 64-bit processors would be an option for future releases of SQL Server. The company designed all of SQL Server’s on-disk structures to accommodate 64-bits. This design ensured that SQL Server would be completely 64-bit compatible, and allows us to freely move SQL Server database objects between 32-bit and 64-bit systems.

In addition, the tool-set you use to develop and run T-SQL scripts on the 32-bit editions and the 64-bit editions of SQL Server 2005 is exactly the same.

In both cases, you use SQL Server Management Studio to manage the server system and the Query Editor to create and execute T-SQL scripts.

Note that the SQL Server 2005 tool-set is completely platform agnostic.

You can use the 32-bit SQL Server Management Studio and Query Editor to manage and develop T-SQL scripts for both 32-bit and 64-bit editions of SQL Server 2005.

Likewise, you can use the native 64-bit version of the SQL Server Management Studio and Query Editor to manage and develop T-SQL scripts for both 32-bit and 64-bit editions.

The capabilities and features in each edition are identical.

32-bit and 64-bit .NET Framework Compatibility.

 The 32-bit version of the .NET Framework and its components are almost completely compatible with the 64-bit version.

This compatibility ensures that .NET Framework developers can realize the benefits of 64-bit computing by leveraging their investments in existing 32-bit .NET Framework code.

In most cases, source-code compatibility between the 32-bit and the 64-bit editions of the .NET Framework is close to 100 percent.

However, the following areas are among the few in which the 32-bit and 64-bit editions of the .NET Framework differ:

Floating Point calculations.

The IEEE 754 standard for floating-point arithmetic allows for different results for certain floating-point operations on different platforms (e.g., 32-bit and 64-bit platforms).

Pointer size.

Thirty-two-bit platforms have 32-bit pointers (4 bytes) whereas 64-bit platforms have 64-bit pointers (8 bytes).

Memory alignment.

Types are aligned on boundaries of the natural lengths of the data type.

32-bit applications use 1-, 2-, 4-, and 8-byte alignments;
64-bit applications use 1-, 2-,4-, 8-, 10-, and 16-byte alignments.
If items are longer than 8 bytes, the 64-bit version of the.NET Framework aligns them on the next greater boundary.

Cross 32-bit/64-bit application development involves some additional considerations.
For example,
64-bit .NET processes can’t load 32-bit DLLs or 32-bit COM in-processing (Inproc) servers.
32-bit .NET processes can’t load 64-bit DLLs or 64-bit COM Inproc servers.

However, remote procedure calls (RPCs) between 32-bit and 64-bit processes on the same system are supported.




Migrating Databases to 64-Bit SQL Server.


Migrating from a 32-bit SQL Server relational database installation to a new 64-bit installation is a direct and clear-cut process.

When Microsoft redesigned SQL Server in 1998 (7.0), the company developed the system with 64-bit capabilities in mind.

All the on-disk structures the 32-bit version of SQL Server uses are identical to the on-disk structures the 64-bit editions of SQL Server uses.

The identical structures make moving your database from the 32-bit version to the 64-bit version easy.

After installation of the new 64-bit hardware platform, a new 64-bit edition of the Windows OS, and the SQL Server 2005 there are two primary options for migrating databases.



Detach/Attach.

By using the sp_detach_db and sp_attach_db stored procedures, you can move one or more databases from a 32-bit SQL Server system to a 64-bit SQL Server system.

An overview of the detach/attach process.

In this scenario, you first run the sp_detach_db stored procedure to detach one or more databases from the 32-bit SQL Server system. Doing so takes the database offline, which lets you move the database data files.

After the files are detached, you can copy those files across the network to the new 64-bit SQL Server .

After the databases have been copied to the 64-bit system, you can run the sp_attach_db stored procedure to bring the databases on-line.

No changes are required for the database files.

This procedure should be followed for each user database that you wish to migrate to the 64-bit platform.

Backup and Restore.

The process of using backup and restore to move databases from a 32-bit server to a 64-bit server is quite similar to the detach/attach process.

On the 32-bit SQL Server system, you can back up the databases by using the T-SQL BACKUP command. Alternatively, you can use the graphical SQL Server Management Studio’s backup capabilities.

After you have copied the .bak file to the 64-bit server, you can restore it by using either the T-SQL
RESTORE command or SQL Server Management Studio.



Migrating to 64-Bit Analysis Services.

The process of moving from 32-bit Analysis Services to 64-bit Analysis Services is similar to the backup and restore scenario for moving SQL Server relational databases.

Just like the SQL Server relational database files, Analysis Services on-disk structures use exactly the same format for 32-bit Analysis Services that they use for 64-bit Analysis Services.

You have two primary options for migrating your Analysis Services databases from the 32-bit server to the 64-bit server.

Backup and Restore.


To move cubes from the 32-bit version of Analysis Services by using the backup and restore methodology, you first back up the 32-bit database to an Analysis Backup File, then restore it to the 64-bit system.

Analysis Services backup and restore migration process.

To migrate Analysis Services databases from a 32-bit Analysis Services system to a 64-bit Analysis Services system with the backup and restore method, you can use either the graphical interface the SQL Server Management Studio provides or XML for Analysis (XMLA) backup and restore statements.

After the file has been copied to the target server, you can then use the XMLA restore command or the SQL Server Management Studio to restore to the 64-bit Analysis Services.

Analysis Services Deployment Wizard.

You can also use the Analysis Services Deployment Wizard to migrate Analysis Services 2005 databases from 32-bit systems to 64-bit systems.

The wizard can take the output from an Analysis Services project and use it to create and process an Analysis Services database on the target server.

However, to use the Analysis Services Deployment Wizard, you must have network connectivity between the 32-bit source system and the 64-bit target system.

Product Licensing.

Microsoft’s licensing costs for the 64-bit editions of SQL Server 2005 are identical to those for the 32-bit editions.

No unexpected pricing hurdles bar the adoption of 64-bit technology.

Microsoft also lets Volume Licensing and Software Assurance customers upgrade from an existing 32-bit SQL Server 2005 license to the 64-bit edition license at no cost.

In addition, there is no extra charge for using multi core processors.

Under SQL Server’s per-processor licensing model, you need only license each physical socket.

Neither the number of processor cores used in that socket nor the number of logical processors changes the licensing cost.

For example, if you have a 2-processor (2-P) system running two dual core processors, you have two CPU sockets on the motherboard but four real CPUs in the system. In this scenario, if you chose to use SQL Server’s per-CPU licensing model, you would need only a two-CPU license -one for each CPU socket on the motherboard.

Likewise, if you were upgrading to a 4-P system that used four dual-core processors you would need only a four-CPU license even though the system actually has eight processors.

Because dual-core processors are on the same die, they’re licensed as a single processor.


Revisiting the Benefits.

The 64-bit technology provides a number of essential advantages to all SQL Server 2005 installations in terms of scalability, manageability, cost effectiveness, and application compatibility.

 Scalability.

The 64-bit platform provides great performance, and several world-record Transaction Processing Performance Council (TPC)-C and SAP Sales and Distribution (SD) Users benchmarks offer clear-cut proof of the platform’s performance advantages.

The large memory addressability and nearly unlimited virtual memory result in vastly improved performance and reduced need for system I/O,  provide reduced system latencies, better support for parallel processing, and higher data throughput.

Manageability.

The management tools that the 64-bit editions of SQL Server 2005 and Analysis Services provide are completely “feature compatible” with their 32-bit counterparts.

In addition, T-SQL code is 100 percent compatible.

.NET Framework application code supports seamless 32-bit to 64-bit compilation.

Identical on-disk formats make it easy to migrate to the 64-bit platform.
The setup process is the same for the 32-bit and 64-bit versions of SQL Server.



Cost effectiveness.

The licensing cost of the 32-bit and 64-bit versions of SQL Server 2005 are the same.

There are no additional licensing charges if you want to take advantage of the higher performance multiple-core processor technologies.

The 64-bit platform’s scalability lets you use it effectively in server consolidation scenarios to
reduce hardware, infrastructure, and management requirements.

The performance allows you deploy greater computing power in less physical space.

Application compatibility.

In addition to its higher performance and vastly increased memory capabilities, one of the strongest arguments for the 64-bit architecture is its ability to simultaneously run both 32-bit and 64-bit applications at full speed.

The 100-percent binary compatibility of the 64-bit architecture lets organizations move to native 64-bit applications at their own pace while continuing to run all of their existing 32-bit applications at performance levels that often exceed the performance that the native 32-bit platform provides.



 The 64-Bit Future.

 Bob Muglia, Microsoft Vice President of Server and Tools Business, in his address at the Microsoft Professional Developers Conference (PDC) 2005, summed up Microsoft’s view of the 64-bit technology:

“As we move forward . . . I really think of 32-bit as legacy . . . the future is all 64-bit.”




















No comments:

Post a Comment