<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlcat.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server Customer Advisory Team - SQL Server Best Practices</title><link>http://sqlcat.com/</link><description>Enabling SQL Server customers &lt;span&gt;to navigate the most challenging frontiers of large scale data management.&lt;/span&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20910.1126)</generator><item><title>Microsoft SQL Server 2008 Analysis Services Consolidation Best Practices</title><link>http://sqlcat.com/technicalnotes/archive/2010/02/08/microsoft-sql-server-2008-analysis-services-consolidation-best-practices.aspx</link><pubDate>Tue, 09 Feb 2010 01:21:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1082</guid><dc:creator>CarlRabeler</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Author: Carl Rabeler&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Contributor: Josh Caplan&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Reviewers: Prem Mehra, Denny Lee, John Desch, Wayne Robertson, Steve Pontello&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;This technical note describes the consolidation options, considerations, and best practices for Microsoft® SQL Server® 2008 Analysis Services that the SQL CAT team has derived from working with Analysis Services customers. In this technical note, we also discuss an Analysis Services load balancer solution that one of our internal customers uses to load balance queries from Microsoft Excel® and SQL Server Reporting Services clients across multiple query servers to increase query performance and provide availability.&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Why Consolidate&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Our customers are consolidating Microsoft SQL Server 2008 Analysis Services for the following reasons:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Better utilization of hardware resources, either of existing servers or in conjunction with the acquisition of new, more powerful servers&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Reduction of sprawl, particularly of many small to medium-sized Analysis Services cubes&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Increased importance of availability, as business intelligence solutions become more business critical&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Green IT, with fewer more powerful servers utilizing less energy resources than more, less powerful servers&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Consolidation Solutions&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In working with our customers, we have implemented either one or both of the following Analysis Services consolidation solutions:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating the SQL Server relational data warehouse with the Analysis Services instance on a single physical server (but with the Online Transactional Processing (OLTP) system).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating multiple Analysis Services databases onto a single physical server, either within a single Analysis Services instance or through the use of multiple Analysis Services instances &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Co-Locating the Relational Data Warehouse with the Analysis Services Instance &lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Frequently, an Analysis Services database is located on a dedicated Analysis server and Analysis Services processing queries are sent across the wire over TCP/IP or named pipes to a SQL Server relational data warehouse on its own, dedicated server. In this scenario, network congestion can be the processing performance bottleneck, particularly when the volume of data being loaded into the Analysis Services database for each processing operation is large. If this is the case, the ASYNC_NETWORKIO wait will appear high in the SQL Server wait stats list.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Network congestion can be addressed by improving the network connection performance in one or more of the following manners:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Using Jumbo frames and tuning network parameters&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Utilizing a dedicated network connection or employing faster Ethernet connections, such as 10-gigabit Ethernet and InfiniBand&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Reducing the amount of data involved with each processing operation, such as by utilizing incremental updates&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Network congestion can also be addressed by co-locating the relational data warehouse onto the same physical server as the Analysis Services database. Co-location facilitates can improve processing performance because Analysis Services can connect to SQL Server by using the shared memory network protocol. The shared memory protocol is enabled by default on the SQL Server relational engine and, if it is enabled as a client protocol, is always used by Analysis Services to communicate with the relational engine on the same physical server.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating the SQL Server relational data warehouse with the Analysis Services instance on a single physical server is particularly appealing as servers become more powerful (multiple cores and more memory) and less expensive. On these more powerful servers, dedicating one powerful server for the relational data warehouse and another powerful server for the Analysis Services instance may not fully utilize the processor and memory resources on either server. Co-locating the relational data warehouse with the Analysis Services instance may enable better utilization of available hardware resources. Co-location requires that you address and resolve resource contention issues. These issues are discussed later in this paper.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Co-Locating Multiple Analysis Services Databases onto a Single Server (Using a Single Instance or Multiple Instances)&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To more fully utilize these more powerful and less expensive servers, it is tempting for IT to consolidate multiple small and medium-sized Analysis Services databases onto a single physical server. In many environments, there are numerous small to medium-sized cubes spread out across the enterprise that do not fully utilize the hardware resources of the servers on which they are running. Furthermore, managing and monitoring this sprawl requires significant human effort and power resources to keep running on a 24 x 7 basis. This phenomenon is exacerbated as older servers are retired and newer servers are purchased.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Consolidating Analysis Services databases onto a single physical server reduces the number of servers, which results in better utilization of hardware and a reduction in power usage. Managed appropriately, such consolidation also results in a reduction in management and monitoring costs by the IT department.&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Considerations&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Each of these consolidation solutions addresses specific needs. These consolidation solutions can be used separately or can used in combination. There are some common considerations for these consolidation solutions and some unique considerations for each solution.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Common Considerations When Consolidating&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Consolidation will result in competition for server resources such as processor, memory, and I/O resources. In some circumstances, it may also result in locking issues or inefficient use of existing resources. When you are consolidating separate systems onto a single server platform, proper control of the utilization and sharing of resources is vital to the success of the consolidation effort. The following resources are affected by consolidation: &lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Memory – when multiple processes run on a single server, all share the available memory on the server. The use of substantial memory by any single process may leave insufficient memory for other processes.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Processor – when multiple processes run on a single server, all share the available processor resources on the server. The use of substantial processor resources by any single process may leave insufficient processor cycles for other processes. On large multi-processor servers, the relational engine may generate parallel execution plans for each individual query in a processing operation. When there are a large number of concurrent relational queries, which is typical of Analysis Services processing operations, excess parallelism can result in contention for processor resources and inefficient use of L1 and L2 caches.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;I/O – when multiple processes run on a single server, all share I/O resources on the server. In the absence of proper disk layout and an adequate disk I/O subsystem, there is contention for the same I/O resources. &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Considerations When Co-Locating the Relational Data Warehouse with the Analysis Services Instance &lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating the SQL Server relational data warehouse with the Analysis Services instance on a single physical server can result in significant contention for hardware resources during processing as both the SQL Server relational instance and the Analysis Services instance each require processor, memory, and I/O resources to complete the processing operation. The SQL Server relational engine and the Analysis Services multidimensional engine will each, by default, attempt to utilize all available server resources. This may result in contention for these resources during processing. For example, the SQL Server relational engine may utilize a substantial percentage of memory on the server and be slow to give up these allocated memory resources to Analysis Services when memory resources are needed during the indexing and aggregation phase of the Analysis Services processing operation. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Additionally, this resource contention may negatively affect querying, if querying is occurring concurrently with processing. For example, contention for memory resources may result in the clearing of Analysis Services caches that would otherwise be used to improve query performance. Additionally, locking during processing may result in short queries taking longer than expected and new connections failing when a long-running user query blocks the commit phase of a processing operation. When processing is affecting query performance, utilizing separate query and processing servers can resolve this resource contention. The use of separate query and processing servers is discussed later in this article.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Considerations When Co-Locating Multiple Analysis Services Databases onto a Single Server (Using a Single Instance or Multiple Instances)&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating multiple Analysis Services databases onto a single server can result in several types of resource contention issues: &lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The resources required to process any Analysis Services database can negatively impact the query performance of all other databases on the server while the processing of any database is occurring. With multiple databases on a single physical server, processing operations may affect querying for longer periods of time, and you will generally not want to process too many databases simultaneously (due to resource requirements of each processing operation).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;A single resource-intensive user query (such as multi-threaded storage engine intensive queries) against any single cube in any database can consume a significant portion of the resources on the entire server and negatively affect the performance of all other user queries on that server. For more information, see the &lt;/font&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2009/02/15/the-analysis-services-2008-performance-guide.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Analysis Services Performance Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Co-locating multiple Analysis Services databases onto a single server can result in several types of maintenance issues. When you consolidate multiple databases into a single physical server, down time related to operating system or hardware issues will negatively affect more databases and consequently more users. For example, applying an operating system service pack or upgrading hardware could take all of the databases on the consolidated physical server offline for a period of time. Furthermore, if you consolidate using a single instance of Analysis Services for all databases, instance management (such as SQL Server service packs and cumulative updates) can also impact availability of the databases in a consolidated environment.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The best practices discussed in the remainder of this paper describe how we have resolved these resource contention issues. &lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Best Practices&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The following best practices describe the consolidation solutions that we have successfully implemented in customer environments to realize the benefits and mitigate the risks inherent in each of these consolidation solutions. Utilizing these best practices, we have increased processing performance and hardware utilization, decreased power consumption, simplified manageability through standardization, and increased availability.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;a title="_Co-Locating_the_Relational" name="_Co-Locating_the_Relational"&gt;&lt;/a&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Co-Locating the Relational Data Warehouse with the Analysis Services Instance &lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The challenge when the relational data source is collocated with the Analysis Services instance is to realize the benefits of improved processing performance and increased hardware utilization without impacting user queries. We implemented this consolidation option in two different ways to avoid resource contention with user queries.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Utilizing a Processing Window&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;A processing window is a period of time during which the Analysis Services instances on a single server are resolving few or no user queries and one that is long enough for all required processing operations to complete. A typical scenario is an environment where querying is not occurring overnight (although the definition of overnight is getting shorter). The benefit of this scenario is that the co-location of the SQL Server relational warehouse with the Analysis Services instance on a single physical server enables you to reduce the size of this processing window by increasing the speed of processing. If you have such a processing window, you will be able to complete processing during a period in which there is little or no resource contention on the server related to querying. However, as you place more Analysis Services databases on a single server, you need either more server resources or more time.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When you have such a processing window, the resource contention is only between the SQL Server relational engine and the SQL Server analysis engine for processing operations, and it does not affect a significant number of user queries. Solving contention between these two processes during the Analysis Services processing operation requires the application of a number of techniques. &lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Restricting Memory and Processor Utilization in the SQL Server Relational Engine&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can restrict the amount of memory and processors resources used by the SQL Server relational engine to ensure sufficient resources are available to Analysis Services. You can also use disk layout techniques to limit I/O contention between the SQL Server relational engine and Analysis Services. For more information about limiting I/O contention, see &lt;/font&gt;&lt;a href="http://sqlcat.com/tiny_mce/jscripts/tiny_mce/blank.htm#_Hlk252962783"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Resolving&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;Disk Contention and Maximizing I/O Resources&lt;/font&gt;&lt;/a&gt;&lt;a title="_Hlt253403860" name="_Hlt253403860"&gt;&lt;/a&gt;&lt;a title="_Hlt253403861" name="_Hlt253403861"&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Restricting Memory Utilization in the SQL Server Relational Engine&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The SQL Server relational engine uses memory in its buffer pool and memory outside of its buffer pool.&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can directly restrict the memory used by SQL Server in its buffer pool.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can indirectly restrict the memory used for connections by limiting the number of connections.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You cannot restrict the amount of memory used by SQL Server for threads, extended stored procedures, and the CLR.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To manage the size of the SQL Server buffer pool, you can use:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms178067.aspx"&gt;&lt;font size="3" face="Calibri"&gt;max server memory&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; setting of the &lt;b style="mso-bidi-font-weight:normal;"&gt;sp_configure&lt;/b&gt; system stored procedure to place an upper limit the amount of buffer pool memory used by an instance of the SQL Server relational engine.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Resource Governor in SQL Server 2008 to set different amounts of buffer pool memory within an instance on a per workload basis, guaranteeing a minimal amount of memory for each workload. For more information about Resource Governor, see &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb933866.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Managing SQL Server Workloads with Resource Governor&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and &lt;/font&gt;&lt;a href="http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/ResourceGov.docx"&gt;&lt;font size="3" face="Calibri"&gt;Using the Resource Governor&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can use these options together. For example, if you have users querying the relational data warehouse for reporting purposes and Analysis Services querying the relational data warehouse for processing purposes, you can use the max server memory setting to set an upper limit on usage of buffer pool memory and then use Resource Governor to guarantee the Analysis Services processing queries (or the reporting queries) a specified amount of memory resources. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt 0.5in;" class="MsoListParagraphCxSpLast"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Important&lt;/b&gt;: You should use the capabilities built into the SQL Server relational engine to restrict its use of memory; you should not use Windows® System Resource Manager (WSRM) for restricting memory use by the SQL Server relational engine. For more information about WSRM and SQL Server, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc719182.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Scaling Up Your Data Warehouse with SQL Server 2008&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and &lt;/font&gt;&lt;a href="http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/SQLServer2008Consolidation.docx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Consolidation Using SQL Server 2008&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Restricting Processor Utilization in the SQL Server Relational Engine&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can restrict the use of processor resources by the SQL Server relational engine either by limiting the use of all processor resources by the SQL Server relational engine or by allocating specific processors to the SQL Server relational engine:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Use WSRM to limit the amount of processor resources utilized by the SQL Server relational engine across all processors. WSRM is an optional (and free) component of the Enterprise and Datacenter editions Windows Server® 2003 and of all editions of Windows Server 2008. WSRM uses Windows Management Instrumentation (WMI) to monitor running processes, monitoring the memory size (virtual and physical) and processor utilization, and to prevent any process from exceeding specified upper limits. WSRM is our preferred approach to regulating the utilization of processor resources by all processes. For more information about WSRM, see &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc755056.aspx"&gt;&lt;font size="3" face="Calibri"&gt;WSRM for Windows Server 2008 R2&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;, &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc755056(WS.10).aspx"&gt;&lt;font size="3" face="Calibri"&gt;WSRM for Windows Server 2008&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;, and &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc758506(WS.10).aspx"&gt;&lt;font size="3" face="Calibri"&gt;WSRM for Windows Server 2003&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can also use processor affinity within the SQL Server relational engine to restrict processor utilization to specific processors by means of two affinity mask options, &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187104.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;affinity mask&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms189629.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;affinity I/O mask&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;, thus leaving remaining processor cores for the SQL Server analysis engine. &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 0pt 0.25in;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Important&lt;/b&gt;: On large multi-processor servers, you may need to set MAXDOP to 4 (or less) to prevent excessive parallelization of Analysis Services processing queries by the SQL Server relational engine.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p style="MARGIN:0in 0in 0pt 0.25in;mso-add-space:auto;" class="MsoListParagraphCxSpMiddle"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: If you are running SQL Server 2008, you can also use Resource Governor to throttle CPU consumption by processing queries.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p style="MARGIN:0in 0in 10pt 0.25in;mso-add-space:auto;" class="MsoListParagraphCxSpLast"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Tip&lt;/b&gt;: You can use WMI to dynamically configure these resource utilization settings during processing and then reconfigure them when processing completes. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms180499.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;WMI Provider for Configuration Management Concepts&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Restricting Memory and Processor Resource Utilization in Analysis Services&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You cannot directly restrict the SQL Server analysis engine to specific memory and processor resources. &lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Utilizing Settings in Analysis Services to Restrict Memory and Processor Utilization&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Analysis Services does not support processor affinity, and the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms174514.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;max memory settings&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; for Analysis Services are soft settings, not hard settings. By soft, we mean that when specified maximum memory settings are exceeded, objects in cache will be evicted to attempt to avoid exceeding the memory settings, but you can still blow through these memory settings under a variety of circumstances. For more information, see the &lt;/font&gt;&lt;a href="http://sqlcat.com/files/folders/401/download.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;SQL Server Analysis Services 2008 Performance Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. There is a HardMemoryLimit setting in the msmdsrv.ini file in SQL Server 2008 Analysis Services that enables you to specify a threshold beyond which Analysis Services will start cancelling operations if the memory exceeds a specified threshold. However, the use of this setting will not prevent Analysis Services from exceeding the specified threshold under all circumstances.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The buffered file mode that Analysis Services uses can cause the Windows system file cache to grow quite large and starve the relational engine of all memory resources during Analysis Services processing, resulting in an apparent “hang” during processing. If you encounter this scenario, you can limit the amount of system file cache used by Analysis Services by modifying the LimitSystemFileCacheSizeMB setting in the msmdsrv.ini file. Limiting the amount of system file cache used by Analysis Services will ensure that memory remains available for the relational engine.&lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Utilizing WSRM to Restrict Memory and Processor Utilization in Analysis Services&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;WSRM is our preferred approach to place hard restrictions on the usage of memory and processor resources used by the Analysis Services process. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Important&lt;/b&gt;: When you utilize WSRM to place a hard restriction on the usage of memory resources by Analysis Services, the Analysis Services process will still see the total amount of memory on the server. Therefore, you need to adjust the values for the &lt;b style="mso-bidi-font-weight:normal;"&gt;TotalMemoryLimit&lt;/b&gt; and &lt;b style="mso-bidi-font-weight:normal;"&gt;LowMemoryLimit&lt;/b&gt; properties to reflect the appropriate percentage of the total physical memory on the server that WSRM is allowing Analysis Services to utilize in order for these settings to function as designed.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;a title="_Hlk252962741" name="_Hlk252962741"&gt;&lt;/a&gt;&lt;a title="_Hlk252962783" name="_Hlk252962783"&gt;&lt;/a&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: If you utilize the Preallocate setting in the msmdsrv.ini file, do not grant the Lock Pages in Memory local user policy to the Analysis Services service account if you utilize WSRM. If you use Local System as the service account, be aware that Local System has this privilege by default.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd"&gt;&lt;font face="Cambria"&gt;&lt;span&gt;&lt;span&gt;Resolving Disk Contention and Maximizing I/O Resources&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;&lt;span&gt;&lt;/span&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You can resolve disk contention between the relational engine and Analysis Services by utilizing separate LUNs, utilizing one set of LUNs for Analysis Services and another set for the relational engine. For more information, see &lt;/font&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2009/09/19/accelerating-microsoft-adcenter-with-microsoft-sql-server-2008-analysis-services.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Accelerating Microsoft adCenter with Microsoft SQL Server 2008 Analysis Services&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Maximizing Processing Performance in a Consolidated Environment&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;For many consolidated environments, you may want to separate the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Data&lt;/b&gt; and &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Index&lt;/b&gt; phase of the Analysis Services processing operation to improve the performance of the entire processing operation. Separating these processing operations enables you to reconfigure the SQL Server relational engine after the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Data&lt;/b&gt; phase of the processing operation completes to enable all server resources to be made available to Analysis Services during the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Index&lt;/b&gt; phase of the processing operation. The &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Index&lt;/b&gt; phase is much more processor and memory intensive than the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Data&lt;/b&gt; phase from a single thread perspective. By running the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Index&lt;/b&gt; phase separately, you can parallelize the indexing operation to make use of all available resources, because the &lt;b style="mso-bidi-font-weight:normal;"&gt;Process Index&lt;/b&gt; phase does not require access to the SQL Server relational engine. For more information, see the &lt;/font&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2009/02/15/the-analysis-services-2008-performance-guide.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Analysis Services Performance Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Utilizing a Dedicated Processing Server&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In the absence of a processing window, we implemented this consolidation solution by performing all processing on physical servers not utilized for querying (called processing servers) and directing all user queries to one or more physical servers not utilized for processing (called query servers). Utilizing separate servers for querying and processing eliminates the resource contention during processing that reduces query performance while enabling you to maximize processing performance. For more information about the benefits of utilizing multiple query servers, see &lt;/font&gt;&lt;a href="http://sqlcat.com/tiny_mce/jscripts/tiny_mce/blank.htm#_Utilizing_Multiple_Query"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Utilizing Multiple Query Servers&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Utilizing a dedicated processing server and one or more query servers may, at first, seem inconsistent with consolidation. Indeed, it is if you are only looking at consolidating a very small number of Analysis Services databases. However, if you are looking to consolidate dozens of older, department-sized servers onto a small number of newer, server-class servers, consolidating to a small number of servers works very well – each server with its own standardized role.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: When utilizing a dedicated processing server, we have frequently consolidated the relational data warehouse on the processing server.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;This solution requires you to use one of several options to synchronize the newly processed objects from the processing server to the query server(s):&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Analysis Services Synch Method&lt;/b&gt; – You can use the Analysis Services synch method to perform an online synchronization of the newly processed database on the processing server with the database on one or more query servers. This method synchronizes only the changed files between the processing server and the query server(s), provided that your folder structures match between the source and destination databases. If the folder structure does not match, all files are copied and synchronized rather than only the changed files.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Backup and Restore Method&lt;/b&gt; – You can back up the newly processed database on the processing server, copy the backup file to the query server(s), and then restore the database while querying is occurring (a database lock is required at the end of the restore operation). To maximize query performance during restoration, you can restore the database on the query server using a different database name and then, after the restore is complete, drop the existing database and rename the newly restored database. This latter option also enables you to perform any quality checks on the restored database before you present it to users.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Attach and Detach Method&lt;/b&gt; – You can detach the newly processed database from the processing server, copy the detached database folder to the query server(s), and then attach it to the query server(s). You cannot attach over an existing database, and you cannot change the name of the database while you are attaching. You can attach it as read/write to a single query server or as read-only to multiple query servers. This latter option is quite useful if your query workload is processor and memory intensive rather than I/O intensive. You can attach the newly processed database to a physical or a virtual server. For more information about utilizing a virtual server, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://sqlcat.com/tiny_mce/jscripts/tiny_mce/blank.htm#_Utilizing_Hyper-V_in"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Utilizing Hyper-V in a Consolidated BI Environment&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Robocopy Method&lt;/b&gt; – You can use Robocopy to copy only the delta files from your processing server to your query server(s). This method, however, requires you to either stop the Analysis Services engine or detach the database that is being synchronized. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/01/17/sample-robocopy-script-to-customer-synchronize-analysis-services-databases.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Sample Robocopy Script&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. In Windows 7 and Windows Server 2008, Robocopy has been enhanced with the multi-thread support. For syntax, see &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Robocopy&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;For more information about these options, see &lt;/font&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/03/16/analysis-services-synchronization-best-practices.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Analysis Services Synchronization Best Practices&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;a title="_Co-Locating_Multiple_Analysis" name="_Co-Locating_Multiple_Analysis"&gt;&lt;/a&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Co-Locating Multiple Analysis Services Databases onto a Single Server&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In order to realize the benefits of increased hardware utilization when co-locating multiple Analysis Services databases onto a single server, we have implemented this consolidation option either with a single Analysis Services instance or with multiple Analysis Services instances. When consolidating multiple databases, we have generally utilized multiple query servers and one or more processing servers, and we have co-located the relational database source with its corresponding processing server. When we utilize multiple query servers, we use a number of techniques to load-balance user queries.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Important&lt;/b&gt;: We have only implemented this type of consolidation with small to medium sized Analysis Services databases; consolidating multiple very large or very complex databases onto a single instance simply has not made sense from a resource contention point of view. While the definition of a small or medium sized Analysis Services database is at best imprecise, our definition includes databases against which individual queries do not consume a significant portion of the server resources to resolve and which are primarily constrained by concurrency rather than query complexity. For more information about resource usage by queries, see the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://sqlcat.com/files/folders/401/download.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;SQL Server Analysis Services 2008 Performance Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Utilizing a Single Instance or Multiple Instances&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;We have rarely seen the need to spread Analysis Services databases across multiple instances of Analysis Services on a single physical server to improve query performance. We have used multiple instances of Analysis Services on a single instance when users are querying a database in one instance while the same database in a second instance is being synchronized. This configuration is used to enable user queries to be directed to the newly synchronized database on the second instance without downtime.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: Multiple instances of the SQL Server relational engine are sometimes used to manage the priority of queries. With Analysis Services, you can use the CoordinatorQueryBalancingFactor and CoordinatorQueryBoostPriorityLevel properties to prioritize long-running queries versus short queries. For more information, see the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://sqlcat.com/files/folders/401/download.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;SQL Server Analysis Services 2008 Performance Guide&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When choosing between querying all databases in a single instance versus spreading the databases across multiple instances on a single server, consider the following:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Utilizing a single instance rather than multiple instances for the same number of databases generally uses fewer system resources.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;All data security operations can be performed with database level permissions such that each database can have a different set of database administrators and users with read permissions.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Processing and synchronization operations are generally scripted and performed by SQL Server Agent or other scheduling tools, and they are executed using server-level permissions. For these types of operations, it generally does not make a difference whether a single or multiple instances are used.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;If you have different sets of instance-level administrators, you need multiple instances. For example, to perform a trace of data within a database or to clear the cache of a database, you must be a server-level administrator. If you need to allow the administrators of a database to trace queries in their database without being able to see the data in another database, you will need to place that database within another instance.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;If you have different instance-level properties for different databases, you need multiple instances. For example, you may want to have different priorities for long-running queries on one instance versus another instance. We have not, however, found this need to date in the customer organizations with which we have worked.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;a title="_Utilizing_Multiple_Query" name="_Utilizing_Multiple_Query"&gt;&lt;/a&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Utilizing Multiple Processing Servers and Query Servers&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;With multiple Analysis databases on a single physical server, the processing of any single database can affect the query performance of any query against any database on the server. A long-running query against a database can prevent the processing of that database from completing, unless the long-running query is forcibly terminated. Furthermore, within a single instance, a long-running query can prevent a processing operation from completing its commit phase and block subsequent queries as well as all new connections until the commit operation completes successfully or times out.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When consolidating databases onto a query server, we have generally utilized one or more processing servers and multiple query servers, and we have co-located the relational database source with its corresponding processing server. These servers provide the following benefits:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Processing servers – We have sometimes utilized multiple processing servers so that multiple databases can easily be processed simultaneously. Processing databases on servers that are not being used for querying insulates the query performance of all Analysis databases from resource contention due to the processing of any single database. Your need for one or more processing servers will depend upon the frequency with which each Analysis database is processed and the number of databases that you are processing. Co-locating the relational data warehouse with its corresponding processing server increases processing performance and server utilization for the reasons previously discussed.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Query servers – When using separate processing and query servers, we have always utilized multiple query servers for performance and availability. With multiple query servers, we can load balance our workload across multiple query servers to maximize performance or take a server offline without impacting availability. &lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Synchronizing a processed database from its processing server to multiple query servers adds minimal additional complexity or synchronization time compared to synchronization with a single query server. You can synchronize all query servers either simultaneously or in two (or more) groups. For example, you could synchronize a processed database to your first group of query servers while directing all new queries against that database to the second group of query servers. If you use Server Sync, this approach allows existing queries against that database to complete while synchronization is occurring and new queries to execute against the servers that are not being synchronized – to maximize query performance. After synchronization is complete for the first group, all queries against that database can then be directed to the first group of query servers so that the newest data is being queried while the second group of query servers is synchronized. This approach is illustrated in figures 1 and 2. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;&lt;img border="0" alt="" width="1" height="1" /&gt;&lt;img border="0" alt="Figure 1" align="left" src="http://sqlcat.com/controlpanel/photos/posteditor.aspx?sectionid=3&amp;amp;PostID=1084" width="1" height="1" /&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure1.jpg"&gt;&lt;img border="0" src="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure1.jpg" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="COLOR:#1f497d;mso-no-proof:yes;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Figure 1: Synchronizing First Query Server&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure2.jpg"&gt;&lt;img border="0" src="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure2.jpg" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Figure 2: Synchronizing Second Query Server&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Load Balancing User Queries for Performance and Availability&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When you utilize multiple query servers, you need to load balance the user queries across the query servers for performance and availability. We are taken several approaches to load balance user queries across multiple query servers. &lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Load Balancing at the Presentation Layer &lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;One approach is to load balance at the presentation layer. This approach utilizes multiple Web servers, with some Web servers directing MDX queries to one query server and other Web servers directing MDX queries to a second query server. This approach is discussed in &lt;/font&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/12/16/scale-out-querying-with-analysis-services.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Scale-Out Querying with Analysis Services&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and is illustrated in figure 3. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure3.jpg"&gt;&lt;img border="0" src="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure3.jpg" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Figure 3: Query Scale-Out Topology with Multiple Web Servers&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;This approach works well as long as the workload directed to each Web server is evenly balanced, but it does not provide load balancing where that is not the case. For example, suppose some users are connecting from Excel to one query server and through Reporting Services to a second query server. In this scenario, the load from each set of users may well not be balanced. &lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Load Balancing using Network Load Balancing Software or Hardware Solutions&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Another approach is to use network load balancing software, such as Microsoft’s Network Load Balancing (NLB) software solution, or network load balancing hardware, such &lt;/font&gt;&lt;a href="http://www.f5.com/"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;F5&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. &lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Using Network Load Balancing Software&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;NLB is an optional component in the Windows Server 2008 and Windows Server 2008 R2 operating systems and is built into Windows Server 2003. NLB load balances network traffic among multiple servers in an IP cluster. For more information, see &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc732855(WS.10).aspx"&gt;&lt;font size="3" face="Calibri"&gt;Windows Server 2008 NLB&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc759510(WS.10).aspx"&gt;&lt;font size="3" face="Calibri"&gt;Windows Server 2003 NLB&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;NLB is a software solution to create a cluster of machines, each with two IP addresses – a private unique one and a virtual one that is shared by all machines in the cluster. Each machine in the cluster runs an algorithm that determines whose turn is next in responding to requests. These machines also exchange heartbeats with each other, so they all know if one server goes down and won’t allocate any more requests to such a machine until it is healthy again. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;NLB supports a number of affinity options depending on your version of Windows Server. When no affinity is specified, all network requests are load-balanced across the cluster without respect to their source. In general, when affinity is enabled, all client requests from the same IP address are responded to by the same cluster host. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;However, NLB has several limitations when working with multiple Analysis Services query servers, particularly when each query server has a subset of the Analysis Services databases to which queries are being directed (for example, all databases are located on at least two servers for availability, but all databases are not located on all servers):&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;NLB load balances at the IP address level, rather than at the database level. For NLB to load balance across multiple Analysis Services query servers, each must contain the same set of databases.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;NLB monitors availability at the server level, rather than at the Analysis Service process or database level. As a result, if the Analysis Services process is not responding for any reason, NLB will continue to forward user queries to the nonresponsive Analysis Services query server. In addition, as an Analysis Services database is being updated or is out-of-date, NLB has no ability to remove that database from the cluster. Rather, an NLB administrator would have to remove the entire server from the cluster during an Analysis Service synchronization process.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;NLB has no ability to monitor processor load on each of the servers in an NLB cluster and direct user queries to the server with the least load.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Due to these limitations, NLB is not our recommended solution for load balancing user requests across multiple Analysis Services query servers.&lt;/font&gt;&lt;/p&gt;
&lt;h5 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#243f60" size="3" face="Cambria"&gt;Using Network Load Balancing Hardware&lt;/font&gt;&lt;/h5&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Network load balancing hardware solutions have more sophisticated affinity options, such as cookie persistence, and they include dynamic load balancing algorithms that track server performance. However, these solutions do not solve the problem of removing a single database on an Analysis Services query server from the cluster while continuing to direct user queries to the other databases on that query server. In addition, these hardware solutions do not, out of the box, monitor the availability of the Analysis Services process itself. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Due to these limitations, using network load balancing hardware solutions is not our recommended solution for load balancing user requests across multiple Analysis Services query servers.&lt;/font&gt;&lt;/p&gt;
&lt;h4 style="MARGIN:10pt 0in 0pt;"&gt;&lt;em&gt;&lt;font color="#4f81bd" face="Cambria"&gt;Load Balancing Using a Custom Load Balancing Solution&lt;/font&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When using multiple query servers with multiple databases on each server, we have found the need to load balance queries at the database level as well as the need to monitor service availability at the Analysis Services level. To accomplish this, we wrote a custom Analysis Services load balancing solution (ASLB) that consists of a load balancing Web service backed by a SQL Server load balancing metadata database to load balance MDX queries across multiple query servers. The metadata database contains information about each Analysis Services query server to which queries can be redirected by the Web service. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: This load balancing Web service can be clustered using NLB for availability, and the load balancing metadata database can also be mirrored for availability. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The ALSB solution solves the problems previously discussed as follows: &lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Process availability monitoring&lt;/b&gt; – A SQL Server Agent job monitors the availability of the Analysis Service process on each query server. If the process fails to respond, this information is recorded in the metadata database so that no further user queries are directed to that instance of Analysis Services until it is healthy.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Resource Utilization Monitoring&lt;/b&gt; – A SQL Server Agent job monitors the processor utilization on each query server and records this information into the metadata database. The Web service uses this information to direct user queries to a query server that is not overloaded and which has a copy of the requested database.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;HTTP Redirection&lt;/b&gt; – As illustrated in figure 4, the user application (such as Excel or Reporting Services) connects to the ASLB Web service specifying a particular Analysis Services database in the URL. The Web service performs a table lookup to retrieve the name of a query server that is running, that contains the most up-to-date version of the requested database, and that has the lowest workload. The load balancing Web service constructs the URL for the appropriate Analysis server and redirects the user application to that URL.&lt;a href="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure4.jpg"&gt;&lt;img border="0" src="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure4.jpg" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;&lt;/font&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Figure 4: Individual Query Using the Analysis Services Load Balancer&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Removing individual databases from a cluster&lt;/b&gt; – ASLB enables you to remove a database from being available to accept new queries by simply modifying a value in the appropriate table in the metadata database. Figure 5 illustrates this concept during the synchronization of cube B from the processing server to a query server, directing all new queries to the second query server until server synchronization completes. Meanwhile, queries to all other databases on the first query server continue unabated, enabling you to drain a server workload without terminating running queries.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure5.jpg"&gt;&lt;img border="0" src="http://sqlcat.com/blogs/technicalnotes/ASLB_Figure5.jpg" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt 0.5in;" class="MsoSubtitle"&gt;&lt;em&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Figure 5: Querying and Processing Using the Analysis Services Load Balancer&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-fareast;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;font size="3"&gt;&lt;strong&gt;Utilizing different databases on each server&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;– &lt;font size="3"&gt;If you utilize more than two query servers, each query server does not have to have the same list of Analysis Services databases because ASLB has a record in the metadata database of which servers have which databases. For example, if you have four query servers, you can have your most heavily queried databases on all four query servers and your least frequently queried servers on only two of the query servers. This configuration provides load balancing and availability benefits. Finally, you can also have Analysis Services databases on multiple query servers and use ASLB to load balance among some of these query servers while leaving other query servers “in reserve” – for example, bringing them online for a particular database only during peak time periods. The query servers “in reserve” can also be virtual servers that are provisioned automatically based on demand (more on this in another paper).&lt;/font&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Important&lt;/b&gt;: This solution uncovered several bugs that have been fixed in the most recent cumulative updates to SQL Server 2008 Service Pack 1 (SP1). To receive these bug fixes, you should patch your SQL Server using Service Pack 1 Cumulative update 4 or newer. For more information about the newest cumulative updates, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/970365"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Knowledge Base article #970365&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: The code for the ASLB solution as well as an installation and configuration document is available for download on the Microsoft download center at &lt;/font&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c7737e80-8dfd-4cb6-a27e-69bbe03b2f9e"&gt;&lt;font size="3" face="Calibri"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c7737e80-8dfd-4cb6-a27e-69bbe03b2f9e&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;a title="_Utilizing_Hyper-V_in" name="_Utilizing_Hyper-V_in"&gt;&lt;/a&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Links&lt;/font&gt;&lt;/h1&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;SQL Server Consolidation at Microsoft&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt; 
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd557540.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;http://technet.microsoft.com/en-us/library/dd557540.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; &lt;/font&gt;&lt;/p&gt;&lt;i&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Green IT in Practice: SQL Server Consolidation in Microsoft IT&lt;/span&gt;&lt;/i&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/architecture/dd393309.aspx"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;font color="#0000ff"&gt;http://msdn.microsoft.com/en-us/architecture/dd393309.aspx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt; &lt;/span&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Conclusions&lt;/font&gt;&lt;/h1&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Server consolidation in the Analysis Services environment can be used to increase processing performance, fully utilize server resources, reduce management costs, and save energy. Analysis Services server consolidation may consist of co-locating the relational data warehouse with the Analysis Services instance and / or standardizing on Analysis Services processing and query servers. To realize these benefits and mitigate the risks, you must manage the resource contention inherent in Analysis Services consolidation. Properly managed, Analysis Services server consolidation can be used to increase performance as well as availability. &lt;/span&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1082" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Scalability/default.aspx">Scalability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/OLAP/default.aspx">OLAP</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Configuration/default.aspx">Configuration</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Disaster+Recovery/default.aspx">Disaster Recovery</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/ASLB/default.aspx">ASLB</category></item><item><title>Upgrading Replication from SQL Server 2000 32-Bit to SQL Server 2008 64-Bit without re-initialization</title><link>http://sqlcat.com/technicalnotes/archive/2010/02/08/upgrading-replication-from-sql-server-2000-32-bit-to-sql-server-2008-64-bit-without-re-initialization.aspx</link><pubDate>Mon, 08 Feb 2010 10:22:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1080</guid><dc:creator>AlexeiK</dc:creator><slash:comments>1</slash:comments><description>&lt;h6&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;&lt;i&gt;&lt;span&gt;Author: &lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-STYLE:normal;"&gt;Alexei Khalyako&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h6&gt;
&lt;h6&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;&lt;i&gt;&lt;span&gt;Contributors&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;/i&gt;&lt;span style="FONT-STYLE:normal;"&gt;Dmitry Artemov, Sergey Pyrin&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h6&gt;
&lt;h6&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;&lt;span&gt;&lt;i&gt;Technical Reviewers: &lt;/i&gt;&lt;/span&gt;&lt;span style="FONT-STYLE:normal;"&gt;Vijay Tandra Sistla&lt;/span&gt;&lt;span style="FONT-STYLE:normal;"&gt;, Mike Weiner, Mark Souza&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h6&gt;
&lt;h6&gt;&lt;span&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;&lt;i&gt;Editor: &lt;/i&gt;Beth Inghram&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h6&gt;
&lt;h6&gt;&lt;span&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/h6&gt;&lt;span&gt;&lt;font size="2"&gt;&lt;font color="#243f60"&gt;&lt;font face="Cambria"&gt;
&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;font size="5"&gt;&lt;font color="#365f91"&gt;Summary&lt;/font&gt;&lt;/font&gt;&lt;/h1&gt;
&lt;h6&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h6&gt;
&lt;h6&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&amp;nbsp; 
&lt;p&gt;In this article we summarized the experiences we gathered during the planning and upgrade of a customer&amp;#39;s project. The customer is one of the largest retail shops in its area. Their architecture is made up of a main server, which is located at headquarters and hosts several hundred publications containing over a thousand articles. Regional stores are located all over the country acting as subscribers for the publications hosted on the main server. Based on the business needs and infrastructure limitations the customer set the following goals for the project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Install all SQL Server instances on the Windows Server® 2003 x64 platform.&lt;/li&gt;
&lt;li&gt;Upgrade the publisher and distributor from the 32-bit edition of SQL Server 2000 to the 64-bit edition of SQL Server 2008. (Upgrading subscribers was not a goal of this phase of the project.)&lt;/li&gt;
&lt;li&gt;Avoid replication re-initialization. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This paper describes how to upgrade replication members such as Publishers and Distributors from the 32-bit edition of SQL Server 2000 to the 64-bit edition of SQL Server 2008. Both clustered and nonclustered environments are discussed.&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h6&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1080" width="1" height="1"&gt;</description><enclosure url="http://sqlcat.com/technicalnotes/attachment/1080.ashx" length="1422848" type="application/msword" /></item><item><title>SQL Server Consolidation Guidance</title><link>http://sqlcat.com/whitepapers/archive/2010/02/04/sql-server-consolidation-guidance.aspx</link><pubDate>Fri, 05 Feb 2010 01:27:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1079</guid><dc:creator>Mike Weiner</dc:creator><slash:comments>0</slash:comments><description>&lt;p class="MsoNormal"&gt;&lt;strong&gt;Writers: &lt;/strong&gt;Sung Hsueh, Antony Zhong, Madhan Arumugam&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Technical Reviewers: &lt;/strong&gt;Claude Lorenson, Clifford Dibble, Lindsey Allen, Sambit Samal, Sethu Kalavakur, Prem Mehra, Sameer Tejani, Il-Sung Lee, Jack Richins, Brian Dewey, Mathew John, Jamie Reding, Jonathan Morrison, Omri Bahat, S Muralidhar, Haydn Richardson&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Editor&lt;/strong&gt;: Beth Inghram&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Published&lt;/strong&gt;: November 2009&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Applies to:&lt;/strong&gt; SQL Server 2008 and SQL Server 2008 R2&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;Summary: &lt;/strong&gt;The goal of this white paper is to provide a framework for choosing among virtualization, multi-database, and multi-instance consolidation strategies for SQL Server Database Engine OLTP applications by highlighting some of the key decision points based on technical analysis. Some foundational topics and terminology will be included to provide the basis for the discussion, because some terms or strategies might be worded differently in other papers.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;The entire paper can be found at: &lt;a title="SQL Server Consolidation Guidance" href="http://msdn.microsoft.com/en-us/library/ee819082.aspx" target="_blank"&gt;SQL Server Consolidation Guidance&lt;/a&gt;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1079" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Consolidation/default.aspx">Consolidation</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Featured/default.aspx">Featured</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Guidance/default.aspx">Guidance</category></item><item><title>Full Text Indexing Terabytes of Files with SQL Server and Cloud Storage</title><link>http://sqlcat.com/msdnmirror/archive/2010/02/02/full-text-indexing-terabytes-of-files-with-sql-server-and-cloud-storage.aspx</link><pubDate>Wed, 03 Feb 2010 02:52:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1071</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>Author: Darko Sancanin, Nicholas Dritsas Reviewers and contributors: Lubor Kollar, Stuart Ozer, Michael Thomassy Business Case There are currently over 50 million files (over 10 Terabytes of data) that the customer is migrating into a custom project management application (for international customers) that can be accessed via the application and can be searched upon. SQL Server 2008 full text indexing is used to index the content of these files which gives them rich searching capabilities within...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2010/02/02/full-text-indexing-terabytes-of-files-with-sql-server-and-cloud-storage.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1071" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/msdnmirror/archive/tags/Full+Text+Search/default.aspx">Full Text Search</category><category domain="http://sqlcat.com/msdnmirror/archive/tags/cloud+storage/default.aspx">cloud storage</category></item><item><title>10 рекомендаций по использованию служб интеграции SQL Server</title><link>http://sqlcat.com/whitepapers_russian/archive/2010/01/26/10-sql-server.aspx</link><pubDate>Tue, 26 Jan 2010 12:58:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1056</guid><dc:creator>AlexeiK</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Авторы:&lt;/b&gt; Томас Кайзер (Thomas Kejser), Дэнни Ли (Denny Lee)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Соавторы:&lt;/b&gt; Раньюин Мао (Runying Mao)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Технические редакторы:&lt;/b&gt; Бурцин Пэйтел (Burzin Patel), Кевин Кокс (Kevin Cox), Питер Карлин (Peter Carlin), Марк Суза (Mark Souza), Ричард Ткачук (Richard Tkachuk), Лен Уайатт (Len Wyatt), Линдcи Аллен (Lindsey Allen), Прем Мехра (Prem Mehra), Николас Дритсас (Nicholas Dritsas), Карл Рабилер (Carl Rabeler), Кан Ченг (Kun Cheng), Стюарт Озер (Stuart Ozer), Дональд Фармер (Donald Farmer)&lt;/span&gt; 
&lt;/p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;p class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Дата публикации:&lt;/b&gt; 10.01.2008&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Дата обновления:&lt;/b&gt; 12.12.2008&lt;/span&gt; 
&lt;p class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Вероятно, вам приходилось слышать миф о том, будто службы интеграции Microsoft® SQL Server® Integration Services (SSIS) не масштабируются? В ответ мы для начала спросим: «А нужно ли масштабировать вашу систему для объемов, превышающих 4,5 миллионов строк транзакций продаж в секунду?» Службы интеграции SQL Server — это высокопроизводительная платформа для извлечения, преобразования и загрузки данных (ETL), способная масштабироваться для самых требовательных сред. И, как описано в документе Мировой рекорд производительности SSIS ETL, службы интеграции SQL Server могут обрабатывать 4,5 миллионов строк транзакций продаж в секунду.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Чтобы оптимизировать вашу рабочую среду, мы подготовили 10 лучших рекомендаций по использованию служб интеграции SQL Server&amp;nbsp;2008. Большинство из них применимы и к SQL Server&amp;nbsp;2005.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/52/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt; SSIS — это конвейер обработки в памяти, поэтому убедитесь, что все транзакции выполняются в оперативной памяти.&lt;/b&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Службы интеграции используются в наборе функциональности SQL Server в качестве гибкого, надежного конвейера, способного эффективно проводить построчные вычисления и разбор данных непосредственно в оперативной памяти.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Хотя стадии извлечения и загрузки конвейера задействуют диск (при считывании и записи соответственно), само преобразование должно проходить исключительно в памяти. Если по каким-то причинам при преобразовании будет задействовано дисковое пространство (например, при больших операциях сортировки), производительность значительно ухудшится. Поэтому пакеты следует секционировать и фильтровать в них данные таким образом, чтобы все преобразования умещались в оперативной памяти.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Чтобы проверить, помещаются ли пакеты в оперативной памяти, можно просмотреть счетчик производительности служб интеграции &lt;b&gt;Выгружено буферов&lt;/b&gt;, исходное значение которого равно 0. Большее нуля значение указывает, что модуль начал выгружать данные на диск. Дополнительные сведения см. в разделе &lt;a href="http://blogs.msdn.com/sqlperf/archive/2007/05/01/something-about-ssis-performance-counters.aspx"&gt;Некоторые сведения о датчиках производительности служб интеграции SQL Server.&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/53/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Планируйте объемы обработки, исходя из понимания&lt;span&gt;&amp;nbsp; &lt;/span&gt;использования ресурсов.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Службы интеграции SQL Server предназначены для высокоскоростной построчной обработки больших объемов данных в оперативной памяти. Поэтому важно понимать механизм использования ресурсов, то есть ЦП, оперативной памяти, ресурсов ввода-вывода и сетевого трафика всеми пакетами.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;b&gt;Ограничение по производительности ЦП&lt;/b&gt;: выясните, какая доля загрузки ЦП приходится на службы интеграции и насколько в целом ЦП используется сервером SQL Server во время их выполнения. Последнее особенно важно, если SQL Server и службы интеграции расположены на одном компьютере, так как в случае конфликта за ресурсы приоритет обычно остается за SQL Server, в результате данные служб интеграции выгружаются на диск, что замедляет преобразование.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Самым важным будет счетчик монитора производительности ( perfmon) &lt;b&gt;Процесс / % процессорного времени (Общий)&lt;/b&gt;. Значение этого счетчика следует определить для процессов &lt;b&gt;sqlservr.exe &lt;/b&gt;и &lt;b&gt;dtexec.exe&lt;/b&gt;. &lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Если службам интеграции не удается задействовать около 100% ресурсов ЦП, это может указывать на следующее: &lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;u&gt;Конфликт приложений:&lt;/u&gt; например, SQL Server использует значительную часть ресурсов процессора, вследствие чего они недоступны службам интеграции.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;u&gt;Конфликт за оборудование:&lt;/u&gt; часто происходит при недостаточной мощности подсистемы дискового ввода-вывода или недостаточном для обрабатываемых данных объеме оперативной памяти. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;u&gt;Конструктивные ограничения:&lt;/u&gt; применяемый пакет служб интеграции спроектирован таким образом, что в нем не задействуется параллелизм или в нем используется слишком много однопоточных заданий.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Ограничение по пропускной способности сети&lt;/b&gt;: службы интеграции могут передавать данные лишь с максимальной обеспечиваемой сетью скоростью. Поэтому следует проверить топологию сети и убедиться, что путь передачи данных от источника к месту назначения отличается низкой латентностью и высокой пропускной способностью.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;При настройке топологии сети будут полезны следующие счетчики монитора производительности perfmon:&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Сетевой интерфейс / Текущая пропускная способность: &lt;/b&gt;этот счетчик содержит приблизительное значение текущей используемой полосы пропускания.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Сетевой интерфейс / всего байтов/сек:&lt;/b&gt; скорость передачи и приема байтов в каждом из сетевых адаптеров.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Сетевой интерфейс / Передач/сек&lt;/b&gt;: сообщает, сколько пакетов отправляется за секунду. Если значение счетчика приближается к 40&amp;nbsp;000 операций, необходимо включить в конфигурацию компьютера еще один сетевой адаптер и настроить совместную работу сетевых адаптеров.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Вышеуказанные счетчики позволяют определить уровень приближения к максимальной пропускной способности системы. Зная эту степень, можно принимать решения по планированию расширения мощностей, будь то установка гигабитных сетевых интерфейсов, увеличение числа устанавливаемых в сервера сетевых адаптеров или создание отдельных сетевых адресов, специально предназначенных для трафика ETL. &lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Ограничение по дисковому вводу-выводу:&lt;/b&gt; Если обеспечено минимальное взаимодействие служб интеграции с диском, обращение к диску будет осуществляться только при чтении исходных и записи целевых данных. В случае медленной подсистемы ввода-вывода операции чтения и особенно записи могут быть «узким местом» и ограничивать общую производительность.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Поскольку настройка ввода-вывода выходит за рамки этой технической статьи, дальнейшие сведения см. в разделе Лучшие методики настройки ввода-вывода до развертывания. &lt;/span&gt;
&lt;p class="MsoPlainText"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Помните, что система ввода-вывода характеризуется не только объемом (например, «требуется 10 ТБ»), но и обеспечиваемой скоростью непрерывного обмена данными (например, «требуется выполнение 20&amp;nbsp;000 операций ввода-вывода в секунду»).&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;b&gt;Ограничение по памяти: &lt;/b&gt;При использовании служб интеграции очень важен ответ на вопрос «Сколько памяти использует мой пакет?»&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;Основными счетчиками для служб интеграции и для SQL Server являются:&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Процесс / Байты исключительного пользования (DTEXEC.exe)&lt;/b&gt; — Объем памяти, используемой в данный момент службами интеграции. Эта память не может использоваться совместно с другими процессами.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Процесс / Рабочее множество (DTEXEC.exe) &lt;/b&gt;—&lt;span&gt;&amp;nbsp; &lt;/span&gt;Общий объем памяти, выделенной службам интеграции.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;SQL Server: Диспетчер памяти / Общая память сервера:&lt;/b&gt; Общий объем памяти, выделенный для SQL Server. Поскольку SQL Server может резервировать память другим способом, с помощью AWE API, этот счетчик точнее всего указывает общий объем используемой SQL Server памяти. Чтобы лучше понять принципы выделения памяти для SQL Server, обратитесь к блогу Славы Окса (Slava Oks).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Память / Чтений страниц/сек &lt;/b&gt;— представляет общую нагрузку на память в системе. Если это значение постоянно превышает 500, то система испытывает нехватку памяти.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/54/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Базовая скорость извлечения исходной системы.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Выясните особенности своей исходной системы и скорость извлечения из нее данных. В конце концов, никакая настройка не поможет службам интеграции обрабатывать данные быстрее, чем они извлекаются, ведь чтобы преобразовать данные, их необходимо сначала прочесть. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Измерьте скорость работы исходной системы, создав очень простой пакет, считывающий данные из источника с назначением в «Счетчике строк»:&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/sample/images/389/original.aspx" alt="" border="0" width="210" height="205" /&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Запустите пакет из командной строки (DTEXEC) и замерьте время, которое потребуется на выполнение задания. Для точного измерения времени воспользуйтесь выводом журнала служб интеграции. Требуется вычислить число строк в секунду:&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Строк/сек = Счетчик строк/времяПоток данных&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Исходя из этого значения определяется максимальное число строк, которое можно считать из источника за секунду; эта скорость будет также предельной скоростью обработки данных. Чтобы увеличить этот показатель, можно сделать следующее:&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;i&gt;Обновить драйверы и их конфигурации&lt;/i&gt;: Убедитесь, что используются самые последние драйверы (и их конфигурации) для сети, источника данных и дисковой подсистемы ввода-вывода. Нередко сетевые драйверы, устанавливаемые на сервере по умолчанию, не настроены оптимальным образом для конкретного сетевого стека, что понижает производительность при большом числе одновременных сетевых запросов. Стоит отметить, что на 64-разрядных системах во время разработки могут загружаться 32-разрядные драйверы; убедитесь, что во время эксплуатации используются 64-разрядные драйверы. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;i&gt;&amp;nbsp;Создать несколько подключений:&lt;/i&gt; Чтобы преодолеть ограничения драйверов, можно попробовать создать несколько подключений к источнику данных. Пока источник сможет обслуживать такое количество одновременных соединений, пропускная способность при одновременном запуске нескольких процессов загрузки будет расти. Если одновременные обращения будут вызывать блокировки, рассмотрите возможность секционирования источника и настройки пакетов на считывание из различных секций; при этом нагрузка распределится более равномерно.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;i&gt;Используйте несколько сетевых адаптеров&lt;/i&gt;: Если «узким местом» системы является сеть, причем вы уже перешли на гигабитные сетевые карты и маршрутизаторы, возможно, проблему можно решить, применяя на серверах по несколько сетевых адаптеров. Помните, что настраивать среды с несколькими сетевыми интерфейсами следует внимательно, иначе могут возникнуть сетевые конфликты.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/55/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Оптимизируйте источник данных SQL, преобразования типа «Уточняющий запрос» и назначение данных&lt;/b&gt;.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/sample/images/391/original.aspx" alt="" border="0" width="273" height="175" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;/p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;При выполнении инструкций SQL в службах интеграции (как показано выше в диалоговом окне Режим доступа к данным), будь то инструкции чтения данных из источника, выполнения преобразования типа «Уточняющий запрос» или изменения таблиц, некоторые стандартные методы оптимизации могут существенно улучшить производительность:&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Используйте подсказки NOLOCK или TABLOCK, чтобы устранить накладные расходы, связанные с блокировкой. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Чтобы оптимизировать использование памяти, выбирайте с помощью инструкции SELECT лишь действительно необходимые столбцы. При выборе с помощью SELECT всех столбцов таблицы (например, инструкцией SELECT * FROM) на получение и хранение столбцов, которые так и не будут использованы, будут зря израсходованы ресурсы памяти и пропускной способности. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;По возможности выполняйте преобразования данных типа datetime в пределах исходной или целевой баз данных, так как внутри служб интеграции это преобразование расходует больше ресурсов.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;В службах интеграции SQL Server&amp;nbsp;2008 введен новый компонент — общий кэш уточняющих запросов. Он обеспечивает высокоскоростной кэш с общим доступом для параллельных конвейеров (см. пункты №8 и №10 ниже).&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Если службы интеграции и SQL Server выполняются на одном сервере, используйте в качестве назначения SQL Server вместо OLE DB, чтобы повысить производительность.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Размер фиксации 0 работает быстрее всего для массовых неиндексированных назначений, так как фиксируется лишь одна транзакция. Если использовать значение 0 невозможно, выберите максимальное возможное значение размера фиксации, чтобы сократить накладные издержки при записи многих пакетов.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Используйте размер фиксации, меньший 5000, чтобы избежать эскалации блокировки при вставке; не забывайте, что в SQL Server&amp;nbsp;2008 теперь можно включать и отключать эскалацию блокировок на уровне объектов, но этой функцией следует пользоваться осторожно.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;* Неиндексированная вставка обычно быстрее, чем с применением кластеризованного индекса. Это означает, что при изменении значительной части таблицы назначения может быть выгодно удалить индексы, а затем пересоздать их; чтобы выяснить, какой из способов быстрее, необходимо проверить длительность операции вставки без удаления индексов и с удалением и последующим перестроением всех индексов.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Используйте секционирование и команду секционирования SWITCH; то есть загрузите рабочую таблицу, содержащую одну секцию, и переключите ее командой SWITCH в главную таблицу после построения индексов и наложения ограничений.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Еще одна очень полезная ссылка от рабочей группы по производительности SQL — &lt;a href="http://blogs.msdn.com/sqlperf/archive/2007/04/24/getting-optimal-performance-with-integration-services-lookups.aspx"&gt;Как добиться оптимальной производительности при работе уточняющих запросов служб интеграции&lt;/a&gt;. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/56/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Оптимизируйте производительность сети.&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Одним из ключевых свойств сети является размер передаваемых в соединении пакетов. По умолчанию он равен 4096 байт. Это значит, что для каждых 4 КБ данных собирается отдельный сетевой пакет. Как указано в описании свойства &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.packetsize.aspx"&gt;SqlConnection.PacketSize&lt;/a&gt; библиотеки классов .NET Framework, при увеличении размера пакета производительность возрастет, так как для передачи больших наборов данных потребуется меньше операций чтения и записи.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Если ваша система по сути является транзакционной, с большим количеством операций чтения или записи данных малого объема, то производительность улучшится при уменьшении этого значения.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Так как при работе служб интеграции передаются большие объемы данных, желательно минимизировать сетевые накладные расходы. Максимальную скорость обеспечивает значение размера пакета, равное 32К (32767 байт). Хотя размер сетевых пакетов можно настроить на уровне сервера с помощью хранимой процедуры &lt;b&gt;sp_configure&lt;/b&gt;, делать этого не следует. У администратора базы данных могут быть причины для использования на сервере параметра размера, отличного от 32K. Вместо этого измените настройки сервера в диспетчере соединений, как показано ниже. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/sample/images/388/original.aspx" alt="" border="0" width="418" height="486" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Кроме того, чтобы настроить сеть, можно использовать настройки сетевого сходства (network affinity) на уровне операционной системы. При использовании значительной пропускной способности это иногда помогает повысить производительность.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Что касается собственно сети, можно, совместно с сетевыми администраторами , включить поддержку в сети кадров крупного размера (jumbo frames), при этом изменив объем фрейма от размера по умолчанию, составляющего 1500 байт, до 9000 байт. Применяя фреймы крупного размера, можно дополнительно уменьшить количество сетевых операций, необходимых для перемещения больших наборов данных.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/57/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Используйте типы данных продуманно.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;
&lt;p class="MsoPlainText"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Это самая очевидная из 10 перечисленных здесь рекомендаций. Но она настолько важна, что мы вынуждены упомянуть ее отдельно. Следуйте этим рекомендациям:&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Используйте как можно более малые типы данных, тогда для преобразования потребуется выделять меньше памяти.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Не злоупотребляйте приведением типов данных — это лишь ухудшит производительность. Используйте типы данных, соответствующие типам в источнике или назначении, а необходимые приведения типов задавайте явным образом. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Следите за точностью при использовании типов &lt;b&gt;money, float&lt;/b&gt; и &lt;b&gt;decimal&lt;/b&gt;. Кроме того, не забывайте, что тип &lt;b&gt;money&lt;/b&gt; работает быстрее, чем тип &lt;b&gt;decimal&lt;/b&gt;, при этом тип &lt;b&gt;money&lt;/b&gt; позволяет меньше заботиться о точности, чем тип &lt;b&gt;float&lt;/b&gt;. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/58/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Измените структуру решения.&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Существуют определенные задачи, которые лучше всего решать с помощью служб интеграции, в то время как для других задач эффективнее использовать иные средства. Выбор инструмента должен быть основан на действительном понимании сути проблемы и оптимального способа ее решения. Чтобы сделать правильный выбор, учтите следующие рекомендации:&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Не выполняйте сортировку внутри служб интеграции без крайней необходимости. Чтобы выполнить сортировку, службы интеграции выделяют в памяти пространство для всего преобразуемого набора данных. По возможности выполните предварительную сортировку данных перед их подачей на конвейер. Если сортировка данных необходима, постарайтесь сортировать на конвейере только маленькие наборы данных. Вместо сортировки данных средствами служб интеграции используйте инструкции SQL с предложением ORDER BY для сортировки больших наборов данных в базе данных; отмечайте выходные данные как отсортированные, изменив метаданные конвейера служб интеграции для источника данных. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Иногда использование Transact-SQL оказывается более быстрым методом, чем обработка данных в службах интеграции. Как правило, все операции на основе наборов в Transact-SQL выполняются быстрее, так как задачу можно преобразовать в формулировку реляционной алгебры (домены и кортежи), для работы с которой оптимизирован SQL Server. Кроме того, оптимизатор SQL Server автоматически применяет высокую степень параллелизма и управление памятью к операциям на основе наборов — в службах интеграции эти операции, возможно, придется выполнять вручную. Типичными операциями на основе наборов являются следующие: &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Инструкции UPDATE на основе наборов, которые значительно эффективнее построчных вызовов OLE&amp;nbsp;DB.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Статистические вычисления, например, GROUP BY или SUM. Обычно с помощью Transact-SQL они выполняются быстрее, чем аналогичные вычисления, выполняемые в оперативной памяти на конвейере.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Обнаружение разности — это механизм, изменяющий существующие строки в целевой таблице вместо перезагрузки всей таблицы. Для выполнения обнаружения разности можно воспользоваться механизмом обнаружения изменений, например, новой функцией SQL Server&amp;nbsp;2008 — системой отслеживания измененных данных (CDC). Если эта функция недоступна, обнаружение разности придется выполнять путем сравнения исходных входных данных с целевой таблицей. Такая операция может потребовать значительного объема ресурсов, включая поддержание специальных индексов и контрольных сумм, предназначенных исключительно для этой цели. Часто более быстрым методом будет простая перезагрузка целевой таблицы. Как правило, если целевая таблица изменилась больше, чем на 10%, ее перегрузка может оказаться более быстрой, чем обнаружение разности.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/59/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Разделите задачу на составляющие.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Один из главных принципов масштабируемых вычислений — разделение задач на меньшие, проще управляемые фрагменты. Это упрощает оценку размера задачи, а также позволяет ускорить решение за счет применения параллельных процессов.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;При работе с ETL исходные данные желательно разделять на меньшие фрагменты равного размера. Равный размер очень важен; если размер фрагментов не будет совпадать, то в результате придется дожидаться завершения работы одного из процессов (работающего с самой большой частью). Например, на графике ниже показано, что четыре процесса работают над секциями одинакового размера; эти четыре процесса одновременно закончат обработку данных за январь 2008 г. и перейдут к данным февраля 2008 г. Но если бы секции данных были разного размера, три процесса завершили бы работу и ожидали завершения четвертого процесса, который работал бы значительно дольше. Общее время выполнения определяется временем обработки самого большого из фрагментов данных.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/sample/images/390/500x375.aspx" alt="" border="0" width="500" height="273" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Чтобы создать диапазоны секций равного размера, используйте в качестве механизма секционирования временной период или измерения (например, географическое расположение). Если первичный ключ является инкрементальным значением, например, IDENTITY или другим значением с приращением, можно воспользоваться функцией остатка от деления. Если столбцы, подходящие для секционирования по ним, отсутствуют, создайте хэш на основе значения строк и выполните секционирование по значению хэша. Дополнительные сведения о хэшировании и секционировании см. в техническом документе&lt;a href="http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx"&gt; Оптимизация числа различных объектов служб Analysis Services&lt;/a&gt;; хотя документ посвящен числу различных объектов в службах Analysis Services, в нем также подробно рассматривается техника секционирования по хэшу.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Несколько дополнительных советов по секционированию:&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Применяйте секционирование в целевой таблице. Это позволит параллельно запускать несколько версий одного и того же пакета, вставляющих данные в различные секции целевой таблицы. При использовании секционирования очень полезна инструкция SWITCH. Она не только повышает скорость параллельной загрузки, но и позволяет эффективно перемещать данные. Дополнительные сведения см. в статье электронной документации по SQL Server &lt;a href="http://msdn.microsoft.com/en-us/library/ms191160.aspx"&gt;Эффективная передача данных с помощью переключения секций&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;В соответствии с вышесказанным, пакеты следует разрабатывать таким образом, чтобы они принимали параметр, указывающий обрабатываемую секцию. Это позволит запустить одновременно несколько экземпляров пакета с различными значениями параметра и секции; при этом выполнение задачи ускорится за счет параллелизма&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;Запустить несколько выполнений можно из командной строки с помощью команды START. Краткий пример кода, запускающего параллельно несколько инструкций robocopy, можно найти в технической статье &lt;a href="http://sqlcat.com/technicalnotes/archive/2008/01/17/sample-robocopy-script-to-customer-synchronize-analysis-services-databases.aspx"&gt;Образец скрипта Robocopy для пользовательской синхронизации баз данных служб Analysis Services.&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Большинство современных серверов — это многоядерные SMP-системы. Для полной загрузки процессоров на таком сервере необходимо применение высокого уровня параллелизма. Оно обеспечивается секционированием задачи и одновременным выполнением многих процессов. Дополнительные сведения о том, как это реализуется, см. в статье &lt;a href="http://blogs.msdn.com/sqlcat/archive/2008/02/29/ssis-2008-world-record-etl-performance.aspx"&gt;Мировой рекорд производительности SSIS ETL.&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/60/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Минимизируйте количество журналируемых операций.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;При вставке данных в целевую базу данных SQL Server по возможности минимально используйте журналируемые операции. Если данные вставляются в базу данных в режиме полного журналирования, файл журнала будет увеличиваться очень быстро, так как каждая вставляемая в таблицу строка будет также попадать и в журнал.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Поэтому при разработке пакетов служб интеграции учитывайте следующее:&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Постарайтесь обрабатывать все потоки данных в массовом режиме, а не построчно. В массовом режиме минимизируется число записей, добавляемых в файл журнала. Это сокращение освободит ресурсы ввода-вывода для прочих операций вставки и минимизирует ограничения по производительности, вызываемые записью в журнал. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Если необходимо выполнять операции удаления, организуйте данные таким образом, чтобы можно было обрезать (TRUNCATE) таблицу вместо выполнения операции DELETE. В последнем случае для каждой удаляемой строки в журнал будет вноситься запись, в то время как при обрезании данные из таблицы просто удаляются и в журнал вносится единственная запись о факте выполнения TRUNCATE. Вопреки устоявшемуся мнению, инструкция TRUNCATE может участвовать в транзакции. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Используйте инструкцию SWITCH и секционирование. Если необходимо переместить секции, можно использовать инструкцию SWITCH (чтобы включить новую секцию или исключить самую старую), при этом в журнал вносится минимальное количество записей.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Будьте осторожны при использовании инструкций DML; при совмещении инструкций DML с инструкциями INSERT минимальное журналирование прекращается. &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/61/original.aspx" alt="" border="0" width="34" height="34" /&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;b&gt;Правильно планируйте и распределяйте выполнение задачи.&lt;/b&gt;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Разбив задачу на удобные в обработке фрагменты, следует решить, где и когда эти фрагменты будут выполняться. Самое важное при этом — не допустить, чтобы одна долго выполняющаяся задача задерживала выполнение всего процесса ETL.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Хороший вариант управления выполнением — создание очереди приоритетов для пакета с последующим выполнением многих экземпляров этого пакета (с различными значениями параметра секции). Очередь может быть просто таблицей SQL Server. Поток управления каждого из пакетов должен содержать следующий простой цикл:&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;1. Выбрать актуальный фрагмент данных из очереди:&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;«Актуальный» означает еще необработанный фрагмент, для которого уже выполнены все фрагменты, от которых она зависит.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Если такие объекты в очереди отсутствуют, завершить выполнение пакета.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;2. Выполнить необходимую операцию над фрагментом данных.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;3. Пометить фрагмент в очереди как «готовый».&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;4. Вернуться к началу цикла.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Выбор части данных из очереди и пометку части данных как «готовой» (шаги 1 и 3 выше) можно реализовать в виде хранимой процедуры. &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Очередь служит центральным механизмом контроля и координации; она определяет порядок выполнения и не позволяет двум пакетам обрабатывать один фрагмент данных. После создания очереди можно просто начать запускать дополнительные копии DTEXEC для увеличения параллелизма.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1056" width="1" height="1"&gt;</description></item><item><title>10 самых полезных функций SQL Server 2008 для администратора баз данных </title><link>http://sqlcat.com/whitepapers_russian/archive/2010/01/26/10-sql-server-2008.aspx</link><pubDate>Tue, 26 Jan 2010 10:45:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1052</guid><dc:creator>AlexeiK</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;span style="font-size:16pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:16pt;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Автор: Майк Вайнер (&lt;/span&gt;&lt;span&gt;Mike&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Weiner&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="font-size:10.5pt;"&gt;Соавтор: Бурцин Пэйтел (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Burzin&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Patel&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="font-size:10.5pt;"&gt;Редакторы: Любор Коллар (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Lubor&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Kollar&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Кевин Кокс (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Kevin&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Cox&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Билл Эммерт (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Bill&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Emmert&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Грег Хузмайер (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Greg&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Husemeier&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Пол Бурпо (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Paul&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Burpo&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Джозеф Сак (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Joseph&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Sack&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Дэнни Ли (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Denny&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Lee&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Санджай Мишра (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Sanjay&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Mishra&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Линдси Аллен (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Lindsey&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Allen&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;), Марк Суза (&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Mark&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt; &lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;Souza&lt;/span&gt;&lt;span style="font-size:10.5pt;"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="font-size:10.5pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Microsoft&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 содержит ряд улучшений и новых функциональных возможностей, расширяющих функциональность предыдущих версий. Администрирование и обслуживание баз данных, поддержание управляемости, доступности, безопасности и производительности — все это входит в обязанности администратора базы данных. В этой статье описаны десять самых полезных новых функций &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 (в алфавитном порядке), облегчающих работу администратора БД. Помимо краткого описания, для каждой из функций приведены возможные ситуации ее применения и важные рекомендации по использованию. &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/52/original.aspx" alt="1" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Монитор активности&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;При устранении проблем, связанных с производительностью, или отслеживании работы сервера в реальном времени администратор обычно запускает ряд скриптов или проверяет соответствующие источники сведений, чтобы собрать общие данные о выполняющихся процессах и выявить причину проблемы. Монитор активности &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 объединяет такие сведения, предоставляя наглядную информацию по выполняющимся и недавно выполнявшимся процессам. Администратор БД может как просматривать высокоуровневые сведения, так и проанализировать любой из процессов более детально и ознакомиться со статистикой ожидания, что облегчает выявление и разрешение проблем.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Чтобы открыть монитор активности, щелкните правой кнопкой мыши на имени зарегистрированного сервера в обозревателе объектов, затем выберите &lt;b&gt;Монитор активности&lt;/b&gt; или же воспользуйтесь стандартным значком на панели инструментов в среде &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt;. Монитор активности предлагает администратору раздел обзора, внешне похожий на Диспетчер задач &lt;/span&gt;&lt;span&gt;Windows&lt;/span&gt;&lt;span&gt;, а также компоненты детального просмотра отдельных процессов, ожидания ресурсов, ввода-вывода в файлы данных и последних ресурсоемких запросов, как показано на рис. 1.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;i&gt;&lt;u&gt;&lt;span style="font-size:8pt;"&gt;Рис. 1: &lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Вид представления Монитора активности &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;SQL&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Server&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt; 2008 в среде &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Management&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Studio&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;img src="http://sqlcat.com/blogs/top10lists/WindowsLiveWriter/Top10SQLServer2008FeaturesfortheDatabase_E515/image_thumb.png" alt="" width="638" border="0" height="676" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Примечание. Монитор активности использует параметр периодичности обновления данных, который можно изменить щелчком правой кнопки мыши. При выборе частого обновления данных (раз в менее чем 10 секунд) производительность высоконагруженной рабочей системы может понизиться.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;С помощью монитора активности администратор также может выполнять следующие задачи:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Приостанавливать и возобновлять работу монитора активности одним щелчком правой кнопки мыши. Это позволяет администратору «сохранить» сведения о состоянии на определенный момент времени, они не будут обновлены или перезаписаны. Но не забывайте, что при обновлении данных вручную, развертывании или сворачивании раздела старые данные будут обновлены и утеряны.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;Щелкните правой кнопкой мыши элемент строки, чтобы отобразить полный текст запроса или графический план выполнения с помощью пункта меню &lt;/span&gt;&lt;span&gt;«Последние ресурсоемкие запросы».&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Выполнять трассировку приложением &lt;/span&gt;&lt;span&gt;Profiler&lt;/span&gt;&lt;span&gt; или завершать процессы в представлении «Процессы». События приложения &lt;/span&gt;&lt;span&gt;Profiler&lt;/span&gt;&lt;span&gt; включают события &lt;/span&gt;&lt;i&gt;&lt;span&gt;RPC&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;Completed&lt;/span&gt;&lt;/i&gt;&lt;span&gt;, &lt;/span&gt;&lt;i&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;BatchStarting&lt;/span&gt;&lt;/i&gt;&lt;span&gt; и &lt;/span&gt;&lt;i&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;BatchCompleted&lt;/span&gt;&lt;/i&gt;&lt;span&gt;, а также &lt;/span&gt;&lt;i&gt;&lt;span&gt;Audit&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Login&lt;/span&gt;&lt;/i&gt;&lt;span&gt; и &lt;/span&gt;&lt;i&gt;&lt;span&gt;Audit&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Logout&lt;/span&gt;&lt;/i&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Монитор активности также позволяет отслеживать активность любого локального или удаленного экземпляра &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005, зарегистрированного в среде &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/2_34x34.gif" alt="" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Аудит [SQL Server]&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Возможность отслеживать происходящие события и регистрировать сведения о них, включая сведения о пользователях, обращающихся к объектам, а также времени и содержании вносимых изменений, помогает администратору обеспечить соблюдение стандартов соответствия нормативным или организационным требованиям по безопасности. Кроме того, понимание происходящих в среде событий также может помочь при разработке плана по снижению рисков и поддержания &lt;span&gt;&amp;nbsp;&lt;/span&gt;безопасности в среде.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;В &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 (только выпуски &lt;/span&gt;&lt;span&gt;Enterprise&lt;/span&gt;&lt;span&gt; и &lt;/span&gt;&lt;span&gt;Developer&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Audit&lt;/span&gt;&lt;span&gt; реализует автоматизацию, позволяющую администратору и другим пользователям подготавливать, сохранять и просматривать аудиты различных компонентов серверов и баз данных. Функция предусматривает возможность аудита с детализацией уровня сервера или базы данных.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Существуют группы действий аудита на уровне сервера, например, следующие:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;FAILED&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;LOGIN&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;GROUP&lt;/span&gt;&lt;span&gt; отслеживает неудачные попытки входа в систему.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;BACKUP&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;RESTORE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;GROUP&lt;/span&gt;&lt;span&gt; сообщает, когда создавалась резервная копия базы данных или выполнялось ее восстановление.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;DATABASE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;CHANGE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;GROUP&lt;/span&gt;&lt;span&gt; проводит аудит времени создания, изменения или удаления базы данных.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Группы действий аудита на уровне базы данных включают следующие:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;DATABASE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;OBJECT&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;ACCESS&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;GROUP&lt;/span&gt;&lt;span&gt; вызывается при каждом выполнении инструкции &lt;/span&gt;&lt;span&gt;CREATE&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;ALTER&lt;/span&gt;&lt;span&gt; или &lt;/span&gt;&lt;span&gt;DROP&lt;/span&gt;&lt;span&gt; для объекта базы данных.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;DATABASE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;OBJECT&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;PERMISSION&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;CHANGE&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;GROUP&lt;/span&gt;&lt;span&gt; вызывается при использовании инструкций &lt;/span&gt;&lt;span&gt;GRANT&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;REVOKE&lt;/span&gt;&lt;span&gt; или &lt;/span&gt;&lt;span&gt;DENY&lt;/span&gt;&lt;span&gt; для объектов базы данных.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Существуют и другие действия аудита, например, &lt;/span&gt;&lt;span&gt;SELECT&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;DELETE&lt;/span&gt;&lt;span&gt; и &lt;/span&gt;&lt;span&gt;EXECUTE&lt;/span&gt;&lt;span&gt;. Дополнительные сведения, в том числе полный список всех групп и действий аудита, см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/cc280663.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Группы действий и действия аудита &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Результаты аудита можно направить для последующего просмотра в файл или журнал событий (системный журнал или журнал событий безопасности &lt;/span&gt;&lt;span&gt;Windows&lt;/span&gt;&lt;span&gt;). Данные аудита создаются с применением &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/bb630354.aspx"&gt;&lt;i&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;Расширенных событий&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt; — еще одной новой функции &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Аудиты &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 позволяют администратору ответить на вопросы, на которые раньше было очень сложно ответить постфактум, например, «Кто удалил этот индекс?», «Когда была изменена хранимая процедура?», «Какое внесенное изменение может мешать пользователю получить доступ к этой таблице?» и даже «Кто выполнил инструкцию &lt;/span&gt;&lt;span&gt;SELECT&lt;/span&gt;&lt;span&gt; или &lt;/span&gt;&lt;span&gt;UPDATE&lt;/span&gt;&lt;span&gt; для таблицы &lt;b&gt;[&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;dbo&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;Payroll&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span&gt;?».&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Дополнительные сведения об использовании аудита &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; и примеры его реализации см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2008/11/15/reaching-compliance-sql-server-2008-compliance-guide.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Руководство по обеспечению соответствия требованиям в &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; 2008&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/3_34x34.gif" alt="3" width="34" align="" border="" height="34" hspace="" /&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b&gt;&lt;span&gt;Сжатие резервных копий&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Администраторы БД долгое время предлагали включить эту функцию в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;. Теперь это сделано, и как раз вовремя! В последнее время по ряду причин, например, в связи с возросшей длительностью хранения данных и необходимостью физического хранения большего объема данных, размеры баз данных стали расти экспоненциально. При резервном копировании большой базы данных необходимо выделение значительного дискового пространства для файлов резервной копии, а также выделение для операции существенного временного промежутка. &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;При использовании сжатия резервных копий &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;2008 файл резервной копии сжимается по мере его записи, благодаря чему требуется не только меньше дискового пространства, но и меньше операций ввода-вывода, а резервное копирование занимает меньше времени. В ходе лабораторных испытаний с реальными пользовательскими данными во многих случаях наблюдалось уменьшение размера файла резервной копии на 70-85%. Кроме того, испытания показали, что длительность операций копирования и восстановления сократилась примерно на 45%. Следует отметить, что дополнительная обработка при сжатии увеличивает загрузку процессоров. Чтобы отделить во времени ресурсоемкий процесс копирования от других процессов и минимизировать его влияние на их работу, можно воспользоваться другой описанной в этом документе функцией — &lt;/span&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Resource&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Governor&lt;/span&gt;&lt;/i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Сжатие включается путем добавления предложения &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;WITH&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;COMPRESSION&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; в команду &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;BACKUP&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; (дополнительные сведения см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms186865.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Электронная документация по &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;) или установкой этого параметра на странице &lt;b&gt;Параметры&lt;/b&gt; диалогового окна &lt;b&gt;Резервное копирование базы данных&lt;/b&gt;. Чтобы не требовалось вносить изменения во все существующие сценарии резервного копирования, реализован глобальный параметр, включающий сжатие всех создаваемых на экземпляре сервера резервных копий по умолчанию. (Этот параметр доступен на странице &lt;b&gt;Настройки базы данных&lt;/b&gt; диалогового окна &lt;b&gt;Свойства сервера&lt;/b&gt;; его также можно установить, выполнив хранимую процедуру &lt;/span&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;sp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;configure&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;со значением параметра &lt;/span&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;backup&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;compression&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;default&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, равным 1). Команда создания резервной копии требует явного задания параметра сжатия, а команда восстановления автоматически распознает сжатую резервную копию и распаковывает ее при восстановлении. &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Сжатие резервных копий — исключительно полезная функция, сберегающая дисковое пространство и время. Дополнительные сведения о настройке сжатия резервных копий см. в техническом примечании &lt;/span&gt;&lt;span&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/04/21/tuning-the-performance-of-backup-compression-in-sql-server-2008.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Настройка производительности сжатия резервных копий в &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;. &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Примечание. Создание сжатых резервных копий поддерживается только в выпусках &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; 2008 &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Enterprise&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; и &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Developer&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;, однако все выпуски &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; 2008 позволяют восстанавливать сжатые резервные копии. &lt;/span&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/4_34x34.gif" alt="4" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Серверы централизованного управления&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;Часто администратор БД управляет сразу многими экземплярами &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;. Возможность централизации управления и администрирования многими экземплярами &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; в единой точке позволяет экономить существенные усилия и время. Реализация серверов централизованного управления, доступная в среде &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt; посредством компонента «Зарегистрированные серверы», позволяет администратору выполнять различные административные операции над многими серверами &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Servers&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;из единой консоли управления.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Серверы централизованного управления позволяют администратору зарегистрировать группу серверов и выполнять над ними, как над единой группой, например, следующие операции:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;Многосерверное выполнение запросов: теперь из одного источника можно выполнить скрипт на многих серверах &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;, данные будут возвращены этому источнику, причем раздельно выполнять вход в каждый из серверов не требуется. Это может быть особенно полезным в случае, когда необходимо просмотреть или сравнить данные с нескольких серверов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;, не выполняя распределенный запрос. Кроме того, при условии поддержки синтаксиса запроса предыдущими версиями &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;, запускаемый из редактора запросов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 запрос может выполняться и на экземплярах &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005 и &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2000. Дополнительные сведения см. в блоге рабочей группы по управляемости &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/sqlrem/archive/2008/02/04/multiple-server-query-execution-in-sql-server-2008.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Выполнение многосерверных запросов в среде &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; 2008&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;Импорт и определение &lt;span&gt;&amp;nbsp;&lt;/span&gt;политик на многих серверах: в рамках функциональности &lt;i&gt;Управления на основе политик&lt;/i&gt; (еще одной новой функции &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008, также описанной в этой статье), &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 обеспечивает возможность импорта файлов политик в отдельные группы серверов централизованного управления и позволяет определять политики на всех серверах, зарегистрированных в определенной группе.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span&gt;Управление службами и вызов диспетчера конфигурации &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;: инструмент «серверы централизованного управления» помогаает создать центр управления, в котором администратор БД может просмотреть и даже изменить (при наличии соответствующих разрешений) состояние служб.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;font size="3"&gt;Импорт и экспорт зарегистрированных серверов: &lt;span&gt;&amp;nbsp;&lt;/span&gt;серверы, зарегистрированные в серверах централизованного управления (&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt;Central&lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt;Management&lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt;Servers&lt;/span&gt;&lt;span style="line-height:115%;font-size:10pt;"&gt;)&lt;/span&gt;&lt;font size="3"&gt;&lt;span&gt;, могут экспортироваться и импортироваться при их передаче между администраторами или различными установленными экземплярами &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt;. Эта возможность служит альтернативой импорту или экспорту администратором его собственных локальных групп в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt;. &lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Не забывайте, что разрешения применяются с помощью проверки подлинности &lt;/span&gt;&lt;span&gt;Windows&lt;/span&gt;&lt;span&gt;, поэтому права и разрешения пользователей могут различаться на различных серверах, зарегистрированных в группе сервера централизованного управления. Дополнительные сведения см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/bb895144.aspx"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;Администрирование нескольких серверов с помощью серверов централизованного управления&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt; и в блоге Кимберли Трипп (&lt;/span&gt;&lt;span&gt;Kimberly&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Tripp&lt;/span&gt;&lt;span&gt;): &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.sqlskills.com/BLOGS/KIMBERLY/post/SQL-Server-2008-Central-Management-Servers-have-you-seen-these.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;i&gt;&lt;span&gt;Центральные серверы управления &lt;/span&gt;SQL&lt;/i&gt;&lt;i&gt;&lt;span&gt; &lt;/span&gt;Server&lt;/i&gt;&lt;i&gt;&lt;span&gt; 2008 — знакомы ли вы с ними?&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/5_34x34.gif" alt="5" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Сборщик данных и хранилище данных управления&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Настройка производительности и диагностика занимают много времени и могут требовать профессиональных навыков работы с &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, а также понимания внутренней структуры баз данных. Системный монитор &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Windows&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; (&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Perfmon&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;), профилировщик &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Profiler&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; и динамические административные представления решали часть этих задач, но они нередко оказывали влияние на работу сервера, были трудоемки в применении или задействовали методы сбора разрозненных данных, затрудняющие их последующее объединение и интерпретацию.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Чтобы предоставить понятные сведения о производительности системы, позволяющие предпринять конкретные меры, в &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;2008 реализовано полностью расширяемое средство сбора и хранения данных о производительности — сборщик данных. Оно содержит несколько непосредственно готовых к работе агентов сбора данных, централизованное хранилище данных о производительности, так называемое хранилище данных управления, и несколько подготовленных заранее отчетов для представления собранных данных. Сборщик данных — это масштабируемое средство, обеспечивающее сбор и объединение данных из различных источников, таких как динамические административные представления, монитор производительности &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Perfmon&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; и запросы &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Transact&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;-&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, в соответствии с полностью настраиваемой частотой сбора данных. Сборщик данных можно расширить, реализовав сбор данных по любому измеряемому атрибуту приложения.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Еще одна полезная функция хранилища данных управления — это возможность его установки на любом сервере &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; с последующим сбором данных с одного или нескольких экземпляров &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;. При этом минимизируется влияние на &lt;span&gt;&amp;nbsp;&lt;/span&gt;производительность рабочих систем, а также улучшается масштабируемость в контексте отслеживания и сбора данных со многих серверов. При лабораторных испытаниях наблюдаемая потеря пропускной способности при выполнении агентов и работе хранилища данных управления на нагруженном сервере (с применением рабочей нагрузки &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;OLTP&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;) составила &lt;span&gt;&amp;nbsp;&lt;/span&gt;приблизительно 4%. Потеря производительности может изменяться в зависимости от периодичности сбора данных (упомянутое испытание велось при расширенной рабочей нагрузке, с передачей данных в хранилище каждые 15 минут), она также может резко увеличиваться во время периодов сбора данных. В любом случае следует ожидать некоторого уменьшения доступных ресурсов, так как процесс &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;DCExec&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;exe&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; использует определенный объем памяти и ресурсы ЦП, а запись в хранилище данных управления повысит нагрузку на подсистему ввода-вывода и потребует выделения пространства в месте расположения файлов данных и журнала.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;На диаграмме (рис. 2) показан типичный отчет сборщика данных.&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;i&gt;&lt;u&gt;&lt;span style="font-size:8pt;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;i&gt;&lt;u&gt;&lt;span style="font-size:8pt;"&gt;Рис. 2: &lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Вид отчета сборщика данных &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;SQL&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt;Server&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="font-size:8pt;"&gt; 2008&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;img src="http://sqlcat.com/blogs/top10lists/WindowsLiveWriter/Top10SQLServer2008FeaturesfortheDatabase_E515/image_4.png" alt="" width="522" border="0" height="396" /&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;В отчете показана деятельность &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; за время периода сбора данных. В нем собраны и отражены такие события, как ожидания, использование ЦП, ввода-вывода и памяти, а также статистика по ресурсоемким запросам. Администратор может также перейти к детальному рассмотрению элементов отчетов, сконцентрировавшись на отдельном запросе или операции, чтобы исследовать, определить и устранить проблемы, связанные с производительностью. Эти возможности сбора данных, их хранения и создания отчетов позволяют реализовать упреждающее отслеживание состояния серверов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; в среде. При необходимости они позволяют возвращаться к историческим данным, чтобы понять и оценить изменения, повлиявшие на производительность за отслеживаемый период. Сборщик данных и хранилище данных управления поддерживаются во всех выпусках &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008, кроме &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Express&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/6_34x34.gif" alt="" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b&gt;&lt;span&gt;Сжатие данных&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Простота управления базой данных значительно облегчает выполнение рутинных задач администрирования. По мере роста размеров таблиц, индексов и файлов и распространения очень больших баз данных (&lt;/span&gt;&lt;span&gt;VLDB&lt;/span&gt;&lt;span&gt;) управление данными и работа с громоздкими файлами становятся все более сложными. Кроме того, растущие с объемом запрашиваемых данных потребности в памяти и обеспечении физической пропускной способности ввода-вывода также усложняют деятельность администраторов и дорого обходятся организации. Вследствие этого во многих случаях администраторам и организациям приходится либо расширять память или &lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt;пропускную способность &lt;span&gt;&amp;nbsp;&lt;/span&gt;ввода-вывода серверов, либо смиряться с понижением производительности.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Сжатие данных, представленное в &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008, помогает разрешить эти проблемы. Эта функция позволяет администратору избирательно сжимать любые таблицы, секции таблиц или индексы, благодаря чему уменьшается занимаемое пространство на диске и в памяти, а также размер операций ввода-вывода. Сжатие и распаковка данных нагружают процессор; тем не менее, во многих случаях дополнительная нагрузка на процессор более чем компенсируется выигрышем в объемах ввода-вывода. В конфигурациях, в которых ввод-вывод является «узким местом», сжатие данных также может обеспечить рост производительности. &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;В некоторых лабораторных испытаниях включение сжатия данных обеспечивало экономию 50-80% дискового пространства. Экономия пространства значительно различалась: если в данных содержалось мало повторяющихся значений, или значения использовали все выделяемые для указанного типа данных байты, экономия была минимальной. При этом производительность многих рабочих нагрузок не увеличивалась. Однако при работе с данными, содержащими много числовых данных и много повторяющихся значений, отмечались значительная экономия дискового пространства и рост производительности, составляющий от нескольких процентов до 40-60% для некоторых образцов рабочих нагрузок запросов. &lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 поддерживает два типа сжатия: &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/cc280576.aspx"&gt;&lt;span&gt;сжатие строк&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;, при котором сжимаются отдельные столбцы таблицы, и &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/cc280464.aspx"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;сжатие страниц&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;, при котором страницы данных сжимаются с помощью сжатия строк, префиксов и словарного сжатия. Достигаемая степень сжатия сильно зависит от типов данных и содержимого базы данных. В общем, при использовании сжатия строк уменьшается дополнительная нагрузка на операции приложений, однако уменьшается и степень сжатия, то есть выигрывается меньше места. В то же время сжатие страниц приводит к большей дополнительной нагрузке на приложение и загрузке процессора, но и экономит значительно больше пространства. Сжатие страниц является надмножеством сжатия строк, то есть если объект или секция объекта сжимаются с помощью сжатия страниц, к ним также применяется и сжатие строк. Кроме того, &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 поддерживает формат хранения &lt;/span&gt;&lt;b&gt;&lt;span&gt;vardecimal&lt;/span&gt;&lt;/b&gt;&lt;span&gt; из &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005 с пакетом обновления 2 (&lt;/span&gt;&lt;span&gt;SP&lt;/span&gt;&lt;span&gt;2). Следует учитывать, что, поскольку этот формат является подмножеством сжатия строк, он считается устаревшим и будет исключен из будущих версий продукта.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;И сжатие строк, и сжатие страниц может включаться для таблицы или индекса в оперативном режиме, нисколько не нарушая доступность данных для приложений. В то же время сжать или распаковать отдельную секцию секционированной таблицы в оперативном режиме без ее отключения невозможно. Испытания показали, что наилучшим оказывается совмещенный подход, при котором сжимаются лишь несколько наибольших таблиц: при этом достигается отличное отношение экономии дискового пространства (значительной) к потере производительности (минимальной). Поскольку у операции сжатия, как и у операций создания или перестроения индекса, также имеются требования к доступному дисковому пространству, проводить сжатие следует с учетом этих требований. Минимум свободного пространства во время процесса сжатия потребуется, если сжатие начать с объектов наименьшего размера.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Сжатие данных можно провести с помощью инструкций &lt;/span&gt;&lt;span&gt;Transact&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; или мастера сжатия данных. Чтобы определить возможное изменение размера объекта при его сжатии, можно воспользоваться системной хранимой процедурой &lt;/span&gt;&lt;b&gt;&lt;span&gt;sp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;estimate&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;data&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;compression&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;_&lt;/span&gt;&lt;span&gt;savings&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;i&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;или мастером сжатия данных. Сжатие базы данных поддерживается только в выпусках &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 &lt;/span&gt;&lt;span&gt;Enterprise&lt;/span&gt;&lt;span&gt; и &lt;/span&gt;&lt;span&gt;Developer&lt;/span&gt;&lt;span&gt;. Оно реализуется исключительно в самих базах данных и не требует внесения каких-либо изменений в приложения.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Дополнительные сведения об использовании сжатия см. в документе &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/cc280449.aspx"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;Создание сжатых таблиц и индексов&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/7_34x34.gif" alt="" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Управление на основе политик&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Во многих бизнес-сценариях необходимо поддерживать определенные конфигурации или соблюдать политики либо на определенном сервере &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;, либо многократно, в группе серверов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;. Администратор или организация могут потребовать применения особой схемы именования всех создаваемых пользовательских таблиц или хранимых процедур или требовать определенные &lt;span&gt;&amp;nbsp;&lt;/span&gt;изменения применялись&lt;span&gt;&amp;nbsp; &lt;/span&gt;к конфигурации на многих серверах.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Управление на основе политик (&lt;/span&gt;&lt;span&gt;PBM&lt;/span&gt;&lt;span&gt;) предоставляет администратору широкий набор возможностей по управлению средой. Политики можно создавать и выполнять проверку на соответствие им. Если цель проверки (например, ядро базы данных, база данных, таблица или индекс &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;) не соответствует требованиям, администратор может автоматически перенастроить ее в соответствии с этими требованиями. Также существует ряд режимов определения &lt;span&gt;&amp;nbsp;&lt;/span&gt;политик (многие из которых автоматизированы), упрощающих проверку соответствия требованиям политик, регистрацию в журнале нарушений политики и отправку уведомлений, и даже выполняющих откат изменений для обеспечения соответствия требованиям политики. Дополнительные сведения о режимах определения и об их сопоставлении с аспектами (понятием управления на основе политик (&lt;/span&gt;&lt;span&gt;PBM&lt;/span&gt;&lt;span&gt;), также обсуждаемым в этом блоге) см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/sqlpbm/archive/2008/05/24/facets.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Блог об управлении &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; на основе политик&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Политики можно экспортировать и импортировать в виде &lt;/span&gt;&lt;span&gt;XML&lt;/span&gt;&lt;span&gt;-файлов для их определения и применения на многих экземплярах серверов. Кроме того, в среде &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Management&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Studio&lt;/span&gt;&lt;span&gt; и в представлении зарегистрированных серверов политики можно определять на многих серверах, зарегистрированных в локальной группе серверов или в группе сервера централизованного управления.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;В предыдущих версиях &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; может быть реализована не вся функциональность управления на основе политик. Тем не менее, функцию &lt;i&gt;составление отчетов&lt;/i&gt; политики можно использовать на серверах &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005 и &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2000. Дополнительные сведения об использовании управления на основе политик см. в разделе&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/bb510667.aspx"&gt;&lt;span&gt;&lt;font color="#0000ff"&gt;Администрирование серверов с помощью управления на основе политик&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt; в электронной документации по &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt;. Дополнительные сведения о самой технологии политик с примерами см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2008/11/15/reaching-compliance-sql-server-2008-compliance-guide.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Руководство по обеспечению соответствия в &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; 2008&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt; &lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/8_34x34.gif" alt="8" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b&gt;&lt;span&gt;Прогнозируемая производительность и параллелизм&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Многие администраторы сталкиваются со значительными трудностями при поддержке серверов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Servers&lt;/span&gt;&lt;span&gt; с постоянно изменяющимися рабочими нагрузками и обеспечении предсказуемого уровня производительности (или минимизации расхождений в планах запросов и производительности). Неожиданные изменения производительности при выполнении запросов, изменения планов запросов и/или общие связанные с производительностью проблемы могут быть вызваны рядом причин, в том числе повышением нагрузки от выполняющихся на сервере &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; приложений или обновлением версии самой базы данных. Предсказуемость выполняемых на сервере &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; запросов и операций значительно облегчает достижение и поддержание целей по уровню доступности, производительности и/или непрерывности бизнес-деятельности (выполнение соглашений об уровне обслуживания и уровне операционной поддержки).&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;В &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 некоторые функции изменены для увеличения прогнозируемости производительности. Так, внесены определенные изменения в структуры планов &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005 (&lt;i&gt;закрепление планов&lt;/i&gt;) и добавлена возможность управления эскалацией блокировок на уровне таблиц. Оба улучшения способствуют более прогнозируемому и упорядоченному взаимодействию между приложением и базой данных.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Во-первых, &lt;u&gt;структуры планов (&lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;span&gt;Plan&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Guide&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span&gt;)&lt;/span&gt;&lt;/u&gt;&lt;span&gt;: &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;В &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;2005 было реализовано улучшение стабильности и предсказуемости запросов с помощью новой на тот момент функции — «структур планов», содержавших указания &lt;span&gt;&amp;nbsp;&lt;/span&gt;для выполнения запросов, которые нельзя было изменить непосредственно в приложении. Дополнительные сведения см. в техническом документе&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/frcqupln.mspx"&gt;&lt;span&gt;&lt;font color="#0000ff" face="Verdana" size="2"&gt;Принудительное использование планов запросов&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Verdana" size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;. Хотя подсказка в запросе &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;USE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;PLAN&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; является очень мощной функцией, она поддерживала только операции &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SELECT&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;DML&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; и часто была неудобна в применении из-за чувствительности структур планов к форматированию.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;В &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008 механизм структур планов расширен в двух направлениях: во-первых, расширена поддержка подсказки в запросе &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;USE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;PLAN&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, которая теперь совместима со всеми инструкциями &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;DML&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; (&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;INSERT&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;UPDATE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;DELETE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;MERGE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;); во-вторых, введена новая функция &lt;i&gt;закрепления планов&lt;/i&gt;, позволяющая непосредственно создавать структуру плана (закрепление) любого плана запроса, существующего в кэше планов &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, как показано в следующем примере.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;sp_create_plan_guide_from_handle &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;@name =&lt;span&gt;&amp;nbsp; &lt;/span&gt;N&amp;#39;MyQueryPlan&amp;#39;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;@plan_handle = @plan_handle,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;@&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;statement&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;_&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;start&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;_&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;offset&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt; = @&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;offset&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;У структуры планов, созданной любым способом, имеется область базы данных; она хранится в таблице &lt;/span&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;sys&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;plan&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;guides&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;. Структуры планов лишь влияют на процесс выбора плана запроса оптимизатором, но не избавляют от необходимости компиляции запроса. Также добавлена функция &lt;/span&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;sys&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;.&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;fn&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;validate&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;plan&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;guide&lt;/span&gt;&lt;/i&gt;&lt;span&gt;&lt;font face="Verdana" size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; для проверки существующих структур планов &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2005 и обеспечения их совместимости с &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008. Закрепление планов доступно в выпусках &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008 &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Standard&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Enterprise&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; и &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Developer&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Во-вторых, &lt;u&gt;эскалация блокировок&lt;/u&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Эскалация блокировки часто вызывало проблемы блокировки, а иногда даже взаимоблокировку. Устранять эти проблемы приходилось администратору. В предыдущих версиях &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; можно было управлять эскалацией блокировок (флаги трассировки 1211 и 1224), но это было возможно только для детализации на уровне экземпляра. Для одних приложений это устраняло проблему, а для других вызывало еще большие проблемы. Другим недостатком алгоритма &lt;span&gt;&amp;nbsp;&lt;/span&gt;эскалации блокировок в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2005 было то, что блокировки секционированных таблиц укрупнялись напрямую до уровня таблиц, а не до уровня секций.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 предлагает решение обеих проблем. В нем реализован новый параметр, позволяющий управлять эскалацией блокировки на уровне таблиц. С помощью команды &lt;/span&gt;&lt;span&gt;ALTER&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;TABLE&lt;/span&gt;&lt;span&gt; можно выбрать отключение эскалации или эскалацию &lt;span&gt;&amp;nbsp;&lt;/span&gt;до уровня секций для секционированных таблиц. Обе эти возможности улучшают масштабируемость и производительность без нежелательных побочных эффектов, затрагивающих другие объекты в экземпляре. Эскалация &lt;span&gt;&amp;nbsp;&lt;/span&gt;блокировки задается на уровне объекта базы данных и не требует внесения каких-либо изменений в приложения. Оно поддерживается во всех выпусках &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://img.microsoft.com/library/media/1033/technet/images/spot/9_34x34.gif" alt="9" width="34" align="" border="" height="34" hspace="" /&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Resource Governor&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Поддерживать устойчивый уровень обслуживания, предотвращая бесконтрольные запросы и обеспечивая выделение ресурсов для важнейших рабочих загрузок, раньше было сложно. Отсутствовала возможность гарантировать выделение определенного объема ресурсов набору запросов, отсутствовало управление приоритетами доступа. У всех запросов были равные права на доступ ко всем доступным ресурсам.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span&gt;Новая функция &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; 2008 — «Регулятор ресурсов»(&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Resource&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Governor&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;) — помогает справиться с этой проблемой, давая возможность дифференцировать рабочие нагрузки и распределять ресурсы в соответствии с потребностями пользователей. Ограничения регулятора ресурсов легко перенастраиваются в реальном времени при минимальном воздействии на выполняющиеся рабочие нагрузки. Распределение рабочих нагрузок по пулу ресурсов настраивается на уровне соединения, причем этот процесс полностью &lt;/span&gt;&lt;/span&gt;&lt;span&gt;прозрачен для приложений.&lt;span class="text0"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span&gt;На диаграмме ниже показан процесс выделения ресурсов. В данном сценарии настраиваются три пула рабочих нагрузок (рабочие нагрузки &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Admin&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;OLTP&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; и &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Report&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;), после чего пулу рабочих нагрузок &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;OLTP&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; присваивается высший приоритет. В то же время настраиваются два пула ресурсов (пул &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Pool&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; и пул &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Application&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;) с заданными ограничениями по объему памяти и времени процессора (ЦП). На последнем этапе рабочая нагрузка &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Admin&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; назначается пулу &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Admin&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;, а рабочие нагрузки &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;OLTP&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; и &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Report&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt; назначаются пулу &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;Application&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;img src="http://sqlcat.com/blogs/top10lists/WindowsLiveWriter/Top10SQLServer2008FeaturesfortheDatabase_E515/image_6.png" alt="" width="243" border="0" height="279" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Ниже приведены особенности, которые следует учитывать при использовании регулятора ресурсов.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text00"&gt;&lt;span&gt;Регулятор ресурсов использует учетные данные входа, имя узла или имя приложения в качестве «идентификатора пула ресурсов», поэтому использование для приложения одного имени входа при определенных количествах клиентов, приходящихся на один сервер, может усложнить создание пулов.&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Не поддерживается группировка объектов на уровне базы данных, при которой доступ к ресурсам регулируется на основе объектов базы данных, к которым осуществляется доступ.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Регулятор ресурсов позволяет управлять ресурсами только в пределах одного экземпляра &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;. Для управления несколькими экземплярами &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; или процессами на сервере из единого источника следует рассмотреть возможность применения &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/wsrm/default.mspx"&gt;&lt;font color="#0000ff"&gt;&lt;span style="line-height:115%;"&gt;Диспетчера системных ресурсов &lt;/span&gt;&lt;span style="line-height:115%;"&gt;Windows&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;span style="line-height:115%;"&gt;Настраивать можно только использование ресурсов процессора и памяти. &lt;/span&gt;&lt;span style="line-height:115%;"&gt;Управление ресурсами ввода-вывода не реализовано.&lt;span class="text0"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Динамическое переключение рабочих нагрузок между пулами ресурсов после соединения невозможно.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span&gt;&lt;font size="3"&gt;-&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Регулятор ресурсов поддерживается только в выпусках &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; 2008 &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Enterprise&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; и &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Developer&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; и может использоваться только для ядра базы данных &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;; управление службами &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Analysis&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Services&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SSAS&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;), &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Integration&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Services&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SSIS&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;) и &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SQL&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Server&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Reporting&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;Services&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;SSRS&lt;/span&gt;&lt;/span&gt;&lt;span class="text0"&gt;&lt;span style="line-height:115%;"&gt;) не поддерживается.&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;img src="http://sqlcat.com/photos/top10icons/images/61/original.aspx" alt="10" width="34" border="0" height="34" /&gt;&lt;/font&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Прозрачное шифрование данных (TDE)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Многие организации уделяют очень большое внимание вопросам безопасности. Существует множество различных слоев, защищающих один из самых ценных активов организации — ее данные.&lt;span style="color:black;"&gt;Чаще всего организации успешно защищают используемые данные с помощью мер физической защиты, брандмауэров и строгих политик ограничения доступа. Однако, в случае утери физического носителя с данными, например, диска или ленты с резервной копией, все перечисленные меры обеспечения безопасности оказываются бесполезными, так как злоумышленник может просто восстановить базу данных и получить полный доступ к данным.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Server&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;2008 предлагает решение этой проблемы путем прозрачного шифрования данных (&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;). При шифровании &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; данные в операциях ввода-вывода шифруются и дешифруются в реальном времени; файлы данных и журналов шифруются с помощью ключа шифрования базы данных (&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;DEK&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;). &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;DEK&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; — это симметричный ключ, защищаемый сертификатом, который хранится в базе данных &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;master&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; сервера, или асимметричный ключ, защищаемый модулем расширенного управления ключами (&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;EKM&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;).&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Функция &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; защищает «неактивные» данные, поэтому данные в файлах &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;MDF&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;NDF&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, и &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;LDF&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; невозможно просматривать с помощью редактора шестнадцатеричных данных или каким-либо другим способом. Однако активные данные, например, результаты выполнения инструкции &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SELECT&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; в среде &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Management&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Studio&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;, останутся видимыми для пользователей, у которых имеются права на просмотр таблицы. Кроме того, поскольку функция &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; реализована на уровне базы данных, база данных может задействовать индексы и ключи для оптимизации запросов. &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; не следует путать с шифрованием на уровне столбцов — это отдельная функция, позволяющая шифровать даже активные данные.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Шифрование базы данных — одноразовый процесс, который можно запустить командой &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Transact&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;-&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; или из среды &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Management&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Studio&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;, после чего он выполняется в фоновом потоке. Состояние шифрования или дешифровки можно отслеживать с помощью динамического административного представления &lt;/span&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;sys&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;.&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;dm&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;database&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;encryption&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;_&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;keys&lt;/span&gt;&lt;/i&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;. Во время проведенных лабораторных испытаний шифрование базы данных размером 100 Гб с применением алгоритма шифрования &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;AES&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;_128 заняло около часа. Хотя накладные расходы при использовании &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; определяются в основном рабочей нагрузкой приложения, в некоторых из проведенных испытаний эти дополнительные расходы составили менее 5%. Следует учитывать одну особенность, которая может повлиять на производительность: если &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; используется в любой из баз данных на экземпляре, то также шифруется и системная база данных &lt;/span&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;tempDB&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;. Наконец, при одновременном использовании различных функций необходимо учитывать следующее:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:Symbol;color:black;font-size:11pt;"&gt;&lt;span&gt;·&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;При использовании сжатия резервных копий для сжатия зашифрованной базы данных размер сжатой резервной копии будет большим, чем без использования шифрования, так как зашифрованные данные сжимаются плохо.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:Symbol;color:black;font-size:11pt;"&gt;&lt;span&gt;·&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Шифрование базы данных не влияет на сжатие данных (строчное или страничное).&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; позволяет организации обеспечить соответствие требованиям нормативных стандартов и общему уровню защиты данных. &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;TDE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; поддерживается только в выпусках &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; 2008 &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Enterprise&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; и &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;Developer&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;; его активация не требует внесения изменений в существующие приложения. Дополнительные сведения см. в разделе &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/cc278098.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Шифрование данных в выпуске &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Server&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt; 2008 &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Enterprise&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt; или в обсуждении в &lt;/span&gt;&lt;span&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2008/11/15/reaching-compliance-sql-server-2008-compliance-guide.aspx"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;Руководстве по обеспечению соответствия требованиям в &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; 2008 &lt;/span&gt;&lt;/font&gt;&lt;span style="color:black;text-decoration:none;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;на тему &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;i&gt;Прозрачное шифрование данных&lt;/i&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:11pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;h4 style="line-height:115%;margin:0cm 0cm 10pt -18pt;"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Подводя итог, можно сказать, что в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 предлагаются функции, усовершенствования и возможности, облегчающие работу администратора базы данных. 10 самых популярных из них описаны здесь, но в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008 есть и много других возможностей, упрощающих жизнь администраторов и других пользователей. Списки «10 лучших функций» по другим направлениям работы с &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; можно найти в других статьях «Лучшие 10 ... в &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; 2008» на этом сайте. Полный список функций и их подробное описание см. в &lt;/span&gt;&lt;span&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/bb545450.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;электронной документации по &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; &lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;и на &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;span&gt;обзорном веб-сайте &lt;/span&gt;SQL&lt;span&gt; &lt;/span&gt;Server&lt;span&gt; 2008&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1052" width="1" height="1"&gt;</description></item><item><title>10 рекомендаций по созданию крупномасштабного реляционного хранилища данных</title><link>http://sqlcat.com/whitepapers_russian/archive/2010/01/26/1051.aspx</link><pubDate>Tue, 26 Jan 2010 10:34:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1051</guid><dc:creator>AlexeiK</dc:creator><slash:comments>0</slash:comments><description>&lt;table style="WIDTH:109.36%;mso-cellspacing:0cm;mso-yfti-tbllook:1184;mso-padding-alt:0cm 0cm 0cm 0cm;" class="MsoNormalTable" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;
&lt;table style="WIDTH:486pt;mso-cellspacing:0cm;mso-yfti-tbllook:1184;mso-padding-alt:0cm 0cm 0cm 0cm;" class="MsoNormalTable" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:486pt;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Авторы:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;: Стюарт Озер (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Stuart&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Ozer&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;) при участии Према Мехры (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Prem&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Mehra&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;) и Кевина Кокса (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Kevin&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Cox&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;) &lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Технические редакторы:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; Любор Коллар (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Lubor&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Kollar&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;), Томас Кейзер (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Thomas&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Kejser&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;), Дэнни Ли (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Denny&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Lee&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;), Джимми Мэй (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Jimmy&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;May&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;), Майкл Рэдман (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Michael&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Redman&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;), Санджэй Мишра (&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Sanjay&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Mishra&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;)&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Построение крупномасштабного реляционного хранилища данных представляет собой сложную задачу. В этойтой статье описан ряд методов проектирования, которые могут помочь в создании эффективного реляционного хранилища данных большого объема с помощью &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SQL&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Server&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;. В большинстве крупномасштабных хранилищ данных применяется секционирование таблиц и индексов, и поэтому многие из приводимых рекомендаций относятся к секционированию. Большинство этих советов основаны на опыте построения крупных хранилищ данных на базе &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SQL&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Server&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; 2005.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;&lt;img border="0" alt="One" src="http://sqlcat.com/photos/top10icons/images/52/original.aspx" width="34" height="34" /&gt;Рекомендуется секционировать большие таблицы фактов&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo1;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Рекомендуется секционировать таблицы фактов размером 50–100 ГБ и более. &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo1;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Секционирование может упростить управление данными и часто приводит к повышению производительности.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level2 lfo1;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Быстрое, более детальное &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;сопровождение индексовБолее гибкие варианты резервного копирования и восстановления.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level2 lfo1;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Ускоренная загрузка и удаление данных.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo1;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Ускорение работы запросов, ограниченных одной секцией.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo1;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Обычно таблицу фактов секционируют по ключу даты.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level2 lfo1;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Позволяет применять метод скользящего окна.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l7 level1 lfo1;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Позволяет применять методику «устранения» секций.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="two" src="http://sqlcat.com/photos/top10icons/images/53/original.aspx" width="34" height="34" /&gt;Постройте кластеризованный индекс на ключе даты в таблице фактов&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l10 level1 lfo2;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Это поддерживает использование эффективных запросов для заполнения кубов или получения среза исторических данных.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l10 level1 lfo2;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если данные загружаются &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;пакетами в отведенное для заливки данных время, то для кластеризованного индекса на таблице фактов нужно использовать параметры &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ALLOW&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ROW&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;LOCKS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; = &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;OFF&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; и &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ALLOW&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;PAGE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;LOCKS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; = &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;OFF&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;. Это поможет ускорить операции просмотра таблиц во время запроса и избежать избыточной активности блокировок во время масштабных операций обновления.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l10 level1 lfo2;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Постройте некластеризованные индексы для каждого внешнего ключа. Это помогает точечным запросам извлекать строки на основе избирательного предиката измерения. Используйте файловые группы для административных задач, в том числе резервного копирования и восстановления, частичного обеспечения доступности базы данных и т. п.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="three" src="http://sqlcat.com/photos/top10icons/images/54/original.aspx" width="34" height="34" /&gt;Будьте внимательны с выбором фрагмента секционирования&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Большинство клиентов используют для секционирования месяц, квартал или год.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Для эффективного удаления необходимо удалять по одной полной секции за один раз.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Загрузка происходит быстрее, если за один раз загружается полная секция.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level2 lfo3;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Привлекательным вариантом может оказаться создание ежедневных секций для ежедневной нагрузки.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level2 lfo3;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Однако следует помнить, что таблица может содержать не более 1000 секций.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Выбор степени секционирования влияет на параллелизм запросов. &lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level2 lfo3;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Для SQL Server 2005:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level3 lfo3;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Для запросов, затрагивающих одну секцию, параллелизм может достигать значения &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MAXDOP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (максимальной степени параллелизма). &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level3 lfo3;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В запросах, затрагивающих несколько секций, используется один поток на секцию, вплоть до значения &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MAXDOP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level2 lfo3;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Для SQL Server 2008:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level3 lfo3;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Параллельные потоки количеством до &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MAXDOP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; пропорционально распределяются пропорционально при сканировании секций; на одну секцию может приходиться несколько потоков даже при необходимости сканирования нескольких секций.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo3;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если необходимо добиться степени параллелизма, соответствующей &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MAXDOP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;, рекомендуется избегать таких схем секционирования, при которых запросы часто затрагивают лишь 2 или 3 секции (предполагается, что &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MAXDOP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; равно или больше 4).&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/55/original.aspx" width="34" height="34" /&gt;Правильно проектируйте таблицы измерения&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Используйте целочисленные суррогатные ключи для всех измерений, кроме измерения даты. Для суррогатных ключей измерения используйте минимально возможные целые числа. Это поможет сохранить малый размер таблицы фактов.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Используйте для ключа даты осмысленное целочисленное значение, получаемое на основе типа данных &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;DATETIME&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (например, 20060215).&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo4;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Не используйте суррогатный ключ для измерения даты.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo4;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Удобно писать запросы, в которых предложение &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;WHERE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; относится к этому столбцу, что обеспечит устранение секций в таблице фактов.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Постройте кластеризованный индекс на суррогатном ключе для каждой таблицы измерения и некластеризованный индекс на бизнес-ключе (потенциально объединенный с эффективной датой строки) для поддержки поиска по суррогатному ключу во время загрузки.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Постройте некластеризованные индексы для других столбцов измерения, в которых часто выполняется поиск.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Избегайте секционирования таблиц измерений.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo4;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Избегайте принудительного установления связей по внешним ключам между таблицами фактов и измерений — это ускорит загрузку данных. Можно создать ограничения внешнего ключа с параметром &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;NOCHECK&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; для документирования связей, но не следует обеспечивать строгое выполнение таких ограничений. Проверять целостность данных можно с помощью преобразований &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Transform&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Lookup&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; или же можно проверять целостность данных в источнике данных.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/56/original.aspx" width="34" height="34" /&gt;Пишите эффективные запросы для устранения секций&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l8 level1 lfo5;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Всегда, когда это возможно, используйте в предикате запроса (условие &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;WHERE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;) ключ секционирования (ключ измерения даты) таблицы фактов.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/57/original.aspx" width="34" height="34" /&gt;Используйте для сопровождения данных метод скользящего окна&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Поддерживайте движущееся временное окно для оперативного доступа к таблицам фактов. &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Загружайте самые новые данные и выгружайте самые старые.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Всегда сохраняйте пустые секции с обоих концов диапазона секций, чтобы гарантировать, что разбиение секций (перед загрузкой новых данных) и слияние секций (после выгрузки старых данных) не повлекут перемещения данных.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Не следует выполнять разбиение или слияние заполненных секций. Разбиение или слияние заполненных секций может оказаться крайне неэффективным, поскольку в таком случае объем операций с журналом может возрасти в 4 раза и, кроме того, это приведет к интенсивной работе механизма блокировок.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создавайте промежуточную таблицу загрузки в той же файловой группе, где располагается загружаемая секция.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создавайте промежуточную таблицу выгрузки в той же файловой группе, где располагается удаляемая секция.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Быстрее всего загружать сразу полную новую секцию, но это возможно только в случае, когда размер секции совпадает с периодом загрузки данных (например, используется одна секция для каждого дня и данные загружаются один раз в день).&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если размер секции не совпадает с периодом загрузки данных, следует проводить добавочную загрузку только самой последней секции. &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Различные варианты загрузки массовых данных в секционированную таблицу обсуждаются в техническом документе &lt;/span&gt;&lt;span&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/loading_bulk_data_partitioned_table.mspx"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;http&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;://&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;www&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;microsoft&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;com&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;technet&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;prodtechnol&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;sql&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;bestpractice&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;loading&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;bulk&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;data&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;partitioned&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;_&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;table&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;mspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo6;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Всегда выгружайте секции по одной.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/58/original.aspx" width="34" height="34" /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Загружайте исходные данные эффективным образом &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Во время начальной загрузки данных используйте модели восстановления &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SIMPLE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; или &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;BULK&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;LOGGED&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создайте секционированную таблицу фактов с кластеризованным индексом.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создайте неиндексированные промежуточные таблицы для каждой из секций и разделите файлы исходных данных, предназначенные для заполнения каждой из секций.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Заполняйте промежуточные таблицы параллельно.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level2 lfo7;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Используйте несколько инструкций &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;BULK&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;INSERT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;, программу &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;BCP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; или задачи служб &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SSIS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level3 lfo7;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если подсистема ввода-вывода не является &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;«узким местом», создайте столько параллельно выполняющихся сценариев загрузки, сколько в системе установлено процессоров. Если пропускная способность ввода-вывода ограничена, используйте одновременно меньшее число скриптов.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level3 lfo7;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Установите нулевой размер пакета для загрузки. &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level3 lfo7;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Установите нулевой размер фиксации для загрузки. &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level3 lfo7;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Используйте TABLOCK.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level3 lfo7;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если источником данных служат расположенные на одном сервере «плоские» файлы, используйте инструкцию &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;BULK&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;INSERT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;. Если данные принудительно отправляются с удаленных компьютеров, используйте программу &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;BCP&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; или службы &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SSIS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Постройте кластеризованный индекс для каждой промежуточной таблицы, а затем создайте соответствующие ограничения &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;CHECK&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Переключите все секции в секционированную таблицу с помощью инструкции &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SWITCH&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Постройте для секционированной таблицы некластеризованные индексы.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l9 level1 lfo7;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;На 64-процессорном сервере 1 ТБ данных можно загрузить менее чем за с хранилищем &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SAN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; с пропускной способностью 14 ГБ/с (для неиндексированной таблицы). Дополнительные сведения см. в записи блога &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SQLCAT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/sqlcat/archive/2006/05/19/602142.aspx"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;http&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;://&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;blogs&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;msdn&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;com&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;sqlcat&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;archive&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;/2006/05/19/602142.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-size:11.0pt;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/59/original.aspx" width="34" height="34" /&gt;Эффективно удаляйте старые данные&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level1 lfo8;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Когда возможно, используйте переключение секций.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level1 lfo8;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если нужно удалить несколько миллионов строк из несекционированных индексированных таблиц:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level2 lfo8;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Не используйте конструкцию &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;DELETE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; ...&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;WHERE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; ...&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level3 lfo8;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;При этом возникнут значительные проблемы, связанные с блокировками и ведением журналов. &lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level3 lfo8;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В случае отмены удаления откат займет длительное время.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level2 lfo8;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Как правило, более быстрым будет: &lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level3 lfo8;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Вставить записи в неиндексированную таблицу с помощью инструкции &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;INSERT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level3 lfo8;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создать индекс (индексы) для таблицы.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level3 lfo8;tab-stops:list 108.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Переименовать новую таблицу, чтобы она заменила исходную.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l5 level1 lfo8;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В качестве альтернативного способа можно организовать удаление небольшими порциями, циклически выполняя инструкцию &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;DELETE TOP (1000) ... ; &lt;br /&gt;&lt;br /&gt;COMMIT&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l6 level1 lfo9;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В качестве еще одной альтернативы можно пометить строки как удаленные, а само удаление отложить и выполнить в период пониженной нагрузки. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/60/original.aspx" width="34" height="34" /&gt;Управляйте статистикой вручную &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Статистика по секционированным таблицам ведется для таблицы в целом.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;После загрузки новых данных обновляйте вручную статистику по крупным таблицам фактов.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;После повторного построения индекса для секции обновляйте статистику вручную.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Если статистика обновляется регулярно, после периодической загрузки данных, то автоматическое создание статистики (параметр &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;AUTOSTATS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;) для этой таблицы можно отключить.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Это важно для оптимизации запросов, при которых может потребоваться чтение лишь самых новых данных.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l4 level1 lfo10;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Также повысить производительность можно, обновляя статистику по таблицам измерений небольшого размера после добавочной загрузки данных. Чтобы получить более точные планы запросов, используйте параметр &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;FULLSCAN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; для обновления статистики по таблицам измерения.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;img border="0" alt="" src="http://sqlcat.com/photos/top10icons/images/61/original.aspx" width="34" height="34" /&gt;Выбирайте эффективные стратегии резервного копирования &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo11;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Для очень больших баз данных резервное копирование базы данных целиком может занимать значительное время.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo11;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Например, резервное копирование базы данных размером 2 ТБ на массив &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;RAID&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;-5 из 10 дисков по сети &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SAN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; может занять 2 часа (при скорости 275 МБ/с).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo11;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Отличным вариантом резервного копирования может быть создание моментальных снимков в &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SAN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo11;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Сократите объем данных, подлежащих регулярному резервному копированию.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo11;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Файловые группы для секций с историческими данными можно пометить как &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;READ&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ONLY&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo11;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Создавайте резервную копию файловой группы лишь один раз при ее переводе в состояние «только для чтения».&lt;/span&gt;&lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo11;tab-stops:list 72.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Проводите регулярное резервное копирование &lt;i&gt;только&lt;/i&gt; для файловых групп, доступных и для чтения, и для записи. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li style="TEXT-ALIGN:justify;LINE-HEIGHT:normal;MARGIN:0cm 0cm 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo11;tab-stops:list 36.0pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Учтите, что инструкции &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;RESTORE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; для восстановления файловых групп, доступных только для чтения, не могут выполняться параллельно.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;table style="WIDTH:100%;mso-cellspacing:0cm;mso-yfti-tbllook:1184;mso-padding-alt:0cm 0cm 0cm 0cm;" class="MsoNormalTable" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:84.98%;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:84.98%;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:84.98%;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:84.98%;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:white;FONT-SIZE:10pt;mso-ansi-language:RU;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;, типы данных, хранилище данных, база данных, дизайн, индекс, зеркальное отображение, оптимизация, секции, производительность, точность, обработка, запрос, масштабируемость, безопасность, службы отчетов, службы интеграции&lt;/span&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#f0f0f0;BORDER-LEFT:#f0f0f0;PADDING-BOTTOM:0cm;BACKGROUND-COLOR:transparent;PADDING-LEFT:0cm;WIDTH:9.08%;PADDING-RIGHT:0cm;BORDER-TOP:#f0f0f0;BORDER-RIGHT:#f0f0f0;PADDING-TOP:0cm;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;FONT-SIZE:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;: &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1051" width="1" height="1"&gt;</description></item><item><title>Whitepaper About Star Join Optimizations</title><link>http://sqlcat.com/msdnmirror/archive/2009/12/16/whitepaper-about-star-join-optimizations.aspx</link><pubDate>Wed, 16 Dec 2009 20:20:03 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1027</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>When we talk to Data Warehouse customers – they often raise questions about the star joins improvements SQL Server 2008. Star join is a set of optimizations that provide some interesting performance gains in data warehouse workload. Instead of digging into details here on SQL CAT we want to draw your attention to this nice whitepaper about the subject: Using Star Join and Few-Outer-Row Optimizations to Improve Data Warehousing Queries Happy reading....(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/12/16/whitepaper-about-star-join-optimizations.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1027" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/msdnmirror/archive/tags/Data+Warehouse/default.aspx">Data Warehouse</category><category domain="http://sqlcat.com/msdnmirror/archive/tags/sql/default.aspx">sql</category></item><item><title>Monitoring free space in tempdb transaction log</title><link>http://sqlcat.com/msdnmirror/archive/2009/12/14/monitoring-free-space-in-tempdb-transaction-log.aspx</link><pubDate>Mon, 14 Dec 2009 13:58:36 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1025</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>Author: Thomas Kejser Reviewers: Peter Byrne, Sunil Agarwal, Prem Mehra, Peter Scharlock, Lindsey Allen, Mark Souza As part of your database monitoring, you may be keeping track of the free space in the transaction log. One reason to do this, is to detect a rogue query consuming too much transaction log space. If you have such monitoring set up, you need to be a bit careful about tempdb . Recall that unused space in the transaction log in a FULL and BULK LOGGED recovery mode database is reclaimed...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/12/14/monitoring-free-space-in-tempdb-transaction-log.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1025" width="1" height="1"&gt;</description></item><item><title>Performance Comparison between Data Type Conversion Techniques in SSIS 2008</title><link>http://sqlcat.com/msdnmirror/archive/2009/12/01/performance-comparison-between-data-type-conversion-techniques-in-ssis-2008.aspx</link><pubDate>Tue, 01 Dec 2009 13:59:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1022</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>Authors : Sedat Yogurtcuoglu and Thomas Kejser Technical Reviewers : Kevin Cox, Denny Lee, Carl Rabeler, Dana Kaufman, Jesse Fountain, Alexei Khalyako, Dana Kaufman Overview Data type conversion is one of the most common ETL tasks used in Microsoft® SQL Server® Integration Services packages. There are several ways to perform these conversions: you can use a Data Conversion transformation or a Derived Column transformation, or you can perform the conversion on the source component itself. This technical...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/12/01/performance-comparison-between-data-type-conversion-techniques-in-ssis-2008.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1022" width="1" height="1"&gt;</description></item><item><title>Working with the New SQL Server 2008 Collations and Earlier Versions of the Native Data Provider</title><link>http://sqlcat.com/whitepapers/archive/2009/11/25/working-with-the-new-sql-server-2008-collations-and-earlier-versions-of-the-native-data-provider.aspx</link><pubDate>Wed, 25 Nov 2009 19:06:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1018</guid><dc:creator>Mike Weiner</dc:creator><slash:comments>1</slash:comments><description>&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;Writer:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt; Fernando Caro&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;Technical Reviewers:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt; Jimmy Wu, Sanjay Mishra, Qingsong Yao, Juergen Thomas, Burzin Patel, Wanda He, Tres London&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;mso-themecolor:text1;"&gt;&lt;font size="3"&gt;
&lt;p style="LINE-HEIGHT:normal;MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Published:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; October 2009&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Applies to:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; SQL Server 2008&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-themecolor:text1;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Summary:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; Collations are essential in setting up a database and for database operations. They are used at the server and database level, but they can also be used at the column or expression level. With SQL Server 2008, new Windows collations (denoted by *_100 in the collation name) were added that are in full alignment with the Windows Vista and Windows Server 2008 operating systems. Some of these new collations are not supported with earlier versions of the native data provider during connection to a SQL Server 2008 database, if both the client and the server environment are not in Unicode. It is therefore important to understand these collation scenarios and corresponding solutions.&lt;/span&gt; 
&lt;p style="LINE-HEIGHT:normal;MARGIN:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;For further details please&amp;nbsp;download the whitepaper from: &lt;/span&gt;&lt;span style="COLOR:black;FONT-SIZE:12pt;mso-ascii-font-family:Calibri;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Pre-SQLServer2008_NativeDataProviders_and_NewCollations.docx"&gt;&lt;span style="COLOR:blue;"&gt;&lt;font face="Calibri"&gt;http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Pre-SQLServer2008_NativeDataProviders_and_NewCollations.docx&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt; 
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Pre-SQLServer2008_NativeDataProviders_and_NewCollations.docx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1018" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Precision/default.aspx">Precision</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Unicode/default.aspx">Unicode</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Collations/default.aspx">Collations</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Как справиться с PAGELATCH при большом количестве одновременных операций INSERT</title><link>http://sqlcat.com/whitepapers_russian/archive/2009/11/25/pagelatch-insert.aspx</link><pubDate>Wed, 25 Nov 2009 13:45:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1017</guid><dc:creator>AlexeiK</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;b&gt;Авторы&lt;/b&gt;&lt;b&gt;: &lt;/b&gt;Thomas Kejser, Lindsey Allen, Arvind Rao и Michael Thomassy&lt;/p&gt;
&lt;p&gt;&lt;b&gt;При&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;участии&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;и&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;с&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;рецензиями&lt;/b&gt;: Mike Ruthruff, Lubor Kollar, Prem Mehra, Burzin Patel, Michael Thomassy, Mark Souza, Sanjay Mishra, Peter Scharlock, Stuart Ozer, Kun Cheng и Howard Yin&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Введение&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Недавно, мы проводили лабораторные испытания в Microsoft Enterprise Engineering Center, при которых использовалась большая рабочая нагрузка, характерная для OLTP систем. Целью этой лабораторной работы было взять Microsoft SQL Server&amp;nbsp;c интенсивной рабочей нагрузкой и посмотреть,&amp;nbsp; что случится при увеличении числа процессоров с 64 до 128 &amp;nbsp;(примечание: эта конфигурация была ориентирована на релиз Microsoft SQL Server 2008 R2). Рабочая нагрузка представляла собой бльшое количесво одновеменных&amp;nbsp; операций вставки, направляемых в несколько больших таблиц.&lt;/p&gt;
&lt;p&gt;Как только мы начали масштабировать &amp;nbsp;нагрузку до 128 процессорных ядер, сразу же в статистике ожиданий стали доминировать &amp;nbsp;блокировоки PAGELATCH_UP и PAGELATCH_EX. Средняя продолжительность ожиданияй была десятки миллисекунд, и таких ожиданий было очень много. Такое их количество оказалось для нас неожиданностью, ожидалось, что их продолжительность не будет превышать несколько миллисекунд.&lt;/p&gt;
&lt;p&gt;В данной технической заметке будет описано, как мы сначала диагностировали подобную проблему и как для разрешения подобной проблемы можно использовать секционированые таблицы.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Диагностика проблемы&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Когда в&lt;b&gt; &lt;/b&gt;&lt;b&gt;sys&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;b&gt;dm&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;os&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;wait&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;stats&lt;/b&gt; наблюдается большое число ожиданий PAGELATCH, с помощью&lt;b&gt; &lt;/b&gt;&lt;b&gt;sys&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;b&gt;dm&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;os&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;waiting&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;tasks&lt;/b&gt; можно определить сессию и ресурс, который задача ожидает, например, с помощью этого сценария:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;session_id&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wait_type&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;resource_description&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;FROM&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;dm_os_waiting_tasks &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:lime;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;WHERE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;wait_type&lt;/span&gt; &lt;span style="color:gray;"&gt;LIKE&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;font-size:12pt;"&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;i&gt;Пример результата:&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;session_id&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp; wait_type&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;resource_description&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;42&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;PAGELATCH_EX&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:1:122&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;46&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;PAGELATCH_EX&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:1:122&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;48&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;PAGELATCH_EX&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:1:122&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;53&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;PAGELATCH_EX&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:1:122&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;В столбце resource_description указаны местоположения страниц, к которым ожидают доступ сессии, местоположение представлено в таком формате: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;lt;database_id&amp;gt;:&amp;lt;file_id&amp;gt;:&amp;lt;page_id&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Опираясь на&lt;b&gt; &lt;/b&gt;значения в&lt;b&gt; &lt;/b&gt;столбце&lt;b&gt; &lt;/b&gt;&lt;b&gt;resource&lt;/b&gt;&lt;b&gt;_&lt;/b&gt;&lt;b&gt;description&lt;/b&gt;, можно составить довольно сложный запрос, который предоставит выборку всех попавших в список ожидания страниц:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;session_id&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;wait_type&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;wait_duration_ms&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;s&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;name&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;schema_name&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&amp;nbsp;&lt;span style="color:teal;"&gt;o&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;name&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;object_name&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;i&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;name&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;index_name&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;FROM&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;dm_os_buffer_descriptors&lt;/span&gt; &lt;span style="color:teal;"&gt;bd&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:gray;"&gt;*&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:fuchsia;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;resource_description&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;file_index&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:fuchsia;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;resource_description&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;resource_description&lt;/span&gt;&lt;span style="color:gray;"&gt;))&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;page_index&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;&amp;nbsp;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;resource_description&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;rd&lt;/span&gt; &lt;/span&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;FROM&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;dm_os_waiting_tasks&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;wait_type&lt;/span&gt; &lt;span style="color:gray;"&gt;LIKE&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;ON&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;bd&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;database_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;rd&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; 0&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;file_index&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;AND&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;bd&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;file_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;rd&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;file_index&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;page_index&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;span&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;AND&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;bd&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;page_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;rd&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;page_index&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;LEN&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;wt&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;rd&lt;/span&gt;&lt;span style="color:gray;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;allocation_units&lt;/span&gt; &lt;span style="color:teal;"&gt;au&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt; &lt;span style="color:teal;"&gt;bd&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;allocation_unit_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:teal;"&gt;au&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;allocation_unit_id&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;partitions&lt;/span&gt; &lt;span style="color:teal;"&gt;p&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt; &lt;span style="color:teal;"&gt;au&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;container_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:teal;"&gt;p&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;partition_id&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:teal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;indexes&lt;/span&gt; &lt;span style="color:teal;"&gt;i&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;p&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;index_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:teal;"&gt;i&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;index_id&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt; AND&lt;/span&gt; &lt;span style="color:teal;"&gt;p&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:teal;"&gt;i&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:fuchsia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:lime;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;objects&lt;/span&gt; &lt;span style="color:teal;"&gt;o&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt; &lt;span style="color:teal;"&gt;i&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:teal;"&gt;o&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:fuchsia;"&gt;object_id&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;JOIN&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:lime;font-size:10pt;"&gt;sys&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:lime;font-size:10pt;"&gt;schemas&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;s&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;ON&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;o&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;schema&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;_&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;id&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;=&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;s&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;.&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;schema&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;_&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;id&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:fuchsia;font-size:10pt;"&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Запрос показал, что ожидаемые страницы относятся к кластеризованному индексу, определённому первичным ключом таблицы с представленной ниже структурой:&lt;/p&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;TABLE&lt;/span&gt; &lt;span style="color:teal;"&gt;HeavyInsert&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:teal;"&gt;ID&lt;/span&gt; &lt;span style="color:blue;"&gt;INT&lt;/span&gt; &lt;span style="color:blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:blue;"&gt;KEY&lt;/span&gt; &lt;span style="color:blue;"&gt;CLUSTERED&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;,&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;col&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;1&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;50&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:gray;font-size:10pt;"&gt;)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;ON&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;PRIMARY&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;]&lt;/span&gt; &lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Что происходит, почему возникает очередь ожиданий к страницам данных индекса - всё это будет рассмотрено в этой технической заметке.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Основная информация&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Чтобы определить, что происходит с нашей большой OLTP-нагрузкой, важно понимать, как SQL Server выполняет вставку в индекс новой строки. При необходимости вставки в индекс новой строки, SQL Server будет следовать следующему алгоритму внесения изменений:&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1. В журнале транзакций создаётся запись о том, что строка изменилась.&lt;/li&gt;
&lt;li&gt;2. Осуществляется поиск в В-дереве местонахождения той страницы, куда должна будет попасть новая запись.&lt;/li&gt;
&lt;li&gt;3. Осуществляется наложение на эту страницу краткой блокировки PAGELATCH_EX, чтобы воспрепятствовать другим изменениям на этой странице.&lt;/li&gt;
&lt;li&gt;4. Осуществляется добавление строки в страницу и, если это необходимо, осуществляется пометка этой страницы как «грязной».&lt;/li&gt;
&lt;li&gt;5. Осуществляется снятие краткой блокировки со страницы. &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;В итоге, страница&amp;nbsp; будет сброшена на диск процессом контрольной точкой или отложенной записи. &lt;/p&gt;
&lt;p&gt;Однако, что произойдет если все вставляемые строки попадают на одну и ту же страницу? В данном случае можно наблюдать рост очереди к этой странице. Даже учитывая, что краткая блокировка весьма непродолжительна, она может стать причиной конкуренции при высокой параллельной рабочей нагрузке. У нашего клиента, первый и единственный столбец в индексе являлся монотонно возрастающим ключом. Из-за этого, каждая новая вставка шла на ту же самую страницу в конце В-дерева, пока эта страница не была заполнена. Рабочие нагрузки, которые используют в качестве первичного ключа IDENTITY или другие столбцы с последовательно увеличивающимися значениями, также могут столкнуться с подобной проблемой, если одновременно выполняемая нагрузка достаточно высока.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Всегда, когда несколько потоков получают синхронный доступ к одному и тому же ресурсу, может проявиться описанная выше проблема. Стандартное решение состоит в том, чтобы&amp;nbsp; создать больше ресурсов конкурентного доступа. В нашем случае, таким конкурентным ресурсом является последняя страница В-дерева.&lt;/p&gt;
&lt;p&gt;Один из способов снизить конкуренцию за одну страницу состоит в том, чтобы выбрать в качестве первого столбца индекса другой, не увеличивающийся монотонно столбец. Однако, для нашего клиента это потребовало бы внесения изменений на прикладном уровне в клиентских системах. Мы должны были найти другое решение, которое могло бы ограничиться только изменениями в базе данных.&lt;/p&gt;
&lt;p&gt;Помните, что местом конкуренции является одна страница в В-дерева. Если бы только &amp;nbsp;было возможно использовать для этого несколько В-деревьев для &amp;nbsp;одной таблицы!. К счастью, такая возможность есть, это: &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms188706.aspx"&gt;Секционированные таблицы и индексы&lt;/a&gt;. Таблица может быть секционирована таким способом, чтобы новые строки размещались в нескольких&amp;nbsp; секциях. &lt;/p&gt;
&lt;p&gt;Сначала нужно создать функцию и схему секционирования:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;PARTITION&lt;/span&gt; &lt;span style="color:blue;"&gt;FUNCTION&lt;/span&gt; &lt;span style="color:teal;"&gt;pf_hash&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:blue;"&gt;RANGE&lt;/span&gt; &lt;span style="color:gray;"&gt;LEFT&lt;/span&gt; &lt;span style="color:blue;"&gt;FOR&lt;/span&gt; &lt;span style="color:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;0&lt;span style="color:gray;"&gt;,&lt;/span&gt;1&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;PARTITION&lt;/span&gt; &lt;span style="color:teal;"&gt;SCHEME&lt;/span&gt; &lt;span style="color:teal;"&gt;ps_hash&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:blue;"&gt;PARTITION&lt;/span&gt; &lt;span style="color:teal;"&gt;pf_hash&lt;/span&gt; &lt;span style="color:gray;"&gt;ALL&lt;/span&gt; &lt;span style="color:blue;"&gt;TO &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;[PRIMARY]&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt; &lt;/blockquote&gt;
&lt;p&gt;Представленный выше пример использует четыре секции. Число необходимых секций зависит от числа активных процессов, выполняющих операции INSERT в описанную выше таблицу. Есть некоторая сложность в секционировании таблицы с помощью хэш-столбца,например в том, что всякий раз, когда происходит выборка строк из таблицы, будут затронуты все секции. Это означает, что придётся обращаться более чем к одному В-дереву, т.е. не будет отброшенных оптимизатором за ненадобностью ненужных секций. Связанная сэтим дополнительная нагрузка на процессоры и некоторое увеличение времени ожиданий процессоров, побуждает минимизировать число планируемых секций (их должно быть минимальное количество, при котором не наблюдается PAGELATCH). В рассматриваемом нами случае, в системе нашего клиента имелось достаточно много резерва в утилизации процессоров, так что было вполне возможно допустить небольшую потерю времени для инструкций SELECT, и при этом увеличить до необходимых объёмов норму инструкций INSERT.&lt;/p&gt;
&lt;p&gt;Далее нам требуется столбец, который поможет распределить вставки &amp;nbsp;по четырем секциям. Такого столбца изначально в сценарии Microsoft Enterprise Engineering Center не было. Однако, его всегда достаточно просто создать. Используя &amp;nbsp;тот факт, что столбец ID монотонно увеличивается с приращением равным единице, и здесь легко применима довольно простая хеш-функция:&lt;/p&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;TABLE&lt;/span&gt; &lt;span style="color:teal;"&gt;HeavyInsert_Hash&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:teal;"&gt;ID&lt;/span&gt; &lt;span style="color:blue;"&gt;INT&lt;/span&gt; &lt;span style="color:gray;"&gt;NOT&lt;/span&gt; &lt;span style="color:gray;"&gt;NULL&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;col1&lt;/span&gt; &lt;span style="color:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;50&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;HashID&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;ID&lt;/span&gt; &lt;span style="color:gray;"&gt;%&lt;/span&gt; 4 &lt;span style="color:blue;"&gt;PERSISTED&lt;/span&gt; &lt;span style="color:gray;"&gt;NOT&lt;/span&gt; &lt;span style="color:gray;"&gt;NULL)&lt;/span&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;С помощью столбца&lt;b&gt; &lt;/b&gt;&lt;b&gt;HashID&lt;/b&gt;, вставки в четыре секции будут выполняться циклически. Создаём кластеризованный индекс следующим образом:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;UNIQUE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CLUSTERED&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;INDEX&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;CIX&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;_&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:teal;font-size:10pt;"&gt;Hash&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;ON&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:teal;"&gt;HeavyInsert_Hash&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;ID&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:teal;"&gt;HashID&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt; &lt;span style="color:teal;"&gt;ps_hash&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;HashID&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt; &lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Используя новую схему таблицы с секционированием вместо первоначального варианта таблицы, мы сумели избавиться от очередей PAGELATCH и повысить скорость вставки. Этого удалось достичь за счёт балансировки одновременных вставок между несколькими секциями, где каждая секция имеет своё В-дерево. Нам &amp;nbsp;удалось повысить производительность вставки на 15 процентов, и избавиться от большой очереди PAGELATCH к горячей странице индекса одной таблицы. При этом у нас остался достаточно большой резерв процессоров, что делает возможным дальнешую отимизацию, если&amp;nbsp; &amp;nbsp;мы захотим применить аналогичный прием для другой таблицы, тоже с высокой нормой вставки.&lt;/p&gt;
&lt;p&gt;Строго говоря, суть этой уловки в оптимизации логической схемы первичного ключа таблицы. Однако, потому что ключ просто стал длиннее на величину хеш-функции относительно изначального ключа, дубликатов для столбца ID удалось избежать.&lt;/p&gt;
&lt;p&gt;Уникальные индексы по единственному столбцу таблицы зачастую становятся причиной проблем с очередями PAGELATCH. Но даже если эту проблему удастся устранить, у таблицы может оказаться другой, некластеризованный индекс, который будет испытвать аналогичную проблему. Как правило, проблема наблюдается для уникальных ключей на единственном столбце, где каждая вставка попадает на одну и ту же страницу. Если и у других таблиц индексы испытывают высокую конкуренцию с PAGELATCH, можно применить тот же прием с секционированием к индексам таких таблиц, используя такой же&amp;nbsp; хэш-ключ в качестве первичного ключа.&lt;/p&gt;
&lt;p&gt;Не всегда возможно внести изменения в приложение, особенно, если оно является продуктом третьих фирм. Но если изменение запросов возможно, становится доступной их оптимизация за счёт добавления к ним условий фильтрации по предикатам первичного ключа. &lt;/p&gt;
&lt;p&gt;Пример: Чтобы отбросить ненужные секции, можно внести следующие изменения в сценарий:&lt;/p&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;
&lt;p style="line-height:normal;margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color:gray;"&gt;*&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color:teal;"&gt;HeavyInsert_Hash&lt;/span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height:normal;margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color:teal;"&gt;ID&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;font color="#000000"&gt; 42&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;Который после изменений будет выглядеть так:&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:gray;"&gt;*&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span style="color:teal;"&gt;HeavyInsert_Hash&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;
&lt;blockquote&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;WHERE&lt;/span&gt; &lt;span style="color:teal;"&gt;ID&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; 42 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;span style="color:teal;"&gt;HashID&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt; 42 &lt;span style="color:gray;"&gt;%&lt;/span&gt; 4&lt;/span&gt; &lt;/blockquote&gt;
&lt;p&gt;Исключение оптимизатором ненужных секций по значению хэша не будет вам ничего стоить, если только не считать большой платой за это увеличение на один байт каждой строки кластеризованного индекса.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1017" width="1" height="1"&gt;</description></item><item><title>Вариант стратегии быстрого и надежного резервного копирования/восстановления VLDB по сети</title><link>http://sqlcat.com/whitepapers_russian/archive/2009/11/24/vldb.aspx</link><pubDate>Tue, 24 Nov 2009 19:06:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1015</guid><dc:creator>AlexeiK</dc:creator><slash:comments>0</slash:comments><description>&lt;font face="Calibri"&gt;&lt;span style="mso-ansi-language:RU;"&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;strong&gt;Автор:&lt;/strong&gt; Томас Грохсер (Thomas H. Grohser)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;strong&gt;При содействии:&lt;/strong&gt; Линдсей Аллен (Lindsey Allen)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;strong&gt;Техническая экспертиза статьи:&lt;/strong&gt; Sanjay Mishra, Lubor Kollar, Stuart Ozer, Thomas Kejser, Juergen Thomas, James Podgorski, Burzin Patel&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;span&gt;&lt;strong&gt;Резюме:&lt;/strong&gt; Размер баз данных непрерывно растёт, так же, как и растут требования к надежности и доступности баз. Одновременно с этим как никогда важным становится&amp;nbsp; требование быстрого и надежного восстановления данных. Этот документ посвящён проблемам проектирования устойчивого резервного копирования и решений по восстановлению очень больших баз данных (VLDB). В этой статье на реальном примере демонстрируется как лучше всего использовать функциональность SQL Server 2008 для осуществления&amp;nbsp;&amp;nbsp;&amp;nbsp; резервного&amp;nbsp; копирования и&amp;nbsp;&amp;nbsp; восстановления, которыми обладает SQL Server 2008,&amp;nbsp; а также&amp;nbsp; создание планов резервного копирования и восстановления VLDB по сети.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="3"&gt;&lt;span&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;br /&gt;&amp;nbsp;Создание 2-террабайтной резервной копии на локальном диске и быстрое восстановление из нее достаточно быстрый процесс, однако он не предоставляет адекватной защиты от форс-мажорной ситуации.&amp;nbsp; С другой стороны, создание резервной копии базы данных по чети на сетевой ресурс предоставляет достаточную защиту от от форс-мажора, но копирование данных по обычной 1-гигабайтной сети займет очень много времени. Когда мы только изучали данную ситуацию, для базового сравнения мы провели&amp;nbsp; создание резервной копии 2-террабайтной базы по 1-гигабайтной сети на сервер, который находился на удалении 10 миль. Процесс занял 24 часа, что было абсолютно недопустимо. Необходимо было создать некое решение, которое позволило бы избежать узких мест в производительности процесса создания резервной копии и дало бы возможность соблюсти требования сервисного соглашения ( SLA). &lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;Собирая решение по кусочкам и проводя бесконечные тесты, нам удалось сократить время создания копии 2-террабайтной базы&amp;nbsp; до 36 минут.&amp;nbsp; Решение, которое мы назвали «многопоточным резервированием по сети» , использует восемь 1-гигабайтных сетевых соединений. Jumbo Frames были настроены на каждой сетевой карте, все сетевые карты были объеденены в один 10-гигабитный канал, который перекинулся ко второму серверу. После этих оптимизаций создание резервной копии заняло 2 часа 15 минут. Использование компресии резервной копии дало возможность сократить время до финальных 36 минут. &lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;Детальное описание проекта можете прочитать во вложении.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1015" width="1" height="1"&gt;</description><enclosure url="http://sqlcat.com/whitepapers_russian/attachment/1015.ashx" length="4077655" type="application/x-zip-compressed" /></item><item><title>PowerPivot for SharePoint Installation Guides DRAFT</title><link>http://sqlcat.com/msdnmirror/archive/2009/11/20/powerpivot-for-sharepoint-installation-guides-draft.aspx</link><pubDate>Fri, 20 Nov 2009 15:18:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:1009</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>1</slash:comments><description>The installation of PowerPivot for SharePoint can be a little complex at times - especially the PowerPivot for SharePoint multi-server farm scenario. In order to help with this, the Analysis Services team and the SQLCAT team came together and created four PowerPivot for SharePoint Installation Guides for your review. These are DRAFT guides that you can review and provide feedback on. Meanwhile, happy installing! For more information, please go to PowerPivot Server Installation ....(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/11/20/powerpivot-for-sharepoint-installation-guides-draft.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=1009" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/msdnmirror/archive/tags/PowerPivot/default.aspx">PowerPivot</category></item><item><title>PowerPivot Jump Start!</title><link>http://sqlcat.com/msdnmirror/archive/2009/11/10/powerpivot-jump-start.aspx</link><pubDate>Tue, 10 Nov 2009 23:41:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:996</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>1</slash:comments><description>As you may already know, the new name for Project Gemini is PowerPivot and the official names are PowerPivot for Excel and PowerPivot for SharePoint. For information and to sign up for notification on the release dates, check out the official PowerPivot web site at http://www.powerpivot.com/ Shortly after the SharePoint conference, our Analysis Services teammates independently created their own very interesting blogs: Rob Collie’s PowerPivotPro.com : Rob is one of the founding engineers behind PowerPivot...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/11/10/powerpivot-jump-start.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=996" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/msdnmirror/archive/tags/PowerPivot/default.aspx">PowerPivot</category></item><item><title>SQL Server Reporting Services Disaster Recovery Case Study</title><link>http://sqlcat.com/technicalnotes/archive/2009/10/23/sql-server-reporting-services-disaster-recovery-case-study.aspx</link><pubDate>Fri, 23 Oct 2009 16:01:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:961</guid><dc:creator>denny.lee</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;&lt;strong&gt;Authors&lt;/strong&gt;: Ayad Shammout (CareGroup Healthcare), Denny Lee&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Technical Reviewers&lt;/strong&gt;: Lukasz Pawlowski, Sanjay Mishra, Prem Mehra, Michael Thomassy, Lindsey Allen, Burzin Patel, Andy Wu, Thomas Kejser, Carl Rabeler, Quoc Bui&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Applies to&lt;/strong&gt;: SQL Server 2005, SQL Server 2008&lt;/p&gt;
&lt;h4&gt;Introduction&lt;/h4&gt;
&lt;p&gt;There are many ways to perform disaster recovery with Microsoft SQL Server Reporting Services (SSRS). Based upon customer experience and internal testing, this technical note provides guidance around best practices to design and manage robust end-to-end disaster recovery (DR). This DR method will involve both automatic and manual failover in the form of content switches, SQL Server failover clustering, and database mirroring. This case study focuses on the lessons learned from CareGroup Healthcare System. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Environment Setup&lt;/h4&gt;
&lt;p&gt;Figure 1 shows a basic disaster recovery scenario. The left side (in green) represents the &lt;b&gt;primary data center&lt;/b&gt;, while the right side (in orange) represents the &lt;b&gt;disaster recovery (DR)&lt;/b&gt; &lt;b&gt;site&lt;/b&gt;. In general the two sites should be identical or at least very similar to each other so that the DR site will be able to handle the load of the primary data center; all of this should be transparent to the users.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/image_60E404B9.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="image" border="0" alt="image" src="http://sqlcat.com/blogs/technicalnotes/image_thumb_3C8EFA6A.png" width="579" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 1&lt;/strong&gt;: Primary data center and the disaster recovery site&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Primary Data Center&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;The primary data center contains the Reporting Services Web service servers (there is only one for the purpose of this diagram); the report catalogs are placed on a separate server (RSDB). For more information about how to design a scale out Reporting Services environment, see the &lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/05/reporting-services-scale-out-architecture.aspx"&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series&lt;/a&gt;. As a general rule, you should set up the report catalogs (RSDB) in a failover cluster, because the report catalogs are central to the Reporting Services environment. For more information about configuring and optimizing report catalogs, see &lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx"&gt;Report Server Catalog Best Practices&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Disaster Recovery Site&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;The disaster recovery site should closely duplicate the primary data center Reporting Services environment. It should be located in another geographic location such that if the primary data center experiences a resource disruption (for example, in connectivity or power), all traffic can be redirected to the alternate site with minimal disruption to service. In noncritical scenarios, you can utilize fewer resources (for example, less powerful servers, fewer servers) but for mission-critical systems, we highly recommend a server-for-server duplication of resources.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Network Setup&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;To ensure connectivity from the clients to the primary data center and the disaster recovery site, a common technique is to use a content switch to load-balance traffic within the individual sites as well as between the global sites. In the case of CareGroup Healthcare, a Cisco GSS is used as the content switch. As well, there is direct fiber network connectivity between the primary data center and the disaster recovery site to ensure minimal latencies for any communication between the two centers. If the primary site goes down for any reason, the content switch transparently redirects all client traffic to the disaster recovery set of Reporting Services servers. If the content switch is unavailable, the IP address can be changed at the DNS level. This latter change is a manual switch with a slightly longer network outage, which is due to the DNS cache clearing the old IP address and pointing to the new one.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Database Setup&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;For the CareGroup Healthcare environment, the primary RSDB instance within the primary data center is named &lt;b&gt;Boston\sql4 &lt;/b&gt;and is a SQL Server cluster using SQL Server 2008 Enterprise, with the content switch pointing to the alias &lt;b&gt;sql4&lt;/b&gt;. An active/passive failover cluster is used; this allows other active database instances to be located on the server in the passive node. This technique works well if the passive node is not overutilized such that it can handle the Reporting Services workload if the Reporting Services active node goes offline. It may make sense to go to an active/active cluster if there is enough traffic, concurrent users, and/or resources, though the discussion of the tradeoffs between idle machines and high availability scenarios is outside the scope of this technical note. Each of these clustering techniques has unique advantages; ultimately, it is important to ensure that the report catalogs are consistently running with minimal downtime. For more information about how to best configure a SQL Server clustering environment, see &lt;a href="http://sqlcat.com/whitepapers/archive/2009/07/08/sql-server-2008-failover-clustering.aspx"&gt;SQL Server 2008 Failover Clustering&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To ensure that the RSDB within the disaster recovery site is up-to-date, a common technique is to use asynchronous database mirroring. For the CareGroup Healthcare environment, the mirrored RSDB instance is named &lt;b&gt;Montréal\sql4 &lt;/b&gt;and is a SQL Server cluster using SQL Server 2008 Enterprise. Note that while the domain names are different (Montréal vs. Boston in this case), the SQL Server clusters for the primary data center and the disaster recovery site have the same name (more on this later). As noted in &lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx"&gt;Report Server Catalog Best Practices&lt;/a&gt;, the key database to keep in sync is the report server (RSDB) database, because it stores all of the report metadata, including report definitions, report history and snapshots, and scheduling information. All Reporting Services operations must connect to this database to access its metadata to perform their functions. The reason asynchronous database mirroring is commonly chosen is that asynchronous mirroring has minimal or no impact on response time performance. In addition, asynchronous mirroring works well because RSDB metadata is not frequently updated. For more information about database mirroring, see &lt;a href="http://sqlcat.com/whitepapers/archive/2008/09/02/sql-server-replication-providing-high-availability-using-database-mirroring.aspx"&gt;SQL Server Replication: Providing High Availability using Database Mirroring&lt;/a&gt; and &lt;a href="http://sqlcat.com/technicalnotes/archive/2007/12/17/asynchronous-database-mirroring-with-log-compression-in-sql-server-2008.aspx"&gt;Asynchronous Database Mirroring with Log Compression in SQL Server 2008&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following table describes an example endpoint setup for these database mirrors.&lt;/p&gt;
&lt;table style="BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;BORDER-COLLAPSE:collapse;BORDER-TOP:medium none;BORDER-RIGHT:medium none;mso-border-alt:solid #7ba1ce 1.0pt;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:1.0pt solid #7ba1ce;" class="MsoNormalTable" cellspacing="0" cellpadding="0"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:#7ba1ce 1pt solid;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:1.45in;PADDING-RIGHT:5.4pt;BACKGROUND:#4f81bd;BORDER-TOP:#7ba1ce 1pt solid;BORDER-RIGHT:medium none;PADDING-TOP:0in;"&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;Mirror Setup &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:2in;PADDING-RIGHT:5.4pt;BACKGROUND:#4f81bd;BORDER-TOP:#7ba1ce 1pt solid;BORDER-RIGHT:medium none;PADDING-TOP:0in;"&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;Boston\sql4 (Primary) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:121.5pt;PADDING-RIGHT:5.4pt;BACKGROUND:#4f81bd;BORDER-TOP:#7ba1ce 1pt solid;BORDER-RIGHT:#7ba1ce 1pt solid;PADDING-TOP:0in;"&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;Montréal\sql4 (DR site) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="COLOR:white;mso-themecolor:background1;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:#7ba1ce 1pt solid;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:1.45in;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;&lt;b&gt;Name &lt;/b&gt;&lt;b&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:2in;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Principal 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:121.5pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:#7ba1ce 1pt solid;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Partner 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:#7ba1ce 1pt solid;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:1.45in;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;&lt;b&gt;Listener Port &lt;/b&gt;&lt;b&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:2in;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;50212 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:121.5pt;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:#7ba1ce 1pt solid;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;50212 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:#7ba1ce 1pt solid;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:1.45in;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;&lt;b&gt;Encryption &lt;/b&gt;&lt;b&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:2in;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Yes 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:121.5pt;PADDING-RIGHT:5.4pt;BACKGROUND:#d3e0ef;BORDER-TOP:medium none;BORDER-RIGHT:#7ba1ce 1pt solid;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Yes 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:4;mso-yfti-lastrow:yes;"&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:#7ba1ce 1pt solid;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:1.45in;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;&lt;b&gt;Role &lt;/b&gt;&lt;b&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:2in;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:medium none;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Partner 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style="BORDER-BOTTOM:#7ba1ce 1pt solid;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:5.4pt;WIDTH:121.5pt;PADDING-RIGHT:5.4pt;BORDER-TOP:medium none;BORDER-RIGHT:#7ba1ce 1pt solid;PADDING-TOP:0in;mso-border-top-alt:solid #7ba1ce 1.0pt;"&gt;
&lt;p class="MsoNoSpacing"&gt;Partner 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Initializing Database Mirror&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;A relatively easy way to initialize a database mirroring setup is to:&lt;/p&gt;
&lt;p&gt;1) Make full and transaction log backups of the Reporting Services databases on the principal server. &lt;/p&gt;
&lt;p&gt;2) Copy the backups over to the disaster recovery site, restoring each Reporting Services database in no-recovery mode.&lt;/p&gt;
&lt;p&gt;3) Set up the failover partner on the mirror (that is, the DR site) before you set up the failover partner on the principal server.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Failover Scenarios&lt;/h4&gt;
&lt;p&gt;There are three main disaster recovery scenarios that can occur within this Reporting Services disaster recovery environment:&lt;/p&gt;
&lt;p&gt;· Reporting Services servers within the primary data center go offline.&lt;/p&gt;
&lt;p&gt;· The active server for the RSDB in the primary data center failover cluster goes offline.&lt;/p&gt;
&lt;p&gt;· The entire cluster for the RSDB in the primary data center goes offline.&lt;/p&gt;
&lt;p&gt;Please note that this note does not explicitly cover the scenarios concerning the Reporting Source databases. While most of the information here is applicable to these databases (such as data marts, operational data stores, transactional systems, and data warehouses), they have their own disaster recovery requirements and procedures that should be separate from the reporting infrastructure.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Reporting Services Servers within the Primary Data Center Go Offline&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;As noted in Figure 2, both Reporting Services servers point to the same cluster of databases. In this case, they both point to the active/passive database cluster &lt;b&gt;Boston\sql4&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/image_293E1DFE.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="image" border="0" alt="image" src="http://sqlcat.com/blogs/technicalnotes/image_thumb_5BEDD8D8.png" width="628" height="399" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 2&lt;/strong&gt;: Reporting Services servers within the Primary Data Center go offline&lt;/p&gt;
&lt;p&gt;In this scenario where the Reporting Services servers within the primary data center go offline, the hardware content switch will detect a network connectivity issue and &lt;b&gt;automatically fail over&lt;/b&gt; to the disaster recovery site. By default, the Reporting Services farm connects to the report catalog in the primary data center because it has the most up-to-date information (provided that the network is fast and responsive). Therefore in most cases, the client connectivity to the Reporting Services environment in the DR site is minimally impacted (clients might need to be closed and restarted to establish a new network connection, or they could receive a broken link/page in the browser and need to refresh or restart their report execution).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Active RSDB Server in the Primary Data Center Failover Cluster Goes Offline&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;If the active server in the primary data center failover cluster goes offline, the active/passive setup of the SQL Server failover cluster will kick in. The active server will &lt;b&gt;automatically fail over&lt;/b&gt; to the passive instance of the node with little to no service interruption. The report server may report that it cannot connect to the report server database, but after the passive node comes online, it will automatically re-establish the connection. All report server connectivity will continue as previously performed except that now the passive instance has become the active instance.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/image_14F4900E.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="image" border="0" alt="image" src="http://sqlcat.com/blogs/technicalnotes/image_thumb_3A6DE7A2.png" width="623" height="393" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 3&lt;/strong&gt;: Active cluster for RSDB in the primary data center goes offline&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Entire RSDB Cluster in the Primary Data Center Goes Offline&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;If the primary data center RSDB SQL Server cluster goes offline, the disaster recovery solution is to manually fail over to the RSDB on the disaster recovery site to continue serving up reports. But note that this is a &lt;b&gt;manual failover&lt;/b&gt; process, which requires manual configuration of the Reporting Services servers in the Reporting Services farm to point to the RSDB instance within the disaster recovery site. It is important to be aware that, with asynchronous mirroring, manual failover by definition forces the service to allow data loss. With Reporting Services, however, the data loss should be minimal because report metadata is not frequently updated and snapshots can be re-created. By configuring the primary data center and disaster recovery site RSDBs with identical instance names (recall that both instances are named &lt;b&gt;sql4 &lt;/b&gt;but that they are in different domains), the manual failover is simplified because the Reporting Services servers will connect to an identically named instance of the RSDB (different domain, but same name). &lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/image_608FF560.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="image" border="0" alt="image" src="http://sqlcat.com/blogs/technicalnotes/image_thumb_5960931B.png" width="626" height="411" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 4&lt;/strong&gt;: Entire cluster for RSDB in the primary data center goes offline&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Primary Data Center Outage Scenarios&lt;/h4&gt;
&lt;p&gt;If the entire primary data center goes offline for either a planned or unplanned outage, the content switch will automatically fail over to the Reporting Services farm in the disaster recovery site, but you will need to perform a manual failover to ensure that the Reporting Services servers can connect to the copy of the RSDB in the disaster recovery site.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Planned Outages&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;For planned outages:&lt;/p&gt;
&lt;p&gt;1) The content switch will perform the task of suspending the primary IP addresses and activating the DR site IP addresses so that all connections will be redirected to the disaster recovery site.&lt;/p&gt;
&lt;p&gt;2) You will need to execute a script on the primary database to manually switch to the mirrored database. After the partner database becomes the primary, the same script can be re-executed to switch back to the original primary database. Here is an example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- Script to manually fail over to the mirror database&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- Example: switch from Boston\sql4 to Montreal\sql4&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;USE [master]&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;GO&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- Database ReportingServer&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;ALTER DATABASE ReportingServer SET PARTNER FAILOVER&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;GO&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Unplanned Outages&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;For unplanned outages:&lt;/p&gt;
&lt;p&gt;1) The content switch will perform the task of suspending the primary IP addresses and activating the DR site IP addresses so that all connections will be redirected to the disaster recovery site.&lt;/p&gt;
&lt;p&gt;2) You will need to run a manual failover script to force the service to switch with possible data loss. The script needs to run on the mirrored server in the case of loss of the principal server. Here is an example: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- Script to force database fail over of Boston\sql4 to Montreal\sql4 &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- in case of SQL Server instance failure&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;USE [master]&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;GO&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;-- Database ReportingServer&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;ALTER DATABASE ReportingServer&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;GO&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;After this script is run, the mirror server is the principal server and the mirror itself is suspended.&lt;/p&gt;
&lt;p&gt;For more information about Reporting Services configuration for the database connection, see &lt;a href="http://msdn.microsoft.com/en-us/library/ms159133.aspx"&gt;Configuring a Report Server Database Connection&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;Break/Rebuild the Mirror&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;After the system goes down, it is undesirable to have the active system push data to the passive system (it cannot anyways). So it is important to break the mirror with the primary data center server and then re-establish it after the primary data center (in this example, Boston) server is back online. Note that the disaster recovery (in this example, Montréal) server is the one that is now active, so you will need to manually transfer the data from the DR site server back to the primary data center server (in this example, Montréal to Boston). To fully break the mirror, execute the following on the primary server:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;ALTER DATABASE ReportingServer SET PARTNER OFF&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;RESTORE DATABASE ReportingServer WITH RECOVERY&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To rebuild the mirror, follow the original steps in the &lt;i&gt;Initializing Database Mirror &lt;/i&gt;section above. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Detail Logistics&lt;/h4&gt;
&lt;p&gt;It is important to understand that the Reporting Services report jobs, schedules, and subscriptions will not be mirrored between the RSDB from the primary data center and the disaster recovery site. This occurs because SQL Server Agent jobs are stored in the &lt;b&gt;msdb&lt;/b&gt; database, which is not mirrored. A common method to resolve this issue is to script all of these Reporting Services jobs in the primary site and then use these scripts to re-create them on the disaster recovery site (with the jobs disabled); activate these jobs only if the system fails over. In the case of Reporting Services database &lt;i&gt;migration&lt;/i&gt;, it is not necessary to perform this operation, as noted in &lt;a href="http://msdn.microsoft.com/en-us/library/ms143724.aspx"&gt;How to: Migrate a Reporting Services Installation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that logins created on the primary site may not be replicated to the disaster recovery site. To work around this problem, we recommend storing all of these logins into their own database and mirroring this database to the DR site as well. Then create a script to generate the logins within the DR site to re-establish the logins. For more information, see &lt;a href="http://support.microsoft.com/kb/246133/"&gt;How to transfer logins and passwords between instances of SQL Server&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;With these guidelines, you can prepare your Reporting Services environment for disaster recovery scenarios. The key here is that you will need to use a combination of hardware components, network connectivity, SQL Server database mirroring, and architecture to create a disaster recovery infrastructure to support an enterprise SQL Server Reporting Services environment. As noted, this case study has used specific techniques such as active/passive clustering and asynchronous database mirroring to support their disaster recovery requirements. Your situation may be different, but this technical note should provide you with the basic framework for Reporting Services disaster recovery. The hope is that you will never need to use it, but at least now you are ready in case you do.&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=961" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Disaster+Recovery/default.aspx">Disaster Recovery</category></item><item><title>Использование SQL Server 2008 в среде Hyper-V. Рекомендации и вопросы производительности </title><link>http://sqlcat.com/whitepapers_russian/archive/2009/10/22/sql-server-2008-hyper-v.aspx</link><pubDate>Thu, 22 Oct 2009 11:40:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:958</guid><dc:creator>AlexeiK</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Авторы:&lt;/strong&gt; Линдсей Аллен (Lindsey Allen), Майк Рутраф (Mike Ruthruff), Прем Мехра (Prem Mehra)&lt;br /&gt;&lt;strong&gt;Технические редакторы&lt;/strong&gt;: Синди Гросс (Cindy Gross), Бурзин Пател (Burzin Patel), Денни Ли (Denny Lee), Майкл Томасси (Michael Thomassy), Санджай Мишра (Sanjay Mishra), Савитха Падманабхан (Savitha Padmanabhan), Тони Вельм (Tony Voellm), Боб Уорд (Bob Ward)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Основанная на технологии гипервизора функция виртуализации Hyper-V™ представляет собой тонкий слой ПО, связывающий оборудование и ОС Windows Server® 2008, который позволяет одновременно запускать на сервере несколько операционных систем без их модификации. Hyper-V — это мощная технология виртуализации, обеспечивающая консолидацию слабо загруженных корпоративных серверов, что позволяет снизить совокупную стоимость владения при хранении и повысить качество обслуживания.&lt;br /&gt;Hyper-V дает возможность обойти ограничения, связанные с наличием оборудования, и использовать больше разнообразных типов сред разработки и тестирования. &lt;br /&gt;Определение объема оборудования, необходимого для консолидации имеющихся рабочих нагрузок и обеспечения задела для роста, как правило, довольно проблематично. Добавление виртуализации усложняет проблемы планирования ресурсных затрат в неоднородной среде. Данный документ призван помочь в решении этих проблем. Основное внимание уделено следующим двум важным аспектам запуска Microsoft® SQL Server® в среде Hyper-V: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;•&amp;nbsp;Дополнительные затраты системных ресурсов, связанные с работой SQL Server в среде Hyper-V &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; •&amp;nbsp;Масштабируемость Hyper-V при работе с SQL Server 2008&lt;br /&gt;В этом документе описан ряд опробованных тестовых конфигураций, представляющих разнообразные возможные сценарии функционирования SQL Server в среде Hyper-V. В документе изложены полученные результаты и наблюдения, а также представлены рекомендации. Результаты тестов показали, что SQL Server 2008 обеспечивает при работе в среде Hyper-V стабильную производительность и масштабируемость. Мы уверены, что при соответствующих рабочих нагрузках Windows Server 2008 Hyper-V представляет собой надежную платформу для работы SQL Server 2008. Запуск производственных процессов в среде Hyper-V допустим при условии, что рабочая нагрузка не превышает возможностей гостевой виртуальной машины Hyper-V. &lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=958" width="1" height="1"&gt;</description><enclosure url="http://sqlcat.com/whitepapers_russian/attachment/958.ashx" length="1604096" type="application/msword" /></item><item><title>Using Filtered Statistics with Partitioned Tables.</title><link>http://sqlcat.com/msdnmirror/archive/2009/10/20/using-filtered-statistics-with-partitioned-tables.aspx</link><pubDate>Tue, 20 Oct 2009 20:26:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:951</guid><dc:creator>AlexeiK</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b&gt;Author:&lt;/b&gt; Alexei Khalyako&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;b&gt;Reviewers and contributors:&lt;/b&gt; Eric Hanson, Dimitri Artemov, Burzin Patel, Thomas Kejser&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Introduction&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;We’ve worked with a customer on architectural design review and preparing a migration of a big &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Data Warehouse from SQL Server 2005 to SQL Server 2008.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Base on the customer’s requests, there were various advantages of the migration to SQL Server 2008 identified. One of the requests was related to control of the query resource consumption. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The main role of the Data Warehouse in the customer’s scenario&amp;nbsp; is to collect Call Data records, which have to be analyzed later and used by several other business applications. So, in general once per day new data come into a several Terabyte partitioned table and then business apps and business users were running report-type of queries. Some of the relatively small reports were taking very long times. As DBA started analyzing those queries they recognized that the difference between REQUIRED and REQUESTED memory by the query was huge (like amount of required memory was 18Mb and requested – 10 GB)!&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;As the part of optimization we were able to lower the appetite of those queries by using Resource Governor. We even managed to get more of the heavy queries executed at the same time. However this didn’t address the other question – why queries were requesting way more memory?&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;Analyzing query plans we found out that the Statistics were disabled on this table. The reason for this was that customer had to load every day very big amount of data into the new partition. Statics was becoming not valid and should have been updated.&amp;nbsp; Update process was starting on the entire table (which is several Tb) and by the tome update was finished – the new portion of the data was arriving. And so on, and so on... Customer decided to disable and delete statistics on the entire table.&lt;br /&gt;Another important moment to note: customer stated that most of the report queries run against only one partition in partitioned table.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;Base on the AdwentureWorks database and the table SalesOrderHeader I created a little sample to illustrate this situation. I made a partitioned table SalesOrderHistory partitioned by OrderDate by date and covering one month 2008-07.&lt;br /&gt;The table structure looks like:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;font color="#000000" face="Calibri" size="3"&gt;CREATE TABLE [SalesOrderHistory](&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[SalesOrderID] [int]&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [RevisionNumber] [tinyint] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [OrderDate] [datetime] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[DueDate] [datetime] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ShipDate] [datetime] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Status] [tinyint] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[SalesOrderNumber]&amp;nbsp; [nvarchar](25) NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CustomerID] [int] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[ShipToAddressID] [int] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [BillToAddressID] [int] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CreditCardApprovalCode] [varchar](15) NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [SubTotal] [money] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TaxAmt] [money] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Freight] [money] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TotalDue]&amp;nbsp; [money] NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[Comment] [nvarchar](max) NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [rowguid] [uniqueidentifier] ROWGUIDCOL&amp;nbsp; NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ModifiedDate] [datetime] NOT NULL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON day_scheme ([OrderDate])&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;The query will look like a:&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Select&amp;nbsp; b.Name, a.SalesorderId, a.OrderDate from SalesOrderHistory a&lt;br /&gt;Inner Join Store b on a.CustomerID = b.CustomerID&lt;br /&gt;WHERE a.OrderDate = &amp;#39;2008-07-13 00:00:00.000&amp;#39;and a.SalesOrderID = 43659&lt;br /&gt;Group by b.Name, a.SalesorderId, a.OrderDate&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Query executed in 5 sec.&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Let’s see the plan with no statistics on the table:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;img src="http://sqlcat.com/photos/sample/images/953/original.aspx" style="width:700px;height:241px;" alt="" width="1061" align="left" border="0" height="272" /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;
&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;So, we see the warning that statistics is missing, if we check the estimated number of rows in the output of SELECT is 393 rows&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;img src="http://sqlcat.com/photos/sample/images/954/original.aspx" style="width:683px;height:451px;" alt="" width="1101" align="left" border="0" height="626" /&gt;&lt;img src="http://sqlcat.com/photos/sample/images/954/original.aspx" alt="" width="1" border="0" height="1" /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&lt;img src="http://sqlcat.com/photos/sample/images/955/original.aspx" style="width:674px;height:432px;" alt="" width="914" align="left" border="0" height="451" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;If we run DMV to check memory requested and granted to this query we will see following:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;select&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; session_id&lt;span style="color:gray;"&gt;,&lt;/span&gt;requested_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;required_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;granted_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;query_cost&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;from&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_exec_query_memory_grants&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;where&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; session_id &lt;span style="color:gray;"&gt;&amp;gt;&lt;/span&gt;50&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp; 
&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;table style="margin:auto auto auto 2.85pt;width:400.3pt;border-collapse:collapse;" class="MsoNormalTable" cellpadding="0" cellspacing="0"&gt;

