<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>Alexander Gladchenko</title><link>http://msmvps.com/blogs/gladchenko/default.aspx</link><description>SQL Server DBA blog</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Обновите свои новостные каналы лентами из SQL Server BLOGROLL 2010</title><link>http://msmvps.com/blogs/gladchenko/archive/2010/02/02/1754861.aspx</link><pubDate>Tue, 02 Feb 2010 12:02:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1754861</guid><dc:creator>gladchenko</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img src="http://www.alvinashcraft.com/images/Newspaper_Feed_add_128x128.png" align="right" alt="" /&gt;&lt;/p&gt;
&lt;div align="justify"&gt;
&lt;p align="justify"&gt;Продолжаю традицию в начале года верстать очередной &lt;a href="http://msmvps.com/blogs/gladchenko/archive/2007/03/19/692932.aspx"&gt;BlogROLL&lt;/a&gt;. За основу этого списка новостных лент берётся мой актуализированный &lt;a href="http://www.sql.ru/club/mssql/feeds.opml.zip"&gt;OPML&lt;/a&gt;, т.е. счастливым обладателям IE7 и выше достаточно просто импортировать его каналы. Как это сделать уже было &lt;a href="http://msmvps.com/blogs/gladchenko/archive/2007/03/19/692932.aspx"&gt;подробно и наглядно описано&lt;/a&gt; в моём блоге. Тех же, кто предпочитает список блогов, я пригашаю перейти по этой ссылке на страницу, где я сгруппировал блоги по нескольким тематическим направлениям: &lt;a href="http://msmvps.com/blogs/gladchenko/pages/1754860.aspx"&gt;SQL Server BLOGROLL 2010&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Вашему вниманию предлагается актуализированный список блогов (блоги, которые не пополнялись больше года, из него исключены). Кроме того, в списке появилось очень много совершенно новых авторов, которые публикуют исключительно интересные материалы и исследования, так либо иначе связанные с SQL Server. Прошлогодняя лента блогов также доступна, напоминаю ссылку на её страницу: &lt;a href="http://msmvps.com/blogs/gladchenko/pages/1661181.aspx"&gt;SQL Server BLOGROLL 2009&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1754861" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/MSMQ/default.aspx">MSMQ</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Tips+for+DBA/default.aspx">Tips for DBA</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Cluster/default.aspx">Cluster</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>Высокая доступность в репликации SQL Server 2008 с зеркалированием и доставкой журналов</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/12/18/1746411.aspx</link><pubDate>Fri, 18 Dec 2009 14:39:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1746411</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;
&lt;p&gt;&lt;a href="http://www.ecom.ru/BookItem.aspx?groupId_4=28&amp;amp;itemId_4=232"&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/repl_5F00_cover_5F00_small.jpg" align="left" vspace="10" hspace="10" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Под общей редакцией А. Гладченко и В. Щербинина.&lt;/p&gt;
&lt;p align="justify"&gt;Москва. &lt;a href="http://www.ecom.ru/SiteItem.aspx?dsType_12=1&amp;amp;groupId_12=1&amp;amp;itemId_12=13"&gt;ЭКОМ Паблишерз&lt;/a&gt;, 2008Г. 288 страниц. ISBN: 978-5-9790-0086-2. Книга уже в продаже.&lt;/p&gt;
Эта книга - сборник статей, которые посвящены ключевым для понимания репликации SQL Server моментам. Кроме переводов наиболее интересных зарубежных авторов, являющимисяхся признанными во всём мире специалистами, в книге вы найдёте ряд статей участников сообщества &lt;a href="http://www.sql.ru/forum/actualtopics.aspx?bid=1"&gt;SQL.RU&lt;/a&gt;, которые многие годы помогаю решать разнообразные проблемы на технических форумах этого замечательного интернет - ресурса. Если во время прочтения книги у вас возникнут сомнения или вопросы по поводу изложенных тут материалов, смело обращайтесь к авторам статей на форумах SQL.RU, они с удовольствием вам помогут.&lt;br /&gt;В сборник включены переводы и статьи следующих участников сообщества SQL.RU: &lt;a href="http://newsletter.narod.ru/index.htm"&gt;Дмитрий Артёмов&lt;/a&gt;, &lt;a href="http://dev.net.ua/blogs/def1983"&gt;Александр Волок&lt;/a&gt;, &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александр Гладченко&lt;/a&gt;, Ильдар Даутов, Григорий Кoрнилов, Алексей Ковалёв, Наталья Кривонос, &lt;a href="http://blogs.gotdotnet.ru/personal/yliberman"&gt;Ян Либерман&lt;/a&gt;, &lt;a href="http://msmvps.com/blogs/irinanaumova/default.aspx"&gt;Ирина Наумова&lt;/a&gt; и &lt;a href="http://scherbinin.blogspot.com"&gt;Владислав Щербинин&lt;/a&gt;. Причём, на момент написания книги, Александр Гладченко, Ян Либерман и Ирина Наумова являлись SQL Server &lt;a href="http://mvp.itcommunity.ru/Clubs/"&gt;MVP&lt;/a&gt;.&lt;br /&gt;Книга в первую очередь ориентирована на администраторов баз данных, которые собираются углубить свои познания в репликации SQL Server. Назначение этой книги состоит в том, чтобы предоставить читателям набор апробированных в течение нескольких лет рецептов по использованию и настройке репликации в SQL Server.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;background-color:#ffff99;"&gt;&lt;a href="http://www.ecom.ru/BookItem.aspx?groupId_4=28&amp;amp;itemId_4=232"&gt;ЗАКАЗАТЬ&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Обсудить книгу можно тут: &lt;a href="http://www.sql.ru/forum/actualthread.aspx?tid=643700"&gt;http://www.sql.ru/forum/actualthread.aspx?tid=643700&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пример статьи из сборника:&lt;/p&gt;
&lt;p&gt;
&lt;h1&gt;Высокая доступность в репликации SQL Server 2008 с зеркалированием и доставкой журналов&lt;/h1&gt;
&lt;/p&gt;
&lt;p&gt;Автор &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александр Юрьевич Гладченко&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Статья написана по мотивам технического документа Майкрософт: &amp;quot;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/ReplicationAndDBM.docx"&gt;SQL Server Replication: Providing High Availability using Database Mirroring&lt;/a&gt;&amp;quot; и описания в электронной документации SQL Server 2008 Books Online (далее BOL): &amp;quot;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms151799.aspx"&gt;Репликация и зеркальное отображение базы данных&lt;/a&gt;&amp;quot;.&lt;br /&gt;В этой статье мы рассмотрим новые возможности обеспечения высокой доступности тиражируемых данных, используя для этого Репликацию транзакций, Доставку журналов и зеркальные копии баз данных.&lt;br /&gt;Основанная на Репликации транзакций распределённая система хранения данных может обеспечить высокую устойчивость к отказам серверов баз данных. Подобные решения позволяют достичь высокой степени доступности, за счёт поддержки избыточных копий данных. Кроме Репликации, избыточность на уровне баз данных способны обеспечить несколько механизмов SQL Server 2008. Это такие возможности, как резервное копирование с последующим восстановлением, Доставка журналов и Зеркальное отображение базы данных. Причём, Зеркальное отображение является единственным механизмом, который поддерживает точную копию защищаемой базы данных практически в реальном масштабе времени, и гарантирует отсутствие потерь данных.&lt;br /&gt;В этой статье на примерах мы посмотрим, как можно использовать Зеркальное отображение реплицируемой базы данных для повышения её доступности. Мы рассмотрим как Репликация и Зеркальное отображение влияют друг на друга, а также, как Зеркальное отображение совместимо с Доставкой журналов и как Доставка журналов совместима с Репликацией. Кроме того, в этой статье мы коснёмся возможностей использования для первоначальной синхронизации баз данных механизмов Доставки журналов, и вкратце рассмотрим принципы работы инициализации подписчика, основанной на логических номерах виртуальных журналов (LSN), которая позволяет сократить время восстановления после отказа при наличии зеркальной копии базы данных Подписчика.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Совместимость Доставки журналов с Зеркальным отображением и Репликацией&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;В настоящей статье мы не ставим целью полностью раскрыть тему совмещения Доставки журналов с Зеркальным отображением баз данных и Репликацией. Эта тема достаточно подробно раскрыта в BOL. Здесь мы рассмотрим только те аспекты Доставки журналов, которые нам пригодятся для первоначальной синхронизации основной базы данных Зеркального отображения и баз данных Подписчиков в топологии репликации. Коротко будет сказано и о том, как можно использовать Доставку журналов в целях резервного копирования участвующих в Репликации баз данных.&lt;br /&gt;Целью Доставки журналов SQL Server 2008 является обеспечение автоматической синхронизации баз данных, которая осуществляется путём резервного копирования журналов транзакций в базе данных Источника, и последующей доставке и восстановление копий журнала транзакций в базе данных Получателя. Сервер, который обслуживает базу данных Получателя, выступает в роли резервного сервера или сервера отчётов. Сервер отчётов предоставляет возможность обработки запросов пользователей на чтение данных. Одна база данных Источника может синхронизироваться с одной или с несколькими базами данных Получателей. Доставка журналов применима к тем базам данных, которые используют полную модель восстановления или модель восстановления с неполным протоколированием.&lt;br /&gt;Давайте договоримся, что сервер, первоначально обслуживающий базу данных Источника, будем называть сервером источника (термин &amp;quot;основной сервер&amp;quot; был бы удобнее, но он используется в Зеркальном отображении, и мы его не станем использовать, чтобы не было путаницы), а сервер, первоначально обслуживающий базу данных Получателя, называть резервным сервером. После настройки, сервер источника обслуживает базу данных Источника, но может сменить роль и обслуживать базу данных Получателя. Изменение роли приводит к одновременному изменению настроек на всех участвующих в Доставке журналов серверах, поскольку сервер источника может быть только один.&lt;br /&gt;В Доставке журналов предусмотрены средства мониторинга и оповещения обо всех штатных и нештатных состояниях участников процесса Доставки журналов. Начиная с SQL Server 2008, поддерживается сжатие резервных копий, и такие копии можно использовать для Доставки журналов. Копии журналов создаются и доставляются с помощью заданий автоматизации службы SQL Server Agent, всего таких заданий четыре: задание резервного копирования Источника, задание копирования файлов Получателю, задание восстановления копий на Получателе и задание рассылки предупреждений.&lt;br /&gt;Формат хранения данных на диске для SQL Server x64 и x86 одинаков, т.е. в Доставке журналов могут участвовать сервера баз данных под управлением 32-х и 64-х разрядных операционных систем. Доставка журналов поддерживается следующими редакциями SQL Server 2005: Enterprise Edition, Standard Edition и Workgroup Edition. Серверы, задействованные в доставке журналов, должны иметь одинаковые параметры сортировки, а базы данных источника и получателей могут использовать только модель полного восстановления (Full) или модель восстановления с неполным протоколированием (Bulk Logged).&lt;br /&gt;Доставка журналов может быть средством тиражирования данных, однако, в этой статье мы рассмотрим возможность использования Доставки журналов для первоначальной синхронизации баз данных в Зеркальном отображении и Репликации.&lt;br /&gt;Из BOL мы знаем, что Доставку журналов допустимо совмещать с Зеркальным отображением. В таком случае база данных Источника должна являться основной базой данных Зеркального отображения. Причём, Зеркальное отображение может быть настроено в любом из трёх режимов его работы. Базы данных Получателей не должны находиться на том же экземпляре сервера, что и база источника или на экземпляре Зеркального отображения базы Источника. Поскольку Зеркальное отображение позволяет делать резервные копии только базы данных основного сервера, использование в качестве базы данных Источника зеркальной копии основной базы невозможно. Настраивать Доставку журналов и Зеркальное отображение на основном сервере можно в любом порядке.&lt;br /&gt;Допустимо совмещать Доставку журналов с Репликацией, и это справедливо для издаваемой базы данных, баз данных Подписок, и для базы данных Распространителя. Следует учитывать, что процесс репликации будет прерван в случае перехода на резервный сервер, поскольку агенты репликации не умеют правильно реагировать на изменение ролей серверов в Доставке журналов, и это приведёт к тому, что транзакции перестанут тиражироваться подписчикам. После того, как роль базы данных Источника вернётся в первоначальное состояние, репликация возобновляется, и все те транзакции, которые были скопированы Доставкой журналов с резервного сервера на сервер источник, реплицируются подписчикам. В случае безвозвратной потери базы данных Источника, достаточно переименовать Получателя, чтобы возобновить процесс репликации.&lt;br /&gt;Первоначальная инициализация базы данных Получателя в процессе настройки Доставки журналов осуществляется путём восстановления полной резервной копии базы данных источника с параметрами NORECOVERY или STANDBY. Для организации доставки журналов необходимо создать сетевой ресурс, в котором будут создаваться резервные копии журналов транзакций и который будет доступен всем участвующим в Доставке журналов серверам. В нашем примере в качестве такого ресурса будет использоваться каталог сервера источника C:\MSSQL\LogShip\.&lt;br /&gt;Существует возможность синхронизировать процесс доставки журналов с тиражированием данных в репликации транзакций. Такая синхронизация устанавливается с помощью системной хранимой процедуры sp_replicationdboption, которая позволяет для публикуемой базы данных и базы данных Распространителя установить опцию &amp;quot;sync with backup&amp;quot;. Когда эта опция установлена для базы данных Распространителя, это гарантирует, что транзакции в журнале публикуемой базы данных не будут усечены до тех пор, пока не будет создана их резервная копия в базе данных Распространителя. Усечение журнала транзакций публикуемой базы данных откладывается до завершения резервного копирования усекаемых транзакций в базе данных Распространителя. Установка этой опции позволяет управлять точкой усечения базы данных Публикации. Новое значение вступает в силу после очередного запуска Агента чтения журнала или по истечении заданного параметром агента -MessageInterval интервала времени, если Агент чтения журнала работает в непрерывном режиме. За счёт того, что в базе данных распространителя не будет транзакций, которых нет в резервной копии публикуемой базы данных, можно не боятся рассогласованности издаваемой базы данных и базы данных Распространителя в случае восстановления издаваемой базы данных из резервной копии. Однако, следует помнить, что такой способ синхронизации добавляет задержку в процесс тиражирования транзакций и не гарантирует отсутствия потерь данных, в случае повреждения журнала транзакций. Кроме того, для Доставки журналов опция важна только для издаваемой базы данных.&lt;br /&gt;В рамках этой статьи мы не будем рассматривать совместную работу Доставки журналов и Репликации. Доставка журналов нами будет использоваться только для целей первоначальной синхронизации баз данных подписчиков и Зеркального отображения базы данных Издателя. Поэтому сценарии включения Доставки журналов будут использоваться в примерах с демонстрацией включения Зеркального отображения и Репликации.&lt;br /&gt;Дополнительную информацию о Доставке журналов можно получить в следующих статьях BOL:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;
&lt;li&gt;Развертывание доставки журналов&lt;/li&gt;
&lt;li&gt;Репликация и доставка журналов&lt;/li&gt;
&lt;li&gt;Зеркальное отображение баз данных и доставка журналов&lt;/li&gt;
&lt;li&gt;Резервное копирование и восстановление из копий реплицируемых баз данных&lt;/li&gt;
&lt;li&gt;Стратегии резервного копирования и восстановления из копии репликации моментальных снимков и репликации транзакций&lt;/li&gt;
Совместимость Зеркального отображения и Репликации&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Не все базы данных в топологии Одноранговой репликации транзакций допускают Зеркальное отображение (зеркалирование). Например, это невозможно для базы данных Распространителя. В Репликации транзакций зеркалирование базы данных подписчика требует учёта некоторых ограничений, которых нет для издаваемой базы или в одноранговой топологии. Возможность использования в репликации зеркалирования зависит от того, насколько будут способны задействованные агенты репликации отрабатывать состояние отказа основной базы данных и автоматически переключаться на зеркальную копию. Так, например, ни один из соответствующих агентов репликации не может правильно отреагировать на отказ базы данных Распространителя и переключиться на работу с зеркальной копией этой базы данных. Для обеспечения высокой доступности Распространителя его следует вынести на выделенный компьютер и отдать его под управление отказоустойчивого кластера. Однако, те агенты репликации, которые соединяются с публикуемой базой данных, умеют переключаться на зеркальную копию, и в случае отказа способны подключиться автоматически, обеспечив непрерывность процесса репликации.&lt;br /&gt;С подписчиками всё не так просто, как с издателем. К сожалению, ни один из работающих с базами на подписчике агентов репликации не предназначен для автоматического переключения в случае отказа. Самым естественным путём переключения потока данных репликации является удаление подписки и создание её заново.&lt;br /&gt;Дополнительные сведения можно получить в следующей статье BOL: &amp;quot;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms151799.aspx"&gt;Репликация и зеркальное отображение базы данных&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Влияние зеркалирования на работу Агента чтения журнала&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Зеркалирование публикуемой базы данных влияет на поведение Агента чтения журнала, его состояние становится зависимым от состояния зеркалирования. Агент чтения журнала зеркалируемой базы данных будет копировать из журнала вначале записи тех транзакций, которые были до этого скопированы и завершены в журнале регистрации транзакций зеркальной базы данных (процесс, с помощью которого пишутся записи в журнал транзакций зеркальной базы данных, в документации называют hardening - закрепление). Т.е. реплицироваться будут только записи с таким LSN, который больше LSN последней закреплённой в журнале транзакций зеркала.&lt;br /&gt;Это позволяет выставить из топологии основной сервер (зеркало доступно, но существуют такие записи в журнале транзакций, которые еще не были закреплены на зеркале) или изолировать его (когда зеркало недоступно). В обоих случаях, пока основной сервер работоспособен и его база данных доступна, любые изменения в его базе данных не будут реплицированы, пока соответствующие записи журнала транзакций не будут закреплены на зеркале.&lt;br /&gt;Такое поведение добавляет задержки в поток репликации, и если произойдёт отказ зеркалирования, будет гарантировано, что записи в журнале Подписчика не обгонят фиксацию в основной базе данных.&lt;br /&gt;Ели Агент чтения журнала вынужден ждать закрепления записей в журнале транзакций зеркальной базы данных, в хронологии работы Агента чтения журнала будут появляться уведомления следующего вида: &lt;i&gt;&amp;quot;Replicated transactions are waiting for next Log backup or for mirroring partner to catch up&amp;quot;&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Изменение поведения Агента чтения журнала при установке флага трассировки 1448&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;В редких случаях, эффект задержек из-за зеркалирования для логики работы использующих репликацию приложений может оказаться не приемлем. Для решения этой проблемы добавлен новый флаг трассировки 1448, который предписывает репликации продолжаться даже в тех случаях, когда основная база данных выставлена или изолирована. Обычно, Агента чтения журнала ждет, пока не будут закреплены записи в журнале регистрации транзакций зеркальной базы данных, после чего он копирует их в базу данных Распространителя. Когда сервер запущен с флагом трассировки 1448, это ожидание исключается, и Агента чтения журнала может сразу копировать изменения, независимо от состояния зеркалирования.&lt;br /&gt;Этот флаг трассировки можно применять в SQL Server 2008, а для SQL Server 2005 он появился в составе Cumulative update package 2 для SQL Server 2005 Service Pack 2. Подробности о флаге трассировки №1448 можно узнать в статье базы знаний Майкрософт &lt;a href="http://support.microsoft.com/kb/937041"&gt;№937041&lt;/a&gt;.&lt;br /&gt;Обратите внимание на потенциальную опасность исключения задержек тиражирования в репликации. Для приложений отсутствие задержек может иметь решающее значение, и это может послужить причиной установки флага трассировки №1448 при использовании зеркалирования с репликацией. Надо понимать, что существует вероятность того, что использование этого флага приведёт к проблемам в случае отказа Зеркального отображения. Эти проблемы будут рассмотрены ниже.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Влияние отказа зеркалирования на работу Агента чтения журнала&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;Когда происходит автоматическая или ручная отработка отказа Зеркального отображения, Агент чтения журнала должен автоматически соединиться с новым основным сервером и продолжить копировать транзакций (если параметр -PublisherFailoverPartner был установлен правильно, как это будет описано ниже). Есть два случая, когда этого может не произойти. Первый, это когда отказ не может быть отработан правильно, потому что зеркальный сервер по каким либо причинам не может стать основным сервером. Второй случай может произойти только тогда, когда включён флаг трассировки №1448, о котором только что упоминалось выше.&lt;br /&gt;Когда Зеркальное отображение не работает в режиме высокой доступности или основной сервер был выставлен или изолирован, может оказаться, что на основном сервере есть завершённые транзакции, которых еще не были закреплены на зеркале. Если основная база данных станет недоступной, и произойдёт передача её роли зеркалу, может случиться потеря тех транзакций, которые были завершены на основном сервере, но еще не были закреплены на зеркале. Если к тому же включён флаг трассировки №1448, некоторые из завершённых транзакций основного сервера могут быть скопированы, но ещё не закреплены на зеркале. Это приведёт к тому, что состояние метаданных о тиражируемых транзакциях на Распространителе будет опережать реальное состояние транзакций на принявшем роль основной базы данных зеркале. Т.е. Агент чтения журнала уже передавал Распространителю некоторое количество транзакций. После обнаружения таких расхождений, Агент распространителя выдаст ошибку: &lt;i&gt;&amp;quot;The process could not execute &amp;#39;sp_repldone/sp_replcounters&amp;#39; on &amp;#39; GLADCHENKO-TEST&amp;#39;&amp;quot;&lt;/i&gt;. Кроме этого сообщения об ошибке, будут и детализирующие ситуацию сообщения, из которых можно узнать, какой номер виртуального журнала пытался считать Агент чтения журнала. Исправить положение можно запустив с помощью системной хранимой процедуры sp_replrestart принудительную синхронизацию метаданных Издателя и Распространителя. Однако, велика вероятность того, что из-за расхождений в метаданных часть не синхронизированных в результате отказа основного сервера транзакций уже может попасть в базы данных Подписчиков. Это приведёт к тому, что Агент распространителя тоже прекратит свою работу, выдав сообщение об ошибке синхронизации данных. Поскольку в результате сбоя синхронизации Распространитель просто повторит изменения, передаваемые не прошедшими синхронизацию транзакциями, для преодоления ошибки работы Агента распространителя достаточно сменить его профиль на стандартный профиль с именем: &lt;i&gt;&amp;quot;Continue on data consistency errors&amp;quot;&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Как влияет нарушение зеркалирования на работу Агента чтения журнала&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Как уже отмечалось, в случае отказа Зеркального отображения Агент чтения журнала станет работать с журналом транзакций зеркала основной базы данных. Возможность переключения на сменивший свою роль новый основной сервер обеспечивается параметром запуска агента -PublisherFailoverPartner. Пока между обоими участниками Зеркального отображения действует партнёрство, т.е. они продолжают работать по схеме основная база - зеркало основной базы, в случае отказа основной базы данных Агент чтения журнала подключится к принявшей роль основной, зеркальной базе данных.&lt;br /&gt;Если основной сервер будет недоступен очень долго, лучше всего удалить зеркалирование, что позволит избежать проблем с ростом журнала транзакций зеркальной базы данных. Если отказ приведёт к тому, что будет нарушено партнёрство основной и зеркальной баз данных, Агент чтения журнала будет продолжать работать с зеркалом, пока ситуация с партнёрством не восстановится или зеркальное отображение не будет удалено. Если потом агента перезапустить, он попробует соединяться с основной базой данных, которая больше не является издаваемой базой данных, что приведёт к сбою репликации. В хронологии работы Агента чтения журнала появятся сообщения такого типа: &lt;i&gt;&amp;quot;User-specified agent parameter values: -Publisher GLADCHENKO-TEST&amp;#39;&amp;quot;&lt;/i&gt;. Также будут более детальные сообщения об отказе подключения. Для того чтобы решить подобную проблему, и заставить Агент чтения журнала продолжить свою работу, создайте на Распространителе псевдоним действующего сервера издателя.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Настройка периода хранения Распространителя&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;По умолчанию на Распространителе значение периода хранения транзакций установлено в ноль. Это означает, что транзакции очищаются сразу же, как только они будут доставлены всем Подписчикам. При использовании Зеркального отображения, в момент, когда из-за отказа Агент распространителя переключается на работу с зеркальной копией базы данных, нужно чтобы в базе данных распространителя ещё оставались транзакции, которые уже доставлены всем Подписчикам. Такое случается, когда зеркалирование работает в высокопроизводительном режиме, т.е. передача транзакций зеркалу идёт асинхронно и состояние зеркала может сильно отставать от состояния основной базы данных. Тогда, при необходимости добавления нового Подписчика, которого нежелательно инициализировать, у Агента распространителя должна существовать возможность догрузить новому Подписчику те транзакции, которые на момент добавления подписчика ещё не успели закрепиться в зеркале. Другой такой случай может произойти при отказе сервера Издателя, когда данные в базе данных публикации больше не доступны, и это не позволяет корректно инициализировать новую базу данных подписчика. В таком случае, при отсутствии транзакций на Распространителе, может произойти потеря данных.&lt;br /&gt;Чтобы избегать потери данных или длительного простоя в системе с зеркалированием базы данных подписчика, рекомендуется установить адекватный период задержки транзакций у распространителя.&lt;br /&gt;В наших примерах мы будем использовать следующий вариант настройки параметра задержки распространения:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;USE&lt;/span&gt; distribution&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; sp_changedistributiondb N&lt;span style="color:#ff0000;"&gt;&amp;#39;distribution&amp;#39;&lt;/span&gt;, N&lt;span style="color:#ff0000;"&gt;&amp;#39;min_distretention&amp;#39;&lt;/span&gt;, &lt;span style="color:#00008b;"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; sp_helpdistributiondb;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;
&lt;h2&gt;Типы ручной синхронизации Подписчика&lt;/h2&gt;
&lt;/p&gt;
&lt;p&gt;Репликация не поддерживает автоматический переход на зеркальное отображение подписанной на публикацию базы данных, т.е. хотя зеркалирование и возможно, Агент распространителя не сможет переключиться на зеркало после отказа основной базы данных Зеркального отображения. Работа Агента распространителя закончится ошибкой сразу, как только он поймёт, что не может подключиться к базе данных, являющейся основной в партнёрстве Зеркального отображения. Зеркалирование Подписчика можно настраивать как до, так и после подписки. Однако, если планируется инициализация Подписчика моментальным снимком Публикации, эффективнее будет настраивать Зеркальное отображение после инициализации базы данных Подписчика.&lt;br /&gt;В случае отказа Зеркального отображения базы данных Подписчика, необходимо перенаправить Репликацию на зеркальный сервер, туда, где теперь располагается новая база данных Подписчика, на новом основном сервере. Хотя этот метод требует заново оформить подписку, полной её инициализации не потребуется, и это благодаря новому типу синхронизации SQL Server 2008.&lt;br /&gt;Все методы ручной инициализации Подписчика основаны на том, что база данных приводится в согласованное с Издателем состояние, и это становится отправной точкой тиражирования последовавших за этим состоянием транзакций Издателя. После создания Подписки с ручной синхронизацией, Агент распространителя должен иметь информацию о том, какие транзакции нужно тиражировать, не потеряв при этом новые данные или изменения в имеющихся данных. В качестве такой отправной точки используется тот номер LSN, который применим к соответствующему методу инициализации. Например, в методе с указанием параметра &amp;quot;replication support only&amp;quot; определение LSN происходит автоматически. Когда же инициализация осуществляется восстановлением из резервной копии, LSN берётся из заголовка файла резервной копии. В случае инициализации по LSN, необходимый номер виртуального журнала задаётся пользователем. Этот номер нужно указывать аккуратно, т.к. относящиеся к нему транзакции должны присутствовать на этот момент в базе данных Распространителя. Вот почему так важна задержка транзакций у Распространителя, это очень помогает в случае отказа.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Примеры&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Для демонстрации новых возможностей обеспечения доступности Репликации SQL Server 2008 нам потребуется сервер Распространитель, который в представленном ниже сценарии создания Распространителя называется GLADCHENKO-VHD:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#008080;"&gt;-- Сценарий создания Распространителя&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; master&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_adddistributor @distributor = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt;&lt;br /&gt;, @password = N&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- безопасность репликации не тема этой статьи, &lt;/span&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#008080;"&gt;-- оставляем уязвимой&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_adddistributiondb&lt;br /&gt;&amp;nbsp;&amp;nbsp;@database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;distribution&amp;#39;&lt;/span&gt;&lt;br /&gt;, @data_folder = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\DATA&amp;#39;&lt;/span&gt;&lt;br /&gt;, @log_folder = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\LOG\DATA&amp;#39;&lt;/span&gt;&lt;br /&gt;, @log_file_size = &lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @min_distretention = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @max_distretention = &lt;span style="color:#00008b;"&gt;&lt;b&gt;72&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @history_retention = &lt;span style="color:#00008b;"&gt;&lt;b&gt;48&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; [distribution]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#777777;"&gt;not&lt;/span&gt; &lt;span style="color:#777777;"&gt;exists&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; * &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; &lt;span style="color:#00aa00;"&gt;sysobjects&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;where&lt;/span&gt; name = &lt;span style="color:#ff0000;"&gt;&amp;#39;UIProperties&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#777777;"&gt;and&lt;/span&gt; type = &lt;span style="color:#ff0000;"&gt;&amp;#39;U &amp;#39;&lt;/span&gt;)) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;create&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;table&lt;/span&gt; UIProperties(id &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color:#777777;"&gt;exists&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; * &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; ::&lt;span style="color:#af0000;"&gt;fn_listextendedproperty&lt;/span&gt;(&lt;span style="color:#ff0000;"&gt;&amp;#39;SnapshotFolder&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;&amp;#39;table&amp;#39;&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;&amp;#39;UIProperties&amp;#39;&lt;/span&gt;, &lt;span style="color:#777777;"&gt;null&lt;/span&gt;, &lt;span style="color:#777777;"&gt;null&lt;/span&gt;))) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; sp_updateextendedproperty&lt;br /&gt;&amp;nbsp;&amp;nbsp;N&lt;span style="color:#ff0000;"&gt;&amp;#39;SnapshotFolder&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\ReplData&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, dbo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;table&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;UIProperties&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; sp_addextendedproperty&lt;br /&gt;&amp;nbsp;&amp;nbsp;N&lt;span style="color:#ff0000;"&gt;&amp;#39;SnapshotFolder&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\ReplData&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, dbo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;table&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff0000;"&gt;&amp;#39;UIProperties&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_adddistpublisher&lt;br /&gt;&amp;nbsp;&amp;nbsp;@publisher = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt;&lt;br /&gt;, @distribution_db = N&lt;span style="color:#ff0000;"&gt;&amp;#39;distribution&amp;#39;&lt;/span&gt;&lt;br /&gt;, @security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @working_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\ReplData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @trusted = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @thirdparty_flag = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @publisher_type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MSSQLSERVER&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;h2&gt;Зеркальное отображение издаваемой базы данных&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Мы будем использовать сервер GLADCHENKO-TEST в качестве основного сервера в зеркале и сервера издателя в Репликации. Публиковаться будет база данных MIR, и она же будет иметь своё Зеркальное отображение. Публикация тоже будет называться MIR. Сервер, на котором будет размещаться зеркало, называется GLADCHENKO-VHD и этот же сервер является в нашей тестовой топологии репликации Распространителем. В качестве сервера Подписчика будет выступать экземпляр GLADCHENKO-A\SUB, на котором база данных подписки будет называться MIR. Хотя репликацию можно настроить с помощью SQL Server Management Studio, мы будем её настраивать с помощью системных процедур Transact-SQL.&lt;br /&gt;Для простоты демонстрации, все учётные записи, от имени которых будут запускаться службы, и имена входа, в контексте безопасности которых будут выполняться работы на серверах, будут сведены к одной, доменной учётной записи пользователя AG@troika.ru. Этот пользователь является локальным администратором на всех серверах, и включён в серверную роль sysadmins всех указанных выше серверов баз данных.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Шаг 1. Создание Публикации&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Публикуемая база данных MIR состоит из четырёх таблиц: PerformanceCounter, PerformanceSignature, PerformanceSignatureData и PerformanceSignatureHistory. На самом деле, эти таблицы тиражируются средствами репликации транзакций с сервера, на котором размещена база данных System Center Operations Manager 2007 SP1. Сделано это для того, чтобы эмулировать работу &amp;quot;живого&amp;quot; приложения, поскольку данные мониторинга инфраструктуры серверов поступают в эти таблицы постоянно и без длительных перерывов. Именно этот поток реплицируемой информации мы и будет реплицировать с сервера GLADCHENKO-TEST на сервер GLADCHENKO-A\SUB.&lt;br /&gt;Для получения более подробной информации о настройке Распространителя, смотрите следующие темы в SQL Server 2008 Books Online:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms147363.aspx"&gt;Как настроить публикацию и распространение (программирование репликации на языке Transact-SQL)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/ms151192.aspx"&gt;Как настроить публикации и распространение (среда SQL Server Management Studio)&lt;/a&gt;&lt;/li&gt;
&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Ниже представлен сценарий создания Публикации.&lt;/p&gt;
&lt;p align="justify"&gt;Вначале, нужно разрешить на Распространителе ещё одного Издателя. Для этого на сервере GLADCHENKO-VHD выполните следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_adddistpublisher&lt;br /&gt;@publisher = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;, @distribution_db = N&lt;span style="color:#ff0000;"&gt;&amp;#39;distribution&amp;#39;&lt;/span&gt;&lt;br /&gt;, @security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @working_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\ReplData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @trusted = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @thirdparty_flag = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @publisher_type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MSSQLSERVER&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого можно приступить к созданию Публикации, для чего на сервере GLADCHENKO-TEST нужно выполнить следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; master&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Указываем Распространителя&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_adddistributor @distributor = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt;&lt;br /&gt;, @password = N&lt;span style="color:#ff0000;"&gt;&amp;#39;*********&amp;#39;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- тут нужно указать заданный&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;&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;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- В ответ должны получить подтверждение:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- &lt;span style="color:#ff0000;"&gt;&amp;quot;You have updated the Publisher property &lt;span style="color:#ff0000;"&gt;&amp;#39;active&amp;#39;&lt;/span&gt; successfully&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; [MIR]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_replicationdboption @dbname = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @optname = N&lt;span style="color:#ff0000;"&gt;&amp;#39;publish&amp;#39;&lt;/span&gt;&lt;br /&gt;, @value = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Добавляет Публикацию&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addpublication&lt;br /&gt;&amp;nbsp;&amp;nbsp;@publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = N&lt;span style="color:#ff0000;"&gt;&amp;#39;Публикация БД MIR в репликации&lt;br /&gt;транзакций, на сервере GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;, @sync_method = N&lt;span style="color:#ff0000;"&gt;&amp;#39;native&amp;#39;&lt;/span&gt;&lt;br /&gt;, @retention = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @allow_push = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_pull = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_anonymous = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @enabled_for_internet = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @snapshot_in_defaultfolder = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @compress_snapshot = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @ftp_port = &lt;span style="color:#00008b;"&gt;&lt;b&gt;21&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @ftp_login = N&lt;span style="color:#ff0000;"&gt;&amp;#39;anonymous&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_subscription_copy = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @add_to_active_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @repl_freq = N&lt;span style="color:#ff0000;"&gt;&amp;#39;continuous&amp;#39;&lt;/span&gt;&lt;br /&gt;, @status = N&lt;span style="color:#ff0000;"&gt;&amp;#39;active&amp;#39;&lt;/span&gt;&lt;br /&gt;, @independent_agent = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @immediate_sync = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_sync_tran = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @autogen_sync_procs = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_queued_tran = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @allow_dts = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @replicate_ddl = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @allow_initialize_from_backup = N&lt;span style="color:#ff0000;"&gt;&amp;#39;true&amp;#39;&lt;/span&gt;&lt;br /&gt;, @enabled_for_p2p = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @enabled_for_het_sub = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @p2p_conflictdetection = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @p2p_originator_id = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- В ответ должны получить сообщение:&lt;br /&gt;&lt;br /&gt;-- Job &amp;#39;GLADCHENKO-TEST-MIR-1&amp;#39; started successfully.&lt;br /&gt;&lt;br /&gt;-- &amp;quot;Warning: The logreader agent job has been implicitly created&lt;br /&gt;-- and will run under the SQL Server Agent Service Account&amp;quot;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Создаём инициализирующий моментальный снимок&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addpublication_snapshot @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @frequency_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_relative_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_recurrence_factor = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_subday = &lt;span style="color:#00008b;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_subday_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_start_time_of_day = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_end_time_of_day = &lt;span style="color:#00008b;"&gt;&lt;b&gt;235959&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_start_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_end_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @job_login = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @job_password = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @publisher_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Добавляем наши таблицы в виде статей публикации&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addarticle @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @article = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_object = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;, @type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;logbased&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @creation_script = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @pre_creation_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;drop&amp;#39;&lt;/span&gt;&lt;br /&gt;, @schema_option = 0x000000000803509F&lt;br /&gt;, @identityrangemanagementoption = N&lt;span style="color:#ff0000;"&gt;&amp;#39;manual&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_table = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @vertical_partition = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @ins_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSins_dboPerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;, @del_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSdel_dboPerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;, @upd_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;SCALL sp_MSupd_dboPerformanceCounter&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addarticle @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @article = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_object = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;, @type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;logbased&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @creation_script = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @pre_creation_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;drop&amp;#39;&lt;/span&gt;&lt;br /&gt;, @schema_option = 0x000000000803509F&lt;br /&gt;, @identityrangemanagementoption = N&lt;span style="color:#ff0000;"&gt;&amp;#39;manual&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_table = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @vertical_partition = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @ins_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSins_dboPerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;, @del_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSdel_dboPerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;, @upd_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;SCALL sp_MSupd_dboPerformanceSignature&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addarticle @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @article = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_object = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;logbased&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @creation_script = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @pre_creation_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;drop&amp;#39;&lt;/span&gt;&lt;br /&gt;, @schema_option = 0x000000000803509F&lt;br /&gt;, @identityrangemanagementoption = N&lt;span style="color:#ff0000;"&gt;&amp;#39;manual&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_table = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @vertical_partition = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @ins_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSins_dboPerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @del_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSdel_dboPerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;, @upd_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;SCALL sp_MSupd_dboPerformanceSignatureData&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addarticle @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @article = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @source_object = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;, @type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;logbased&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @creation_script = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @pre_creation_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;drop&amp;#39;&lt;/span&gt;&lt;br /&gt;, @schema_option = 0x000000000803509F&lt;br /&gt;, @identityrangemanagementoption = N&lt;span style="color:#ff0000;"&gt;&amp;#39;manual&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_table = N&lt;span style="color:#ff0000;"&gt;&amp;#39;PerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_owner = N&lt;span style="color:#ff0000;"&gt;&amp;#39;dbo&amp;#39;&lt;/span&gt;&lt;br /&gt;, @vertical_partition = N&lt;span style="color:#ff0000;"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;br /&gt;, @ins_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSins_dboPerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;, @del_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;CALL sp_MSdel_dboPerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;, @upd_cmd = N&lt;span style="color:#ff0000;"&gt;&amp;#39;SCALL sp_MSupd_dboPerformanceSignatureHistory&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- настраиваем и запускаем Агента чтения журнала&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; [MIR].sys.sp_addlogreader_agent&lt;br /&gt;&amp;nbsp;&amp;nbsp;@job_login = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @job_password = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @publisher_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; [MIR].sys.sp_addqreader_agent&lt;br /&gt;@job_login = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @job_password = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @frompublisher = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Формируем лист доступа к публикации (PAL)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Сюда нужно даобавить все задействованные агентами логины&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_grant_publication_access&lt;br /&gt;&amp;nbsp;&amp;nbsp;@publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @login = N&lt;span style="color:#ff0000;"&gt;&amp;#39;sa&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_grant_publication_access&lt;br /&gt;&amp;nbsp;&amp;nbsp;@publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @login = N&lt;span style="color:#ff0000;"&gt;&amp;#39;NT AUTHORITY\SYSTEM&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;h2&gt;Шаг 2. Настройка Доставки журналов для инициализации Подписчика&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;На этом шаге мы должны подготовить базу данных на сервере Подписчика, для того, чтобы она могла быть инициализирована из резервной копии. Поскольку поток транзакций в базе данных нашего Издателя не прерывается 24 часа в сутки, 7 дней в неделю и 365 дней в году, нам будет удобно задействовать для этого механизм Доставки журналов.&lt;br /&gt;Для включения Доставки журналов нужно инициализировать базу данных Получателя путем восстановления полной резервной копии базы данных Источника. В нашем случае, резервным сервером, а заодно и сервером Подписчика будет компьютер GLADCHENKO-A\SUB.&lt;br /&gt;Делаем полную копию издаваемой базы данных, для чего, на сервере GLADCHENKO-TEST выполняем следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;BACKUP&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [MIR]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DISK&lt;/span&gt; = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\BACKUP\MIR.bak&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; NOFORMAT, &lt;span style="color:#0000ff;"&gt;INIT&lt;/span&gt;&lt;br /&gt;, NAME = N&lt;span style="color:#ff0000;"&gt;&amp;#39;Полная копия БД MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, SKIP, NOREWIND, NOUNLOAD, &lt;span style="color:#0000ff;"&gt;STATS&lt;/span&gt; = &lt;span style="color:#00008b;"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Дожидаемся получения подтверждения успешности этой операции, в окне результатов появится приблизительно такой текст:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;10 percent processed.&lt;br /&gt;20 percent processed.&lt;br /&gt;30 percent processed.&lt;br /&gt;40 percent processed.&lt;br /&gt;50 percent processed.&lt;br /&gt;60 percent processed.&lt;br /&gt;70 percent processed.&lt;br /&gt;80 percent processed.&lt;br /&gt;90 percent processed.&lt;br /&gt;Processed 18104 pages for database &amp;#39;MIR&amp;#39;, file &amp;#39;MIR&amp;#39; on file 1.&lt;br /&gt;100 percent processed.&lt;br /&gt;Processed 3 pages for database &amp;#39;MIR&amp;#39;, file &amp;#39;MIR_log&amp;#39; on file 1.&lt;br /&gt;BACKUP DATABASE successfully processed 18107 pages in 4.394 seconds (32.193 MB/sec).&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После того, как копия успешно создана, нужно её скопировать на сервер Источника. В нашем случае, нужно взять файл с компьютера GLADCHENKO-TEST из папки C:\MSSQL\BACKUP\MIR.bak и скопировать его на компьютер GLADCHENKO-A, в папку: C:\MSSQL\BACKUP\MIR.bak.&lt;br /&gt;После того, как файл резервной копии окажется на сервере Получателя, нужно восстановить базу данных Получателя, что мы и сделаем на экземпляре GLADCHENKO-A\SUB, используя следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;RESTORE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [MIR]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DISK&lt;/span&gt; = N&lt;span style="color:#ff0000;"&gt;&amp;#39;D:\MSSQL\BACKUP\MIR.bak&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;FILE&lt;/span&gt; = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, MOVE N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\DATA\MIR.mdf&amp;#39;&lt;/span&gt;&lt;br /&gt;, MOVE N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR_log&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; N&lt;span style="color:#ff0000;"&gt;&amp;#39;D:\MSSQL\LOG\MIR_1.ldf&amp;#39;&lt;/span&gt;&lt;br /&gt;, NOUNLOAD, &lt;span style="color:#ff00ff;"&gt;REPLACE&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;STATS&lt;/span&gt; = &lt;span style="color:#00008b;"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;, NORECOVERY&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После успешного восстановления базы данных, приступаем к настройке Доставки журналов между публикуемой базой данных на Издателе, и только что восстановленной базой на Подписчике. Подробное описание настройки Доставки журналов можно найти в статье электронной документации: &amp;quot;Как включить доставку журналов (Transact-SQL)&amp;quot;. Создадим папку для обмена резервными копиями журналов транзакций: C:\MSSQL\LogShip. На эту папку у учётных записей служб должен быть полный доступ.&lt;br /&gt;Далее, настраивает базу данных Источника вместе с заданием резервного копирования, а также записями локального и удаленного мониторов:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @LS_BackupJobId &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @LS_PrimaryId &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; master.dbo.sp_add_log_shipping_primary_database&lt;br /&gt;&amp;nbsp;@database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;C:\MSSQL\LogShip&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_share = N&lt;span style="color:#ff0000;"&gt;&amp;#39;\\GLADCHENKO-TEST\lsbackup&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_job_name = N&lt;span style="color:#ff0000;"&gt;&amp;#39;LSBackup_MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_retention_period = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1440&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@backup_compression = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@monitor_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-A&amp;#39;&lt;/span&gt;&lt;br /&gt;,@monitor_server_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@backup_threshold = &lt;span style="color:#00008b;"&gt;&lt;b&gt;60&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@threshold_alert_enabled = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@history_retention_period = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1440&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@backup_job_id = @LS_BackupJobId &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@primary_id = @LS_PrimaryId &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@overwrite = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Значения идентификаторов получились соответственно следующие:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;@LS_BackupJobId = DDCD7E77-F045-4649-A9F1-CF8FE843C711&lt;br /&gt;@LS_PrimaryId = 3346F94D-3DB6-4A56-BE99-DF2E60E0A25F&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Если процедура отработала без ошибок, должно появиться новое задание, предусматривающее один шаг, в котором выполняется следующая команда:&lt;/p&gt;
&lt;p align="justify"&gt;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqllogship.exe&amp;quot; -Backup 3346F94D-3DB6-4A56-BE99-DF2E60E0A25F -server GLADCHENKO-TEST&amp;#39;&lt;/p&gt;
&lt;p align="justify"&gt;Создаём расписание для задания резервного копирования журналов транзакций базы данных MIR:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @schedule_id &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_add_jobschedule&lt;br /&gt;&amp;nbsp;@job_id=N&lt;span style="color:#ff0000;"&gt;&amp;#39;DDCD7E77-F045-4649-A9F1-CF8FE843C711&amp;#39;&lt;/span&gt;&lt;br /&gt;,@name=N&lt;span style="color:#ff0000;"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;br /&gt;,@enabled=&lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_type=&lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_interval=&lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_type=&lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_interval=&lt;span style="color:#00008b;"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_relative_interval=&lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_recurrence_factor=&lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_date=&lt;span style="color:#00008b;"&gt;&lt;b&gt;20081202&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_date=&lt;span style="color:#00008b;"&gt;&lt;b&gt;99991231&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_time=&lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_time=&lt;span style="color:#00008b;"&gt;&lt;b&gt;235959&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@schedule_id = @schedule_id &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; @schedule_id&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Это расписание предусматривает выполнение задания каждые 10 минут в течение суток.&lt;br /&gt;Мы не планируем создавать полное решение Доставки журналов, наша задача только облегчить первоначальную инициализацию Подписчика. Однако, давайте полностью следовать упомянутой выше инструкции BOL по включению Доставки журналов.&lt;br /&gt;Далее, нам нужно на сервере Источника задать базу данных Получателя:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; master.dbo.sp_add_log_shipping_primary_secondary&lt;br /&gt;&amp;nbsp;@primary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@secondary_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-A\SUB&amp;#39;&lt;/span&gt;&lt;br /&gt;,@secondary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@overwrite = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого, на сервере Получателя (Подписчик, в нашем примере это компьютер GLADCHENKO-A\SUB) нужно запустить процедуру, которая создаст все необходимые задания по применению резервных копий на базе данных Получателя.&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @LS_Secondary__CopyJobId &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @LS_Secondary__RestoreJobId &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @LS_Secondary__SecondaryId &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;uniqueidentifier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; master.dbo.sp_add_log_shipping_secondary_primary&lt;br /&gt;&amp;nbsp;@primary_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;,@primary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_source_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;\\GLADCHENKO-TEST\lsbackup&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_destination_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;\\GLADCHENKO-A\D$\MSSQL\LogShip&amp;#39;&lt;/span&gt;&lt;br /&gt;,@copy_job_name = N&lt;span style="color:#ff0000;"&gt;&amp;#39;LSCopy_GLADCHENKO-TEST_MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@restore_job_name = N&lt;span style="color:#ff0000;"&gt;&amp;#39;LSRestore_GLADCHENKO-TEST_MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@file_retention_period = &lt;span style="color:#00008b;"&gt;&lt;b&gt;4320&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@monitor_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-A&amp;#39;&lt;/span&gt;&lt;br /&gt;,@monitor_server_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@overwrite = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@copy_job_id = @LS_Secondary__CopyJobId &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@restore_job_id = @LS_Secondary__RestoreJobId &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@secondary_id = @LS_Secondary__SecondaryId &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Получаем следующий набор идентификаторов:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;@LS_Secondary__CopyJobId = 338E7DF6-F266-40CD-902E-86F424E12E6C&lt;br /&gt;@LS_Secondary__RestoreJobId = 6C0FE890-5FC5-4BA7-BD89-EC13214514E8&lt;br /&gt;@LS_Secondary__SecondaryId = DC7800CE-767C-4F2B-9A42-70DC5F807184&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого, среди заданий экземпляра GLADCHENKO-A\SUB появятся два новых задания, для которых определены шаги, но ещё не настроены расписания их работы. Первое задание с именем: LSCopy_GLADCHENKO-TEST_MIR. У этого задания только один шаг и он выполняет следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqllogship.exe -Copy DC7800CE-767C-4F2B-9A42-70DC5F807184 -server GLADCHENKO-A\SUB&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Эта инструкция копирует файлы резервных копий журналов транзакций с сервера Источника на сервер Получателя.&lt;br /&gt;Добавить типовое расписание работы этого задания можно с помощью следующего сценария:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_add_schedule&lt;br /&gt;&amp;nbsp;@schedule_name =N&lt;span style="color:#ff0000;"&gt;&amp;#39;DefaultCopyJobSchedule&amp;#39;&lt;/span&gt;&lt;br /&gt;,@enabled = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;15&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_recurrence_factor = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;20081203&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;99991231&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_time = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_time = &lt;span style="color:#00008b;"&gt;&lt;b&gt;235900&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@schedule_uid = @LS_SecondaryCopyJobScheduleUID &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@schedule_id = @LS_SecondaryCopyJobScheduleID &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_attach_schedule&lt;br /&gt;@job_id = &lt;span style="color:#ff0000;"&gt;&amp;#39;338E7DF6-F266-40CD-902E-86F424E12E6C&amp;#39;&lt;/span&gt;&lt;br /&gt;,@schedule_id = @LS_SecondaryCopyJobScheduleID&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Второе задание называется LSRestore_GLADCHENKO-TEST_MIR и предназначено для восстановления скопированных с Источника резервных копий на базе данных Получателя. Единственный шаг этого задания выполняет следующую инструкцию:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;С:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqllogship.exe -Restore DC7800CE-767C-4F2B-9A42-70DC5F807184 -server GLADCHENKO-A\SUB&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Для добавления этому заданию расписания запуска необходимо на сервере GLADCHENKO-A\SUB выполнить следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_add_schedule&lt;br /&gt;&amp;nbsp;@schedule_name =N&lt;span style="color:#ff0000;"&gt;&amp;#39;DefaultRestoreJobSchedule&amp;#39;&lt;/span&gt;&lt;br /&gt;,@enabled = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_subday_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;15&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@freq_recurrence_factor = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;20081203&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;99991231&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_start_time = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@active_end_time = &lt;span style="color:#00008b;"&gt;&lt;b&gt;235900&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;,@schedule_id = @LS_SecondaryRestoreJobScheduleID &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_attach_schedule&lt;br /&gt;&amp;nbsp;@job_id = &lt;span style="color:#ff0000;"&gt;&amp;#39;6C0FE890-5FC5-4BA7-BD89-EC13214514E8&amp;#39;&lt;/span&gt;&lt;br /&gt;,@schedule_id = @LS_SecondaryRestoreJobScheduleID&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;И теперь осталось только добавить в Доставку журналов базу данных Получателя, что можно сделать, выполнив следующий сценарий на сервере GLADCHENKO-A\SUB:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; master.dbo.sp_add_log_shipping_secondary_database&lt;br /&gt;&amp;nbsp;@secondary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@primary_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;,@primary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@restore_delay = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@restore_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@disconnect_users = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@restore_threshold = &lt;span style="color:#00008b;"&gt;&lt;b&gt;45&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@threshold_alert_enabled = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@history_retention_period = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1440&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@overwrite = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Следующим действием в настройке Доставки журналов будет подготовка сервера мониторинга, в качестве которого будет выступать экземпляр GLADCHENKO-A. На этом экземпляре нужно выполнить следующий сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; msdb.dbo.sp_processlogshippingmonitorprimary&lt;br /&gt;&amp;nbsp;@mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@primary_id = N&lt;span style="color:#ff0000;"&gt;&amp;#39;3346F94D-3DB6-4A56-BE99-DF2E60E0A25F&amp;#39;&lt;/span&gt;&lt;br /&gt;,@primary_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39; GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;,@monitor_server = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-A&amp;#39;&lt;/span&gt;&lt;br /&gt;,@monitor_server_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@primary_database = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;,@backup_threshold = &lt;span style="color:#00008b;"&gt;&lt;b&gt;60&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@threshold_alert = &lt;span style="color:#00008b;"&gt;&lt;b&gt;14420&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@threshold_alert_enabled = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;,@history_retention_period = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1440&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого, нужно включить те задания обслуживания Доставки журналов, которые были отмечены как выключенные. Это должно привести к тому, что Доставка журналов начнёт свою работу и будет поддерживать актуальность базы данных MIR на сервере GLADCHENKO-A\SUB в автоматическом режиме.&lt;br /&gt;Теперь, когда придёт время создавать Подписку, достаточно будет ненадолго отключить клиентов от базы данных Издателя, дождаться или запустить вручную поочерёдно все задания Доставки журналов на Источнике и потом на Получателе, отключить все эти задания, и подготовить базу данных Получателя к настройке Подписки, выполнив этот сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;RESTORE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; MIR &lt;span style="color:#0000ff;"&gt;WITH RECOVERY&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;h2&gt;Шаг 3. Настройка Подписки&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;После успешной инициализации базы данных Подписчика резервной копией, которую мы поддерживали в актуальном состоянии средствами Доставки журналов, можно приступать к подписке на Публикацию. Для этого, на сервере GLADCHENKO-TEST нужно с помощью представленного ниже сценария объявить сервер и базу данных Подписчика:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; [MIR]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addsubscription @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @subscriber = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-A\SUB&amp;#39;&lt;/span&gt;&lt;br /&gt;, @destination_db = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @sync_type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;initialize with backup&amp;#39;&lt;/span&gt;&lt;br /&gt;, @backupdevicetype = N&lt;span style="color:#ff0000;"&gt;&amp;#39;disk&amp;#39;&lt;/span&gt;&lt;br /&gt;, @backupdevicename = &lt;span style="color:#ff0000;"&gt;&amp;#39;LogShip\MIR_20081203195807.trn&amp;#39;&lt;/span&gt;&lt;br /&gt;, @fileidhint = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @subscription_type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;pull&amp;#39;&lt;/span&gt;&lt;br /&gt;, @update_mode = N&lt;span style="color:#ff0000;"&gt;&amp;#39;read only&amp;#39;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Все последующие действия по оформлению Подписки нужно выполнять на сервере GLADCHENKO-A\SUB. Следующий сценарий создаёт Подписку по запросу:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;use&lt;/span&gt; [MIR]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addpullsubscription @publisher = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;, @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @publisher_db = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @independent_agent = N&lt;span style="color:#ff0000;"&gt;&amp;#39;True&amp;#39;&lt;/span&gt;&lt;br /&gt;, @subscription_type = N&lt;span style="color:#ff0000;"&gt;&amp;#39;pull&amp;#39;&lt;/span&gt;&lt;br /&gt;, @description = N&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;, @update_mode = N&lt;span style="color:#ff0000;"&gt;&amp;#39;read only&amp;#39;&lt;/span&gt;&lt;br /&gt;, @immediate_sync = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;И наконец, следующий сценарий нужно выполнить для создания задания запуска Агента распространителя, который будет доставлять изменения непосредственно Подписчику:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_addpullsubscription_agent @publisher = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-TEST&amp;#39;&lt;/span&gt;&lt;br /&gt;, @publisher_db = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @publication = N&lt;span style="color:#ff0000;"&gt;&amp;#39;MIR&amp;#39;&lt;/span&gt;&lt;br /&gt;, @distributor = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt;&lt;br /&gt;, @distributor_security_mode = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @distributor_login = N&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;, @distributor_password = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @enabled_for_syncmgr = N&lt;span style="color:#ff0000;"&gt;&amp;#39;False&amp;#39;&lt;/span&gt;&lt;br /&gt;, @frequency_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;64&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_relative_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_recurrence_factor = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_subday = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @frequency_subday_interval = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_start_time_of_day = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_end_time_of_day = &lt;span style="color:#00008b;"&gt;&lt;b&gt;235959&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_start_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;20081203&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @active_end_date = &lt;span style="color:#00008b;"&gt;&lt;b&gt;99991231&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;, @alt_snapshot_folder = N&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;, @working_directory = N&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;br /&gt;, @use_ftp = N&lt;span style="color:#ff0000;"&gt;&amp;#39;False&amp;#39;&lt;/span&gt;&lt;br /&gt;, @job_login = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @job_password = &lt;span style="color:#777777;"&gt;null&lt;/span&gt;&lt;br /&gt;, @publication_type = &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Когда все необходимые действия по оформлению подписки завершены, на сервер GLADCHENKO-A\SUB можно полностью удалить Доставку журналов и позаботиться об удалении созданных там заданий Доставки журналов.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Шаг 4. Зеркалирование публикуемой базы данных&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;В репликации транзакций существует очень опасная точка отказа, это Издатель, об обеспечении высокой доступности которого раньше было трудно заботиться. Теперь, для повышения доступности Издателя, можно создать Зеркальное отображение его базы данных и обеспечить автоматическое переключение на зеркальную копию в случае отказа. Для примера, мы попробуем настроить Зеркальное отображение базы данных Публикации на сервере Издателя и имитируем отказ с переключением Агента чтения журнала на зеркальную копию публикуемой базы данных.&lt;br /&gt;В электронной документации BOL есть несколько статей, которые подробно рассматривают вопросы, связанные с настройкой Зеркального отображения баз данных. Вот список названий некоторых из них:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms190941.aspx"&gt;Настройка зеркального отображения базы данных.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms188712.aspx"&gt;Как настроить сеанс зеркального отображения базы данных (среда SQL Server Management Studio).&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms189053.aspx"&gt;Подготовка зеркальной базы данных к зеркальному отображению.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms179306.aspx"&gt;Пример. Настройка зеркального отображения базы данных с помощью проверки подлинности Windows (язык Transact-SQL)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/ru-ru/library/bb522476.aspx"&gt;Зеркальное отображение базы данных ALTER DATABASE (Transact-SQL)&lt;/a&gt;&lt;/li&gt;
&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;В последней из перечисленных выше статей говориться, что предварительно на зеркальном сервере должна быть восстановлена резервная копия основной базы данных, и все последующие резервные копии журнала транзакций, восстановленные с использованием предложения WITH NORECOVERY. Как уже отмечалось выше, лучше всего подготовку синхронной копии зеркалируемой базы данных позволяет сделать Доставка журналов. Поскольку в настоящей статье мы уже уделили много внимания настройке Доставки журналов, повторение этой процедуры для инициализации копии основной базы данных мы опустим, будем считать, что все эти процедуры уже выполнены. Копия базы данных на момент начала настройки Зеркального отображения должна находиться в актуальном по отношению к основной базе данных состоянии.&lt;br /&gt;В нашем примере, основной экземпляр и зеркало настраиваются так, чтобы использовать одного и того же Распространителя. В конфигурации Агента чтения журнала мы изменим настройки, чтобы получить нужное нам поведение агента в случае отказа сервера Издателя. Для этого на сервере Распространителя GLADCHENKO-VHD нужно установить значение для параметра запуска Агент чтения журнала -PublisherFailoverPartner, например так:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_add_agent_parameter&lt;br /&gt;&amp;nbsp;&amp;nbsp;@profile_id = &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- ID Агента моментальных снимков&lt;/span&gt;&lt;br /&gt;, @parameter_name = N&lt;span style="color:#ff0000;"&gt;&amp;#39;-PublisherFailoverPartner&amp;#39;&lt;/span&gt;&lt;br /&gt;, @parameter_value = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- сервер зеркала&lt;/span&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_add_agent_parameter&lt;br /&gt;&amp;nbsp;&amp;nbsp;@profile_id = &lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- ID Агента чтения журнала&lt;/span&gt;&lt;br /&gt;, @parameter_name = N&lt;span style="color:#ff0000;"&gt;&amp;#39;-PublisherFailoverPartner&amp;#39;&lt;/span&gt;&lt;br /&gt;, @parameter_value = N&lt;span style="color:#ff0000;"&gt;&amp;#39;GLADCHENKO-VHD&amp;#39;&lt;/span&gt; &lt;span style="color:#008080;"&gt;-- сервер зеркала&lt;/span&gt;&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Для принятия изменений профиля, нужно перезапустить задание Агента чтения журнала.&lt;br /&gt;Зеркалирование публикуемой базы данных начнём с создания конечных точек зеркалирования. В первую очередь создадим конечную точку на Издателе, это у нас компьютер GLADCHENKO-TEST:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; ENDPOINT [MirroringEndpoint]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;AUTHORIZATION&lt;/span&gt; [AG@troika.ru]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATE=STARTED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; TCP (LISTENER_PORT = &lt;span style="color:#00008b;"&gt;&lt;b&gt;5022&lt;/b&gt;&lt;/span&gt;, LISTENER_IP = &lt;span style="color:#777777;"&gt;ALL&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;FOR&lt;/span&gt; DATA_MIRRORING&lt;br /&gt;( ROLE = PARTNER&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, AUTHENTICATION = WINDOWS KERBEROS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, ENCRYPTION = REQUIRED ALGORITHM RC4&lt;br /&gt;)&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;На сервере Зеркального отображения GLADCHENKO-VHD (это у нас Распространитель) тоже нужна конечная точка:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; ENDPOINT [MirroringEndpoint]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;AUTHORIZATION&lt;/span&gt; [AG@troika.ru]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATE=STARTED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; TCP (LISTENER_PORT = &lt;span style="color:#00008b;"&gt;&lt;b&gt;5022&lt;/b&gt;&lt;/span&gt;, LISTENER_IP = &lt;span style="color:#777777;"&gt;ALL&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;FOR&lt;/span&gt; DATA_MIRRORING&lt;br /&gt;( ROLE = &lt;span style="color:#777777;"&gt;ALL&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, AUTHENTICATION = WINDOWS KERBEROS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;, ENCRYPTION = REQUIRED ALGORITHM RC4&lt;br /&gt;)&lt;br /&gt;GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Проверить, что конечная точка была успешно создана и запущена, можно с помощью следующей инструкции:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; role_desc, state_desc &lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; sys.database_mirroring_endpoints&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Одного создания конечных точек недостаточно, необходимо ещё выдать права на работу с ними тем именам входа, которые будут к ним подключаться. Пример соответствующей инструкции ниже:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;GRANT&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CONNECT&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; ENDPOINT:: MirroringEndpoint &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; AG@troika.ru GO&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После раздачи прав, нужно объявить участников Зеркального отображения. На сервере Зеркальной копии GLADCHENKO-VHD выполним следующую команду:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [MIR] &lt;span style="color:#0000ff;"&gt;SET&lt;/span&gt; PARTNER = &lt;span style="color:#ff0000;"&gt;&amp;#39;TCP://GLADCHENKO-TEST.troika.ru:5022&amp;#39;&lt;/span&gt; &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого, с основного сервера GLADCHENKO-TEST запустим симметричную команду:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [MIR] &lt;span style="color:#0000ff;"&gt;SET&lt;/span&gt; PARTNER = &lt;span style="color:#ff0000;"&gt;&amp;#39;TCP://GLADCHENKO-VHD.troika.ru:5022&amp;#39;&lt;/span&gt; &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;После этого должна произойти синхронизация основной и зеркальной баз данных. Зеркальное отображение должно быть запущено. Если этого не произошло, попробуйте внимательно изучить сообщение об ошибке. Чаще всего, причина в несогласованности баз, т.е. недостаёт последних изменений, которые могли быть не перенесены Доставкой журналов, или нечто подобное. Если причина не в этом, попробуйте отменить роль Зеркала и повторить настройку сначала. Сценарий отмены роли Зеркала представлен ниже:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [MIR] &lt;span style="color:#0000ff;"&gt;SET&lt;/span&gt; PARTNER &lt;span style="color:#0000ff;"&gt;OFF&lt;/span&gt; &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Современные серверные операционные системы оснащаются встроенными Брандмауэрами. Такие сетевые экраны тоже способны помешать подключению к порту конечной точки. Проверить возможность подключения с основного сервера к серверу зеркальной копии можно с помощью консольной команды операционной системы:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;telnet GLADCHENKO-VHD 5022 &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;h2&gt;Шаг 5. Переключение Публикации на зеркальную копию&lt;/h2&gt;
&lt;p align="justify"&gt;Ну а теперь мы перейдём к самому интересному, ради чего были все эти подготовительные действия. Итак, мы имеем репликацию транзакций между двумя серверами, и Распространителя на третьем сервере. Кроме того, у нас настроено Зеркальное отображение базы данных Издателя на сервер Распространителя. Перед нами стоит задача - возобновить репликацию, которая была прервана в результате отказа Издателя. Доступность Издателя определяется Зеркальным отображением базы данных, на основе объектов которой создана наша Публикация. Отказ этой базы данных расценивается нами, как отказ Зеркального отображения и поводом для ручной или автоматической смены роли, когда зеркальная копия становится основной базой данных.&lt;br /&gt;Далее, имитируем отказ основного сервера, который у нас является Издателем:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;ALTER&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; MIR &lt;span style="color:#0000ff;"&gt;SET&lt;/span&gt; PARTNER FAILOVER &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;В ответ получаем сообщение: &lt;i&gt;&amp;quot;Nonqualified transactions are being rolled back. Estimated rollback completion: 100%&amp;quot;&lt;/i&gt;.&lt;br /&gt;После этого основная база данных Зеркального отображения меняется ролями со своим зеркалом. Причём, на Распространителе появляется публикация и видно, что у неё уже существует Подписка (которую мы создавали на сервере GLADCHENKO-TEST). Изменения, которые пользователи будут делать в базе данных MIR после её переезда на сервер GLADCHENKO-VHD, будут вначале закрепляться в новом зеркале, в базе данных на сервере GLADCHENKO-TEST. Потом они будут попадать в базу данных Распространителя, считанные Агентом чтения журнала, который умеет обращаться ко второму партнёру Зеркального отображения в случае отказа основного сервера или основной базы данных.&lt;br /&gt;Если на сервере GLADCHENKO-TEST запустим следующую команду:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; PUBLISHINGSERVERNAME() &lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Эта команда возвратит имя исходного издателя для опубликованной базы данных, участвующей в Зеркальном отображении. Эта функция показывает первоначального издателя опубликованной базы данных, и поэтому у нас она вернёт, и всегда будет возвращать: &amp;quot;GLADCHENKO-TEST&amp;quot;.&lt;br /&gt;Если после этого выполнить на сервере GLADCHENKO-VHD ту же саму команду: &amp;quot;&lt;tt&gt;ALTER DATABASE MIR SET PARTNER FAILOVER&lt;/tt&gt;&amp;quot;, то всё вернётся в изначальное состояние. Публикация снова будет располагаться на сервере GLADCHENKO-TEST.&lt;br /&gt;В отличие от агентов репликации, Монитор репликации не очень приспособлен для отслеживания работы с перемещённой на зеркальный сервер базой данных. Хотя его интерфейс будет показывать перемещение Публикации, информация о сеансах репликации может вводить администратора репликации в заблуждение. Трассировочные маркеры тоже не всегда помогают контролировать процесс репликации. В таком режиме работы репликации лучше всего контролировать сами данные, сверяя последние их изменения на издателе и подписчиках.&lt;br /&gt;Существует опасность, что отказ основной базы данных приведёт к возникновению проблем репликации транзакций. Это особенно актуально, когда не соблюдается порядок первоначальной фиксации транзакции в зеркале базе данных. Если случиться так, что несколько некорректных транзакций будут препятствовать продолжению репликации данных, можно принудительно проигнорировать эти транзакции, что позволяет сделать системная процедура sp_setsubscriptionxactseqno.&lt;/p&gt;
&lt;p&gt;
&lt;h2&gt;Выводы&lt;/h2&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Зеркальное отображение можно использовать для повышения доступности Издателя в топологиях Репликации транзакций и Репликации слияния. Если важно, чтобы клиенты продолжали получать возможность изменения данных в издаваемой базе данных и автоматически переключались на её зеркальную копию в случае отказа, применение зеркалирования является оправданным.&lt;br /&gt;В упомянутом в самом начале настоящей статьи техническом документе Майкрософт: &amp;quot;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/ReplicationAndDBM.docx"&gt; SQL Server Replication: Providing High Availability using Database Mirroring&lt;/a&gt;&amp;quot; предлагается вариант решения для зеркалирования баз данных Подписчиков. Там же вы найдёте аргументы для выбора такого решения.&lt;br /&gt;Для повышения доступности базы данных Распространителя существует пока только одно решение - отказоустойчивая кластеризация.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1746411" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Сравнения списка объектов SQL Server в Powershell на примере сравнения логинов на двух серверах</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/11/18/1740484.aspx</link><pubDate>Wed, 18 Nov 2009 12:52:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1740484</guid><dc:creator>gladchenko</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/irinanaumova.POWERSHEL/6545.posh.png" align="right" hspace="10" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;div align="justify"&gt;
&lt;p align="justify"&gt;В данном примере я покажу как с помощью Powershell можно сравнивать списки объектов на двух серверах на примере сравнения логинов: поиск одинаковых, поиск разницы. Для этого сначала выполним подключение к серверам. В данном примере первый сервер - локальный. К нему будем подключаться с использованием Windows аутентификации.&lt;br /&gt;Второй сервер - удаленный, к нему будем подключаться с использованием аутентификации SQL Server и запросом на ввод логина и пароля при подключении.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/blogs/irinanaumova/archive/2009/11/18/1740481.aspx"&gt;Читаем в блоге Ирины Наумовой.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1740484" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Tips+for+DBA/default.aspx">Tips for DBA</category></item><item><title>Вариант стратегии быстрого и надежного резервного копирования/восстановления VLDB по сети</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/11/13/1739500.aspx</link><pubDate>Fri, 13 Nov 2009 12:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1739500</guid><dc:creator>gladchenko</dc:creator><slash:comments>0</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По материалам технической статьи Майкрософт: &lt;a href="http://sqlcat.com/whitepapers/archive/2009/08/13/a-technical-case-study-fast-and-reliable-backup-and-restore-of-a-vldb-over-the-network.aspx"&gt;A Case Study: Fast and Reliable Backup and Restore of a VLDB over the Network&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Автор: Томас Грохсер (Thomas H. Grohser)&lt;br /&gt;При содействии: Линдсей Аллен (Lindsey Allen)&lt;br /&gt;Техническая экспертиза статьи: Sanjay Mishra, Lubor Kollar, Stuart Ozer, Thomas Kejser, Juergen Thomas, James Podgorski, Burzin Patel&lt;br /&gt;Перевод: &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александр Гладченко&lt;/a&gt;, &lt;a href="http://msmvps.com/blogs/irinanaumova/default.aspx"&gt;Ирина Наумова&lt;/a&gt;&lt;br /&gt;Редактура перевода: &lt;a href="http://blogs.technet.com/mockalb/default.aspx"&gt;Алексей Халако&lt;/a&gt;&lt;br /&gt;Дата издания: июнь 2009г.&lt;br /&gt;Тематика статьи: SQL Server 2008&lt;/p&gt;
&lt;p align="justify"&gt;Резюме: Размер баз данных непрерывно растёт, так же, как и растут требования к надежности и доступности баз. Одновременно с этим как никогда важным становится требование быстрого и надежного восстановления данных. Этот документ посвящён проблемам проектирования устойчивого резервного копирования и решений по восстановлению очень больших баз данных (VLDB). В этой статье на реальном примере демонстрируется как лучше всего использовать функциональность SQL Server 2008 для осуществления резервного копирования и восстановления, которыми обладает SQL Server 2008, а также создание планов резервного копирования и восстановления VLDB по сети.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/blogs/irinanaumova/pages/1739496.aspx"&gt;Читать статью в блоге Ирины Наумовой&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Данный перевод опубликован на сайте SQLCAT: &lt;a href="http://sqlcat.com/whitepapers_russian/archive/2009/11/25/pagelatch-insert.aspx"&gt;http://sqlcat.com/whitepapers_russian/archive/2009/11/25/pagelatch-insert.aspx&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1739500" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>HDD DEAD?!</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/10/20/1733661.aspx</link><pubDate>Tue, 20 Oct 2009 13:24:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1733661</guid><dc:creator>gladchenko</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;
&lt;div align="right"&gt;&lt;em&gt;&amp;hellip;и наконец моё любопытство возобладало, и я решил таки заглянуть, что же такого понаделел HP в TPC-H&amp;hellip;&lt;/em&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;div align="justify"&gt;
&lt;p align="justify"&gt;Не удивляйтесь, но поначалу я не предавал особого значения появляющимся с завидной регулярностью (раз в месяц) новым, ничем с виду не примечательным результатам. Но, когда появился третий из них, я заметил тенденцию, что они становятся с каждым разом немного ХУЖЕ и ДОРОЖЕ. Именно тогда мне стало любопытно, в чём там &amp;quot;порылась собака&amp;quot;&amp;hellip;&lt;br /&gt;Конечно, виною всему было то, как представлены результаты в сводной таблице: &lt;a href="http://www.tpc.org/tpch/results/tpch_results.asp?print=false&amp;amp;orderby=submitted&amp;amp;version=2%25&amp;amp;sortby=desc"&gt;Complete TPC-H Results List - Sorted by Date Submitted&lt;/a&gt;&lt;br /&gt;Просто, в представлении на сайте не видно главного изменения, поскольку испокон веков эта составляющая была неизменной и только в последние год - два ситуация начала выправляться к лучшему. На самом деле, HP в последнем из трёх своих результатов показал, как SAS диски могут оказаться более дорогим решением, чем SSD диски, при близкой производительности.&lt;br /&gt;Вот несколько видоизменённое представление результатов, с детализацией по конфигурации дисковой подсистемы:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko/4278.HP_2D00_TPC_2D00_H_2D00_SSD.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Ссылки на подробные описания тестов:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;
&lt;li&gt;&lt;a href="http://www.tpc.org/tpch/results/tpch_result_detail.asp?id=109100801"&gt;10/07/09 HP ProLiant DL380 G6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tpc.org/tpch/results/tpch_result_detail.asp?id=109090801"&gt;09/04/09 HP ProLiant DL380 G6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tpc.org/tpch/results/tpch_result_detail.asp?id=109082801"&gt;08/27/09 HP ProLiant DL380 G6&lt;/a&gt;&lt;/li&gt;
&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Результаты потрясающие! Оказывается решение на базе SSD получается чуть ли не в двое дешевле, чем на привычных нам SAS.&lt;br /&gt;Похоже, гегемонии производителей жёстких дисков приходит долгожданный конец, а точнее, последний рудимент зари IBM PC, этот кошмарный механический монстр, самое слабое звено любого компьютера - HDD может уйти в небытие!&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1733661" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Tips for DBA: Замена для стандартного "Back Up Database Task"</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/10/07/1730580.aspx</link><pubDate>Wed, 07 Oct 2009 14:08:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1730580</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;&lt;img src="http://www.itcommunity.ru/Themes/default/RssImportImages/588/13895ef4-2f7e-468e-b724-1a96b04270cd.gif" align="right" alt="" /&gt;
&lt;p align="justify"&gt;Очень часто получается так, что реальные бизнес -требования оказываются сложнее, чем возможности мастеров программного инструментария, поставляемого разными производителями ПО для задач администрирования SQL Server 2008. Например, недавно мне стало недостаточно гибкости &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms189036.aspx"&gt;мастера создания задачи резервного копирования&lt;/a&gt; базы данных для стандартного &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms187658.aspx"&gt;плана обслуживания&lt;/a&gt; БД. У меня возникла необходимость делать копию в несколько фалов на разных дисковых массивах и поддерживать хронологию копий по единым правилам. В несколько файлов выполнять резервное копирование бывает необходимо для повышения производительности этой операции, например, как это рекомендовано в этой статье: &amp;quot;&lt;a href="http://sqlcat.com/whitepapers/archive/2009/08/13/a-technical-case-study-fast-and-reliable-backup-and-restore-of-a-vldb-over-the-network.aspx"&gt;A Technical Case Study: Fast and Reliable Backup and Restore of Multi-Terabytes Database over the Network&lt;/a&gt;&amp;quot;.&lt;br /&gt;Мастер SSMS может либо поддерживать хронологию для одного файла копий, либо копировать в фиксированные имена нескольких указанных файлов. К счастью, совершенно не составляет труда заменить задачу резервного копирования на задачу исполнения сценария T-SQL, в котором выполнить нужную работу. Ниже представлен соответствующий шаблон сценария, взяв который за основу можно составить необходимую задачу исполнения сценария T-SQL.&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @path &lt;span style="color:#0000ff;"&gt;varchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;128&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @DBName &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4000&lt;/b&gt;&lt;/span&gt;) = &lt;span style="color:#ff0000;"&gt;&amp;#39;&lt;big&gt;&lt;b&gt;ИМЯБАЗЫДАННЫХ&lt;/b&gt;&lt;/big&gt;&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @File1 &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4000&lt;/b&gt;&lt;/span&gt;), @File2 &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4000&lt;/b&gt;&lt;/span&gt;), @File3 &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4000&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Если диск для копий один, и он корректно задан, узнать путь к папке копий можно так:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;EXEC&lt;/span&gt; master..xp_regread &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@rootkey=&lt;span style="color:#ff0000;"&gt;&amp;#39;HKEY_LOCAL_MACHINE&amp;#39;&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@key=&lt;span style="color:#ff0000;"&gt;&amp;#39;SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer&amp;#39;&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@value_name=&lt;span style="color:#ff0000;"&gt;&amp;#39;BackupDirectory&amp;#39;&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@value=@path &lt;span style="color:#0000ff;"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Формируем часть имени файла, в которой фиксируется имя БД и время создания копии&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;DECLARE&lt;/span&gt; @FileName &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4000&lt;/b&gt;&lt;/span&gt;) = @path + &lt;span style="color:#ff0000;"&gt;&amp;#39;\&amp;#39;&lt;/span&gt; + @DBName +&lt;span style="color:#ff0000;"&gt;&amp;#39;\&amp;#39;&lt;/span&gt; + @DBName + &lt;span style="color:#ff0000;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; + &lt;span style="color:#ff0000;"&gt;&amp;#39;backup_&amp;#39;&lt;/span&gt; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff00ff;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;),YEAR(&lt;span style="color:#ff00ff;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;), &lt;span style="color:#00008b;"&gt;&lt;b&gt;112&lt;/b&gt;&lt;/span&gt; ) + &lt;span style="color:#ff0000;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff00ff;"&gt;CASE&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;MONTH&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;01&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;02&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;03&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;04&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;05&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;6&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;06&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;07&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;08&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;09&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;ELSE&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;),MONTH(&lt;span style="color:#ff00ff;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;), &lt;span style="color:#00008b;"&gt;&lt;b&gt;112&lt;/b&gt;&lt;/span&gt; ) &lt;span style="color:#0000ff;"&gt;END&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ &lt;span style="color:#ff0000;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff00ff;"&gt;CASE&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;DAY&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;01&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;02&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;03&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;04&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;05&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;6&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;06&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;07&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;08&amp;#39;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;09&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;ELSE&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;),DAY(&lt;span style="color:#ff00ff;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;), &lt;span style="color:#00008b;"&gt;&lt;b&gt;112&lt;/b&gt;&lt;/span&gt; ) &lt;span style="color:#0000ff;"&gt;END&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ &lt;span style="color:#ff0000;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff00ff;"&gt;REPLACE&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;REPLACE&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;CAST&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;time&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;7&lt;/b&gt;&lt;/span&gt;),CURRENT_TIMESTAMP, &lt;span style="color:#00008b;"&gt;&lt;b&gt;109&lt;/b&gt;&lt;/span&gt; ) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;nvarchar&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;14&lt;/b&gt;&lt;/span&gt;)),&lt;span style="color:#ff0000;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;,&lt;span style="color:#ff0000;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;),&lt;span style="color:#ff0000;"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;,&lt;span style="color:#ff0000;"&gt;&amp;#39;_&amp;#39;&lt;/span&gt;);&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Добавляем к пути и имени файла идентификаторы и расширения &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; @File1 = @FileName + + &lt;span style="color:#ff0000;"&gt;&amp;#39;01.bak&amp;#39;&lt;/span&gt;, @File2 = @FileName + + &lt;span style="color:#ff0000;"&gt;&amp;#39;02.bak&amp;#39;&lt;/span&gt;, @File3 = @FileName + + &lt;span style="color:#ff0000;"&gt;&amp;#39;03.bak&amp;#39;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;-- Запускаем резервное копирование в три файла.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;BACKUP&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;DATABASE&lt;/span&gt; [&lt;span style="color:#ff0000;"&gt;&lt;b&gt;&lt;big&gt;ИМЯБАЗЫДАННЫХ&lt;/big&gt;&lt;/b&gt;&lt;/span&gt;] &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;DISK&lt;/span&gt; = @File1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;DISK&lt;/span&gt; = @File2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;DISK&lt;/span&gt; = @File3&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WITH&lt;/span&gt; NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, COMPRESSION, &lt;span style="color:#0000ff;"&gt;STATS&lt;/span&gt; = &lt;span style="color:#00008b;"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1730580" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Tips+for+DBA/default.aspx">Tips for DBA</category></item><item><title>Как справиться с PAGELATCH при больших INSERT-нагрузках</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/09/28/1727878.aspx</link><pubDate>Mon, 28 Sep 2009 12:30:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1727878</guid><dc:creator>gladchenko</dc:creator><slash:comments>4</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По материалам статьи: &amp;quot;&lt;a href="http://sqlcat.com/technicalnotes/archive/2009/09/22/resolving-pagelatch-contention-on-highly-concurrent-insert-workloads-part-1.aspx"&gt;Resolving PAGELATCH Contention on Highly Concurrent INSERT Workloads&lt;/a&gt;&amp;quot;.&lt;br /&gt;Авторы: Thomas Kejser, Lindsey Allen, Arvind Rao и Michael Thomassy&lt;br /&gt;При участии и с рецензиями: Mike Ruthruff, Lubor Kollar, Prem Mehra, Burzin Patel, Michael Thomassy, Mark Souza, Sanjay Mishra, Peter Scharlock, Stuart Ozer, Kun Cheng и Howard Yin&lt;br /&gt;Перевод &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александра Гладченко&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Введение&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Недавно, мы проводили лабораторные испытания в Microsoft Enterprise Engineering Center, при которых использовалась большая рабочая нагрузка, характерная для OLTP систем. Целью этой лабораторной работы было определить, что случится при увеличении числа процессоров с 64 до 128, при обслуживании Microsoft SQL Server интенсивной рабочей нагрузки (примечание: эта конфигурация была ориентирована на релиз Microsoft SQL Server 2008 R2). Рабочая нагрузка представляла собой хорошо распараллеленные операции вставки, направляемые в несколько больших таблиц.&lt;br /&gt;Рабочая нагрузка масштабировалась до 128 процессорных ядер, но в статистике ожиданий было очень много кратких блокировок PAGELATCH_UP и PAGELATCH_EX. Средняя продолжительность ожидания была десятки миллисекунд, и таких ожиданий было очень много. Такое их количество оказалось для нас неожиданностью, ожидалось, что продолжительность не будет превышать несколько миллисекунд.&lt;br /&gt;В этой технической заметке вначале будет описано, как диагностировать подобную проблему и как для разрешения подобной проблемы использовать секционирование таблиц.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Диагностика проблемы&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Когда в &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms179984.aspx"&gt;sys.dm_os_wait_stats&lt;/a&gt; наблюдается большое число PAGELATCH, с помощью &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms188743.aspx"&gt;sys.dm_os_waiting_tasks&lt;/a&gt; можно определить сессию и ресурс, который задача ожидает, например, с помощью этого сценария:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; session_id, wait_type, resource_description&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.dm_os_waiting_tasks&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WHERE&lt;/span&gt; wait_type &lt;span style="color:#777777;"&gt;LIKE&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Пример результата:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/6378.Output.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p align="justify"&gt;В столбце resource_description указаны местоположения страниц, к которым ожидают доступ сессии, местоположение представлено в таком формате:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&amp;lt;database_id&amp;gt;:&amp;lt;file_id&amp;gt;:&amp;lt;page_id&amp;gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Опираясь на значения в столбце resource_description, можно составить довольно сложный сценарий, который предоставит выборку всех попавших в список ожидания страниц:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; wt.session_id, wt.wait_type, wt.wait_duration_ms&lt;br /&gt;, s.name &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; schema_name&lt;br /&gt;, o.name &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;object_name&lt;/span&gt;&lt;br /&gt;, i.name &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; index_name&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.dm_os_buffer_descriptors bd&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; (&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; *&lt;br /&gt;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff00ff;"&gt;CHARINDEX&lt;/span&gt;(&lt;span style="color:#ff0000;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;, resource_description) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; file_index&lt;br /&gt;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff00ff;"&gt;CHARINDEX&lt;/span&gt;(&lt;span style="color:#ff0000;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;, resource_description&lt;br /&gt;&amp;nbsp;&amp;nbsp;, &lt;span style="color:#ff00ff;"&gt;CHARINDEX&lt;/span&gt;(&lt;span style="color:#ff0000;"&gt;&amp;#39;:&amp;#39;&lt;/span&gt;, resource_description)) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; page_index&lt;br /&gt;&amp;nbsp;&amp;nbsp;, resource_description &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; rd&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.dm_os_waiting_tasks wt&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WHERE&lt;/span&gt; wait_type &lt;span style="color:#777777;"&gt;LIKE&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;PAGELATCH%&amp;#39;&lt;/span&gt;&lt;br /&gt;) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; wt&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; bd.database_id = &lt;span style="color:#ff00ff;"&gt;SUBSTRING&lt;/span&gt;(wt.rd, &lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;, wt.file_index)&lt;br /&gt;&lt;span style="color:#777777;"&gt;AND&lt;/span&gt; bd.&lt;span style="color:#ff00ff;"&gt;file_id&lt;/span&gt; = &lt;span style="color:#ff00ff;"&gt;SUBSTRING&lt;/span&gt;(wt.rd, wt.file_index, wt.page_index)&lt;br /&gt;&lt;span style="color:#777777;"&gt;AND&lt;/span&gt; bd.page_id = &lt;span style="color:#ff00ff;"&gt;SUBSTRING&lt;/span&gt;(wt.rd, wt.page_index, &lt;span style="color:#ff00ff;"&gt;LEN&lt;/span&gt;(wt.rd))&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.allocation_units&lt;/span&gt; au &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; bd.allocation_unit_id = au.allocation_unit_id&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.partitions&lt;/span&gt; p &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; au.container_id = p.partition_id&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.indexes&lt;/span&gt; i &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; p.index_id = i.index_id &lt;span style="color:#777777;"&gt;AND&lt;/span&gt; p.&lt;span style="color:#ff00ff;"&gt;object_id&lt;/span&gt; = i.&lt;span style="color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.objects&lt;/span&gt; o &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; i.&lt;span style="color:#ff00ff;"&gt;object_id&lt;/span&gt; = o.&lt;span style="color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#777777;"&gt;JOIN&lt;/span&gt; &lt;span style="color:#008000;"&gt;sys.schemas&lt;/span&gt; s &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; o.schema_id = s.schema_id