&lt;tr style="height:15pt;"&gt;
&lt;td style="border:1pt solid windowtext;padding:0cm 3.5pt;background-color:transparent;width:48pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;session_id&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:106.3pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;requested_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:99.2pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;required_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:95.7pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;granted_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:51.1pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;query_cost&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 3.5pt;background-color:transparent;width:48pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;52&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:106.3pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;font face="Calibri"&gt;1360&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:99.2pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;font face="Calibri"&gt;1280&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:95.7pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;1360&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:51.1pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;5,737777&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Now we will try to fix it. In SQL 2008 we’ve got new Filtered Statistics. In order to learn more about this feature please read &lt;a href="http://msdn.microsoft.com/en-us/library/ms190397.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms190397.aspx&lt;/a&gt;&amp;nbsp;Having in mind that customer told us that 80% of the queries are hitting only one partition we may apply filtered statistics to improve those queries performance.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;I can try to create different statistics per each column which is included in SELECT statement:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;STATISTICS&lt;/span&gt; Day0713_SalesOrderID &lt;span style="color:blue;"&gt;on&lt;/span&gt; SalesOrderHistory&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;SalesOrderID &lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;where&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OrderDate &lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;2008-07-13 00:00:00.000&amp;#39;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;STATISTICS&lt;/span&gt; Day0713_OrderDate &lt;span style="color:blue;"&gt;on&lt;/span&gt; SalesOrderHistory&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;OrderDate&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;where&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OrderDate &lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;2008-07-13 00:00:00.000&amp;#39;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;CREATE&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:blue;"&gt;STATISTICS&lt;/span&gt; Day0713_CustomerID &lt;span style="color:blue;"&gt;on&lt;/span&gt; SalesOrderHistory&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;CustomerID &lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;where&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;OrderDate &lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;2008-07-13 00:00:00.000&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;After creating those statistics and executing the same query as mentioned above we see that the query execution time was few milliseconds and the plan looked much better:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;img src="http://sqlcat.com/photos/sample/images/956/original.aspx" style="width:681px;height:409px;" alt="" width="588" align="left" border="0" height="364" /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Let’s check how much memory this query requested now and how much was granted:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;select&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; session_id&lt;span style="color:gray;"&gt;,&lt;/span&gt;requested_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;required_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;granted_memory_kb&lt;span style="color:gray;"&gt;,&lt;/span&gt;query_cost&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;from&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; &lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_exec_query_memory_grants&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;"&gt;where&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt; session_id &lt;span style="color:gray;"&gt;&amp;gt;&lt;/span&gt;50&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;/p&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;table style="margin:auto auto auto 2.85pt;width:407.9pt;border-collapse:collapse;" class="MsoNormalTable" cellpadding="0" cellspacing="0"&gt;