&lt;pre&gt;&lt;/pre&gt;
&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Сценарий показал, что ожидаемые страницы относятся к кластеризованному индексу, определённому первичным ключом таблицы с представленной ниже структурой:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TABLE&lt;/span&gt; HeavyInsert (&lt;br /&gt;ID &lt;span style="color:#0000ff;"&gt;INT&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;KEY&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CLUSTERED&lt;/span&gt;&lt;br /&gt;, col1 &lt;span style="color:#0000ff;"&gt;VARCHAR&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;50&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;) &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Что происходит, почему возникает очередь ожиданий к страницам данных индекса - всё это будет рассмотрено в этой технической заметке.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Основная информация&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Чтобы определить, что происходит с нашей большой OLTP-нагрузкой, важно понимать, как SQL Server выполняет вставку в индекс новой строки. При необходимости вставки в индекс новой строки, SQL Server будет следовать следующему алгоритму внесения изменений:&lt;/p&gt;
&lt;ol&gt;
&lt;p&gt;
&lt;li&gt;В журнале транзакций создаётся запись о том, что строка изменилась.&lt;/li&gt;
&lt;li&gt;Осуществляется поиск в В-дереве местонахождения той страницы, куда должна будет попасть новая запись.&lt;/li&gt;
&lt;li&gt;Осуществляется наложение на эту страницу краткой блокировки PAGELATCH_EX, которая призвана воспрепятствовать изменениям из других потоков.&lt;/li&gt;
&lt;li&gt;Осуществляется добавление строки на страницу и, если это необходимо, осуществляется пометка этой страницы как &amp;quot;грязной&amp;quot;.&lt;/li&gt;
&lt;li&gt;Осуществляется снятие краткой блокировки со страницы.&lt;/li&gt;
&lt;/p&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;В итоге, страница должна будет быть сброшена на диск процессом контрольной точкой или отложенной записи.&lt;br /&gt;Если же все вставки строк направлены на ту же самую страницу, можно наблюдать рост очереди к этой странице. Даже притом, что краткая блокировка весьма непродолжительна, она может стать причиной конкуренции при высоком параллелизме рабочей нагрузки. У нашего клиента, первый и единственный столбец в индексе являлся монотонно возрастающим ключом. Из-за этого, каждая новая вставка шла на ту же самую страницу в конце В-дерева, пока эта страница не была заполнена. Рабочие нагрузки, которые используют в качестве первичного ключа IDENTITY или другие столбцы с последовательно увеличивающимися значениями, также могут столкнуться с подобной проблемой, если распараллеливание достаточно высоко.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Решение&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Всегда, когда несколько потоков получают синхронный доступ к одному и тому же ресурсу, может проявиться описанная выше проблема. Стандартное решение состоит в том, чтобы создать больше ресурсов конкурентного доступа. В нашем случае, таким конкурентным ресурсом является последняя страница В-дерева.&lt;br /&gt;Одним из способов снизить конкуренцию за одну страницу состоит в том, чтобы выбрать в качестве первого столбца индекса другой, не увеличивающийся монотонно столбец. Однако, для нашего клиента это потребовало бы внесения изменений на прикладном уровне в клиентских системах. Мы должны были найти другое решение, которое могло бы ограничиться только изменениями в базе данных.&lt;br /&gt;Помните, что местом конкуренции является одна страница в В-дерева, и конкуренция была бы меньше, если бы было возможно использовать для этого несколько В-деревьев, и в то же время работать только с одной таблицей. К счастью, такая возможность есть, это: &lt;a href="http://msdn.microsoft.com/ru-ru/library/ms188706.aspx"&gt;Секционированные таблицы и индексы&lt;/a&gt;. Таблица может быть секционирована таким способом, чтобы новые строки размещались в нескольких секциях.&lt;br /&gt;Сначала нужно создать функцию и схему секционирования:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE PARTITION&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;FUNCTION&lt;/span&gt; pf_hash (&lt;span style="color:#0000ff;"&gt;INT&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; RANGE &lt;span style="color:#777777;"&gt;LEFT&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;FOR&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;VALUES&lt;/span&gt; (&lt;span style="color:#00008b;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;,&lt;span style="color:#00008b;"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/span&gt;,&lt;span style="color:#00008b;"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;CREATE PARTITION SCHEME&lt;/span&gt; ps_hash &lt;span style="color:#0000ff;"&gt;AS PARTITION&lt;/span&gt; pf_hash &lt;span style="color:#777777;"&gt;ALL&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TO&lt;/span&gt; ([PRIMARY])&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Представленный выше пример использует четыре секции. Число необходимых секций зависит от числа активных процессов, выполняющих операции INSERT в описанную выше таблицу. Есть некоторая сложность в секционировании таблицы с помощью хэш-столбца, например, в том что всякий раз, когда происходит выборка строк из таблицы, будут затронуты все секции. Это означает, что придётся обращаться более чем к одному В-дереву, т.е. не будет отброшенных оптимизатором за ненадобностью ненужных секций. Будет дополнительная нагрузка на процессоры и некоторое увеличение времени ожиданий процессоров, что побуждает минимизировать число планируемых секций (их должно быть минимальное количество, при котором не наблюдается PAGELATCH). В рассматриваемом нами случае, в системе нашего клиента имелось достаточно много резерва в утилизации процессоров, так что было вполне возможно допустить небольшую потерю времени для инструкций SELECT, и при этом увеличить до необходимых объёмов норму инструкций INSERT.&lt;br /&gt;Ещё одной сложностью является то, что нужен дополнительный столбец, по которому будет выполняться секционирование, т.е. на основании значения которого будут распределяться вставки по четырем секциям. Такого столбца изначально в сценарии Microsoft Enterprise Engineering Center не было. Однако, его достаточно просто было создать. Для этого использовался тот факта, что столбец ID монотонно увеличивается с приращением равным единице, и здесь легко применима довольно простая хеш-функция:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;TABLE&lt;/span&gt; HeavyInsert_Hash(&lt;br /&gt;&amp;nbsp; ID &lt;span style="color:#0000ff;"&gt;INT&lt;/span&gt; &lt;span style="color:#777777;"&gt;NOT&lt;/span&gt; &lt;span style="color:#777777;"&gt;NULL&lt;/span&gt;&lt;br /&gt;&amp;nbsp; , col1 &lt;span style="color:#0000ff;"&gt;VARCHAR&lt;/span&gt;(&lt;span style="color:#00008b;"&gt;&lt;b&gt;50&lt;/b&gt;&lt;/span&gt;)&lt;br /&gt;&amp;nbsp; , HashID &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;CAST&lt;/span&gt;(&lt;span style="color:#ff00ff;"&gt;ABS&lt;/span&gt;(ID &lt;span style="color:#777777;"&gt;%&lt;/span&gt; &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;AS TINYINT&lt;/span&gt;) &lt;span style="color:#0000ff;"&gt;PERSISTED&lt;/span&gt; &lt;span style="color:#777777;"&gt;NOT NULL&lt;/span&gt;)&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;С помощью столбца HashID, вставки в четыре секции будут выполняться циклически.&lt;br /&gt;Создаём кластеризованный индекс следующим образом:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;UNIQUE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CLUSTERED&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;INDEX&lt;/span&gt; CIX_Hash&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; HeavyInsert_Hash (ID, HashID) &lt;span style="color:#0000ff;"&gt;ON&lt;/span&gt; ps_hash(HashID)&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Используя новую схему таблицы с секционированием вместо первоначального варианта таблицы, мы сумели избавиться от очередей PAGELATCH и повысить скорость вставки. Этого удалось достичь за счёт балансировки вставки между несколькими секциями и высокого параллелизма. Вставка происходит в несколько страниц, и каждая страница размещается в своей собственной структуре В-дерева. Для нашего клиента удалось повысить производительность вставки на 15 процентов, и справится с большой очередью PAGELATCH к горячей странице индекса одной таблицы. Но при этом удалось также оставить достаточно большой резерв циклов процессоров, что оставило возможность сделать аналогичную оптимизацию для другой таблицы, тоже с высокой нормой вставки.&lt;br /&gt;Строго говоря, суть этой уловки в оптимизации логической схемы первичного ключа таблицы. Однако, потому что ключ просто стал длиннее на величину хеш-функции относительно изначального ключа, дубликатов для столбца ID удалось избежать. Уникальные индексы по единственному столбцу таблицы зачастую становятся причиной проблем с очередями PAGELATCH. Но даже если эту проблему удастся устранить, у таблицы может оказаться другой, некластеризованный индекс, который будет подвержен той же самой проблеме. Как правило, проблема наблюдается для уникальных ключей на единственном столбце, где каждая вставка попадает на одну и ту же страницу. Если и у других таблиц индексы подвержены проблеме с PAGELATCH, можно применить эту же уловку с секционированием к индексам таких таблиц, используя такой же ключ с хэшем в качестве первичного ключа.&lt;br /&gt;Не всегда возможно внести изменения в приложение, особенно, если оно является плодом усилий третьих фирм. Но если изменение запросов возможно, становится доступной их оптимизация за счёт добавления к ним условий фильтрации по предикатам первичного ключа.&lt;/p&gt;
&lt;p align="justify"&gt;Пример: Чтобы отбросить ненужные секции, можно внести следующие изменения в сценарий:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; HeavyInsert_Hash&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WHERE&lt;/span&gt; ID = &lt;span style="color:#00008b;"&gt;&lt;b&gt;42&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Который после изменений будет выглядеть так:&lt;/p&gt;
&lt;ul&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; HeavyInsert_Hash&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;WHERE&lt;/span&gt; ID = &lt;span style="color:#00008b;"&gt;&lt;b&gt;42&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#777777;"&gt;AND&lt;/span&gt; HashID = &lt;span style="color:#00008b;"&gt;&lt;b&gt;42&lt;/b&gt;&lt;/span&gt; % &lt;span style="color:#00008b;"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Исключение оптимизатором ненужных секций по значению хэша не будет вам ничего стоить, если только не считать большой платой за это увеличение на один байт каждой строки кластеризованного индекса. &lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1727878" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Query Processor Modeling Extensions</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/08/31/1719693.aspx</link><pubDate>Mon, 31 Aug 2009 13:13:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719693</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По материалам стать Иан Джоз (Ian Jose): &lt;a href="http://blogs.msdn.com/ianjo/archive/2006/04/24/582219.aspx"&gt;Query Processor Modelling Extensions in SQL Server 2005 SP1&lt;/a&gt;&lt;br /&gt;Перевод &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александра Гладченко&lt;/a&gt;&lt;br /&gt;Редактура &lt;a href="http://blogs.technet.com/mockalb/default.aspx"&gt;Алексея Халако&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;В этой статье Иан рассказывает про флаг трассировки T2301, который включает более тонкую оптимизацию запросов, что бывает полезно для больших баз данных с нагрузкой, характерной для систем поддержки принятия решений. В тестах TPC-H этот флаг используется очень часто и разными вендорами.&lt;/i&gt;&lt;/p&gt;
Появившееся в SQL Server 2005 SP1 расширение оптимизатора Query Processor Modelling Extensions можно включить с помощью флага трассировки 2301. Это расширение обеспечивает возможность системы моделирования оптимизатора запросов выбирать более производительные планы исполнения сложных запросов к базе данных. Улучшенное моделирование планов запроса в некоторых случаях может привести к существенному повышению производительности исполнения запросов. Однако, эти расширения моделирования процессора запросов, могут привести к заметному увеличенному времени компиляции, и поэтому рекомендуются для использования только в тех приложениях, в которых компиляций бывает немного, и они происходят нечасто. Были добавлены следующие расширения моделирования:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Целочисленное моделирование (Integer Modelling)&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Обычно, моделирование предполагает, что между кодовыми точками чисел двойной ширины значения шага гистограммы распределены одинаково. Расширение этой модели запоминает, что значения могут встречаться только для целочисленных кодовых точек, и за счёт этого оценки множества элементов для фильтров неравенства выполняются точнее.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Углублённое использование гистограммы (Comprehensive Histogram Usage)&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Обычно, гистограммы игнорируются, когда количество элементов отношения оказывается меньше числа шагов в гистограмме. Это - логика, которая определяет вероятность того, что гистограмма и далее будет описывать отношение. Это расширение применяет гистограмму в оценке количества элементов независимо от оценки количества элементов для отношения.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Предположение основного ограничения (Base Containment Assumption)&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Обычно, при соединении двух отношений мы предполагаем, что для Х определенных кодовых точек (которые относятся к тому же самому ключевому диапазону, что и отношение R) при соединении с Y уникальных точек того же самого ключевого диапазона, что и в отношении S, всегда найдётся пара MIN(X,Y). Такое допущение называют &amp;quot;Простое ограничение&amp;quot;. Мы предполагаем, что наименьшее число из уникальных точек кода соотносится с точками кода на другой стороне. Это моделирование игнорирует относительную совокупность уникальных точек кода в основных формах R и S, и также игнорирует любую фильтрацию, которая была применена к основными формами R и S перед соединением. Основное ограничение основывается на предположение, что ограничение применяется только к основным отношениям и использует вероятностные методы вычисления степени соединения. Кроме того, подразумевается, что модели фильтров применены правильно, так как их поведение очень отличается от ортогональных фильтров.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Углублённое изменение отображения плотности (Comprehensive Density Remapping)&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Плотность (Density) - это мера числа дубликатов значений для каждого уникального значения. Обычно, после CONVERT-тации столбцов довольно незначительное число плотностей для этих столбцов заново отображается как новые определения столбцов. Обратите внимание, что такие операции, как конвертация довольно редко меняют плотность столбца. Когда задействовано это расширение моделирования, все такие повторные отображения будут обязательно сделаны, что делает возможным последующее использование плотности для целей оценки количества элементов. В некоторых случаях, это может привести к чрезмерной утилизации памяти.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;b&gt;Углублённое согласование плотности (Comprehensive Density Matching)&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Обычно, плотности согласованы, когда те же самые основные столбцы задействованы в фильтре или соединении. При использовании этого расширения моделирования, применяется понятие эквивалентности столбцов как результат экви-соединений, что ведёт к более точному согласованию плотности и, в итоге, к лучшей оценке количества элементов.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;Все эти расширения были разработаны в ответ на обращения наших клиентов, у которых возникали проблем с отношениями, вследствие которых использовались неудачные планы исполнения запросов. Если наблюдается использование неудачных планов исполнения, для которых применение одного или более из описанных выше расширений может помочь поднять производительность, тогда есть смысл включить флаг трассировки 2301. Важно понимать, что время компиляции от этого увеличится, и в некоторых случаях утилизация памяти может возрасти очень сильно. Таким образом, к применению этого флага трассировки нужно подходить осторожно и обязательно проводить дотошное тестирование перед применением его в промышленной среде.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719693" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Флаги трассировки, рекомендованные Майкрософт для эталонного теста производительности TPC-E</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/08/24/1717845.aspx</link><pubDate>Mon, 24 Aug 2009 10:05:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1717845</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По материалам статьи: &lt;a href="https://mssqlperf.partners.extranet.microsoft.com/SQLServer/SQL_Trace_Flags_TPC-E.aspx"&gt;Microsoft SQL Server 2008 TPC-E Trace Flags&lt;/a&gt;&lt;br /&gt;Вольный перевод &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александра Гладченко&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Наиболее часто используемым способом изменения поведения SQL Server является выставление флагов трассировки. Следующие флаги трассировки поддерживаются в настоящее время Майкрософт для публикации результатов тесов производительности &lt;a href="http://www.tpc.org/tpce/results/tpce_results.asp?print=false&amp;amp;orderby=submitted&amp;amp;sortby=desc"&gt;TPC-E&lt;/a&gt;. Если сотрудники Майкрософт рекомендуют Вам использовать другие флаги трассировки, которые не представлены в списке ниже, пожалуйста, сообщите об этом Джейми Редингу (&lt;a href="mailto:Jamie.Reding@Microsoft.com"&gt;Jamie.Reding@Microsoft.com&lt;/a&gt;) или Чарльзу Левину (&lt;a href="mailto:Charles.Levine@Microsoft.com"&gt;Charles.Levine@Microsoft.com&lt;/a&gt;) до того, как вы опубликуете использование этих флагов.&lt;br /&gt;Единственными поддерживаемыми для SQL Server 2008 флагами трассировки для TPC-E являются флаги: -T661 -T834 -T3502 -T8744.&lt;br /&gt;Единственным поддерживаемыми для SQL Server 2008 параметрами запуска сервера для теста TPC-E являются параметры: -c -E -x, которые хорошо описаны в BOL.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;661:&lt;/big&gt; Disable the ghost record removal process&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Флаг трассировки 661 отключает системный процесс удаления фантомных записей. Фантомные записи появляются в результате исполнения операций удаления, после которых удалённые записи могут оставаться в файле как фантомные записи. Через некоторое время, удаленные записи вычищаются процессом удаления фантомных записей. Когда этот процесс отключается, удаленные записи не вычищаются. Поэтому, место, которое занимают удаленные записи, не высвобождается. Это влияет на занимаемое данными место и на производительность операций просмотра.&lt;br /&gt;Флаг трассировки 661 всегда действует в контексте всего сервера, т.е. имеет глобальный контекст. Вы можете включать флаг трассировки 661 при запуске сервера или в пользовательском сеансе.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;834:&lt;/big&gt; Use Microsoft Windows large-page allocations for the buffer pool&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Флаг трассировки 834 применяется в SQL Server 2008 для включения механизма распределения буферному пулу больших страницы памяти, которыми умеют оперировать последние версии Microsoft Windows. У разных аппаратных платформ может быть разный размер страниц, он может изменяться от 2 до 16 Мбайт. Большие страницы распределяются при запуске и сохраняются на протяжении всей жизни процесса. Флаг трассировки 834 повышает производительность, увеличивая эффективность TLB буфера процессоров.&lt;br /&gt;Флаг трассировки 834 применим только к 64-битным версиям SQL Server 2008. Включить флаг трассировки 834 может только та учётная запись, для которой разрешена локальная политика &amp;quot;Lock pages in memory&amp;quot;. Включать флаг трассировки 834 можно только при запуске SQL Server.&lt;br /&gt;Флаг трассировки 834 может препятствовать запуску сервера, если память сильно фрагментирована и это мешает распределению больших страниц. Поэтому, флаг трассировки 834 безопаснее использовать на серверах, которые обслуживают только SQL Server 2008.&lt;br /&gt;Для получения более подробной информации о поддержке больших страниц Windows, перейдите на следующую страницу сайта Microsoft Developer Network (MSDN): &lt;a href="http://msdn.microsoft.com/ru-ru/library/aa366720(en-us,VS.85).aspx"&gt;Large-Page Support&lt;/a&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;3502:&lt;/big&gt; Log Database Checkpoint Start and End times in the SQL Server ErrorLog&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Флаг трассировки 3502 не влияет на производительность, но он нужен для контроля выполнения эталонных тестов TPC. Этот флаг трассировки заставляет SQL Server регистрировать в SQL Server ErrorLog время начала и окончания работы системного процесса контрольной точки.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8744:&lt;/big&gt; Disable pre-fetching for ranges&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Флаг трассировки 8744 отключает предварительную выборку для таких операторов, как &amp;quot;Nested Loops&amp;quot;. Неуместное использование этого флага может спровоцировать дополнительные физические чтения, при реализации плана с оператором &amp;quot;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms187871.aspx"&gt;Nested Loops&lt;/a&gt;&amp;quot;.&lt;br /&gt;Когда флаг трассировки 8744 включён при запуске сервер, он получает глобальный контекст. Когда он включен в сеансе пользователя, контекст ограничивается сеансом.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717845" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Флаги трассировки, рекомендованные Майкрософт для эталонного теста производительности TPC-C</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/08/21/1717116.aspx</link><pubDate>Fri, 21 Aug 2009 15:07:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1717116</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По материалам статьи: &lt;a href="https://mssqlperf.partners.extranet.microsoft.com/SQLServer/SQL_Trace_Flags_TPC-C.aspx"&gt;Microsoft SQL Server 2005 TPC-C Trace Flags&lt;/a&gt;&lt;br /&gt;Вольный перевод &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александра Гладченко&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Наиболее часто используемым способом изменения поведения SQL Server является выставление флагов трассировки. Следующие флаги трассировки поддерживаются в настоящее время Майкрософт для публикации результатов тесов производительности, таких как &lt;a href="http://www.tpc.org/tpcc/results/tpcc_results.asp?print=false&amp;amp;orderby=submitted&amp;amp;version=2%25&amp;amp;sortby=desc"&gt;TPC-C&lt;/a&gt;. Если сотрудники Майкрософт рекомендуют Вам использовать другие флаги трассировки, которые не представлены в списке ниже, пожалуйста, сообщите об этом Джейми Редингу (&lt;a href="mailto:Jamie.Reding@Microsoft.com"&gt;Jamie.Reding@Microsoft.com&lt;/a&gt;) или Чарльзу Левину (&lt;a href="mailto:Charles.Levine@Microsoft.com"&gt;Charles.Levine@Microsoft.com&lt;/a&gt;) до того, как вы опубликуете использование этих флагов.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;652:&lt;/big&gt; Disable page pre-fetching&lt;/b&gt;&lt;br /&gt;Флаг трассировки 652 отключает предварительную выборку страниц во время полных просмотров. Если флаг трассировки 652 включается при запуске SQL Server, он получает глобальный контекст. Если он взводится в пользовательском сеансе, то контекст ограничивается сеансом.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;661:&lt;/big&gt; Disable the ghost record removal process&lt;/b&gt;&lt;br /&gt;Флаг трассировки 661 отключает системный процесс удаления фантомных записей. Фантомные записи появляются в результате исполнения операций удаления, после которых удалённые записи могут оставаться в файле как фантомные записи. Через некоторое время, удаленные записи вычищаются процессом удаления фантомных записей. Когда этот процесс отключается, удаленные записи не вычищаются. Поэтому, место, которое занимают удаленные записи, не высвобождается. Это влияет на занимаемое данными место и на производительность операций просмотра.&lt;br /&gt;Флаг трассировки 661 всегда действует в контексте всего сервера, т.е. имеет глобальный контекст. Вы можете включать флаг трассировки 661 при запуске сервера или в пользовательском сеансе.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;834:&lt;/big&gt; Use Microsoft Windows large-page allocations for the buffer pool&lt;/b&gt;&lt;br /&gt;Флаг трассировки 834 применяется в SQL Server 2005 для включения механизма распределения буферному пулу больших страницы памяти, которыми умеют оперировать последние версии Microsoft Windows. У разных аппаратных платформ может быть разный размер страниц, он может изменяться от 2 до 16 Мбайт. Большие страницы распределяются при запуске и сохраняются на протяжении вей жизни процесса. Флаг трассировки 834 повышает производительность, увеличивая эффективность TLB буфера процессоров.&lt;br /&gt;Флаг трассировки 834 применим только к 64-битным версиям SQL Server 2005. Включить флаг трассировки 834 может только та учётная запись, для которой разрешена локальная политика &amp;quot;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/large_page_support.asp"&gt;Lock pages in memory&lt;/a&gt;&amp;quot;. Включать флаг трассировки 834 можно только при запуске SQL Server.&lt;br /&gt;Флаг трассировки 834 может препятствовать запуску сервера, если память сильно фрагментирована и это мешает распределению больших страниц. Поэтому, флаг трассировки 834 безопаснее использовать на серверах, которые обслуживают только SQL Server 2005.&lt;br /&gt;Для получения более подробной информации о поддержке больших страниц Windows, перейдите на следующую страницу сайта Microsoft Developer Network (MSDN): Large-Page Support.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;836:&lt;/big&gt; Use the max server memory option for the buffer pool&lt;/b&gt;&lt;br /&gt;Флаг трассировки 836 нужен для того, чтобы размер буферного пула при запуске SQL Server 2005 устанавливался на основе значения параметра глобальной конфигурации &amp;quot;max server memory&amp;quot;, вместо того, чтобы использовать в качестве ориентира размер физической памяти. Вы можете использовать флаг трассировки 836, чтобы уменьшить число описателей буфера, которые распределяются при запуске службы в 32-разрядном режиме Address Windowing Extensions (AWE). Это позволяет предоставить в памяти больше места для заимствованных из буферного пула страниц.&lt;br /&gt;Флаг трассировки 836 применяется только с 32-разрядным версиям SQL Server 2005, которым разрешено распределение страниц через окно AWE. Включить флаг трассировки 836 можно только при запуске.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;1228 и 1229&lt;/big&gt; - Enable lock partitioning and disable lock partitioning&lt;/b&gt;&lt;br /&gt;По умолчанию, секционирование блокировок становится возможным, когда сервер имеет 16 или более процессоров. Иначе, секционирование блокировок заблокировано. Флаг трассировки 1228 включает секционирование блокировок для двухпроцессорных и более систем. Для отключения секционирования блокировок используется флаг трассировки 1229.&lt;br /&gt;Секционирование блокировок полезно на мультипроцессорных серверах, где для некоторых таблиц очень высоки нормы блокировок. Включить флаги трассировки 1228 и 1229 можно только при запуске.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;2301:&lt;/big&gt; Enable advanced decision support optimizations&lt;/b&gt;&lt;br /&gt;Флаг трассировки 2301 включает дополнительную оптимизацию, которая улучшает работу запросов систем поддержки принятия решений, характерных большим объёмом затрагиваемых запросом данных.&lt;br /&gt;Когда флаг трассировки 2301 включается при запуске сервера, он получает глобальный контекст, иначе, он будет иметь контекст сеанса.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;Флаги трассировки, которые отключают некоторые кольцевые буферы&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Кольцевой буфер - внутренний диагностический механизм SQL Server 2005, который может использоваться для сбора дополнительной информации о сервере. Как правило, эту информацию используют для исследования проблем в работе сервера. Посмотреть накапливаемую кольцевыми буферами информацию можно с помощью динамического административного представления &lt;a href="http://msdn.microsoft.com/ru-ru/library/bb510747.aspx"&gt;sys.dm_os_process_memory&lt;/a&gt;.&lt;br /&gt;Отключение кольцевых буферов в целом приводит к повышению производительности. Однако, отключение кольцевых буферов исключает возможность использования диагностической информации для передачи в службу поддержки Microsoft и может помешать успешному поиску решения возможных проблем.&lt;br /&gt;Представленные ниже флаги трассировки отключают разные кольцевые буферы.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8011:&lt;/big&gt; Disable the ring buffer for Resource Monitor&lt;/b&gt;&lt;br /&gt;Флаг трассировки 8011 отключает сбор дополнительной диагностической информации, относящейся к Resource Monitor. Информация этого кольцевого буфера можете использовать для диагностики состояния исчерпания памяти. Флаг трассировки 8011 всегда применяется ко всему серверу и имеет глобальный контекст. Вы можете включить флаг 8011 при запуске или в сеансе пользователя.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8012:&lt;/big&gt; Disable the ring buffer for schedulers&lt;/b&gt;&lt;br /&gt;Флаг трассировки 8012 отключает кольцевой буфер планировщиков. Информация этого кольцевого буфера можете использовать для диагностики проблем планирования потоков процессорам. Например, информацию этого кольцевого буфера можно использовать для выявления проблем, проявляющихся как потеря отклика от SQL Server 2005. Включать флаг трассировки 8012 можно только при запуске сервера.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8018 and 8019:&lt;/big&gt; Disable the exception ring buffer and disable stack collection for the exception ring buffer&lt;/b&gt; Этот кольцевой буфер хранит данные о последних 256 исключениях, которые были зафиксированы для узла. Каждая запись содержит немного информации об ошибке и трассировку стека. Запись добавляется кольцевым буфером в момент срабатывания исключения.&lt;br /&gt;Флаг трассировки 8018 отключает создание кольцевого буфера, и после этого информация об исключения не сохраняется. Флаг трассировки 8019 отключает сбор трассировок стека, когда фиксируется информация об исключении. Флаг 8019 нельзя использовать без предварительного включения флага трассировки 8018. Отключение этого кольцевого буфера затрудняет диагностику связанных с проблемами исключений, т.е. с внутренними ошибками сервера. Включить флаги трассировки 8018 и 8019 можно только при запуске сервера.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8020:&lt;/big&gt; Disable working set monitoring&lt;/b&gt;&lt;br /&gt;SQL Server 2005 использует информацию о размере рабочего множества, когда возникает необходимость интерпретировать глобальные сигналы операционной системы о состояния оперативной памяти. Флаг трассировки 8020 исключает из этой интерпретации информацию о размере рабочего множества. Этот флаг трассировки применяется только к обычным страницам памяти. Например, этот флаг трассировки не относится к заблокированным страницам или большим страницам.&lt;br /&gt;Флаг трассировки 8020 может быть полезен, когда операционная система постоянно урезает рабочее множество обслуживающего SQL Server 2005 сервера, и когда сервер неспособен высвобождать память из-за большой рабочей нагрузки. В таком случае, попытки мониторинга приведут к напрасному расходованию циклов процессора. Флаг трассировки 8020 нужно использовать с осторожностью и только после глубокого тестирования на реальных рабочих нагрузках. Кроме того, использовать флаг трассировки 8020 нужно после тщательного выбора значения глобального параметра &amp;quot;max server memory&amp;quot;. Неуместное использование этого флага может привести к сильным листаниям.&lt;br /&gt;Включить флаг трассировки 8020 можно только при запуске сервера.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;big&gt;8744:&lt;/big&gt; Disable pre-fetching for ranges&lt;/b&gt;&lt;br /&gt;Флаг трассировки 8744 отключает предварительную выборку для таких операторов, как &amp;quot;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms187871.aspx"&gt;Nested Loops&lt;/a&gt;&amp;quot;. Неуместное использование этого флага может спровоцировать дополнительные физические чтения, при реализации плана с оператором &amp;quot;Nested Loops&amp;quot;.&lt;br /&gt;Когда флаг трассировки 8744 включён при запуске сервер, он получает глобальный контекст. Когда он включен в сеансе пользователя, контекст ограничивается сеансом.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717116" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Настройка Windows Server 2008/2003 x64 для обслуживания SQL Server 2008</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/08/19/1716656.aspx</link><pubDate>Wed, 19 Aug 2009 14:37:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1716656</guid><dc:creator>gladchenko</dc:creator><slash:comments>7</slash:comments><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;&lt;small&gt;По состоянию на 2009 год&lt;/small&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Эта статья - вольная интерпретация рекомендаций: Microsoft, IBM, HP, Dell, QLogic, LSI, EMC, ACER, Bull, Fujitsu, Hitachi, NEC и Unisys. Некоторые рекомендуемые настройки требуют отдельного, обстоятельного разговора, и потому не включены в эту статью, а найти эти рекомендации можно в моём &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;блоге&lt;/a&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;Материал подготовил &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александр Гладченко&lt;/a&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Обновление установки Windows&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;После установки Windows Server 2008 x64, установите последний сервисный пакет обновлений (Service Pack), обязательно установите выходившие после сервисного пакета исправления безопасности и последние версии драйверов и аппаратных прошивок. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка файла подкачки Windows&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Размер файла подкачки Windows в случае размещения на сервере только SQL Server не играет такой важной роли, как в типовых сценариях. SQL Server старается избегать листания. Размер файла подкачки можно выбрать небольшим, чтобы его было достаточно для формирования мини-дампов. Если сервер также обслуживает приложения, которые нуждаются в файле подкачки, размер его стоит выбирать в полтора раза больше, чем размер физической памяти сервера, но не более 50Гб. В случае монопольного владения ресурсами SQL Server, размещать файл подкачки можно на том же диске, где базируется операционная система. Минимальная активность работы с файлом подкачки не будет создавать конкуренцию другим задачам. В Windows Server 2003 имеется несколько предлагаемых вариантов настройки файла подкачки, он может настраиваться жёстко, может отсутствовать вообще или его размер будет управляться операционной системой. В последнем случае, Windows создаст файл подкачки, размер которого на один Мегабайт будет превышать размер физической памяти сервера. Такой выбор обусловлен тем, что ровно столько места необходимо для создания полного дампа памяти после аварии с выдачей &amp;quot;синего экрана&amp;quot;. Если вас такой дамп не интересует, можно взять управление размером файла подкачки в свои руки. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка размера системных журналов&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Размеры системных журналов стоит выбирать такими, чтобы их открытие для анализа или копирование по сети выполнялось за приемлемое время. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка локальных политик Windows&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Ограничьте размер системных дампов физической памяти размером 64 Гб, большой размер дампа непрактичен с точки зрения отладки. Можно оптимизировать управление памятью и существенно сократить листания с помощью установки локальной политики для пользователя, от имени которого запускается служба SQL Server. Политика называется &amp;quot;&lt;b&gt;Lock pages in memory&lt;/b&gt;&amp;quot;, располагается она в узле &amp;quot;&lt;b&gt;User rights assignment&lt;/b&gt;&amp;quot; локальных политик. Оболочку менеджера политик можно вызвать из командной строки, набрав там gpedit.msc и нажав ввод. &lt;/p&gt;
&lt;p align="justify"&gt;Ещё одной полезной локальной пользовательской политикой является мгновенная инициализация файла данных: &amp;quot;&lt;b&gt;Выполнение задач обслуживания тома&lt;/b&gt;&amp;quot; (&lt;b&gt;Perform Volume Maintenance&lt;/b&gt;). Для файлов журналов эта политика неприменима. Однако, включение этой политики хоть и позволяет сделать процесс создания файла данных, его приращение или восстановление практически мгновенным, оно чревато повышением рисков безопасности, т.к. инициализация не будет сопровождаться перезаписью новых файлов или приращиваемых к ним областей нулями. Т.е. существует риск, что расположенная в этих областях информация будет доступна для чтения и к удаленной ранее информации смогут получить доступ неавторизированные участники. Дополнительную информацию по безопасности этой операции можно найти в главе SQL Server Books Online: &amp;quot;&lt;a href="http://msdn.microsoft.com/ru-ru/library/ms175935.aspx"&gt;Инициализация файлов базы данных&lt;/a&gt;&amp;quot;. Одной из альтернатив этому методу, также очень быстро позволяющей выполнять задачи создания и приращения файлов, является размещение файлов баз данных на &amp;quot;сырых&amp;quot; разделах (RAW). &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка Панели Управления Windows&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Чтобы исключить снижение производительности в режиме энергосбережения, в оснастке &amp;quot;Электропитание&amp;quot; (&lt;b&gt;Power Options&lt;/b&gt;) нужно выбрать режим &amp;quot;Высокая производительность&amp;quot; (&lt;b&gt;High Performance&lt;/b&gt;). Стоит также убедиться, что сервер никогда не будет переключаться в спящий режим. &lt;/p&gt;
&lt;p align="justify"&gt;На закладке &amp;quot;Визуальные эффекты&amp;quot; можно отключить расходование процессорного времени на некритичные для работы сервера эффекты, выбрав режим &amp;quot;Обеспечить наилучшее быстродействие&amp;quot; (&lt;b&gt;Adjust for best performance)&lt;/b&gt;. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка конфигурации системы&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Отключите контроль учётных записей &lt;b&gt;UAC&lt;/b&gt;. Для этого нажмите кнопку &amp;quot;Пуск&amp;quot; (Start), в списке &amp;quot;Программы&amp;quot; (All Programs) перейдите к папке &amp;quot;Администрирование&amp;quot; (Administrative Tools) и запустите утилиту &amp;quot;Конфигурация системы&amp;quot; (System Configuration). Отключить UAC можно на закладке &amp;quot;Сервис&amp;quot; (Tools), выбрав из списка средств задачу: &amp;quot;Отключите контроль учётных записей UAC&amp;quot;. Для применения изменений необходима перезагрузка системы. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка кэширования ввода-вывода&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Для включения кэширования операционной системой операций ввода-вывода логических дисков воспользуйтесь оснасткой Disk Management или Device Manager, перейдя в ней в узел Disk Drives. Для каждого настраиваемого устройства логического диска нужно выбрать Свойства (Properties) и перейти на закладку Policies. Для индивидуальной настройки дисков лучше подходит оснастка Disk Management, там настройки выполняются из свойств дисков, которые вызываются в графической, нижней части окна оснастки. Включение чекбокса &amp;quot;&lt;b&gt;Enable write caching on the disk&lt;/b&gt;&amp;quot; разрешает кэширование записи на диск. После пометки этого чекбокса становится доступен для пометки второй чекбокс: &amp;quot;&lt;b&gt;Enable advanced performance&lt;/b&gt;&amp;quot;. Включение обеих чекбоксов не только разрешает кэширование, но и заставляет операционную систему изымать из запросов ввода-вывода команды прямой записи на диск и сброса дискового кэша. Не рекомендуется включать эти чекбоксы если аппаратные кэши не имеют защиты от потери электропитания. &lt;/p&gt;
&lt;p align="justify"&gt;Если логический диск представлен внешним дисковым массивом, который оснащён аппаратным кэшем с батарейкой, можно не помечать второй чекбокс: &amp;quot;Enable advanced performance&amp;quot;. Однако, пометка этого чекбокса может повысить производительность записи в журнал транзакций. &lt;/p&gt;
&lt;p align="justify"&gt;Для вступления в силу изменений настроек кэша дисков перезагрузки сервера не требуется. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка параметров сетевых плат&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;В окне Local Area Connection Properties мастера Network Connections панели управления Windows можно вызвать окно параметров сетевой платы, если нажать кнопку Configure. В этом окне на закладке Advanced перечислены несколько параметров, некоторые из них могут существенно влиять на производительность обмена данными по сети. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Link Speed and Duplex&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Лучшим решением зачастую является согласованный выбор полнодуплексного режима связи в свойствах сетевой платы и в свойствах порта сетевого коммутатора/концентратора. Это не означает, что выбор автоматической подстройки там и тут будет работать хуже, просто история помнит такие случаи&amp;hellip; &lt;/p&gt;
&lt;p align="justify"&gt;Существует ещё ряд распространённых параметров, настройка которых может помочь поднять производительность сетевого интерфейса (например, Receive Buffers, Coalesce Buffers, Offload features и т.п.). Чтобы выдрать верные значения для подобных параметров, обратитесь к документации производителя сетевой платы. &lt;/p&gt;
&lt;p align="justify"&gt;Для того чтобы исключить возможность отключения сетевого интерфейса в целях оптимизации энергопотребления сервера, стоит на закладке Power Management убрать пометку чекбокса &amp;quot;&lt;b&gt;Allow the computer to turn off this device to save power&lt;/b&gt;&amp;quot;. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Отключение неиспользуемых протоколов&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Для того чтобы убрать незначительную дополнительную нагрузку, создаваемую для обслуживания неиспользуемых сетевых протоколов, предлагается отключить или деинсталлировать такие протоколы. Например, первым кандидатом на отключение является TCP/IPv6, в силу пока ещё своей малой распространённости. Сделать это можно в окне Local Area Connection Properties мастера Network Connections панели управления Windows. &lt;/p&gt;
&lt;p align="justify"&gt;SQL Server также использует по умолчанию несколько протоколов, отключить лишние из них позволяет оснастка SQL Server Configuration Manager, в которой протоколы перечислены в узле &amp;quot;Сетевая конфигурация SQL Server&amp;quot;. &lt;/p&gt;
&lt;p align="justify"&gt;В большинстве случаев и в свойствах сетевого интерфейса и в протоколах SQL Server достаточно ограничится использованием протокола TCP/IPv4. &lt;/p&gt;
&lt;p align="justify"&gt;Если же требуется поддерживать несколько протоколов, стоит задать приоритеты использования протоколов и их провайдеров в окне Advanced Settings мастера Network Connections. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка антивирусного программного обеспечения&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;В тех случаях, когда операционная среда или бизнес - требования вынуждают устанавливать на обслуживающем службы SQL Server сервере антивирусное программное обеспечение, настраивать антивирусное ПО нужно так, чтобы обновление вирусных сигнатур и сканирование системы происходило во время низкой активности SQL Server. &lt;/p&gt;
&lt;p align="justify"&gt;Необходимо настроить исключение сканирования файлов баз данных, журналов транзакций и резервных копий, которые типично имеют разрешения: mdf, ldf, ndf, bak и trn. Это позволит предотвратить повреждение этих файлов при попытке со стороны SQL Server их открытия, когда они уже открыты для проверки антивирусным ПО. Кроме того, необходимо принять меры для защиты каталогов полнотекстового поиска и содержащих данные Analysis Services от повреждений, связанных с активностью антивирусного программного обеспечения. Исключите также папку журналов SQL Server (MSSQL\Log), журнал ошибок открыт постоянно и в него может выводиться много событий. Если антивирусное ПО планируется использовать совместно с SQL Server работающем в кластере, нужно исключить сканирование кворум - диска и каталога: &amp;quot;c:\Windows\Cluster&amp;quot;. Для получения более подробной информации о требованиях к настройкам антивирусного ПО обратитесь к статье базы знаний Майкрософт: &lt;a href="http://support.microsoft.com/default.aspx/kb/309422"&gt;Guidelines for choosing antivirus software to run on the computers that are running SQL Server&lt;/a&gt;. &lt;/p&gt;
&lt;p align="justify"&gt;Во избежание вмешательства в работу служб SQL Server и для предотвращения увеличения времени их запуска из-за сканирования антивирусным ПО, рекомендуется исключить из проверки службы SQL Server. Наиболее распространенными в использовании являются службы: sqlservr.exe, sqlagent.exe, sqlbrowser.exe и sqlwriter.exe &lt;/p&gt;
&lt;p align="justify"&gt;Дополнительные рекомендации: &lt;a href="http://support.microsoft.com/kb/822158"&gt;Рекомендации по использованию антивирусных программ для компьютеров под управлением Windows Server 2003, Windows 2000 и Windows XP&lt;/a&gt;. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Управление памятью в SQL Server&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;SQL Server, при необходимости, старается заполучить всю доступную ему оперативную память компьютера. Если установлено несколько экземпляров SQL Server, вероятна конкуренция за ресурсы памяти между менеджерами динамической памяти каждого экземпляра. До появления в SQL Server 2008 средств регулировки ресурсов, единственной возможностью снижения конкуренции за память между разными экземплярами была установка в глобальной конфигурации экземпляра SQL Server ограничений для максимального и минимального объемов используемой физической памяти. Кроме того, хорошей практикой считается оставлять не менее 10% оперативной памяти для нужд операционной системы. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка параметров глобальной конфигурации SQL Server&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;affinity I/O mask&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Этот параметр глобальной конфигурации позволяет изолировать обслуживание ввода-вывода данного экземпляра SQL Server одним или несколькими ядрами процессоров. Привязка ввода-вывода позволяет закрепить за вводом-выводом фиксированное число планировщиков. По умолчанию и в большинстве случаев маску привязки процессоров к вводу-выводу устанавливают в ноль, разрешая SQLOS самой управлять подобной привязкой. Чаще всего это позволяет получить максимальную производительность, однако, для некоторых типов рабочей нагрузки (которым характерны высокие нормы ввода-вывода), производительность может быть выше, если жёстко привязать ввод-вывод к одному или более ядру. Например, можно выделить одно ядро для ввода-вывода, как это показано ниже, в примере сценария для 16-ти ядерного сервера: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;exec sp_configure &amp;#39;affinity mask&amp;#39;,0xFFFE&lt;br /&gt;exec sp_configure &amp;#39;affinity I/O mask&amp;#39;,0x0001 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Не обязательно для ввода-вывода выделять самое первое по порядку ядро. Это может быть ядро из того NUMA-узла, в домене близости которого находится адаптер ввода-вывода. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;network packet size&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Следующим параметром глобальной конфигурации, изменение которого может в некоторых случаях способствовать повышению производительности приложений баз данных, является &amp;quot;network packet size (B)&amp;quot;. Увеличение размера сетевого пакета до 8192 Байт может позволить добиться выигрыша за счёт лучшего выравнивания размера пакета с размером страницы SQL Server, которая равна 8 КБ. Однако, следует учитывать, что значение этого параметра по умолчанию (4096Б), является лучшим для большинства приложений. Только тестирование позволит выбрать для этого параметра оптимальную установку. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Настройка ключей системного реестра Windows&lt;/h1&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;&lt;small&gt;&lt;b&gt;Важно!&lt;/b&gt; Эта глава содержит сведения об изменении реестра. Перед изменением реестра необходимо создать его резервную копию. Убедитесь в том, что знаете, как восстановить реестр в случае возникновения проблемы. Дополнительные сведения о создании резервной копии, восстановлении и изменении реестра см. в следующей статье базы знаний Майкрософт: &lt;a href="http://support.microsoft.com/kb/256986/ru"&gt;Сведения о реестре Windows для опытных пользователей&lt;/a&gt;.&lt;/small&gt; &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;UseLargePages&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Включение поддержки больших страниц может оказаться полезным для тех систем с SQL Server x64, которые оснащение большим объёмом оперативной памяти. Большие страницы способствуют повышению производительности за счёт увеличения TLB буфера процессора. Большие страницы могут использоваться для буферного пула и для кодовых страниц SQL Server. Для включения больших страниц на уровне SQL Server нужно задать флаг трассировки &lt;b&gt;-T834&lt;/b&gt; (это можно сделать через стартовые параметры). Кроме того, следует добавить ключ системного реестра. Содержимое reg-файла для добавления показано ниже: &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sqlservr.exe]&lt;br /&gt;&amp;quot;UseLargePages&amp;quot;=dword:00000001 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Для вступления изменений в силу потребуется перезагрузка системы. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;LargeSystemCache/Size и IdleFrom0Delay&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Установив значение &lt;a href="http://technet.microsoft.com/en-us/library/cc784562(WS.10).aspx"&gt;LargeSystemCache&lt;/a&gt; в 0, тем самым устанавливается стандартный размер кэша файловой системы, который равен приблизительно 8 Мб, максимальный размер кэша файловой системы не будет превышать 512 Мб. Эта установка рекомендуется для таких программ, которые осуществляют кэширование памяти самостоятельно, и к таким программам относится SQL Server. Ниже показан reg-файла для задания такой установки: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]&lt;br /&gt;&amp;quot;LargeSystemCache&amp;quot;=dword:00000000 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;То, насколько агрессивно будет заниматься физическая память под задачи файлового кэша, зависит от установки следующего ключа реестра: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]&lt;br /&gt;&amp;quot;Size&amp;quot;=dword:00000001&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Возможные значения: 1-вяло, 2-сбалансировано, 3-агресивно. Для установок с малой нагрузкой на файловый кэш, вполне достаточно 1.. Другие установки свойственны файловым серверам разного масштаба, впрочем, для тестов TPC-E часто выбирают 3. &lt;/p&gt;
&lt;p align="justify"&gt;Отключить режим экономии энергии, который тоже может замедлять некоторые операции, можно с помощью ключа &lt;a href="http://support.microsoft.com/kb/912206"&gt;IdleFrom0Delay&lt;/a&gt;. Сделать это можно так: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]&lt;br /&gt;&amp;quot;IdleFrom0Delay&amp;quot;=dword:00000000&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;IoPageLockLimit, DisablePagingExecutive и DontVerifyRandomDrivers&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;В одном из документов по оптимизации мне попадалась следующая формула: &amp;quot;IoPageLockLimit = (RAMMb - 65) * 1024&amp;quot;. С помощью ключа &lt;a href="http://technet.microsoft.com/en-us/library/cc959494.aspx"&gt;IoPageLockLimit&lt;/a&gt; можно повлиять на то, сколько байт система будет читать или писать на логичекский диск за один раз. &lt;/p&gt;
&lt;p align="justify"&gt;Когда оперативной памяти предостаточно, с помощью установки &lt;a href="http://technet.microsoft.com/en-us/library/cc959492.aspx"&gt;DisablePagingExecutive&lt;/a&gt; можно не позволять SQL Server вытеснять в файл подкачки компоненты драйверов привилегированного и непривилегированного режимов, как и компоненты самого ядра ОС. Установка &lt;a href="http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Perf-tun-srv.docx"&gt;DontVerifyRandomDrivers&lt;/a&gt; в единицу позволяет сэкономить несколько процессорных циклов за счёт отключения отладочной проверки драйверов. &lt;/p&gt;
&lt;p align="justify"&gt;Вот как могут выглядеть значения этих ключей на практике: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]&lt;br /&gt;&amp;quot;DisablePagingExecutive&amp;quot;=dword:00000001&lt;br /&gt;&amp;quot;DontVerifyRandomDrivers&amp;quot;=dword:00000001&lt;br /&gt;&amp;quot;IoPageLockLimit&amp;quot;=dword:00d9bc00 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;CountOperations&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Параметр &lt;a href="http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Perf-tun-srv.docx"&gt;CountOperations&lt;/a&gt; позволяет отключить сбор данных по некоторым счётчикам производительности, которые относятся к запросам ввода-вывода дисковой подсистемы и сетевых интерфейсов. Чтобы это сделать, нужно в ключе системного реестра &amp;quot;I/O System&amp;quot; установить значение 0 для следующего параметра: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System]&lt;br /&gt;&amp;quot;CountOperations&amp;quot;=dword:00000000 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Требуется перезагрузка. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;NumberOfRequests и MaximumSGList&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Эта пара ключей системного реестра предназначена для управления драйвером минипорта в момент инициализации последнего. &lt;/p&gt;
&lt;p align="justify"&gt;Увеличивая значение &lt;a href="http://support.microsoft.com/kb/240314"&gt;NumberOfRequests&lt;/a&gt; может способствовать повышению производительности обслуживания в Windows запросов дискового ввода-вывода, адресованных логическим дискам, и бывает эффективно только если эти логические диски являются аппаратными RAID-массивами, которые обладают возможностью распараллеливания запросов ввода-вывода. Рекомендованное значение можно найти в документации производителя FC-адаптера или RAID-контроллера. Увеличивать значение нужно осторожно, т.к. большое значение может привести даже к отказу системы. Например, для HBA адаптера QLogic, управляемого драйвером &amp;quot;QLogic Fibre Channel Miniport Driver&amp;quot;, в документации не рекомендуется превышать значение 150. Новое значение вступает в силу после перезагрузки системы или, в некоторых случаях, достаточно перезапустить адаптер (заблокировать/разблокировать). &lt;/p&gt;
&lt;p align="justify"&gt;Ключ &lt;a href="http://support.microsoft.com/kb/280793"&gt;MaximumSGList&lt;/a&gt; позволяет изменять используемый по умолчанию размер пакета передачи данных по шине (64Кб), который актуален для команд интерфейса SCSI. Если установить значение 255, то размер передаваемого одной командой объёма данных будет равняться мегабайту. Современные адаптеры умеют объединять до 265 сегментов данных, каждый по 4096 байт, что в сумме может дать размер одной передачи до 1048576 байт. Этот параметр широко используется для повышения эффективности использования ленточных накопителей, а также для оптимизаций таких задач SQL Server, которые оперируют большими запросами ввода-вывода, например, резервное копирование и восстановление. &lt;/p&gt;
&lt;p align="justify"&gt;В описаниях тесов TPC-C встречается установка обоих ключей в значение 255, как это показано в примере ниже: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ql2300\Parameters\Device]&lt;br /&gt;&amp;quot;DriverParameter&amp;quot;=&amp;quot;&amp;quot;&lt;br /&gt;&amp;quot;BusType&amp;quot;=dword:00000006&lt;br /&gt;&amp;quot;NumberOfRequests&amp;quot;=dword:000000ff&lt;br /&gt;&amp;quot;MaximumSGList&amp;quot;=dword:000000ff&lt;br /&gt;&amp;quot;CreateInitiatorLU&amp;quot;=dword:00000001&lt;br /&gt;&amp;quot;DriverParameters&amp;quot;=&amp;quot;UseSameNN=1;buschange=0&amp;quot;&lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;IdlePrioritySupported &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Windows Server 2008 умеет учитывать приоритет запроса ввода-вывода и использует его для обслуживания фоновых задач. Однако, если система обслуживает только одно приложение, подобное SQL Server, и это приложение само заботится о приоритетах запросов ввода-вывода, отвлечение системных ресурсов на приоритезацию становится излишним. Отучить Windows от обслуживания приоритетов запросов можно внеся изменения в системный реестр для каждого из выбранных дисков, как это показано на примере использования ключа &lt;a href="http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/Perf-tun-srv-R2.docx"&gt;IdlePrioritySupported&lt;/a&gt;: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI\Disk&amp;amp;Ven_IBM&amp;amp;Prod_1726-4xx__FAStT\5&amp;amp;22c73432&amp;amp;0&amp;amp;000000\Device Parameters\Classpnp]&lt;br /&gt;&amp;quot;IdlePrioritySupported&amp;quot;=dword:00000000 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Ключ Classpnp скорее всего придётся добавить. Подобные тонкие настройки были мной замечены у IBM в тестах TPC-E. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;TCPWindowSize&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="justify"&gt;В Windows 2008 этот ключ больше не используется. В более ранних версиях увеличение размера окна может повысить эффективность сетевого трафика. Рекомендуемое значение (64240) для ключа &lt;a href="http://technet.microsoft.com/en-us/library/cc757802(WS.10).aspx"&gt;TCPWindowSize&lt;/a&gt; представлено ниже: &lt;/p&gt;
&lt;ul&gt;
&lt;p align="justify"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]&lt;br /&gt;&amp;quot;TCPWindowSize&amp;quot;=dword:0000faf0 &lt;/p&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;Подробности можно узнать в статье Базы Знаний Майкрософт: &lt;a href="http://support.microsoft.com/?kbid=224829"&gt;Description of Windows 2000 and Windows Server 2003 TCP Features&lt;/a&gt;. &lt;/p&gt;
&lt;p align="justify"&gt;Если размер окна в 64240 Байт тоже ограничивает производительность сети, существует возможность увеличения размера окна до одного Гигабайта. Ключ реестра &lt;a href="http://technet.microsoft.com/en-us/library/cc938205.aspx"&gt;TCP1323Opts&lt;/a&gt; разрешает динамическое мастабирование окна. Рекомендуемым значением для этого ключа является: 0x3. &lt;/p&gt;
&lt;p align="justify"&gt;Для дальнейшей оптимизации производительности сетевых интерфейсов попробуйте использовать следующие ключи системного реестра Windows, описание которых легко найти в Базе Знаний Майкрософт: &lt;a href="http://technet.microsoft.com/en-us/library/cc758896(WS.10).aspx"&gt;TCPMaxConnectRetransmissions&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc780586(WS.10).aspx"&gt;TCPMaxDataRetransmissions&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc757512(WS.10).aspx"&gt;TCPTimedWaitDelay&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc758002(WS.10).aspx"&gt;MaxUserPort&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc938176.aspx"&gt;MaxHashTableSize&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc738256(WS.10).aspx"&gt;NumTcbTablePartitions&lt;/a&gt;, &lt;a href="http://support.microsoft.com/kb/815230"&gt;TcpAckFrequency&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/library/cc938197.aspx"&gt;MTU&lt;/a&gt; и &lt;a href="http://technet.microsoft.com/en-us/library/cc957539.aspx"&gt;EnablePMTUDiscovery&lt;/a&gt;. &lt;/p&gt;
&lt;p align="justify"&gt;
&lt;h1&gt;Рекомендуемые к отключению службы&lt;/h1&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;Application Management Alerter, Clipbook, Computer Browser, Distributed file system, Distributed link tracking client, Error Reporting Service, Fax Service, File Replication, Help and Support HTTP SSL, License Logging, Messenger, Portable Media Serial Number Service, Shell Hardware Detection, Windows Audio, Wireless Configuration. &lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716656" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>MSMQ 3.0 в Кластере</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/06/25/1696691.aspx</link><pubDate>Thu, 25 Jun 2009 09:14:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1696691</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;p align="justify"&gt;Здесь будет идти речь о кластере Windows Server 2003 Enterprise Edition и о запуске в кластере службы &lt;a href="http://technet.microsoft.com/ru-ru/library/cc757108(WS.10).aspx"&gt;MSMQ&lt;/a&gt;. MSMQ, как кластерный ресурс, зависит от двух кластерных ресурсов: сетевого имени и физического диска. Зависимость от сетевого имени позволяет идентифицировать кластерную группу по IP адресу, и позволяет клиентам обращаться к группе как к виртуальному серверу. Физический диск нужен для хранилища сообщений и очередей. &lt;/p&gt;
&lt;p align="justify"&gt;Без кластера, клиенты из сети должны подключаться к серверу по имени или IP адресу, подключаясь к приложению или службе. Служба кластера позволяет создать виртуальные сервера. В дополнение к клиентам MSMQ, работающим со стандартным, не кластерным сервером MSMQ, который обслуживается на узле кластера, написанное для работы в составе кластера приложение MSMQ может связаться с сервером MSMQ, который работает в контексте виртуального сервера. Виртуальный сервер MSMQ, это кластерная группа, состоящая из кластерного ресурса MSMQ и его зависимых ресурсов, о которых уже упоминалось выше. Виртуальный сервер MSMQ не привязан с определенному компьютеру, и в случае отказа он будет перемещён на другой узел, который станет обслуживать клиентов. Очереди создаются на виртуальном сервере, и сообщения можно посылать в очереди виртуального сервера, используя обычный синтаксис VirtualServerName\QueueName. &lt;/p&gt;
&lt;p align="justify"&gt;При создании и настройке MSMQ в кластере, нужно установить MSMQ 3.0 на каждом узле. Кластер должен быть создан до установки MSMQ 3.0 на любом из узлов кластера. MSMQ должен быть установлен до создания кластерного ресурса MSMQ, и набор компонент на каждом узле должен быть одним и тем же. &lt;/p&gt;
&lt;p align="justify"&gt;После установки MSMQ 3.0 на всех узлах кластера можно приступать к созданию кластерного ресурса MSMQ. Можно создавать несколько ресурсов MSMQ, но работа таких ресурсов выходит за рамки поддержки Майкрософт. Поэтому, желательно создавать только один ресурс MSMQ и потом его не переименовывать. После выбора ресурса физического диска в группу MSMQ (он должен быть доступен всем узлам кластера), на этом диске будет создано хранилище очередей, которое желательно создать в папке \msmq\storage. После создания хранилища, местоположение папки хранилища изменять не следует. &lt;/p&gt;
&lt;p align="justify"&gt;В кластерной конфигурации запуск службы MSMQ установлен ручным, т.е. после перезапуска компьютера служба MSMQ не запустится автоматически. Однако ресурсы MSMQ станут активными автоматически. &lt;/p&gt;
&lt;p align="justify"&gt;Если в процессе установки ресурса MSMQ возникнут проблемы, обратитесь к файлу журнала кластера, который обычно расположен по этой ссылке: %systemroot%\Cluster\cluster.log. &lt;/p&gt;
&lt;p align="justify"&gt;Для создания и настройки кластерного ресурса и группы MSMQ в качестве виртуального сервера выполните следующие действия: &lt;ol&gt;
&lt;p align="justify"&gt;
&lt;li&gt;Нажмите Пуск (Start), выберете пункт Программы (All Programs), пункт Администрирование (Administrative Tools), и затем запустите программу Cluster Administrator.&lt;/li&gt;
&lt;li&gt;В пункте Open Connection to Cluster нужно выбрать соответствующее имя кластера. &lt;/li&gt;
&lt;li&gt;В дереве кластерных групп нужно выбрать ту кластерную группу, которой должен принадлежать ресурс MSMQ. &lt;/li&gt;
&lt;li&gt;После выбора группы, в пункте меню File нужно выбрать New, а затем щелкнуть Resource. &lt;/li&gt;
&lt;li&gt;В мастере New Resource Wizard заполните поля Name и Description, и выберете Message Queuing в списке Resource type. Потом нажмите Next. &lt;/li&gt;
&lt;li&gt;В поле Group укажите ту группу, которой Вы хотите, чтобы принадлежал ресурс MSMQ. &lt;/li&gt;
&lt;li&gt;На закладке возможных владельцев, добавьте те узлы, которые смогут обслуживать ресурс MSMQ. &lt;/li&gt;
&lt;li&gt;На странице зависимостей (Dependencies в Available resources) добавьте ресурс сетевого имени и физического диска. &lt;/li&gt;
&lt;li&gt;Нажмите Finish. &lt;/li&gt;
&lt;li&gt;В дереве кластерных групп нужно выбрать Resources, а затем в окне подробностей выделить ресурс MSMQ. &lt;/li&gt;
&lt;li&gt;В меню File, выберите Bring Online. &lt;/li&gt;
&lt;li&gt;В дереве кластерных групп нужно выбрать ту кластерную группу, которой должен принадлежит ресурс MSMQ. Нажать New, а затем щелкнуть Resource, чтобы запустился мастера создания нового ресурса. &lt;/li&gt;
&lt;li&gt;В текстовом поле Resource Name введите название: &amp;quot;Computer Management&amp;quot;. &lt;/li&gt;
&lt;li&gt;В списке Resource Type, выберите Generic Application, и затем нажмите Next. &lt;/li&gt;
&lt;li&gt;В поле Group укажите ту группу, которой принадлежит ресурс MSMQ. &lt;/li&gt;
&lt;li&gt;На закладке Possible Owners, выберите возможных владельцев и нажмите Next. &lt;/li&gt;
&lt;li&gt;На странице зависимостей добавьте ресурс сетевого имени и ресурс MSMQ, который Вы перед этим создавали. Нажмите Next. &lt;/li&gt;
&lt;li&gt;В командной строке введите: mmc compmgmt.msc &lt;/li&gt;
&lt;li&gt;В Current Directory введите: %windir%\system32 &lt;/li&gt;
&lt;li&gt;Нужно выбрать Use Network Name для имени компьютера, и Allow application to interact with desktop. Нажмите Next, а затем Finish. &lt;/li&gt;
&lt;li&gt;В дереве кластерных групп нужно выбрать Resources, а затем в окне подробностей выделить ресурс Computer Management, который Вы только что создали. &lt;/li&gt;
&lt;li&gt;В меню File, выберите Bring Online.&lt;/li&gt;
&lt;/p&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;Для управление виртуальным сервером, Вы должны подключиться к нулевой сессии, т.е. Console Session (Для подключения через RDP к Session 0 нужно запустить следующую команду: %systemroot%\system32\mstsc.exe /Admin). Также для управления очередями MSMQ в кластерной среде можно использовать утилиту MMCV.exe. Для получения более подробной информации об этой утилите ознакомьтесь со статьёй &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;898701"&gt;How to use the Mmcv.exe utility to manage clustered Message Queuing resources&lt;/a&gt;. Однако, мне чаще всего хватало тривиальной оснастки mmc, правда для подключения именно к виртуальной очереди MSMQ следует явно подключиться в Computer Management к виртуальному имени, от которого зависит кластерный ресурс MSMQ. После настройки MSMQ для работе в качестве виртуальной службы кластера, не забывайте дать необходимые права на саму виртуальную службу тем учётным записям пользователей, которые будут создавать очереди, а также раздать права к тем очередям, которые будут вами созданы. &lt;/p&gt;
&lt;p align="justify"&gt;Если установка и настройка MSMQ в кластере выполнена правильно, на каждом из узлов кластера должна появиться вторая, дополнительная служба MSMQ. Службы MSMQ локальные для каждого узла не обязательно должны быть запущены. Если Вы не планируете их использование в своих приложениях, можно отменить их автоматический запуск. Для виртуальной службы MSMQ достаточно того, что необходимые компоненты были установлены на каждом из узлов кластера. &lt;/p&gt;
&lt;p align="justify"&gt;Если необходимо, чтобы в случае административного или из-за отказа перемещения ресурсов MSMQ на другой узел, содержимое очереди не очищалось, создавайте очередь транзакционной и обрамляйте отправку сообщений транзакциями (в терминах Windows, а не MSSQL). &lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;Полезные ссылки:&lt;/b&gt; 
&lt;ul&gt;
&lt;p align="justify"&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/cc776600.aspx"&gt;Очередь сообщений в кластерах серверов&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/cc739189(WS.10).aspx"&gt;Очередь сообщений: инструкции&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/cc783112(WS.10).aspx"&gt;Администрирование очереди сообщений&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/downloads/details.aspx?familyid=349D6584-9510-46F5-904E-2C58FA16EB85&amp;amp;displaylang=en"&gt;Deploying Message Queuing (MSMQ) 3.0 in a Server Cluster&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/johnbreakwell/default.aspx"&gt;MSMQ from the plumber&amp;#39;s mate&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.microsoft.com/download/F/C/9/FC9989A2-DA75-4D96-B654-4BD29CF6AEE1/MSMQ_faq_updated.doc"&gt;MSMQ FAQ document&lt;/a&gt; &lt;/li&gt;
&lt;/p&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1696691" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/MSMQ/default.aspx">MSMQ</category><category domain="http://msmvps.com/blogs/gladchenko/archive/tags/Cluster/default.aspx">Cluster</category></item><item><title>SQL Server: Методика тестирования дисковой подсистемы</title><link>http://msmvps.com/blogs/gladchenko/archive/2009/06/09/1694801.aspx</link><pubDate>Tue, 09 Jun 2009 18:25:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1694801</guid><dc:creator>gladchenko</dc:creator><slash:comments>1</slash:comments><description>&lt;div align="justify"&gt;
&lt;p&gt;(на примере полки с 14 одинаковыми дисками)&lt;/p&gt;
&lt;h2&gt;Введение&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В качестве утилиты для эталонного тестирования дисковой подсистемы используется разработанная Майкрософт программа SQLIO, подробное описание которой представлено в статье &lt;a href="http://www.sql.ru/subscribe/2005/273.shtml#20"&gt;Эталонный тест дисковой подсистемы SQLIO&lt;/a&gt;.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В методике используется ограниченный набор параметров вызова SQLIO. Давайте рассмотрим назначение параметров на примере:&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;sqlio -kR -s300 -b64 -f1 -i2000000 -o1 -t1 -R1 -LP -a0xf &amp;ndash;BN&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Параметр -k определяет, будет ли производиться чтение (R) или запись (W). Параметр -s задаёт продолжительность теста, указываемую в секундах. Параметр -b задаёт размер блока ввода-вывода в килобайтах.&amp;nbsp; Параметр -f определяет число блоков в строке. Параметр &amp;ndash;i определяет число строк. С помощью параметров -b, -f и -i &lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img height="109" width="363" src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/3162.AGmetod01.gif" border="0" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.1.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Параметр -o указывает количество отправляемых в одном потоке запросов ввода-вывода, т.е. глубину очереди. Практика показывает, что программа SQLIO при глубине очереди 64 и выше может вести себя нестабильно, поэтому число 64 не превышалось. Параметр -t задаёт число используемых в тесте потоков, максимальное значение 256. В настоящей методике этот параметр не превышает числа ядер процессоров. Параметр -R задаёт номера LUN сырых (RAW) разделов дисков. Параметр &amp;ndash;L задаёт таймер теста, в методике используется таймер процессоров. Параметр -a задаёт маску используемых в тесте процессоров. Параметр &amp;ndash;B используется для отключения аппаратного и программного кэширования (кэш дисков и дисковых контроллеров будет отключён, если ими такая возможность поддерживается).&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В отчёте по каждому из единичных тестов, выполненных утилитой SQLIO, кроме численных параметров рабочей нагрузки данного теста указаны и вычисленные показатели производительности. Кроме метрик задержки, можно увидеть две величины: IOs/sec и MBs/sec. Первая является ни чем иным, как IOPS (Input-Output Operations Per Second), и показывает количество операций ввода-вывода в секунду, которые было обработано тестируемой дисковой подсистемой. Эта величина лучше всего характеризует производительность обслуживания коротких запросов, характерных для OLTP-нагрузки (8KB). Если приложение, для которого тестируется дисковая подсистема, использует в своей работе преимущественно такую нагрузку, может оказаться, что сравнения полученных в разных конфигурациях результатов стоит делать по этой метрике. Один диск на сегодняшний день может обслуживать от 50 IOs/sec для SATA и до 200 IOs/sec для FC дисков. &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Второй метрикой является производительность передачи данных, так называемый Traffic Throughput. Это основная метрика настоящей методики, поскольку большинству приложений баз данных характерны укрупнённые запросы (например, упреждающее чтение способно использовать запросы ввода-вывода в 64 и 128 КБ).&lt;/p&gt;
&lt;h2&gt;Этап №0. Подготовка&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Инсталляцию дисковой подсистемы нужно выполнять таким образом, чтобы было обеспечено сбалансированное и равномерное распределение дисков между контроллерами и по физическим шинам. Важно, чтобы на обслуживающей дисковый контроллер шине не было других, более медленных устройств, иначе, это может привести к снижению скорости обмена по шине для выравнивания с более медленным устройством. Дисковые контроллеры должны регистрироваться системой после встроенных контроллеров, которые обслуживают диск или диски операционной системы (иметь большие номера). В наших тестах, которые описаны в настоящей статье, это контроллер с номером 0, который обслуживает диск, пронумерованный операционной системой, как нулевой. После любых изменений конфигурации дисковой подсистемы нужно выполнять сохранение конфигурации в фал, который потом попадёт в отчёты. Важен, также, учет особенностей нумерации дисков в ОС.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Во время конфигурации виртуальных дисков/массивов, нужно отключать всякого рода кэширование (сквозная запись, отсутствие упреждающего чтения) и включать оптимизацию для баз данных, если таковая предусмотрена. Все созданные виртуальные диски должны быть зарегистрированы в mmc оснастке управления дисками.&lt;/p&gt;
&lt;h2&gt;Этап №1. Калибровка дисков&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Задача: На этом этапе мы должны убедиться, что используемые диски работоспособны, определить разброс скоростей чтения и записи по дискам, чтобы потом учитывать возможности каждого диска при распределении дисков в массивах.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Возникает резонный вопрос, почему бы не воспользоваться стандартными в таких случаях стресс - тестами, которые, как правило, предоставляются вендором. Объяснение простое. Чаще всего мне доводилось работать с серверами удалённо, а в таких условиях не всегда удаётся добиться оперативной реакции обслуживающего аппаратную часть персонала. В таких случаях проще сделать быстрый тест на &amp;quot;вшивость&amp;quot;. К тому же, не всегда тесты охватывают сразу все уровни системы, они могут ограничится только дисками или тестировать контроллер вместе с дисками. Существуют также специализированные тесты, которые позволяют тестировать систему в целом и определять её пригодность к использованию для того - либо иного приложения. У Майкрософт, к слову, есть подобный стресс - тест, который позволяет протестировать дисковую систему и сервер. Называется эта утилита: &lt;a href="http://support.microsoft.com/kb/231619"&gt;SQLIOSim&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Поскольку диски с повреждениями или существенными отклонениями от средней производительности, скорее всего, ведут себя одинаково плохо под разными типами рабочей нагрузки, а также потому, что дальнейшее тестирование также может выявить проблемные диски, мы ограничимся одним, грубым тестом. Для проведения этого калибровочного теста необходимы следующие подготовительные действия:&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0cm;"&gt;
&lt;li style="TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;С помощью поставляемых с дисковым контроллером специализированных утилит, конфигурируем все диски полки как 14 массивов RAID0, каждый из которых должен состоять из одного диска, размер каждого массива выбирается равным всему доступному размеру диска, размер блока низкоуровневой разметки (размер сегмента) выбираем равным 64Кб, политики кэширования должны исключать кэширование чтения и записи. В некоторых контроллерах дисковых массивов выбор размера сегмента может быть ограничен несколькими предопределёнными значениями. Можно встретить рекомендованные для типовых конфигураций значения, например, для баз данных предлагают установить размер блока в 128Кб, а для хранения видеофильмов задать 256Кб. В этих случаях резонно выбрать рекомендованные вендором значения. &lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;С помощью оснастки управления дисками, входящей в состав mmc-консоли управления компьютером, и системной утилиты DISKPART необходимо создать для каждого физического диска полки RAW-раздел (без форматирования NTFS) величиной на весь диск, и без присвоения буквы диска (буквы присваивать можно, но это не обязательно, к тому же, букв в алфавите может оказаться меньше числа дисков). Большие диски (более двух Терабайт) может потребоваться предварительно перевести в состояние Online, и конвертировать в GPT (GUID Partition Table). Для выравнивания начального смещения за счёт MBR используйте следующие команды DISKPART: &lt;/li&gt;
&lt;/ol&gt;
&lt;p style="MARGIN:0cm 0cm 0pt 36pt;"&gt;SELECT DISK=1&lt;br /&gt;CREATE PARTITION PRIMARY ALIGN=128&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В этом примере выбран диск 1 и смещение установлено в 128Кб. Выбор смещения зависит от размера сегмента.&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0cm;"&gt;
&lt;li style="TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;Установить программу SQLIO. Везде по тексту настоящей статьи местоположение программы sqlio.exe выбрано следующее: C:\SQLIO\ sqlio.exe &lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;Подготовьте командный файл, который будет запускать программу sqlio.exe в разных режимах для каждого диска и сохранять результаты в файлы. Пример командного файла можно найти в Приложении 1. &lt;/li&gt;
&lt;li style="TEXT-ALIGN:justify;mso-list:l0 level1 lfo1;"&gt;Запустите командный файл на исполнении, а потом сведите собранные в файлы результаты в общую таблицу, для дальнейшего сравнения и анализа. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Пример аппаратной конфигурации дисков представлен в Таблице 1.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Таблица 1. Конфигурация дисковых массивов для калибровки дисков.&lt;/b&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" style="MARGIN-LEFT:4.65pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;"&gt;
&lt;tbody&gt;
&lt;tr style="height:51.75pt;mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="53" style="padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:51.75pt;mso-border-alt:solid windowtext 1.0pt;mso-border-right-alt:solid windowtext .5pt;border:windowtext 1pt solid;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Номер диска&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Тип массива&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Размер&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Имя устройства&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Политика чтения&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Политика записи&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Политика кэша&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:51.75pt;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding-top:0cm;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Размер блока полосы&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:1;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:2;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:1&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 1&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:3;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:5&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 2&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:4;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:9&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 3&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:5;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:10&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 4&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:6;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:11&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 5&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:7;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:12&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 6&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:8;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:13&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 7&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:9;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:14&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 8&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:10;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;0:15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 9&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:11;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:2&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 10&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:12;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:3&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 11&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:25.5pt;mso-yfti-irow:13;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:4&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Windows Disk 12&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:25.5pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .5pt;"&gt;
&lt;p&gt;64 KB&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:26.25pt;mso-yfti-irow:14;mso-yfti-lastrow:yes;"&gt;
&lt;td width="53" valign="top" style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;padding-left:5.4pt;width:39.85pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;mso-border-left-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;1:8&lt;/p&gt;
&lt;/td&gt;
&lt;td width="60" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:44.95pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;RAID-0&lt;/p&gt;
&lt;/td&gt;
&lt;td width="67" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:49.9pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;136.62GB&lt;/p&gt;
&lt;/td&gt;
&lt;td width="133" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:99.85pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;Windows Disk 13&lt;/p&gt;
&lt;/td&gt;
&lt;td width="94" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:70.65pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;без упреждения&lt;/p&gt;
&lt;/td&gt;
&lt;td width="71" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:52.9pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;прямая запись&lt;/p&gt;
&lt;/td&gt;
&lt;td width="65" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:48.95pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;mso-border-right-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext 1.0pt;"&gt;
&lt;p&gt;Direct I/O&lt;/p&gt;
&lt;/td&gt;
&lt;td width="56" valign="top" style="border-bottom:windowtext 1pt solid;border-left:medium none;padding-left:5.4pt;width:41.95pt;padding-right:5.4pt;height:26.25pt;border-top:medium none;border-right:windowtext 1pt solid;padding-top:0cm;"&gt;
&lt;p&gt;64 KB &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;На Рисунке&amp;nbsp;2 показано, как должны выглядеть 14 дисков, подготовленные к тестированию.&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/0435.AGmetod02.gif" alt="" /&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.2.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Ниже представлен сокращённый пример командного файла для запуска калибровочного теста. В этом файле каждый вызов программы sqlio.exe имеет одинаковые аргументы, кроме аргумента R, который изменяется от 1 до 14. Каждый диск тестируется на чтение и, после 30 секундной паузы, на запись (аргумент k). Время тестирования каждого диска 300 секунд (аргумент s), размер блока 64Кб (аргумент b), Число блоков в строке равно единице (аргумент f), число строк равно 2000000 (аргумент i), число очередей тоже равно единице (аргумент o), число потоков равно единице (аргумент t). Суммарный размер файла рабочей нагрузки на каждом диске составляет 128Гб, что почти совпадает с размером диска.&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT:0px;"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s300 -b64 -f1 -i2000000 -o1 -t1 -R1 -LP -a0xf -BN &amp;gt; R01-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;&lt;a href="http://technet.microsoft.com/ru-ru/library/cc754891(WS.10).aspx"&gt;timeout&lt;/a&gt; /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s300 -b64 -f1 -i2000000 -o1 -t1 -R1 -LP -a0xf -BN &amp;gt; W01-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s300 -b64 -f1 -i2000000 -o1 -t1 -R2 -LP -a0xf -BN &amp;gt; R02-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s300 -b64 -f1 -i2000000 -o1 -t1 -R2 -LP -a0xf -BN &amp;gt; W02-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;&amp;hellip;&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s300 -b64 -f1 -i2000000 -o1 -t1 -R13 -LP -a0xf -BN &amp;gt; R13-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s300 -b64 -f1 -i2000000 -o1 -t1 -R13 -LP -a0xf -BN &amp;gt; W13-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s300 -b64 -f1 -i2000000 -o1 -t1 -R14 -LP -a0xf -BN &amp;gt; R14-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s300 -b64 -f1 -i2000000 -o1 -t1 -R14 -LP -a0xf -BN &amp;gt; W14-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Ниже представлен пример отчёта о тесте операций записи для первого диска:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT:0px;"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio v1.5.SG&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;calibrating timestamp counter for latency timings... done (MHz measured at 2359)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;1 thread reading for 300 secs from file 1:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&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;&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;/span&gt;using 64KB IOs over 64KB stripes with 2000000 IOs per run&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&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;&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;/span&gt;enabling multiple I/Os per thread with 1 outstanding&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&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;&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;/span&gt;buffering set to not use file nor disk caches (as is SQL Server)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&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;&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;/span&gt;affinity mask is 0xf (15)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;initialization done&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;CUMULATIVE DATA:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;throughput metrics:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;IOs/sec:&amp;nbsp;&amp;nbsp; 999.67&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;MBs/sec:&amp;nbsp;&amp;nbsp;&amp;nbsp; 66.91&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;latency metrics:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;Min_Latency(ms): 0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;Avg_Latency(ms): 0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;Max_Latency(ms): 802&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;histogram&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;ms&lt;/span&gt;&lt;span style="FONT-SIZE:8pt;"&gt;: 0&amp;nbsp; 1&amp;nbsp; 2&amp;nbsp; 3&amp;nbsp; 4&amp;nbsp; 5&amp;nbsp; 6&amp;nbsp; 7&amp;nbsp; 8&amp;nbsp; 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;%: 87 13&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&amp;nbsp; 0&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В этом отчёте нас интересует метрика скорости чтения, именно эту метрику мы будем сводить в общий график (MBs/sec: 66.91). Метрика IOs/sec практически линейно зависит от MBs/sec, поскольку в каждом из тестов у нас будет фиксированный размер запроса ввода-вывода. Метрики для задержки запроса ввода-вывода (latency) могут быть интересны вкупе с MBs/sec для сравнения разных дисковых подсистем. Нас такое сравнение не интересует, поэтому метрики MBs/sec вполне достаточно.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Автоматизировать извлечение из файлов с результатами тестов необходимых для дальнейших оценок значений показателей производительности можно, например, с помощью PowerShell. В примере ниже показана команда, которая сохраняет в CSV-файле имена файлов и соответствующее им значение MBs/sec:&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:35.4pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:9pt;mso-no-proof:yes;"&gt;(Select-String -Pattern MBs/sec: -Path *.log | format-table `&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:35.4pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:9pt;mso-no-proof:yes;"&gt;{$_.Filename -replace &amp;quot;.log&amp;quot;, &amp;quot;&amp;quot;}, `&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:35.4pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:9pt;mso-no-proof:yes;"&gt;{($_.Line).replace(&amp;lsquo;.&amp;rsquo;, &amp;lsquo;,&amp;rsquo;) -replace &amp;quot;MBs/sec: &amp;quot;, &amp;quot;;&amp;quot;} `&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:35.4pt;"&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;font-size:9pt;mso-no-proof:yes;"&gt;-HideTableHeaders) | Out-File SQLIO.csv -Encoding ASCII &amp;ndash;Append&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Если результаты сильно выбиваются из общей массы, желательно для такого диска повторить измерения, существенно (например, в два раза) увеличив время теста (аргумент s). На полученные результаты может сильно влиять посторонняя активность на сервере. Старайтесь не подключаться к консоли сервера или посещать его в терминальном режиме, пока не будет закончен очередной пакет тестов. Кроме того, постарайтесь отключить на время тестирования любую другую постороннюю активность на сервере.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;На Рисунке&amp;nbsp;3 показан результат калибровочного тестировании 13 дисков.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/5314.AGmetod03.jpg" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис. 3.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Наиболее важной задачей нагрузочного тестирования является выявление дисков, характеристики которых существенно отличаются от остальных. На Рисунке 2 диски практически идентичны, как по записи, так и по чтению. Однако, при тестировании большого числа дисков вероятность столкнуться с &amp;laquo;подозрительными&amp;raquo; дисками много выше. Например, такой пример показан на Рисунке 4. Обратите внимание на четырнадцатый диск. &lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/0435.AGmetod04.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис. 4.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Совсем не обязательно, что в плохих или, наоборот, невероятно хороших результатах повинен сам диск. Причиной может стать неисправность дискового контроллера, терминатора шины или электрических цепей шины дисковой &amp;laquo;полки&amp;raquo;. &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Для калибровки можно выбирать и другие параметры рабочей нагрузки. Главное, чтобы результаты были показательны и были сопоставимы с паспортными характеристиками дисков.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Если позволяет время, можно проверить не только последовательные чтение/запись, но и случайный выбор блоков для ввода-вывода. &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Особо хочется остановиться на вопросах документирования результатов измерений. Обратите внимание на заголовок таблиц каждого из представленных ранее двух результатов. Это строки:&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 0pt 35.4pt;"&gt;&lt;span style="font-size:8pt;"&gt;sqlio -kRW -s300 -f1 -i2000000 -o1 -b64 -t1 -LP -R(2-14) -a0xff&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 0cm 0pt 35.4pt;"&gt;&lt;span style="font-size:8pt;"&gt;sqlio -kRW -s300 -f1 -i2000000 -o1 -b64 -t1 -LP -R(0-13) -a0xff&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Мне видится наиболее удобным и практичным именно такой вид описания тестовой конфигурации. Суть состоит в том, чтобы просто скопировать из командного файла строку запуска программы SQLIO и внести изменение в написание изменяемых параметров. В данном случае для параметра &amp;ndash;R в скобках был задан диапазон изменения порядковых номеров дисков. В первом случае это диски со второго по четырнадцатый, а во втором случае &amp;ndash; это диски с нулевого по тринадцатый. Подобные описатели конфигурации будут встречаться далее в этой статье для демонстрации результатов измерений.&lt;/p&gt;
&lt;h2&gt;Этап №2. Масштабирование дисков&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Следующим этапом идёт выявление предельных возможностей дисковой подсистемы и калибровка её, как цельного компонента.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Наша задача понять, сколько дисков (шпинделей) способны захватить практически всю полосу пропускания. Это поможет при выборе числа дисков в массиве. Кроме того, этот тест позволяет убедиться, что дисковые контроллеры (а в наших тестах их два) и пассивное оборудование работает исправно.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Производительность отдельных компонент дисковой подсистемы в данной методике не исследуется, хотя понятно, что абстрагироваться от этого полностью невозможно. В предлагаемой методике мы смотрим на дисковую подсистему, условно, как на &amp;quot;чёрный ящик&amp;quot;. Ограничения, а также разного рода ошибки, могут быть совершенно в разных местах. Чтобы начать разговор об этом с администраторами дисковой подсистемы, нужно иметь аргументы. Масштабирование позволяет получить на руки факты именно из этой области. Кроме того, поскольку мы хотим получить в итоге некий эталон производительности, подобные измерения бывают весьма полезны.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В качестве подготовки к этому этапу, нужно убедиться, что сервер и полка подключены друг к другу оптимальным способом и задействованы все особенности подключений, позволяющие повысить производительность передачи данных между дисками и сервером. Достигается это, например, увеличением числа используемых &amp;laquo;петель&amp;raquo; подключений, выбором оптимальных способов балансирования нагрузки через множество путей ввода-вывода, выбором более производительных интерфейсов, режимом работы и способом привязки дисковых контроллеров и т.д. и т.п. Для получения полной картины возможностей оптимизации тестируемой системы, обратитесь к технической документации вендора.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Суть теста очень проста. Вначале файл рабочей нагрузки помещается только на один диск, точно так же, как это делалось в предыдущем, калибровочном тесте. Потом тестируется конфигурация, когда файл рабочей нагрузки размещён на двух дисках. В калибровочном тесте файл всегда был только на одном диске, менялись только сами диски. В этом же тесте диски не меняются, а в каждом тесте добавляется ещё один диск и на нём размещается ещё один файл. Таким образом, число тестируемых диско в представленном ниже на Рисунке&amp;nbsp;5 примере результата изменяется от одного до тринадцати.&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/3582.AGmetod05.jpg" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.5.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Для документирования подобного приращения числа дисков я использую сочетание символов &amp;laquo;&lt;span style="font-family:Wingdings;mso-hansi-font-family:Calibri;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&amp;agrave;&lt;/span&gt;&lt;/span&gt;&amp;raquo;. Т.о. для обозначения приращения дисков, которое начинается с диска под номером 2 в нумерации операционной системы и заканчивается обоймой из тринадцати дисков по диск номер 14 включительно, можно использовать следующую запись: -R(2-&amp;gt;14).&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В командном файле это выглядит примерно так: &lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT:0px;"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s180 -b64 -f1 -i2000000 -o1 -t1 -R2 -LP -a0xf -BN &amp;gt; R2-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s180 -b64 -f1 -i2000000 -o1 -t1 -R2 -LP -a0xf -BN &amp;gt; W2-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3 -LP -a0xf -BN &amp;gt; R23-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3 -LP -a0xf -BN &amp;gt; W23-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span style="font-size:8pt;"&gt;&amp;hellip; результаты сокращены&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT:0px;"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3,4,5,6,7,8,9,10,11,12,13 -LP -a0xf -BN &amp;gt; R2345678910111213-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3,4,5,6,7,8,9,10,11,12,13 -LP -a0xf -BN &amp;gt; W2345678910111213-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kR -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3,4,5,6,7,8,9,10,11,12,13,14 -LP -a0xf -BN &amp;gt; R234567891011121314-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;timeout /T 30&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;"&gt;sqlio -kW -s180 -b64 -f1 -i2000000 -o1 -t1 -R2,3,4,5,6,7,8,9,10,11,12,13,14 -LP -a0xf -BN &amp;gt; W234567891011121314-b64-f1-i2000000-o1-t1.log&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Получив информацию о том, какова реальная пропускная способность вашей дисковой подсистемы, вы можете спланировать дальнейшие тестовые конфигурации. Выбор тестируемых конфигураций может быть обусловлен вашими бизнес - требованиями к доступности и готовности серверов, а также отводимыми на тестирование сроками (полный цикл тестирования согласно данной методике может занимать порядка 7 суток круглосуточной работы тестового сервера). Зная, какое количество шпинделей потенциально может &amp;laquo;запрудить&amp;raquo; шину или контроллер, вы можете выбрать, сколько дисков оптимально собирать в один массив. Кроме того, в целях оптимизации времени тестов, данная методика предполагает допущение, что сервер баз данных, как и утилита SQLIO, балансирует нагрузку между дисками лучше, чем контроллер дискового массива. Как вы помните, база данных может состоять из нескольких файлов, и SQL Server будет резервировать в этих файлах пространство под новые страницы пропорционально размеру файлов. Учитывая эту особенность, мы ограничим число создаваемых массивов только некоторыми избранными конфигурациями, которые в лучшей мере используют преимущества балансировки ввода-вывода с помощью SQL Server. Т.е. это будут те конфигурации, которые не противоречат здравому смыслу и предлагают максимальное количество файлов. Ещё одним допущением для данной методики является то, что в каждой из тестовых конфигураций число шпинделей остаётся неизменным. Это нужно для того, чтобы сравнивать производительность разных массивов при равной стоимости оборудования.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Лучше всего рассмотреть вариант подобной тестовой схемы на примере, с графическими изображениями сайзинга дисков в массиве. Поскольку у нас уже собрана самая простая, и, во многих случаях, самая эффективная конфигурация дисков в массивы, начнём с неё. Похожая конфигурация показана на рисунке 6, и условно обозначается noRAID. &lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img height="105" width="260" src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/2086.AGmetod06.png" border="0" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.6.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Современные дисковые контроллеры часто не предусматривают возможности конфигурирования отдельных дисков, однако, оставляют возможность создания RAID0 из одного диска.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Следующие конфигурации, показанные на рисунках&amp;nbsp;7 и 8, представляют RAID1 и RAID0.&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/1425.AGmetod07.png" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.7.&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/0116.AGmetod08.png" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.8.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Конфигурации массивов RAID5 и RAID10 тоже внешне очень похожи, у них будет одинаковое количество логических дисков (LUN).&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/2570.AGmetod09.png" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.9.&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/1680.AGmetod10.png" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.10.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Каждая из показанных на рисунках конфигурация используется для прогона тестов, которые описаны на этапе 4. &lt;/p&gt;
&lt;h2&gt;Этап №3. Выбор размера сегмента&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Следующий этап не обязателен и приведен тут, скорее, для полноты картины. Дело в том, что при выборе размера сегмента (блока, который используется дисковым контроллером для монтирования дисковых массивов) лучше всего полагаться на рекомендации производителя дисков и дисковой подсистемы, или воспользоваться рекомендациями Майкрософт, изложенными в документации, учебных материалах, статьях базы знаний или белых страницах.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;В этой статье мы будем полагаться на то, что бизнес - требования наших приложений указывают на необходимость обеспечения высокой производительности запросов упреждающего чтения. Как известно, упреждающее чтение характерно тем, что размер запроса ввода &amp;ndash; вывода чаще всего равняется 64 Кб. SQL Server пытается считывать данные не страницами, а экстентами, разумеется, если размер запроса соответствующий и фрагментация данных позволяет это сделать. Мы допускаем, что фрагментацию удаётся поддерживать в приемлемых рамках, а оптимизация запросов ввода-вывода, размер которых близок к размеру страницы 8 Кб, не представляется необходимой, поскольку такие запросы будут обслуживаться практически одинаково в разных конфигурациях в силу своих малых размеров. Также, мы будем опираться на очень распространённое бизнес-правило, что время резервного копирования и восстановления базы данных из резервной копии должны быть минимальными. В своих измерениях Вы можете полагаться на иные требования и правила. Чтобы помочь Вам сориентироваться в выборе размеров нагрузки, тут будет уместно привести Таблицу 2, в которой показано соотношение разных операций и размеров запросов.&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;"&gt;Таблица 2. Характеристики для основных типов нагрузки ввода &amp;ndash; вывода &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;SQL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:10pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Server&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:10pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;"&gt;&lt;span style="font-size:10pt;"&gt;&lt;span style="color:black;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="631" cellpadding="0" cellspacing="0" border="1" style="width:473.2pt;border-collapse:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-border-insideh:.5pt solid black;mso-border-insidev:.5pt solid black;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="234" style="padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;mso-border-alt:solid black .5pt;border:black 1pt solid;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Характер нагрузки&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Доступ:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;случайный / последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Преобладает:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение / запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Размер запроса&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;b&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;ввода-вывода&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Журнал транзакций &lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;OLTP&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;системы&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;512 Б - 64 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Файлы данных&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;OLTP&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;системы&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;случайный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение - запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;8 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Массовая вставка&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 8 КБ до 256 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:4;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Упреждающее чтение, просмотр индекса&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 8 КБ до 256 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:5;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Резервное копирование&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение / запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;1 МБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:6;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Отложенная запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 128 КБ до 2 МБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:7;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Восстановление из копии&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение / запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;64 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:8;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;Контрольная точка&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 8 КБ до 128 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:9;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;CREATE&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt; &lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;DATABASE&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 242.25pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;512 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:10;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;CHECKDB&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 242.25pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;8 КБ - 64 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:11;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;DBREINDEX&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение / запись&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение: &lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 8 КБ до 256 КБ&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;запись: &lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;от 8 КБ до 128 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:12;mso-yfti-lastrow:yes;"&gt;
&lt;td width="234" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:175.5pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;SHOWCONTIG&lt;/span&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.35pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;последовательный&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="113" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:3cm;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 241.5pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;чтение&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="142" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:106.3pt;padding-right:5.4pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p style="mso-layout-grid-align:none;tab-stops:115.5pt 242.25pt 346.5pt 462.0pt;"&gt;&lt;span style="LINE-HEIGHT:115%;"&gt;8 KБ - 64 КБ&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Как правило, выбор размера сегмента не является сложной задачей и, зачастую, предсказуем. Например, ниже, на Рисунке&amp;nbsp;11 показана весьма распространённая зависимость производительности одного диска от размера сегмента.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/3162.AGmetod11.jpg" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.11.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Многие специалисты рекомендуют устанавливать размер блока для форматирования NTFS раздела операционной системы Windows равным 64 Кб и делать такого же размера размер сегмента при монтировании дискового массива. Глядя на представленный Рисунком&amp;nbsp;11 график, становится понятно, откуда взялась эта рекомендация. &lt;/p&gt;
&lt;h2&gt;Э&lt;a name="OLE_LINK2"&gt;&lt;/a&gt;&lt;a name="OLE_LINK1"&gt;&lt;span&gt;тап №4. Сравнение производительности разных типов дисковых массивов&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span&gt;&lt;span&gt;З&lt;/span&gt;&lt;/span&gt;аключительный этап позволяет выяснить возможности разных типов дисковых массивов, что может стать отличным подспорьем при определении наиболее оптимальной конфигурации дисков, а также позволит предсказать, какие характеристики будут у разных конфигураций дисковой подсистемы. По результатам таких тестов можно будет осознанно разместить файлы сервера баз данных на дисковой подсистеме. Такую операцию на IT-жаргоне принято называть сайзингом.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Первым делом, нужно определиться, какие типы и конфигурации дисковых массивов будут участвовать в тестировании. На этот выбор влияют возможности задействованных дисковых контроллеров, а также, число доступных физических дисков. В нашем примере мы будем тестировать по три массива в каждой серии тестов, каждый раз это будет другой уровень RAID.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Каждый уровень RAID будет подвержен пяти тестовым сериям измерения скорости чтения и записи, для разных размеров блока. Размер блока (который задаётся параметром &amp;ndash;b) будет принимать следующий набор значений: 1024, 512, 256, 64, 8. Как вы, наверное, заметили, размеры блока соответствуют размерам основных типов запросов ввода-вывода. Выбор размеров блока для тестирования важен, поскольку не стоит включать в тест те размеры запросов ввода &amp;ndash; вывода, которые не важны, или не характерны для ваших приложений. Например, если в вашей промышленной среде существуют достаточно продолжительные окна для проведения технологических планов обслуживания баз данных, тогда можно исключить из теста размер блока в 128Кб. Если время создания базы данных тоже не критично (например, если вы используете RAW-партиции), можно убрать тест с размером блока 512Кб.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Кроме изменения размера блока (под блоком будем понимать размер запроса ввода-вывода), данная методика предполагает изменение ещё нескольких, критически важных характеристик рабочей нагрузки. Нам нужно оценить производительность не только для одного запроса, но и в условиях относительно глубоких очередей запросов ввода-вывода, а также распараллеливания этих запросов. Глубина очереди будет увеличиваться до 64. Шаг приращения величины очереди тоже стоит выбирать таким, какой характерен для ваших приложений или, как это будет показано в нашем примере, это могут быть отдельные, характерные для ваших задач значения. Мы будем использовать следующие параметры очереди: о1, о2, о4, о8, о16, о32, о64.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Число потоков у нас будет изменяться от одного до четырёх, ровно столько на тестовом сервере имеется ядер процессора. Синхронно с числом потоков будет изменяться страйп-фактор. Здесь, под числом страйпов (страйп-фактор) понимается число блоков в строке файла нагрузки. Значение переменной основного цикла программы (число страйпов в файле нагрузки) тоже будет меняться, оно вычисляется каждый раз таким образом, чтобы при текущем размере блока и числе блоков в страйпе, размер файла нагрузки был близок к ёмкости диска. Поскольку число вычислений значений параметра i (основной цикл) достаточно велико, лучше заранее подготовить небольшие таблички, охватывающую все выбранные для тестирования варианты параметров и конфигурации. Например, на рисунке&amp;nbsp;12 представлена подобная таблица.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;&lt;img src="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gladchenko.agladchenko/5635.AGmetod12.jpg" alt="" /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="center" style="TEXT-ALIGN:center;"&gt;&lt;b&gt;Рис.12.&lt;/b&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Здесь, в ячейке A1 указан размер раздела диска (в данном случае у всех дисков он одинаков). Количество строк файла нагрузки, помещаемого на каждый из задействованных дисков, вычисляется делением размера раздела в Кб на размер блока (b), потом на число потоков (t) блоков в страйпе (f). &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Настоящая методика использует несколько эмпирических допущений, которые существенно уменьшают объём выполняемых тестов. Рисунок 12 как раз и демонстрирует одно из таких допущений. Т.е. мы тестируем не все возможные варианты сочетаний параметров запуска SQLIO, а только те, которые перечислены в таблице. Т.е. Значения для параметров t и f могут быть 1,2,4,8,16. Поскольку максимальное значение для параметра t рекомендуется избирать не выше числа ядер процессоров (а в пример на рисунке 12 их число было 16). Значение f не должно превышать значение t, диапазон изменения этих параметров будет именно такой, как вы видите на рисунке. В колонке A, начиная со строки 2, заданы размеры запросов ввода вывода, которые характерны для приложения. Эти значения используются для параметра b. В таблице не хватает только одного из определяющих конфигурацию каждого теста параметра, это глубина очереди, задающаяся параметром o. Как и в нашем случае, в примере на рисунке 12 использовались следующие параметры очереди: о1, о2, о4, о8, о16, о32, о64.&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;Документирование конфигурации проще показать и подробно разобрать на следующем примере: &lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;f(1,2,4) -i(1950,975,487) -o(1-64) -b1024 -t(1,2,4) -LP -R2,3,4 -a0xf&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Здесь, размер блока был установлен в 1024Кб. Число блоков в страйпе файла нагрузки изменялось синхронно с числом потоков, т.е. значения были равны, и составляли: 1, 2 и 4. В зависимости от последнего числа изменяется число страйпов файла рабочей нагрузки. В этом тесте для мегабайтного размера блока значения такие: i1950, i975, i487. Глубина очереди изменялась так, как я показывал ранее, от единицы до 64. &lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В Таблице 3 показаны результаты теста, полученные для разных значений изменяемых параметров.&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;"&gt;Таблица&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; 3. RAID1: &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table width="465" cellpadding="0" cellspacing="0" border="1" style="width:348.4pt;border-collapse:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-border-insideh:.5pt solid black;mso-border-insidev:.5pt solid black;"&gt;
&lt;tbody&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="89" valign="top" style="padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;mso-border-alt:solid black .5pt;border:black 1pt solid;"&gt;
&lt;p&gt;&lt;b&gt;Чтение&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:1;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,23&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;371,05&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;345,67&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:2;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,49&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;326,56&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;331,87&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:3;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,45&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;325,20&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;330,36&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:4;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o8&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,01&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;331,09&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;318,53&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:5;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o16&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;371,91&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;321,52&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;281,54&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:6;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o32&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;368,80&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;290,96&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;264,18&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:7;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o64&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;351,11&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;276,80&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;262,61&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:8;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;2585,00&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;2243,18&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;2134,76&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;6962,94&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:9;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;span style="COLOR:gray;"&gt;Среднее:&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;&lt;span style="FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;331,57&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:10;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;Запись&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:11;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;185,52&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;307,15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;290,45&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:12;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;307,73&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;259,25&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;257,31&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:13;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;336,09&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;328,68&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;255,48&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:14;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o8&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;337,55&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;254,93&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;241,74&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:15;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o16&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;335,02&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;245,59&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;209,88&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:16;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o32&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;322,65&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;219,26&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;214,20&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:17;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o64&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;287,12&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;215,73&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;211,50&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:18;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;2111,68&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;1830,59&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;1680,56&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;5622,83&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:19;mso-yfti-lastrow:yes;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;span style="COLOR:gray;"&gt;Среднее:&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;&lt;span style="FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;267,75&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;В таблицах с четвёртой по седьмую представлены значения для других размеров блока. Поскольку подобные тесты проводятся для всех тестируемых уровней RAID, и каждый такой тест содержит по пять таблиц, тут мы ограничимся демонстрацией результатов только для RAID1.&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&lt;b&gt;&lt;span style="line-height:115%;"&gt;Таблица&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;"&gt; 4. RAID1&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;: f(1,2,4) -i(3900,1900,970) -o(1-64) -b512 -t(1,2,4) -LP -R2,3,4 -a0xf&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table width="465" cellpadding="0" cellspacing="0" border="1" style="width:348.4pt;border-collapse:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-border-insideh:.5pt solid black;mso-border-insidev:.5pt solid black;"&gt;
&lt;tbody&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="89" valign="top" style="padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;mso-border-alt:solid black .5pt;border:black 1pt solid;"&gt;
&lt;p&gt;&lt;b&gt;Чтение&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:1;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;372,56&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;361,55&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:2;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,13&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;261,15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;313,54&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:3;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;372,56&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;268,08&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;307,82&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:4;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o8&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,04&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;235,48&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;253,12&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:5;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o16&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;373,07&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;237,75&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;237,83&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:6;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o32&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;371,31&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;236,25&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;237,08&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:7;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o64&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;367,76&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;230,83&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;231,77&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:8;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;2604,02&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;1842,10&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;1942,71&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;6388,83&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:9;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;span style="COLOR:gray;"&gt;Среднее:&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;&lt;span style="FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;304,23&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:10;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;Запись&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:11;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;156,97&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;265,91&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;265,18&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:12;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;268,31&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;251,29&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;206,90&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:13;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;332,29&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;325,32&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;180,68&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:14;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o8&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;340,85&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;249,96&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;182,40&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:15;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o16&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;332,81&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;190,25&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;172,63&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:16;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o32&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;328,80&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;185,35&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;173,92&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:17;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o64&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;317,41&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;183,24&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;176,61&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:18;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;2077,44&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;1651,32&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;1358,32&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;5087,08&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:19;mso-yfti-lastrow:yes;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;span style="COLOR:gray;"&gt;Среднее:&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;&lt;span style="FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;242,24&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="TEXT-ALIGN:justify;"&gt;&amp;nbsp;&lt;b&gt;&lt;span style="line-height:115%;"&gt;Таблица&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;"&gt; 5. RAID1&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;: f(1,2,4) -i(500000,250000,125000) -o(1-64) -b256 -t(1,2,4) -LP -R2,3,4 -a0xf&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table width="465" cellpadding="0" cellspacing="0" border="1" style="width:348.4pt;border-collapse:collapse;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-border-insideh:.5pt solid black;mso-border-insidev:.5pt solid black;"&gt;
&lt;tbody&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td width="89" valign="top" style="padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;mso-border-alt:solid black .5pt;border:black 1pt solid;"&gt;
&lt;p&gt;&lt;b&gt;Чтение&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:black 1pt solid;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:1;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;374,15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;243,60&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;248,95&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:2;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;375,00&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;309,89&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;290,07&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:3;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;375,03&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;306,97&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;291,95&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:4;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o8&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;374,98&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;313,63&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;313,85&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:5;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o16&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;375,03&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;306,96&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;304,26&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:6;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o32&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;374,97&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;304,35&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;234,59&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:7;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o64&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;374,12&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;301,15&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;255,86&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:8;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;2623,28&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;2086,55&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;1939,53&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;span style="COLOR:gray;"&gt;6649,36&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:9;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;span style="COLOR:gray;"&gt;Среднее:&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;&lt;span style="FONT-SIZE:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;316,64&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:10;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;Запись&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f1-t1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f2-t2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="107" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:80.5pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;&lt;b&gt;f4-t4&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:12.75pt;mso-yfti-irow:11;"&gt;
&lt;td width="89" valign="top" style="border-bottom:black 1pt solid;border-left:black 1pt solid;padding-left:5.4pt;width:66.45pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p&gt;&lt;b&gt;o1&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p align="right" style="TEXT-ALIGN:right;"&gt;121,68&lt;/p&gt;
&lt;/td&gt;
&lt;td width="90" valign="top" style="border-bottom:black 1pt solid;border-left:medium none;padding-left:5.4pt;width:67.15pt;padding-right:5.4pt;height:12.75pt;border-top:medium none;border-right:black 1pt solid;mso-bord