&lt;tr style="height:15pt;"&gt;
&lt;td style="border:1pt solid windowtext;padding:0cm 3.5pt;background-color:transparent;width:48.65pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;session_id&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:108.35pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;requested_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:101.25pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;required_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:97.65pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;granted_memory_kb&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:1pt 1pt 1pt medium;border-style:solid solid solid none;padding:0cm 3.5pt;background-color:transparent;width:52pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;query_cost&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="border-width:medium 1pt 1pt;border-style:none solid solid;padding:0cm 3.5pt;background-color:transparent;width:48.65pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;52&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:108.35pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;1024&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:101.25pt;height:15pt;"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;&lt;font face="Calibri"&gt;512&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:97.65pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;1024&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style="border-width:medium 1pt 1pt medium;border-style:none solid solid none;padding:0cm 3.5pt;background-color:transparent;width:52pt;height:15pt;"&gt;&lt;span style="color:black;"&gt;&lt;font face="Calibri"&gt;5,678132&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;We see that comparable to running the same query with no statistics now with filtered statistics on the table enabled has the query much lower expectations on how much memory it may need.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;One of the great advantages of the filtered statistics is that if we switch in new partition into the partitioned table filtered statistics built on the older partitions does not become invalid and you don’t need to update it. You only need to create new filtered statistics for the new partition which is much faster process comparable to if you need to update or build statistics for entire table.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;In case of the real data in the customer’s lab we were able to get even better results using filtered statistics on much bigger amount of data. If you have similar workload, where most of the queries are going against single partition in partitioned table you may want to play with the filtered indexes and check if it will help you increasing performance of your queries. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=951" width="1" height="1"&gt;</description></item><item><title>Are you going to SQL PASS Nov. 3rd- Nov. 5th?</title><link>http://sqlcat.com/msdnmirror/archive/2009/10/19/are-you-going-to-sql-pass-nov-3rd-nov-5th.aspx</link><pubDate>Mon, 19 Oct 2009 13:47:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:950</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>Are you going to SQLPASS in Seattle on Nov 3 rd -Nov 5 th ? If you are going or even thinking about it, then read about how you can spend some quality time with the SQLCAT team. We will be there with our famous ugly lime green shirts, so you won’t miss us. The new exciting addition the SQLCAT will partake in this upcoming PASS is the SQL Server Clinic. The SQL Server Clinic will be open every day during PASS starting after the keynote until 6:00pm. In the SQL Server Clinic will be the powerful combination...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/10/19/are-you-going-to-sql-pass-nov-3rd-nov-5th.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=950" width="1" height="1"&gt;</description></item><item><title>Deploying a Business Intelligence Solution Using SharePoint, Reporting Services, and PerformancePoint Monitoring Server with Kerberos</title><link>http://sqlcat.com/technicalnotes/archive/2009/10/13/deploying-a-business-intelligence-solution-using-sharepoint-reporting-services-and-performancepoint-monitoring-server-with-kerberos.aspx</link><pubDate>Tue, 13 Oct 2009 21:23:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:948</guid><dc:creator>CarlRabeler</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;span style="LINE-HEIGHT:115%;COLOR:#1f497d;FONT-SIZE:9pt;mso-themecolor:text2;"&gt;&lt;font face="Calibri"&gt;Author: Carl Rabeler&lt;font color="#000000" size="3"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="LINE-HEIGHT:115%;COLOR:#1f497d;FONT-SIZE:9pt;mso-themecolor:text2;"&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;COLOR:#1f497d;FONT-SIZE:9pt;mso-themecolor:text2;"&gt;&lt;font face="Calibri"&gt;Reviewers: Prem Mehra, Troy Starr, Kevin Donovan, Burzin Patel, Doron Bar-Caspi, Prash Shirolkar, John Wyss&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;font size="3" face="Calibri"&gt; &lt;/font&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;This technical note describes how we designed and implemented a business intelligence solution that utilized a server farm containing Microsoft® Office SharePoint® Server 2007, Microsoft Office PerformancePoint® Server 2007 Monitoring Server, and Microsoft SQL Server® 2008 Reporting Services in SharePoint mode, all running on Windows Server® 2008 R2 and with all servers and applications configured for Kerberos authentication. In this technical note, we discuss the design requirements for this business intelligence solution, its logical architecture, the challenges we faced in architecting and implementing this solution, and our resolutions to these challenges. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: The business intelligence solution discussed in this technical note was configured and tested in the SQL CAT customer lab and is currently being deployed (substantially as discussed in this article) at a customer site.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Design Requirements&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The design requirements for this business intelligence solution are:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Deploy the solution into a Windows Server 2008 R2 domain.&lt;/font&gt;&lt;font size="3" face="Calibri"&gt;Deploy all server applications in this solution onto servers running Windows Server 2008 R2.&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Deploy a server farm running Office SharePoint Server 2007 (SharePoint), which includes the SharePoint Web front-end (WFE) and the application server, on one server and the SQL Server (SQL Server) database on another server.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Configuring the SharePoint services for later scale-out to multiple SharePoint WFE front-end servers and multiple SharePoint application servers&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Deploy SQL Server 2008 Reporting Services (Reporting Services) on a server, integrate Reporting Services with SharePoint, and deploy its databases to a shared metadata database server&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Deploy Microsoft Office PerformancePoint Server 2007 Monitoring Server (PerformancePoint) on the SharePoint application server, deploying its Monitoring System database to the shared metadata database server, and configuring PerformancePoint for later scale-out to a dedicated application server.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Utilize SQL Server and SQL Server Analysis Services (Analysis Services) data sources (the data source servers) for the Reporting Services reports and PerformancePoint dashboards.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Design reports using Report Builder 2.0 and PPS Dashboard Designer.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Execute Reporting Services reports and view PPS dashboards utilizing Windows® Internet Explorer® 7 or Internet Explorer 8.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Configure the MOSS application server to authenticate business users retrieving business intelligence data into their Reporting Services reports and PPS dashboards from the the data source servers using the business user’s authentication credentials.&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Solution Architecture&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The following two diagrams represent the solution architectures for the initial deployment and for eventual scale-out. The discussion in the remainder of this document describes the challenges we faced and our resolutions in implementing this solution architecture.&lt;/font&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Initial Deployment Architecture&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In this initial deployment architecture, the SharePoint WFE and application server along with the PerformancePoint Server are located on a single application server (called the MOSS App Svr in the following diagram), with a single dedicated server on which Reporting Services is installed in SharePoint mode (called the SSRS Svr in the following diagram), and with a single server on which SQL Server is installed that contains all of the metadata for SharePoint, PerformancePoint and Reporting Services (called the Metadata Svr in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;img border="0" alt="Initial Deployment" src="http://sqlcat.com/blogs/technicalnotes/va1.jpg" width="640" height="480" /&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;Full Scale-Out Deployment Architecture&lt;/font&gt;&lt;/font&gt;&lt;/b&gt; 
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In this full scale-out deployment architecture, the components in the previous diagram are scaled out to the following components:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Multiple SharePoint WFE servers (called WFE (1) through WFE (n) in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Multiple SharePoint application servers (called MOSS App Svr (1) through MOSS App Srv (n) in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;A dedicated SharePoint metadata server (called the MOSS DB Svr in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;A dedicated PerformancePoint Server application server (called the PPS App Svr in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;A dedicated PerformancePoint Server metadata server (called the PPS Mntr Sys DB Svr in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Multiple Reporting Services application servers (called SSRS Svr (1) through SSRS Svr (n) in the following diagram).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;A dedicated Reporting Services metadata server (called the SSRS DB Svr in the following diagram).&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt; &lt;img border="0" alt="Full Scale Out Deployment Architecture" src="http://sqlcat.com/blogs/technicalnotes/va2.jpg" width="1" height="1" /&gt; 
&lt;p&gt;&lt;img border="0" alt="Full Scale" src="http://sqlcat.com/blogs/technicalnotes/va2.jpg" width="1" height="1" /&gt;&lt;img border="0" alt="Full scale deployment" src="http://sqlcat.com/blogs/technicalnotes/va2.png" width="480" height="360" /&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0in 0pt;"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Challenges Encountered and Resolutions&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;In designing and deploying this solution, we encountered a number of installation challenges. Some were unique to Kerberos, and others were related to software installation. These challenges and our resolutions are discussed next.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: This technical note assumes a basic understanding of Kerberos; a full discussion of Kerberos architecture and step-by-step configuration procedures is beyond the scope of this article. For more information about Kerberos architecture, see Microsoft TechNet. It contains has many articles, including the following one: &lt;/font&gt;&lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc733924(WS.10).aspx"&gt;&lt;font size="3" face="Calibri"&gt;Kerberos&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. For step-by-step guidance, see the articles that are mentioned in context in this technical note. We include our comments on lessons learned from our use of these articles. There is no single article for this combination of components.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Designing and Configuring for Kerberos Authentication&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To enable the middle-tier applications (MOSS, PPS, and SSRS) on the Application server to seamlessly authenticate users in accessing report and dashboard data on the data source servers, Kerberos is required. If it is properly configured, the client computer obtains the Kerberos ticket for the user from the Kerberos Key Distribution Center (KDC) based on properly registered Service Principal Names (SPNs), and then it presents this ticket to the SharePoint server farm when it establishes a connection. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: The KDC is a network service that supplies session tickets and temporary session keys to users and computers within an Active Directory® domain. The KDC runs on each domain controller as part of Active Directory Domain Services.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The application servers in the SharePoint server farm, if they are properly configured, impersonate this user when then retrieve the requested data from the appropriate SQL data server (SQL Server or Analysis Services). This is the classic double-hop scenario, which requires Kerberos to securely impersonate a user credentials when connecting to a service on another computer. In order for the Internet Information Services (IIS) service or the Reporting Services service to impersonate the user during connection to the appropriate SQL Data server, the service account under which the IIS service or the Reporting Services service is running must have permission to impersonate, and the computers involved must be authorized for delegation.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: For more information about troubleshooting with respect to Kerberos and delegation, see &lt;/font&gt;&lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/907272"&gt;&lt;font size="3" face="Calibri"&gt;Kerberos authentication and troubleshooting delegation issues&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;On the application server in our solution, there are multiple IIS Web applications within MOSS (Central Administration, a portal site, a My Site, and an SSP Administration site) as well as the PPS web application and the SharePoint WFE. These Web applications utilize different identities via dedicated application pools, and these Web applications listen on both default and nondefault ports (that is, ports other than TCP port 80 and SSL port 443). In addition, the WFE forwards the SSRS requests to the SSRS server. In order for impersonation of the user’s Kerberos credentials to work properly, the identity for each Web application must have an SPN registered. Furthermore, the appropriate SPN must be utilized when the client connects to a particular IIS Web application. In addition, the SSRS service on the SSRS server along with the Analysis Services and SQL Server services on the SQL Data servers must each have properly registered SPNs. To implement Kerberos authentication for this environment, we utilized the approach described in the following Microsoft TechNet article: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc263449.aspx"&gt;&lt;font size="3" face="Calibri"&gt;Configure Kerberos authentication (Office SharePoint Server)&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;, supplemented by the Excel® Services documentation in the following Knowledge Base article: &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/953130"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;How to configure SharePoint Server 2007 and Excel Services for Kerberos authentication&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and PPS-specific information in the following Microsoft TechNet article: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb838742.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Configure Monitoring Server for Kerberos delegation&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: One of things we really like about the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc263449.aspx"&gt;&lt;font size="3" face="Calibri"&gt;Configure Kerberos authentication (Office SharePoint Server)&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; TechNet article is its step-by-step approach to verifying that Kerberos is configured and working properly. However, you should be aware that the Event ID in the Event log for a successful login using Kerberos has changed with Windows Server 2008 and Windows Vista®. It is now Event ID 4624 (see &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/947226"&gt;&lt;font size="3" face="Calibri"&gt;Knowledge Base article 947226&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;); it was Event ID 540 in Windows Server 2003 (as documented in the article).&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Challenge 1: &lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;As pointed out in the &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc263449.aspx"&gt;&lt;font size="3" face="Calibri"&gt;Configure Kerberos authentication (Office SharePoint Server)&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; article, Internet Explorer does not, by default, include port numbers in its Kerberos ticket requests. If port numbers are not included, impersonation is attempted using the Kerberos ticket associated with the application pool identity for the Web application listening on port 80 (or port 443 if SSL is involved). Because in our solution architecture we have Web applications listening on both nondefault and default port numbers, this default behavior does not result in the appropriate Kerberos ticket being retrieved for Web applications listening on nondefault ports – resulting in authentication errors. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To enable Internet Explorer to include port numbers in every request, you can change a registry setting on every client. For more information about this behavior and registry key, see &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/908209"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Knowledge Base article 908209&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. While this Knowledge Base article refers only to Internet Explorer 6.0, the behavior and the registry key changes also apply to Internet Explorer 7 and 8. For the customer environment for which we were designing this solution, modifying the registry on each client (even by means of a global policy) was not acceptable. Without the port numbers in the Kerberos ticket request, only one SPN can be registered for each host name. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Our challenge was to design a solution that enabled an SPN for each Web application in IIS such that a unique Kerberos ticket is retrieved for each Web application on the application server if the application is listening on a nondefault port.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Resolution 1:&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To enable a unique SPN and Kerberos ticket for each IIS Web application listening on a nondefault port, we did the following:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Defined unique host names in DNS for each IIS Web application on the Application server.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Configured each Web application with its own application pool identity (service account).&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Registered four SPN variations for each unique host name using the service account identity for that Web application.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;To illustrate, we began by creating host names in DNS for the SharePoint portal site (hostname), for Central Administration (hostnameca), and PerformancePoint (hostnamepps). Then we registered SPNs for the short host name as well as the fully qualified domain name (FQDN) (hostname.mydomain.com), registering these names both with and without the port number.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: We registered SPNs both with and without port numbers to ensure that our Kerberos configuration worked successfully whether Internet Explorer submitted the port numbers or not. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;hostname&lt;/font&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostname mydomain\mossportalpool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostname:80 mydomain\mossportalpool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostname.mydomain.com mydomain\mossportalpool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostname.mydomain.com:80 mydomain\mossportalpool&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;u&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;hostnameca&lt;/font&gt;&lt;/font&gt;&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnameca mydomain\mossfarmadmin&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnameca:11111 mydomain\mossfarmadmin&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnameca.mydomain.com mydomain\mossfarmadmin&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnameca.mydomain.com:11111 mydomain\mossfarmadmin&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;u&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;hostnamepps&lt;/font&gt;&lt;/font&gt;&lt;/u&gt;&amp;nbsp; 
&lt;ul&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnamepps mydomain\ppsapppool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnamepps:40000 mydomain\ppsapppool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnamepps.mydomain.com mydomain\ppsapppool&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font size="3" face="Calibri"&gt;setspn -A HTTP/hostnamepps.mydomain.com:40000 mydomain\ppsapppool&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;font size="3" face="Calibri"&gt;This approach resolved the Internet Explorer issue with connecting to a Web application running on a nondefault port. With this approach, when Internet Explorer connects to a virtual hostname for the appropriate Web application (rather than the physical machine name), DNS refers the user to the application server, and it uses the SPN registered for the virtual hostname. As a result, the appropriate Kerberos ticket is retrieved (rather than the Kerberos ticket for the application listening on port 80). Using our example, when Internet Explorer connects to hostnameca or hostnameca:11111, the SPN for the mossfarmadmin is used, and if Internet Explorer connects to hostnamepps or hostnamepps:40000, the SPN for ppsapppool is used.&lt;/font&gt; 
&lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;strong&gt;Note: &lt;/strong&gt;We also registered SPNs for the service account for the SQL Server relational engine, Analysis Services, and Reporting Services services. Only two SPNs were registered for these services because connectivity to these services is not made by Internet Explorer; instead, the middle-tier services on the application servers connect directly to these services. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Challenge 2:&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Our solution to Kerberos Challenge 1 required that we configure IIS to utilize different application pool identities for each Web application: for example, hostname, hostnameca, and hostnamepps each used a different application pool identity. In IIS 7.5 with Windows Server 2008 R2 (as well as with IIS 7.0 in Windows Server 2008), IIS utilizes kernel mode authentication by default. Kernel mode authentication runs under the machine account of the IIS server. For more information, see &lt;/font&gt;&lt;a href="https://www.iis.net/ConfigReference/system.webServer/security/authentication"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Security Authentication &amp;lt;authentication&amp;gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc771945.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Advanced Settings Dialog Box – Windows Authentication Feature&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. This change to kernel mode authentication is generally a good thing, because performance is improved and the configuration for Kerberos is simplified in many scenarios; authentication is done under the LocalSystem account, regardless of the application pool identity. However, in a Web farm environment (such as in our scenario), we needed to use the application pool for authentication to ensure the correct Kerberos ticket would be utilized for the appropriate Web service when it was scaled out to multiple application and front-end servers. &lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Resolution 2:&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;There are two ways to resolve this problem: &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Set the useAppPoolCredentials attribute in the system.webServer/security/authentication/Windows-Authentication configuration section of the ApplicationHost.config file to “True”.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Disable Kernel Mode authentication.&lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Calibri"&gt;We chose the second option. As mentioned previously in this technical note, we used this TechNet article: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb838742.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Configure Monitoring Server for Kerberos delegation&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; to help us configure PPS. This article specifically recommends that we configure kernel mode authentication to use application pool credentials with IIS 7.0 and Windows Server 2008. As a result, this was our initial approach to resolving this issue. This solution worked well with Internet Explorer 7. However, with Internet Explorer 8, we encountered an additional challenge: The first time a user connects to a Web application in MOSS that is configured with Kerberos and that uses an application pool identity, the user is repeatedly prompted for authentication when navigating for the first time through nonroot portions of the SharePoint site. We discovered that if we disabled kernel mode authentication, we did not see this behavior. &lt;/font&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;After discussing the situation with the developers on the SharePoint and Internet Explorer teams, we discovered that we had run into a recently discovered incompatibility with kernel mode authentication when using an application pool identity. The incompatibility was traced back to performance enhancements in Internet Explorer 8 that impact SharePoint 2007. We ran both functional and performance tests in our environment using Internet Explorer 7 and Internet Explorer 8, with kernel mode authentication disabled for all of the Web applications that used dedicated application pool identities, and we determined that this configuration functioned properly and performed well. As a result, our recommended solution is to disable kernel mode authentication with SharePoint 2007 to seamlessly support a mix of Internet browsers.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Challenge 3: &lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The resolutions to our first two Kerberos challenges performed as expected when the SharePoint farm consisted of a single SharePoint server (with either a local or a remote SQL Server database). However, we encountered an issue with this approach when we scaled out to multiple front-end Web servers and multiple application servers. When we scaled out, we changed the name of our Web applications for Network Load Balancing (NLB) to a virtual name, which NLB then directed to a specific physical server. For example, we changed the name for our SharePoint portal site from hostname to kerbportal.mydomain.net and changed our SPNs accordingly. We followed the steps in &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262366.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Update a Web application URL and IIS bindings (Office SharePoint Server)&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; to update the Web application URL and IIS bindings. When we did so, we were unable to view our deployed Reporting Services reports and PerformancePoint dashboards. We received errors stating that the published PPS dashboards and SSRS reports were not able to find the underlying dashboard and report locations. For example, reports that were deployed to http://hostname/ReportServer were still trying to connect to that location, but the newly configured location for the report server was http://kerbportal.mydomain.com/ReportServer. However, the deployed report was not configured to use this new URL path.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: For more information about this problem, see section 8.4 of &lt;/font&gt;&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee384252.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Reporting Services SharePoint Integration Troubleshooting&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Kerberos Resolution 3:&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;The solution was quite straightforward after we identified the problem. Namely, we needed to configure virtual host names in DNS that would eventually be utilized in NLB, but until it was time to scale out, we pointed these virtual host names in DNS to the single SharePoint server.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;So, for example, for the SharePoint portal site, create a DNS entry for a virtual host called (for example) kerbportal that points to the SharePoint server. Later, you can update this entry in DNS to point to the NLB server. Then, make sure to specify kerbportal.mydomain.com in the Host Header field when you create the portal Web site in the Central Administration application in SharePoint. Similarly, configure virtual names for your My Site and SSP Administration sites. Following this approach, adjust the SPNs that you register to utilize the virtual host names that you will use when you later scale out. If you use this approach, you will not have to reconfigure your SPNs when you later scale out, and you will not have to redeploy your Reporting Services reports or your PPS dashboards. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;For more information, see &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc424952.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Plan for host-named site collections (Office SharePoint Server)&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Installing Software Components&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;During the installation of the various software components, we also encountered a number of installation challenges. While none of these challenges were showstoppers, we present these resolutions to ensure that you can easily resolve these issues if you encounter them. The challenges we faced and how we resolved them are discussed in the following sections.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Installing the SQL Server Reporting Services Add-in on the SharePoint Server on Windows Server 2008 R2&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When we installed the SQL Server Reporting Services Add-in (rsSharepoint.msi) on the SharePoint server, we followed the steps listed in SQL Server Books Online: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa905871.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;How to: Install or Uninstall the Reporting Services Add-in&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. When we attempted to install the Reporting Services Add-in (rsSharepoint.msi) on the SharePoint server on Windows Server 2008 R2, the Reporting Services Add-in did not complete successfully, and the installer rolled back the attempted installation. When we reviewed the Application log in Event Viewer, we discovered numerous “Insufficient SQL database permission” errors. We reran the Reporting Services Add-in from a command prompt with elevated permissions, but we received the same errors. To resolve this issue, we followed the “How to Install Reporting Services Add-in in Files-Only Mode” section in &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa905871.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;How to: Install or Uninstall the Reporting Services Add-in&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. These steps enabled us to successfully install the Reporting Services Add-in. We verified the successful installation of the Reporting Services Add-in by reviewing the RS_SP_&amp;lt;N&amp;gt;.log file in C:\Users\&amp;lt;login&amp;gt;\AppData\Local\Temp.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Configuring SQL Server Reporting Services in SharePoint Mode for Windows Authentication with User Access Control Enabled &lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When we configured Reporting Services integration in SharePoint, we followed the steps listed in SQL Server Books Online: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb326213.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;How to: Configure Report Server Integration in SharePoint Central Administration&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. When we configured report server integration settings in Central Administration, we were unable to select Windows Authentication to specify that connections be made using Windows integrated authentication. While this initially seemed to indicate a Kerberos problem, we checked and double-checked our Kerberos configuration and found no errors. After some research on the Internet using Bing, we found the following article &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms156468.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Troubleshooting Server and Database Connection Problems&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; that suggested that User Account Control (UAC) might be the problem – although the problem described in this article was not exactly the same as the one we were experiencing. We closed the Central Administration site in Internet Explorer and reconnected with elevated permissions, and then we were successfully able to select Windows Authentication for our SharePoint integration with Reporting Services. &lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Installing Prerequisites for PerformancePoint Monitoring Server on the SharePoint Server with SQL Server 2008&lt;/font&gt;&lt;/h3&gt;&lt;font size="3" face="Calibri"&gt;When we installed the prerequisites for PerformancePoint Monitoring Server on the SharePoint Server with SQL Server 2008, we followed the steps listed in the following TechNet article: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd335966.aspx"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:9pt;"&gt;&lt;font color="#0000ff"&gt;Install PerformancePoint Monitoring Server with SQL Server 2008&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. However, we were unable to install the SQLServer2005_XMO component (XMO 9.0), which is a prerequisite for a fully-functional PPS installation. After some research on the Internet using Bing, we discovered &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/970496"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Knowledge Base article 970496&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;, which explained that there was a known incompatibility between the SQL Server Reporting Services Add-in and XMO 9.0. This bug prevents the installation of PerformancePoint Planning Server (not Monitoring Server) and the importing of key performance indicators (KPIs) from SQL Server when using Monitoring Server. &lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3" face="Calibri"&gt;However, further research revealed that this bug was fixed in both the &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/972511"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Cumulative Update Package 5 for SQL Server 2005 Service Pack 3&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; and the &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/972510/"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Cumulative Update Package 15 for SQL Server 2005 Service Pack 2&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. Details of the fix can be found in &lt;/font&gt;&lt;a href="http://support.microsoft.com/kb/972694/"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Knowledge Base article 972694&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;. By using the newest version of XMO 9.0, we were able to install the SQL Server 2005 Management Objects Collection and subsequently import KPIs from SQL Server.&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;Use the Application Pool for Root PPS Site and Subsites&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;When we installed PerformancePoint Monitoring Server, we followed the steps listed in the following TechNet article: &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb838742.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Configure Monitoring Server for Kerberos delegation&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. As discussed previously, we configured a unique application pool and identity for the PPSMonitoringPreview and PPMonitoringWebService subsites, as well as a unique virtual host name and port number for the PPS Web application. The virtual host name enables us to use the appropriate Kerberos ticket for the PPS service account. However, when we used Internet Explorer to connect to the PPSMonitoring site (HTTP://ppsmonitoring.mydomain.com:40000), we were unable to connect to either the WebService or the Preview subsites. Because we were reasonably confident of our Kerberos configuration at this point, we immediately looked at the identity for the application pool for the root site as well as these two subsites. We discovered that while we had configured the application pool identity for each of the subsites to the PPS service account, the root site was not similarly configured – instead, it was configured to use the NetworkService account. As soon as we changed the identity of the application pool for the root site to the PPS service account, PPS worked as expected. Upon rereading the TechNet article, we noted that this step was not clearly stated.&lt;/font&gt;&lt;/p&gt;
&lt;h3 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="3" face="Cambria"&gt;SharePoint with Report Builder 1.0, Not Report Builder 2.0&lt;/font&gt;&lt;/h3&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;During our testing of this solution, we created some reports using Report Builder 2.0 to display the user identity when connecting to our SQL Data servers in order to verify that Kerberos was configured and working properly. When we attempted to open one of these reports using the Report Builder ClickOnce application, we received the following error: “System.IO.StreamReader: The Report Element was not found.”&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;After a quick bit of research on the Internet using Bing, we learned that by default, the ClickOnce application opens Report Builder 1.0 rather than Report Builder 2.0. The solution is to install the add-in, &lt;/font&gt;&lt;a href="http://download.microsoft.com/download/7/0/1/701890C9-2990-4AB2-A41B-21F7152A3082/Readme_rsclickonceaddin.htm"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Microsoft® SQL Server® 2008 Report Builder 2.0 ClickOnce for SharePoint&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt; in order to make Report Builder 2.0 ClickOnce available from a SharePoint site. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Note&lt;/b&gt;: This add-in is separate from the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&amp;amp;displaylang=en"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;ClickOnce version of Report Builder 2.0 in SQL Server 2008 PCU1&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Calibri"&gt;. &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;You then need to configure the default ClickOnce application in Report Manager and in SharePoint Central Administration to open Report Builder 2.0 rather than Report Builder 1.0. The following ReadMe and SQL Server Books Online articles explain the problem and solution:&amp;nbsp;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://download.microsoft.com/download/7/0/1/701890C9-2990-4AB2-A41B-21F7152A3082/Readme_rsclickonceaddin.htm"&gt;&lt;span style="mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-theme-font:major-fareast;"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Microsoft SQL Server 2008 Report Builder 2.0 ClickOnce for SharePoint Readme&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore;"&gt;·&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd795295.aspx"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;How to: Set Report Builder 2.0 as the Default ClickOnce Report Builder Version&lt;/font&gt;&lt;/a&gt;&lt;span class="MsoHyperlink"&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/b&gt; 
&lt;h2 style="MARGIN:10pt 0in 0pt;"&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Summary&lt;/font&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0in 0in 10pt;" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;With proper planning, you can successfully you can successfully deploy a server farm using Microsoft Office SharePoint Server 2007, Microsoft SQL Server 2008 Reporting Services, and Microsoft Office PerformancePoint Server 2007 Monitoring Server, and you can configure Kerberos authentication for user authentication throughout the server farm. The use of virtual host names for each Web application with a unique application pool identity enables you to specify unique SPNs for each of these Web applications such that Internet Explorer clients can seamlessly connect to the resources within the server farm using their own authentication credentials. &lt;/font&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;&amp;nbsp;&lt;/font&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=948" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/PerformancePoint/default.aspx">PerformancePoint</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Kerberos/default.aspx">Kerberos</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Using Replication for High Availability and Disaster Recovery</title><link>http://sqlcat.com/whitepapers/archive/2009/09/23/using-replication-for-high-availability-and-disaster-recovery.aspx</link><pubDate>Tue, 22 Sep 2009 16:29:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:917</guid><dc:creator>Nicholas Dritsas</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;"&gt;Writers:&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;"&gt; Manaphan Huntrakoon, Nicholas Dritsas&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Technical&lt;/b&gt; &lt;b style="mso-bidi-font-weight:normal;"&gt;Reviewers&lt;/b&gt;: Burzin Patel, Sanjay Mishra&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Published:&lt;/b&gt; August 2009&lt;/font&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;Summary: &lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;An essential part of IT mission is maintaining high availability and disaster recovery capability. This technical case study shows how a company can use SQL Server 2008 database replication to eliminate single points of failure in data centers, and to enable fast recovery from a possible disaster at its primary data center. These strategies and solutions will be of interest to database administrators, senior IT managers, project leads, and architects.&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:12pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;strong&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;"&gt;Introduction: &lt;/span&gt;&lt;/strong&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;mso-fareast-language:ZH-CN;"&gt;An international company has deployed a number of SQL Server instances spread out over different locations in Asia, the United States and Europe.&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The main problem they wanted to resolve was the high availability of data critical to their main application.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In the event this data ever became unavailable, the financial repercussions would have been substantial.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;While the company had many ways and methods to alleviate this problem, they were unsure of which SQL Server high availability/disaster recovery technology would address their problem plus provide a strategic platform for the future.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;They engaged with Microsoft to help in the design of an architecture best fit for their needs, budget, expectations and skill set. In this document, we will be going through the steps and processes the project team went through to evaluate and decide on the best choices and options.&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Calibri"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;font face="Calibri"&gt;For more details, please look in this white paper: &lt;/font&gt;&lt;/span&gt;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Replication_HADR_CaseStudy.docx"&gt;&lt;span style="mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font color="#0000ff" size="3" face="Calibri"&gt;Using Replication for High Availability and Disaster Recovery in SQL Server 2008&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:10pt;"&gt;&lt;font face="Calibri"&gt;. &lt;/font&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=917" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Replication/default.aspx">Replication</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Resolving PAGELATCH Contention on Highly Concurrent INSERT Workloads</title><link>http://sqlcat.com/technicalnotes/archive/2009/09/22/resolving-pagelatch-contention-on-highly-concurrent-insert-workloads-part-1.aspx</link><pubDate>Tue, 22 Sep 2009 09:50:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:916</guid><dc:creator>tkejser</dc:creator><slash:comments>13</slash:comments><description>&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:9pt;mso-bidi-font-size:14.0pt;"&gt;&lt;font color="#365f91"&gt;&lt;font face="Cambria"&gt;Authors: Thomas Kejser, Lindsey Allen, Arvind Rao and Michael Thomassy&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-SIZE:9pt;mso-bidi-font-size:14.0pt;"&gt;&lt;font color="#365f91"&gt;&lt;font face="Cambria"&gt;Contributors and reviewers: Mike Ruthruff, Lubor Kollar, Prem Mehra, Burzin Patel, Michael Thomassy, Mark Souza, Sanjay Mishra, Peter Scharlock, Stuart Ozer, Kun Cheng and Howard Yin&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;h2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;span&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Introduction&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Recently, we performed a lab test that had a large OLTP workload in the Microsoft Enterprise Engineering Center. The purpose of this lab was to take an intensive Microsoft SQL Server workload and see what happened when we scaled it up from 64 processors to 128 processors. (Note: This configuration is supported as part of the Microsoft SQL Server 2008 R2 release.). The workload had highly concurrent insert operations going to a few large tables.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;As we began to scale this workload up to 128 cores, the wait stats captured were dominated by PAGELATCH_UP and PAGELATCH_EX. The average wait times were tens of milliseconds, and there were a lot of waits. These waits were not expected, or they were expected to be a few milliseconds only.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;In this TechNote we will describe how we first diagnosed the problem and how we then used table partitioning to work around it.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN:10pt 0cm 0pt;"&gt;&lt;span&gt;&lt;font color="#4f81bd" size="4" face="Cambria"&gt;Diagnosing the Problem&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;When you see large waits for PAGELATCH in &lt;b style="mso-bidi-font-weight:normal;"&gt;sys.dm_os_wait_stats&lt;/b&gt;, you will want to do the following. Start your investigation with &lt;b style="mso-bidi-font-weight:normal;"&gt;sys.dm_os_waiting_tasks &lt;/b&gt;and locate a task waiting for PAGELATCH, like this:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; session_id&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wait_type&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; resource_description &lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;dm_os_waiting_tasks&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;WHERE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; wait_type &lt;span style="COLOR:gray;"&gt;LIKE&lt;/span&gt; &lt;span style="COLOR:red;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;Example Output:&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;span style="mso-tab-count:1;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;img border="0" alt="PAGELATCH example output" src="http://sqlcat.com/blogs/technicalnotes/Output.png" width="281" height="96" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;The &lt;b style="mso-bidi-font-weight:normal;"&gt;resource_des&lt;img border="0" alt="" width="1" height="1" /&gt;cription&lt;/b&gt; column lists the exact page being waited for in the format: &lt;b style="mso-bidi-font-weight:normal;"&gt;&amp;lt;database_id&amp;gt;:&amp;lt;file_id&amp;gt;:&amp;lt;page_id&amp;gt;&lt;/b&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Using the &lt;b style="mso-bidi-font-weight:normal;"&gt;resource_description &lt;/b&gt;column, you can now write this rather complex query that looks up all these waiting pages:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;session_id&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;wait_type&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;wait_duration_ms&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; s&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;name &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;schema_name&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; o&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;name &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;object_name&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; i&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;name &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; index_name&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;FROM&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;dm_os_buffer_descriptors&lt;/span&gt; bd &lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;&lt;span style="COLOR:red;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; resource_description&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; file_index&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;&lt;span style="COLOR:red;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; resource_description&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;, &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:fuchsia;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CHARINDEX&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:red;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;,&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; resource_description&lt;span style="COLOR:gray;"&gt;))&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; page_index&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; resource_description &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; rd&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;FROM&lt;/span&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;dm_os_waiting_tasks&lt;/span&gt; wt&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;WHERE&lt;/span&gt; wait_type &lt;span style="COLOR:gray;"&gt;LIKE&lt;/span&gt; &lt;span style="COLOR:red;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; wt&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; bd&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;database_id &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;rd&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; 0&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;file_index&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;AND&lt;/span&gt; bd&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;file_id&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;rd&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;file_index&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;page_index&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;AND&lt;/span&gt; bd&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;page_id &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;rd&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;page_index&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; &lt;span style="COLOR:fuchsia;"&gt;LEN&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;wt&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;rd&lt;span style="COLOR:gray;"&gt;))&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;allocation_units&lt;/span&gt; au &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; bd&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;allocation_unit_id &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; au&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;allocation_unit_id&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;partitions&lt;/span&gt; p &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; au&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;container_id &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; p&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;partition_id&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;indexes&lt;/span&gt; i &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;p&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;index_id &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; i&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;index_id &lt;span style="COLOR:gray;"&gt;AND&lt;/span&gt; p&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;object_id&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; i&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;object_id&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;objects&lt;/span&gt; o &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; i&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;object_id&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; o&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;object_id&lt;/span&gt;&lt;/span&gt; 
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;JOIN&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:green;"&gt;sys&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:green;"&gt;schemas&lt;/span&gt; s &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; o&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;schema_id&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; s&lt;span style="COLOR:gray;"&gt;.&lt;/span&gt;&lt;span style="COLOR:fuchsia;"&gt;schema_id&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;The query shows that the page we are waiting for is in a clustered index, enforcing the primary key, of a table with this structure:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;TABLE&lt;/span&gt; HeavyInsert &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&amp;nbsp; ID &lt;span style="COLOR:blue;"&gt;INT&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;KEY&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;CLUSTERED&lt;/span&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; col1 &lt;span style="COLOR:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;50&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;)&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;span style="COLOR:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;What is going on here, why are we waiting to access a data page in the index?&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;span&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Background Information&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;To diagnose what was happening in our large OLTP workload, it’s important to understand how SQL Server handles the insertion of a new row into an index. When a new row is inserted into an index, SQL Server will use the following algorithm to execute the modification:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Record a log entry that row has been modified.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Traverse the B-tree to locate the correct page to hold the new record.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Latch the page with PAGELATCH_EX, preventing others from modifying it.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Add the row to the page and, if needed, mark the page as dirty.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Unlatch the page.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Eventually, the page will also have to be flushed to disk by a checkpoint or lazy write operation. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;However, what happens if all the inserted rows go to the same page? In that case, you can see a queue building up on that page. Even though a latch is a very lightweight semaphore, it can still be a contention point if the workload is highly concurrent. In this customer case, the first, and only, column in the index was a continuously increasing key. Because of this, every new insert went to the same page at the end of the B-tree, until that page was full. Workloads that use IDENTITY or other sequentially increasing value columns as primary keys may run into this same issue at high concurrency too.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;span&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Solution&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Whenever many threads need synchronized access to a single resource, contention can occur. The solution is typically to create more of the contended resource. In this case, the contended resource is the last page in the B-tree.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;One way to avoid contention on a single page is to choose a leading column in the index that is not continually increasing. However, this would have required an application change in the customer’s system. We had to look for a solution that could be implemented within in the database.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Remember that the contention point is a single page in a B-tree. If only there was a way to get more B-trees in the table. Fortunately, there IS a way to get this: Partition the table. The table can be partitioned in such a way that the new rows get spread over multiple partitions. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;First, create the partition function and scheme:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;PARTITION&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;FUNCTION&lt;/span&gt; pf_hash&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;TINYNT&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;AS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;RANGE&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:gray;"&gt;LEFT&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;FOR&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;VALUES &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;0&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt;1&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt;2&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;PARTITION&lt;/span&gt; SCHEME ps_hash &lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;AS&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;PARTITION&lt;/span&gt; pf_hash &lt;span style="COLOR:gray;"&gt;ALL&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;TO &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;[PRIMARY]&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;This example uses four partitions. The number of partitions you need depends on the amount of INSERT activity happening on the table. There is a drawback to hash-partitioning the table like this: Whenever you select rows from the table,&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;you have to touch all partitions. This means that you need to access more than one B-tree – you will not get partition elimination. There is a CPU cost and latency cost to this, so keep the number of partitions as small as possible (while still avoiding PAGELATCH). In our particular customer case, we had plenty of spare CPU cycles, so we could afford to sacrifice some time on SELECT statements, as long as it helped us increase the INSERT rate.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Second, you need a column to partition on, one that spreads the inserts over the four partitions. There was no column available in the table for this in the Microsoft Enterprise Engineering Center scenario. However, it is easy to create one. Taking advantage of the fact that the ID column is constantly increasing in increments of one, here is a simple hash function of the row:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;TABLE&lt;/span&gt; HeavyInsert_Hash&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;(&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&amp;nbsp; ID &lt;span style="COLOR:blue;"&gt;INT&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;NOT&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;nbsp; ,&lt;/span&gt; col1 &lt;span style="COLOR:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;50&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:gray;"&gt;&amp;nbsp; ,&lt;/span&gt; HashID &lt;span style="COLOR:blue;"&gt;AS&lt;/span&gt; &lt;font color="#ff00ff"&gt;CAST&lt;/font&gt;(&lt;font color="#ff00ff"&gt;ABS(&lt;/font&gt;ID &lt;span style="COLOR:gray;"&gt;%&lt;/span&gt; 4) AS &lt;font color="#0000ff"&gt;TINYINT)&lt;/font&gt;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;PERSISTED&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;NOT&lt;/span&gt; &lt;span style="COLOR:gray;"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:gray;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;)&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;With the &lt;b style="mso-bidi-font-weight:normal;"&gt;HashID&lt;/b&gt; column, you can cycle the inserts between the four partitions. Create the clustering index in this way:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;CREATE&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:blue;"&gt;UNIQUE&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;CLUSTERED&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;INDEX&lt;/span&gt; CIX_Hash &lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;ON&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; HeavyInsert_Hash&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;ID&lt;span style="COLOR:gray;"&gt;,&lt;/span&gt; HashID&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;ON&lt;/span&gt; ps_hash&lt;span style="COLOR:gray;"&gt;(&lt;/span&gt;HashID&lt;span style="COLOR:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;By using this new, partitioned table instead of the original table, we managed to get rid of the PAGELATCH contention and increase the insertion rate, because we spread out the high concurrency across many pages and across several partitions, each having its own B-tree structure. We managed to increase the INSERT rate by 15 percent for this customer, with the PAGELATCH waits going away on the hot index in one table. But even then, we had CPU cycles to spare, so we could have optimized further by applying a similar trick to other table with high insert rates.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Strictly speaking, this optimization trick is a logical change in the primary key of the table. However, because the new key is just extended with the hash value of the original key, duplicates in the ID column are avoided.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;The single column unique indexes on a table are typically the worst offender if you are experiencing PAGELATCH contention. But even if you eliminate this, there may be other, nonclustered indexes on the table that suffer from the same problem. Typically, the problem occurs with single column unique keys, where every insert ends up on the same page. If you have other indexes in the table that suffer from PAGELATCH contention, you can apply this partition trick to them too, using the same hash key as the primary key.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Not all applications can be modified, something that is a challenge for ISVs. However, if you DO have the option of modifying the queries in the system, you can add an additional filter to queries seeking on the primary key. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 10pt 36pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;Example: To get partition elimination, change this:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:gray;"&gt;*&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;FROM&lt;/span&gt; HeavyInsert_Hash&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;WHERE&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; ID &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; 42&lt;/span&gt; 
&lt;p style="MARGIN:0cm 0cm 10pt 36pt;" class="MsoNormal"&gt;&lt;span&gt;&lt;font size="3" face="Calibri"&gt;&lt;br /&gt;To this:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;span style="mso-tab-count:1;"&gt;&lt;font size="3" face="Calibri"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;SELECT&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; &lt;span style="COLOR:gray;"&gt;*&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;FROM&lt;/span&gt; HeavyInsert_Hash &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;COLOR:blue;FONT-SIZE:10pt;mso-no-proof:yes;"&gt;WHERE&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;FONT-SIZE:10pt;mso-no-proof:yes;"&gt; ID &lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; 42 &lt;span style="COLOR:gray;"&gt;AND&lt;/span&gt; HashID&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:gray;"&gt;=&lt;/span&gt; &lt;font color="#0000ff"&gt;CAST&lt;/font&gt;(ABS(42 &lt;span style="COLOR:gray;"&gt;%&lt;/span&gt; 4) &lt;font color="#0000ff"&gt;AS TINYINT&lt;/font&gt;)&lt;/span&gt;&amp;nbsp; 
&lt;p&gt;&lt;span style="LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:11pt;mso-ansi-language:EN-US;mso-fareast-font-family:Calibri;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;With partition elimination, the hash partitioning trick is almost a free treat. You will still add one byte to each row of the clustered index.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=916" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/OLTP/default.aspx">OLTP</category></item><item><title>Accelerating Microsoft adCenter with Microsoft SQL Server 2008 Analysis Services</title><link>http://sqlcat.com/whitepapers/archive/2009/09/19/accelerating-microsoft-adcenter-with-microsoft-sql-server-2008-analysis-services.aspx</link><pubDate>Sat, 19 Sep 2009 23:12:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:914</guid><dc:creator>denny.lee</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;How Microsoft adCenter takes advantage of groundbreaking performance and scalability enhancements and innovative design tools available with Microsoft SQL Server 2008 Analysis Services&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;For more information, please refer to the whitepaper &lt;a href="http://technet.microsoft.com/en-us/library/ee410017.aspx" target="_blank"&gt;Accelerating Microsoft adCenter with Microsoft SQL Server 2008 Analysis Services&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Executive Summary&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As an Internet platform for online advertising campaigns on Microsoft® Bing™, Microsoft adCenter offers customers a wide range of intelligence and analytics tools to target, reach, and engage the right audience with the right ad at the right time. A complex, multi-faceted Online Analytical Processing (OLAP) environment based on SQL Server® 2008 Analysis Services drives the adCenter intelligence solutions. This large-scale environment includes numerous data marts that consolidate information from various sources through SQL Server 2008 Integration Services. The adCenter data marts, based on SQL Server 2008 Enterprise Edition, maintain up to two terabytes of data in relational databases, equivalent to one month of Web activities at a current accumulation rate of approximately 60 to 70 gigabytes per day. The OLAP cubes built on top of these relational stores hold 13 months of data and are up to three terabytes in size.&lt;/p&gt;
&lt;p&gt;Prior to SQL Server 2008, adCenter relied on Microsoft SQL Server 2005 as the technological foundation of its intelligence and analytics infrastructure. Among other benefits, SQL Server 2005 enabled adCenter to take full advantage of the 64-bit platform, the Unified Dimensional Model (UDM), and Multidimensional Expressions (MDX). However, it was difficult to sustain processing and query execution performance levels during peak usage as scalability became a limiting factor. At 500 users per cube, adCenter began to notice performance issues, challenging a continually growing user base. By upgrading to SQL Server 2008, adCenter was able to break through existing limitations without the need to replace server hardware or redesign infrastructure. The performance and scalability improvements are vital for keeping adCenter agile, competitive, and ready for further growth.&lt;/p&gt;
&lt;p&gt;In comparison to its predecessor, SQL Server 2008 offers better hardware utilization, optimized cube processing, and substantially faster MDX query execution, and it promotes efficient UDM designs and code quality in analytics solutions. These are key factors that enable adCenter to increase its return on investment (ROI) in server hardware by allowing more users per server, while at the same time improving user experience and service level agreements (SLAs). For the most critical data marts, adCenter SLAs now state that 80 percent of the queries must return results in 3 seconds or less. Moreover, adCenter gained new options to track service level compliance and establish baselines for Analysis Services capacity planning. By exploiting the new monitoring capabilities in addition to Analysis Services traces, such as Management Data Warehouse (MDW) and new performance counters for Analysis Services-related system resources, adCenter can locate root causes of performance issues faster than with traces alone. This ultimately increases the productivity of OLAP developers when troubleshooting performance issues and optimizing analytics solutions.&lt;/p&gt;
&lt;p&gt;The upgrade to SQL Server 2008 also allows adCenter to prepare for future OLAP infrastructure optimizations and relational data-warehousing technologies, such as SQL Server code-named Project &amp;quot;Madison.&amp;quot; The adCenter Data Mart team has developed concrete plans to assess a load-balanced scale-out data warehouse appliance for the largest data marts and data warehouses. adCenter also plans to increase the size of the relational data stores to a massive volume of more than 150 terabytes as soon as Madison becomes available. This will allow adCenter to maintain between five and six months of Web activity data online, assuming an increase in data collection rates of one terabyte per day. For adCenter, the upgrade to SQL Server 2008 represents an important step toward the future.&lt;/p&gt;
&lt;p&gt;The purpose of this technical white paper is to share Microsoft knowledge, experiences, and recommendations related to the architecture and design of SQL Server 2008 Analysis Services for high performance and scalability in a large-scale OLAP environment. This paper is not intended to serve as a procedural guide. Although many organizations have similar requirements, each enterprise environment also has unique needs, making it necessary to adapt the information discussed in this paper.&lt;/p&gt;
&lt;p&gt;This white paper assumes that readers are IT professionals and technical decision makers, already familiar with Windows Server®, Active Directory®, and SQL Server. Specifically, knowledge about SQL Server 2008 Analysis Services, Integration Services, and Business Intelligence Development Studio is helpful. Detailed product information is available in the SQL Server 2008 TechCenter at &lt;a href="http://technet.microsoft.com/en-us/sqlserver/default.aspx"&gt;http://technet.microsoft.com/en-us/sqlserver/default.aspx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; For security reasons, the sample names of forests, domains, servers, databases, and other internal resources used in this paper do not represent real resource names used within Microsoft and are for illustration purposes only.&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;For more information, please refer to the whitepaper &lt;a href="http://technet.microsoft.com/en-us/library/ee410017.aspx" target="_blank"&gt;Accelerating Microsoft adCenter with Microsoft SQL Server 2008 Analysis Services&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=914" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SAN/default.aspx">SAN</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Capacity/default.aspx">Capacity</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Optimization/default.aspx">Optimization</category><category domain="http://sqlcat.com/whitepapers/archive/tags/design/default.aspx">design</category></item><item><title>Configure a Sharepoint Server Farm for minimal downtime during software updates</title><link>http://sqlcat.com/whitepapers/archive/2009/09/18/configure-a-server-farm-for-minimal-downtime-during-software-updates.aspx</link><pubDate>Fri, 18 Sep 2009 21:32:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:910</guid><dc:creator>Lindsey.allen</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This article describes how to update Office SharePoint Server farms with minimal downtime. By following the procedures in this article, you can update servers to add the latest service pack or cumulative update without incurring significant downtime for users. This article describes a step-by-step process for Office SharePoint Server farms that incorporate &lt;a href="http://technet.microsoft.com/en-us/library/cc917680.aspx"&gt;SQL Server database mirroring&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;It often takes several teams or roles in an organization to configure, upgrade, and maintain a server farm environment. To implement this solution, you must confer with network engineers, SQL Server database administrators, and all affected SharePoint farm administrators. &lt;/p&gt;
&lt;p&gt;This article is written for IT professionals who maintain server farms that are running Microsoft Office SharePoint Server 2007 with Service Pack 2 (SP2) .&lt;/p&gt;
&lt;p&gt;The complete step by step instruction can be found here: &lt;a title="http://technet.microsoft.com/en-us/library/ee514459.aspx" href="http://technet.microsoft.com/en-us/library/ee514459.aspx"&gt;http://technet.microsoft.com/en-us/library/ee514459.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=910" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Scale-Out/default.aspx">Scale-Out</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Scalability/default.aspx">Scalability</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Mirroring/default.aspx">Mirroring</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Optimization/default.aspx">Optimization</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Failover/default.aspx">Failover</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Operations/default.aspx">Operations</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Transaction+Log/default.aspx">Transaction Log</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://sqlcat.com/whitepapers/archive/tags/OLTP/default.aspx">OLTP</category><category domain="http://sqlcat.com/whitepapers/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>Looking deeper into SQL Server using Minidumps</title><link>http://sqlcat.com/msdnmirror/archive/2009/09/11/looking-deeper-into-sql-server-using-minidumps.aspx</link><pubDate>Fri, 11 Sep 2009 15:43:24 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:903</guid><dc:creator>Microsoft SQL Server Development Customer Advisory Team</dc:creator><slash:comments>0</slash:comments><description>Author: Thomas Kejser Reviewers and Contributors: Bob Ward, Michael Thomassy, Juergen Thomas, Hermann Daeubler, Mark Souza, Lubor Kollar, Henk van der Valk (Unisys) and Peter Scharlock For advanced troubleshooting and understanding of SQL Server, you can sometimes benefit from creating a dump file of the sqlservr.exe process. What is a dump? It is a file containing a snapshot of the running process – and parts or all of the memory space of that process. The snapshot also contains the call stack of...(&lt;a href="http://sqlcat.com/msdnmirror/archive/2009/09/11/looking-deeper-into-sql-server-using-minidumps.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=903" width="1" height="1"&gt;</description></item></channel></rss>