<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dev.net.ua/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang=""><title type="html">Александр Волок</title><subtitle type="html">Блог SQL Server DBA</subtitle><id>http://dev.net.ua/blogs/def1983/atom.aspx</id><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dev.net.ua/blogs/def1983/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.60809.935">Community Server</generator><updated>2007-12-09T19:34:00Z</updated><entry><title>Вскрывая планы выполнения SQL Server</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/06/22/Dissecting-SQL-Server-Execution-Plans-by-Grant-Fitchey.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/06/22/Dissecting-SQL-Server-Execution-Plans-by-Grant-Fitchey.aspx</id><published>2008-06-22T07:06:00Z</published><updated>2008-06-22T07:06:00Z</updated><content type="html">&lt;img src="http://dev.net.ua/photos/def1983/images/6367/original.aspx" border="0"&gt;&lt;br&gt;Почему этот запрос выполняется медленно? &lt;br&gt;Используется ли этот индекс? &lt;br&gt;Почему один запрос выполняется быстрее второго?&lt;br&gt;Вы проверяли планы выполнения?&lt;br&gt;&lt;br&gt;Часто на форумах можно встретить подобные вопросы. &lt;br&gt;&lt;br&gt;Целью книги &lt;a href="http://www.red-gate.com/specials/Grant.htm?utm_source=dbw&amp;amp;amp;utm_medium=email&amp;amp;amp;utm_content=Grant080622&amp;amp;amp;utm_campaign=sqltoolbelt"&gt;&lt;b&gt;Dissecting SQL Server Execution Plans by Grant Fitchey&lt;/b&gt;&lt;/a&gt; - собрать как можно больше информации о планах выполнения,&amp;nbsp; организовав, предоставить ее в одном источнике.&lt;br&gt;&lt;br&gt;Скачать книгу бесплатно можно здесь: &lt;a href="http://www.red-gate.com/specials/Grant.htm?utm_source=dbw&amp;amp;amp;utm_medium=email&amp;amp;amp;utm_content=Grant080622&amp;amp;amp;utm_campaign=sqltoolbelt"&gt;&lt;b&gt;Dissecting SQL Server Execution Plans by Grant Fitchey&lt;/b&gt;&lt;/a&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=6366" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Inside SQL Server" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Inside+SQL+Server/default.aspx" /><category term="SQL Server Performance" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Performance/default.aspx" /><category term="SQL Server Articles" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Articles/default.aspx" /></entry><entry><title>SSMS Tools Pack 1.0 доступен для загрузки</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/05/09/SSMS-Tools-Pack-1.0-avaible.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/05/09/SSMS-Tools-Pack-1.0-avaible.aspx</id><published>2008-05-09T06:47:00Z</published><updated>2008-05-09T06:47:00Z</updated><content type="html">&lt;p class="MsoNormal"&gt;&lt;a href="http://www.ssmstoolspack.com/Main.aspx"&gt;&lt;img src="http://dev.net.ua/photos/def1983/images/6033/original.aspx" border="0"&gt;&lt;br&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.ssmstoolspack.com/Main.aspx"&gt;&lt;br&gt;SSMS Tools
Pack&lt;/a&gt; - &lt;span&gt;это&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;набор&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;дополнений&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;к&lt;/span&gt;&lt;span&gt;&amp;nbsp;
&lt;/span&gt;SQL Server Management Studio &lt;span&gt;и&lt;/span&gt; SQL Server Management Studio Express.&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Перечень &lt;span&gt;&amp;nbsp;&lt;/span&gt;некоторых возможностей:&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Изменение
регистра &lt;span&gt;&amp;nbsp;&lt;/span&gt;ключевых слов.&lt;br&gt;
Запуск скриптов &lt;span&gt;&amp;nbsp;&lt;/span&gt;в множестве баз данных.&lt;br&gt;
Сохранение&lt;span&gt;&amp;nbsp; &lt;/span&gt;графической копии плана
выполнения в буфере обмена.&lt;br&gt;
Поиск в GRID варианте отображения результата и в планах выполнения.&lt;br&gt;
Генерация INSERT выражений для выборочной таблицы, всей базы или текущего
результата запроса.&lt;br&gt;
Ведение истории выполненых запросов.&lt;br&gt;
Запуск пользовательских скриптов из контекстного меню в &lt;/span&gt;Object&lt;span&gt; &lt;/span&gt;Explorer&lt;span&gt;.&lt;br&gt;
Генерация хранимых процедур &lt;/span&gt;CRUD&lt;span&gt; (Create, Read, Update, Delete).&lt;br&gt;
Новые шаблоны запросов.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Дополнения
доступны на этом ресурсе: &lt;/span&gt;&lt;a href="http://www.ssmstoolspack.com/Main.aspx"&gt;http&lt;span&gt;://&lt;/span&gt;www&lt;span&gt;.&lt;/span&gt;ssmstoolspack&lt;span&gt;.&lt;/span&gt;com&lt;span&gt;/&lt;/span&gt;Main&lt;span&gt;.&lt;/span&gt;aspx&lt;/a&gt;&lt;span&gt;&lt;br&gt;
&lt;br&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=6032" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server Configuration" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Configuration/default.aspx" /></entry><entry><title>SQL Server 2008: Дефрагментация куч</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/03/31/SQL-Server-2008-heap-rebuild.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/03/31/SQL-Server-2008-heap-rebuild.aspx</id><published>2008-03-31T19:23:00Z</published><updated>2008-03-31T19:23:00Z</updated><content type="html">&lt;p class="MsoNormal"&gt;&lt;span&gt;В&lt;span&gt;&amp;nbsp; &lt;/span&gt;SQL Server 2005 и более ранних версиях
дефрагментация куч была непростой задачей. Для этих целей данные таблиц
копировали в новые или же добавляли, затем удаляли кластерный индекс.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;В SQL Server 2008, задача
дефрагментации значительно упростилась. Разработчики добавили команде
&lt;b&gt;ALTER TABLE ... REBUILD &lt;/b&gt;&lt;/span&gt;&lt;span&gt;поддержку куч&lt;/span&gt;&lt;span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;В следующем
примере будет создана простая таблица (куча) и вставлено небольшое количество
данных. В последствии, каждая запись новой таблицы будет обновлена значениями,
которые значительно превышают размеры изначальных.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Результатом станет в меньшей мере
фрагментация, но и большое количество указателей (forwarding pointers). Причина
появления большого количества указателей кроется в том, что текущие записи
больше не могут помещаться на тех же страницах кучи и вынуждены переместится на
другие страницы, но оставив указатели на старых страницах. Указатели на записи
остаются не изменны в индексах. &lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;Как видите, дефрагментация куч очень упрощена:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;





&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;create&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;table&lt;/span&gt; heapDemo&lt;br /&gt;(   &lt;br /&gt;    value &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;varchar&lt;/span&gt;(1000)&lt;br /&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;set&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;nocount&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;insert&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;into&lt;/span&gt; heapDemo&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'hi'&lt;/span&gt;&lt;br /&gt;go 10000&lt;br /&gt;&lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;--Увеличим размер строки в 500 раз&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;update&lt;/span&gt; heapDemo&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;set&lt;/span&gt; value = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;replicate&lt;/span&gt;(&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'hi'&lt;/span&gt;,500)&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;Далее следует
проверка фрагментации таблицы:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; index_type_desc, fragment_count, page_count, forwarded_record_count &lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;from&lt;/span&gt; sys.dm_db_index_physical_stats(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;db_id&lt;/span&gt;(),&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'DETAILED'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object_id&lt;/span&gt; = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object_id&lt;/span&gt;(&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'heapDemo'&lt;/span&gt;)&lt;/span&gt;&lt;/code&gt;

&lt;p class="MsoNormal"&gt;Что вернет:&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;font face="Courier New" size="2"&gt;index_type_desc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
fragment_count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
page_count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
forwarded_record_count&lt;br&gt;
--------------------- -------------------- --------------------
----------------------&lt;br&gt;
HEAP&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;
6&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;
1443&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;
9961&lt;/font&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Далее, дефрагментация кучи и проверка фрагментации:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;alter&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;table&lt;/span&gt; heapDemo rebuild&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; index_type_desc, fragment_count, page_count, forwarded_record_count&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;from&lt;/span&gt; sys.dm_db_index_physical_stats(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;db_id&lt;/span&gt;(),&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt;,&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'DETAILED'&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object_id&lt;/span&gt; = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;object_id&lt;/span&gt;(&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'heapDemo'&lt;/span&gt;)&lt;/span&gt;&lt;/code&gt; &lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Результатом стала
куча,&lt;span&gt;&amp;nbsp; &lt;/span&gt;в которой отсуствуют указатели –
желаемый результат.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;font face="Courier New"&gt;index_type_desc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
fragment_count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
page_count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
forwarded_record_count&lt;br&gt;
--------------------- -------------------- --------------------
----------------------&lt;br&gt;
HEAP&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;
3&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;
1440&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;
0&lt;/font&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5818" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Inside SQL Server" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Inside+SQL+Server/default.aspx" /><category term="SQL Server Performance" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Performance/default.aspx" /><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Полезный блог: SQL Server 2008 Application Compatibility Blog</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/31/Helpfull-blog-SQL-Server-2008-Application-Compatibility-Blog.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/31/Helpfull-blog-SQL-Server-2008-Application-Compatibility-Blog.aspx</id><published>2008-01-31T21:53:00Z</published><updated>2008-01-31T21:53:00Z</updated><content type="html">SQL Server 2008 уже не за горами.&lt;br&gt;Многие нововведения в этой версии обсуждались как в моем блоге, так и в других тематических ресурсах. &lt;br&gt;Но, как и при внедрении любой другой новой версии продукта, существуют проблемы совместимости с текущими решениями, которые созданы для более ранних версий.&lt;br&gt;Представляю Вашему вниманию блог &lt;a href="http://blog.scalabilityexperts.com/"&gt;SQL Server 2008 Application Compatibility Blog&lt;/a&gt; целью создания которого и есть освещение подобных проблем, как и освещение преимуществ от внедрения новой версии SQL Server&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5296" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server Articles" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Articles/default.aspx" /></entry><entry><title>SQL Server 2005 Upgrade Technical Reference Guide</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/14/SQL-Server-2005-Upgrade-Technical-Reference-Guide.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/14/SQL-Server-2005-Upgrade-Technical-Reference-Guide.aspx</id><published>2008-01-14T10:39:00Z</published><updated>2008-01-14T10:39:00Z</updated><content type="html">Александр Гладченко в своем &lt;a href="http://msmvps.com/blogs/gladchenko/archive/2008/01/14/1462639.aspx"&gt;блоге &lt;/a&gt;опубликовал&amp;nbsp; ссылку на документ, который будет полезен во время оценки рисков при миграции с SQL Server 7 и 2000 на SQL Server 2005. &lt;br&gt;&lt;br&gt;В документе, на 350 страницах, представлено руководство,
ориентированное на администраторов SQL Server, разработчиков приложений
баз данных и поставщиков решений, в котором регламентируется перевод
баз данных, обслуживаемых серверами версий SQL Server 2000 или 7.0, под
управление SQL Server 2005.&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5138" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server Configuration" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Configuration/default.aspx" /><category term="SQL Server Articles" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Articles/default.aspx" /></entry><entry><title>Опубликован новый whitepaper: Database Mirroring and Log Shipping Working Together</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/13/Whitepaper-Database-Mirroring-and-Log-Shipping-Working-Together.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/13/Whitepaper-Database-Mirroring-and-Log-Shipping-Working-Together.aspx</id><published>2008-01-13T08:14:00Z</published><updated>2008-01-13T08:14:00Z</updated><content type="html">Краткий план документа:&lt;br&gt;&lt;ul&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;li&gt;Converting a log shipping setup to a database mirroring partnership 
&lt;/li&gt;&lt;li&gt;Setting up log shipping to a 3rd destination (i.e. warm standby to go with the mirroring hot standby) 
&lt;/li&gt;&lt;li&gt;Swapping the roles of the mirroring server and the log shipping secondary server&lt;/li&gt;&lt;/font&gt;&lt;/font&gt;&lt;/ul&gt;Whitepaper доступен по этому &lt;a href="http://www.sqlskills.com/blogs/paul/ct.ashx?id=c77ef73d-680f-402e-8c18-d515ad82aff5&amp;amp;url=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fd%2f9%2f4%2fd948f981-926e-40fa-a026-5bfcf076d9b9%2fDBMandLogShipping.docx"&gt;адресу&lt;/a&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5126" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server Configuration" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Configuration/default.aspx" /><category term="SQL Server Articles" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Articles/default.aspx" /></entry><entry><title>Тип данных TIME в SQL Server 2008</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/12/TIME-data-type-in-SQL-Server-2008.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/12/TIME-data-type-in-SQL-Server-2008.aspx</id><published>2008-01-12T09:51:00Z</published><updated>2008-01-12T09:51:00Z</updated><content type="html">
&lt;p class="MsoNormal"&gt;&lt;span&gt;Новый тип &lt;/span&gt;&lt;span&gt;TIME&lt;/span&gt;&lt;span&gt; содержит в себе значение времени, но уже с
определенной пользователем точностью, которая влияет на хранение дробных частей
секунды.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;Значение точности
может варьироваться от 0 до 7, указывая количество цифр в дробной части
секунды. По умолчанию, точность &lt;/span&gt;&lt;span&gt;TIME&lt;/span&gt;&lt;span&gt;(7), что значит,
что секунды в этом типе данных будут храниться с дробной частью в диапазоне от
.0000000 до .9999999. &lt;br&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;Тип &lt;/span&gt;&lt;span&gt;TIME&lt;/span&gt;&lt;span&gt; хранится как &lt;/span&gt;&lt;span&gt;INTEGER&lt;/span&gt;&lt;span&gt; с варьирующимся размером, который напрямую зависит от точности. При
точности 0-2, этот тип хранится в виде 3-байтового &lt;/span&gt;&lt;span&gt;INT&lt;/span&gt;&lt;span&gt;, 3-4 как 4-байтовый &lt;/span&gt;&lt;span&gt;INT&lt;/span&gt;&lt;span&gt;, а для точности 5-7 выделяется 5-байтовый
&lt;/span&gt;&lt;span&gt;INT&lt;/span&gt;&lt;span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;Значение точности
используется, &lt;/span&gt;&lt;span&gt;для&lt;span&gt;&amp;nbsp; &lt;/span&gt;варьирования гранулярности &lt;/span&gt;&lt;span&gt;при просчете времени после полуночи, : от 1 секунды до
100 наносекунд.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;К примеру, если
значение времени хранится в поле с типом &lt;/span&gt;&lt;span&gt;Time&lt;/span&gt;&lt;span&gt; и указанной точностью &lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;, время в секундах
после полуночи в&lt;span&gt;&amp;nbsp; &lt;/span&gt;будет рассчитано таким
образом: &lt;/span&gt;t / 10&lt;sup&gt;n&lt;/sup&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;Далее следует
краткое изложение хранения и точности &lt;/span&gt;&lt;span&gt;TIME&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;

&lt;/p&gt;&lt;table class="MsoNormalTable" style="border-collapse:collapse;" cellpadding="0" cellspacing="0"&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;&lt;span&gt;Точность&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;&lt;span&gt;Хранение (байт)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;&lt;span&gt;Секунд&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:82.25pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;&lt;span&gt;Миллисекунд&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:89.4pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;&lt;span&gt;Наносекунд&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1000000000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;100&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;100000000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.01&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;10&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;10000000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(3) &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1000000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(4) &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.0001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;100000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:16.5pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(5)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.00001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.01&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:16.5pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;10000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:15pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(6)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.000001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;1000&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:15pt;"&gt;
  &lt;td style="padding:0cm;width:84.65pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;TIME(7)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:94.55pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;width:51pt;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.0000001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;0.0001&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="padding:0cm;height:15pt;"&gt;
  &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;100&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class="MsoNormal"&gt;

&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;Существует
возможность привести значение &lt;/span&gt;&lt;span&gt;TIME&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;в &lt;/span&gt;&lt;span&gt;INT&lt;/span&gt;&lt;span&gt;, хотя это требует несколько шагов:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;







&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @Time TIME(7) = &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'00:01:00'&lt;/span&gt; &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Формат HH:mm:SS[.nnnnnnn]&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @BinaryTime &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;(8) &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @BinaryTime = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SUBSTRING&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;, @Time))),&lt;br /&gt;                                                    1,&lt;br /&gt;                                                    &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATALENGTH&lt;/span&gt;(@Time))                                               &lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BIGINT&lt;/span&gt;, @BinaryTime)&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 600000000&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;p class="MsoNormal"&gt;

&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;В приведенный
выше примере получен результат – &lt;/span&gt;600000000&lt;span&gt;, который, учитывая точность, вполне корректен.
Точность равна 7, поэтому время&lt;span&gt;&amp;nbsp; &lt;/span&gt;одной
минуты&lt;span&gt;&amp;nbsp; &lt;/span&gt;после полуночи будет равно 60
секундам = &lt;/span&gt;600000000 / 10&lt;sup&gt;7&lt;/sup&gt;.&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;







&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @Time TIME(3) = &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'00:01:00'&lt;/span&gt; &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Формат HH:mm:SS[.nnnnnnn]&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @BinaryTime &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;(8) &lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @BinaryTime = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SUBSTRING&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VARBINARY&lt;/span&gt;, @Time))),&lt;br /&gt;                                                   1,&lt;br /&gt;                                                    &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATALENGTH&lt;/span&gt;(@Time))                                               &lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BIGINT&lt;/span&gt;, @BinaryTime)&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 60000&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;span&gt;&lt;br&gt;С применением точности равной 3,
получен результат 60000, который тоже корректен, поскольку 60 секунд = 60000/&lt;/span&gt;10&lt;sup&gt;3&lt;/sup&gt;&lt;span&gt;.&lt;sup&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/sup&gt;&lt;/span&gt;

&lt;p&gt;Дополнительную информацию о типе &lt;span&gt;TIME&lt;/span&gt; можно подчерпнуть в &lt;a href="http://technet.microsoft.com/en-us/library/bb677243%28SQL.100%29.aspx"&gt;BOL 2008&lt;/a&gt;&lt;br&gt;
Подготовленно по материалам &lt;a href="http://sqlblogcasts.com/blogs/danny/archive/2008/01/10/sql-server-2008-time-data-type.aspx"&gt;Danny's
SQL Server and Internals Viewer Blog&lt;/a&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;br&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5122" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Inside SQL Server" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Inside+SQL+Server/default.aspx" /><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Тип данных DATE в SQL Server 2008</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/09/DATE-data-type-in-SQL-Server-2008.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/09/DATE-data-type-in-SQL-Server-2008.aspx</id><published>2008-01-09T08:09:00Z</published><updated>2008-01-09T08:09:00Z</updated><content type="html">SQL Server 2008 содержит несколько новых типов данных, включая типы для работы с датой и временем:&lt;br&gt;DATE – содержит значения даты&lt;br&gt;TIME – содержит значения времени, с точностью до 100 наносекунд&lt;br&gt;DATETIME2 – содержит значения даты и времени, но с более высокой точностью времени&lt;br&gt;DATETIMEOFFSET – содержит значения даты и времени включающие смещение по часовому поясу.&lt;br&gt;&lt;br&gt;&lt;b&gt;Внутреннее представление типа DATE&lt;/b&gt;&lt;br&gt;&lt;br&gt;Тип DATE попросту содержит дату, в диапазоне от 1 января 0001 до 31 декабря 9999. Внутри же тип хранится в виде 3-х байтового INTEGER. Значение INT это количество прошедших дней после базовой даты 01.01.0001.&lt;br&gt;&lt;br&gt;Напрямую конвертировать INT в DATE невозможно. Результатом выполнения:&lt;br&gt;&lt;br&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(DATE, 1)&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;br&gt;будет следующая ошибка:&lt;br&gt;&lt;br&gt;&lt;font color="#ff0000" face="Courier New" size="2"&gt;Msg 529, Level 16, State 2, Line 1&lt;br&gt;Explicit conversion from data type int to date is not allowed.&lt;/font&gt;&lt;br&gt;&lt;br&gt;Но все же, существует возможность конвертации INT в DATE посредством промежуточного конвертирования целочисленного типа в BINARY(3) с последующим реверсом байтов и итоговом конвертировании в DATE.&lt;br&gt;&lt;br&gt;В следующем примере приведено пошаговое увеличение 24-битового INT, который соответствует базовой дате:&lt;br&gt;&lt;br&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @IntValue &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt;  &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @IntValue = 0&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(DATE, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), @IntValue))))&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 0001-01-01&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @IntValue = 1&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(DATE, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), @IntValue))))&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 0001-01-02&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @IntValue = 2&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(DATE, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), @IntValue))))&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 0001-01-03&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @IntValue = 3&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(DATE, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REVERSE&lt;/span&gt;(&lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BINARY&lt;/span&gt;(3), @IntValue))))&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- Результат: 0001-01-04&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;Отличной особенностью DATE от SMALLDATETIME является невозможность (по крайне мере в ноябрьском CTP) добавлять или удалять дни из даты. Код:&lt;br&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @Date DATE = &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'2008-02-01'&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; @Date + 1&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;br&gt;Приведет к ошибке:&lt;br&gt;&lt;br&gt;&lt;font color="#ff0000" face="Courier New"&gt;Msg 206, Level 16, State 2, Line 2&lt;br&gt;Operand type clash: date is incompatible with int&lt;br&gt;&lt;/font&gt;&lt;br&gt;Также, в результате сложение двух значений DATE,&amp;nbsp; будет такая ошибка: &lt;br&gt;&lt;br&gt;&lt;font color="#ff0000" face="Courier New" size="2"&gt;Msg 8117, Level 16, State 1, Line 3&lt;br&gt;Operand data type date is invalid for add operator.&lt;br&gt;&lt;br&gt;&lt;/font&gt;Дополнительную информацию о типе DATE можно подчерпнуть в &lt;a href="http://technet.microsoft.com/en-us/library/bb630352%28SQL.100%29.aspx"&gt;BOL 2008&lt;/a&gt;&lt;br&gt;&lt;br&gt;Подготовленно по материалам &lt;a id="ctl00___ctl00___BlogTitleHeader1___BlogTitle" href="http://sqlblogcasts.com/blogs/danny/default.aspx"&gt;Danny's SQL Server and Internals Viewer Blog&lt;/a&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5098" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Inside SQL Server" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Inside+SQL+Server/default.aspx" /><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>TRUNCATE TABLE: Транзакционность и способность отката результата команды при восстановлении логов.</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/05/TRUNCATE-TABLE-in-transaction.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/05/TRUNCATE-TABLE-in-transaction.aspx</id><published>2008-01-05T11:22:00Z</published><updated>2008-01-05T11:22:00Z</updated><content type="html">&lt;p class="MsoNormal"&gt;&lt;b&gt;Вопрос 1:&lt;/b&gt; Является ли команда TRUNCATE TABLE транзактивной?&lt;br&gt;&lt;b&gt;Краткий ответ:&lt;/b&gt; Да.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;Далее приведена репродукция кода, в котором выполняется
откат транзакции, содержащей TRUNCATE TABLE:&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;USE&lt;/span&gt; TEMPDB&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NOCOUNT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ON&lt;/span&gt;&lt;br /&gt;    GO&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; DATA (COL1 &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt;, COL2 &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt;)&lt;br /&gt;    GO&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INSERT&lt;/span&gt; DATA &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VALUES&lt;/span&gt; (1, 1)&lt;br /&gt;    GO&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BEGIN&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRAN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; DATA&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRAN&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; * &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; DATA&lt;br /&gt;    GO&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DROP&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; DATA&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;/code&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;









&lt;p class="MsoNormal"&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Результат:&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; COL1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;COL2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------- -----------&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;span&gt;&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;1&lt;/font&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;В своем &lt;a href="http://www.sqlskills.com/blogs/paul/2007/12/05/SearchEngineQA10WhenArePagesFromATruncatedTableReused.aspx"&gt;блоге&lt;/a&gt; Paul Randal превосходно описал, каким образом гарантируется транзактивность TRUNCATE TABLE. &lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Далее, я привожу перевод этого поста.&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Сначала создадим тестовую таблицу для экспериментов.&lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NOCOUNT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ON&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; TruncateTest (c1 &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IDENTITY&lt;/span&gt;, c2 &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CHAR&lt;/span&gt; (8000) &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'A'&lt;/span&gt;);&lt;br /&gt;    GO&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @a &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; @a = 1;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WHILE&lt;/span&gt; (@a &amp;lt; 20)&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INTO&lt;/span&gt; TruncateTest &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VALUES&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; @a = @a + 1;&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;END&lt;/span&gt;;&lt;br /&gt;    GO&lt;/span&gt;&lt;/code&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;Воспользуемся недокументированной командой &lt;b&gt;DBCC IND&lt;/b&gt;, чтобы
увидеть какие страницы и экстенты выделены для нашей экспериментальной таблицы:&lt;br&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br&gt; &lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DBCC&lt;/span&gt; IND (test, TruncateTest, 0);&lt;br /&gt;    GO&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Результат:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PageFID PagePID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------- ---------&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 193&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 192&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 194&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 195&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 196&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 197&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 198&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 199&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 224&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 225&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 226&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 227&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 228&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 229&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 230&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 231&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 233&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 234&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBCC execution completed. If DBCC printed error messages,
contact your system administrator.&lt;/font&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Я преднамеренно сократил вывод команды, оставив лишь ID
страниц. Мы видим, что эта таблица задействовала 4 экстента (которые начинаются
с страниц (1:192), (1:200), (1:224), (1:232)). Теперь, если мы выполним команду
TRUNCATE TABLE в транзакции, что покажет DBCC IND?&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BEGIN&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRAN&lt;/span&gt;;&lt;br /&gt;    GO&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; TruncateTest;&lt;br /&gt;    GO&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DBCC&lt;/span&gt; IND (test, TruncateTest, 0);&lt;br /&gt;    GO&lt;/span&gt;&lt;/code&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Результат:&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBCC execution completed. If DBCC printed error messages,
contact your system administrator.&lt;/font&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Похоже что страницы под таблицу уже не выделены, но где же
они? Проверим текущие блокировки. Вместо использования &lt;b&gt;sp_lock&lt;/b&gt; я использую ее
DMV-замену, &lt;b&gt;sys.dm_tran_locks&lt;/b&gt;:







&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; resource_type, resource_description, request_mode &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; sys.dm_tran_locks &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WHERE&lt;/span&gt; resource_type &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IN&lt;/span&gt; (&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'EXTENT'&lt;/span&gt;, &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'PAGE'&lt;/span&gt;);&lt;br /&gt;    GO&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Результат:&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resource_type&amp;nbsp;&amp;nbsp; resource_description&amp;nbsp;&amp;nbsp;
request_mode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --------------- ---------------------- --------------&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:200&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:198&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:199&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:196&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:197&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:194&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:195&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:192&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:193&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:192&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:200&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:232&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;
X&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXTENT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1:224&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;
X&lt;/font&gt;&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Собственно, все страницы и экстенты заблокированы. Страницы
не являются уже выделенными для этой таблицы, но поскольку на них наложены
эксклюзивные блокировки, подсистема распределения страниц не может освободить
эти страницы пока блокировки не снимутся (произойдет commit транзакции). &lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Если
же произойдет откат транзакции, страницы попросту будут снова отмечены как
принадлежащие таблице TruncateTest. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;b&gt;Вопрос 2:&lt;/b&gt; Возможно ли откатить успешное выполнение TRUNCATE
TABLE посредством восстановления транзакционных логов на момент предшествующий
запуску команды?&lt;br&gt;&lt;b&gt;Краткий ответ&lt;/b&gt;: Да.&lt;span&gt;&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;





&lt;p class="MsoNormal"&gt;Данный вопрос обсуждал в своем блоге &lt;a href="http://blog.sqlauthority.com/"&gt;Pinal Dave&lt;/a&gt; - &lt;a href="http://blog.sqlauthority.com/2007/12/26/sql-server-truncate-cant-be-rolled-back-using-log-files-after-transaction-session-is-closed/" title="Permanent Link to SQL SERVER - TRUNCATE Can’t be Rolled Back Using Log Files After Transaction Session Is&amp;nbsp;Closed"&gt;TRUNCATE
Can’t be Rolled Back Using Log Files After Transaction Session Is&amp;nbsp;Closed&lt;/a&gt;&lt;span&gt;.&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span&gt;Но&lt;b&gt; &lt;/b&gt;&lt;span&gt;его
мнение не было разделено посетителями его блога, включая и мною.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;При выполнении &lt;/span&gt;&lt;span&gt;TRUNCATE&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;TABLE&lt;/span&gt;&lt;span&gt; в лог не попадают ни удаленные страницы, ни
экстенты. Как же тогда возможно восстановить данные таблицы при восстановлении
журналов транзакций?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Ответ кроется в том, что для восстановления данных таблицы, необходимо
чтобы в журнал попали факты добавления (и изменения) данных. Или же данные
таблицы уже содержались в полном бэкапе. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;Таким образом, при восстановлении&lt;span&gt;&amp;nbsp;
&lt;/span&gt;полного бэкапа, затем журналов транзакций &lt;b&gt;до&lt;/b&gt; &lt;b&gt;момента&lt;/b&gt;
запуска команды &lt;/span&gt;&lt;span&gt;TRUNCATE&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;данные таблицы будут восстановлены в полном
объеме. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;span&gt;Репродуктивный скрипт:&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;code&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NOCOUNT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ON&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATABASE&lt;/span&gt; TEST&lt;br /&gt;    GO&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ALTER&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATABASE&lt;/span&gt; TEST &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; RECOVERY &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FULL&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;USE&lt;/span&gt; TEST&lt;br /&gt;    GO&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- STEP 2. Creating table with some data (100 rows)&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; data (f1 &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IDENTITY&lt;/span&gt;)&lt;br /&gt;    GO&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;INSERT&lt;/span&gt; data &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DEFAULT&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;VALUES&lt;/span&gt;&lt;br /&gt;    GO 100&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- STEP 3. Performing full backup&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BACKUP&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATABASE&lt;/span&gt; TEST &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TO&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DISK&lt;/span&gt;=&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'c:\test_full.bak'&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WITH&lt;/span&gt; INIT&lt;br /&gt;    GO&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- STEP 4. Performing log backup&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DECLARE&lt;/span&gt; @date &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATETIME&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;--variant1: Date mark just before truncation&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SET&lt;/span&gt; @date = &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATEADD&lt;/span&gt;(s, 0, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;GETDATE&lt;/span&gt;())&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- variant2: Date mark after truncation&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- SET @date = DATEADD(s, 1, GETDATE())&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TRUNCATE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TABLE&lt;/span&gt; data&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WAITFOR&lt;/span&gt; DELAY &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'00:00:03'&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;BACKUP&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;LOG&lt;/span&gt; TEST &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;TO&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DISK&lt;/span&gt;=&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'c:\test_log.bak'&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WITH&lt;/span&gt; INIT&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: Teal;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;-- STEP 5. Restoring Test DB.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;USE&lt;/span&gt; MASTER&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;RESTORE&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATABASE&lt;/span&gt; TEST &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DISK&lt;/span&gt;=&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'c:\test_full.bak'&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WITH&lt;/span&gt; NORECOVERY, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;REPLACE&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;RESTORE&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;LOG&lt;/span&gt; TEST &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DISK&lt;/span&gt;=&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'c:\test_log.bak'&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WITH&lt;/span&gt; RECOVERY, STOPAT=@date&lt;br /&gt;    GO&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;USE&lt;/span&gt; TEST&lt;br /&gt;    GO&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;COUNT&lt;/span&gt;(*) &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;AS&lt;/span&gt; RowCnt &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; data&lt;br /&gt;    go&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;USE&lt;/span&gt; MASTER&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DROP&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;DATABASE&lt;/span&gt; TEST&lt;/span&gt;&lt;/code&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="Courier New"&gt;Результат:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;RowCnt&lt;br&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/font&gt;&lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5091" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Inside SQL Server" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Inside+SQL+Server/default.aspx" /></entry><entry><title>Скринкаст: SQL Server 2008 SSMS. Управление группой серверов.</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/04/Screencast-SQL-Server-2008-SSMS-Manage-multiple-servers.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/04/Screencast-SQL-Server-2008-SSMS-Manage-multiple-servers.aspx</id><published>2008-01-04T16:21:00Z</published><updated>2008-01-04T16:21:00Z</updated><content type="html">Katmai Management Studio имеет новую отличную способность выполнять&amp;nbsp; T-SQL одновременно на нескольких инстансах&amp;nbsp; простым нажатием на F5.&lt;br&gt;Смотрите подробности в &lt;a class="" title="ScreenCast" href="http://www.screencast.com/t/5EvFQHTmE"&gt;скринкасте&lt;/a&gt; (4:00).&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5090" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Доступна бесплатно электронная книга: &quot;Introduction to LINQ&quot;</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/04/Free-ebook-Introduction-to-LINQ.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/04/Free-ebook-Introduction-to-LINQ.aspx</id><published>2008-01-04T07:28:00Z</published><updated>2008-01-04T07:28:00Z</updated><content type="html">&lt;img src="http://dev.net.ua/photos/def1983/images/5085/original.aspx" border="0"&gt;&lt;br&gt;&lt;br&gt;Microsoft раздает бесплатно эту книгу,&amp;nbsp; и все что необходимо для доступа - лишь регистрация: &lt;a href="http://www.microsoft.com/learning/vstudio/2008/default.mspx#EBOOK"&gt;Microsoft site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5084" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author></entry><entry><title>SQL Server 2008 virtual training доступны в течение января</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/03/SQL-Server-2008-virtual-training-_34043E044104420443043F043D044B04_-_3204_-_42043504470435043D0438043504_-_4F043D043204300440044F04_.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/03/SQL-Server-2008-virtual-training-_34043E044104420443043F043D044B04_-_3204_-_42043504470435043D0438043504_-_4F043D043204300440044F04_.aspx</id><published>2008-01-03T07:31:00Z</published><updated>2008-01-03T07:31:00Z</updated><content type="html">&lt;font face="Verdana"&gt;Прежде чем выпустить RTM версию следующего релиза SQL Server (который 2008), Microsoft подготовила несколько подготовительных материалов, которые будут полезны ИТ специалистам, желающим ознакомиться с новыми возможностями этого релиза. &lt;br&gt;&lt;br&gt;Серия семинаров состоящая из 10 частей покрывает такие темы как безопасность, бизнес-аналитика, высокая доступность, создание отчетов. Время проведения: с 8 января – по&amp;nbsp; 30 января&amp;nbsp; 9:00. Ознакомиться более детально и зарегистрироваться&amp;nbsp; на семинары можно здесь:&lt;/font&gt;&lt;font face="trebuchet ms,geneva"&gt; &lt;/font&gt;&lt;a class="" href="http://www.msreadiness.com/isvsql2008" target="_blank"&gt;&lt;font face="trebuchet ms,geneva"&gt;Microsoft SQL Server 2008 training web seminars&lt;/font&gt;&lt;/a&gt;&lt;font face="trebuchet ms,geneva"&gt;. &lt;br&gt;&lt;br&gt;Некоторые из семинаров включают в себя такие "горячие" темы бизнес-аналитики:&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7628735"&gt;What’s new in SQL Server 2008 for Database Administrators&lt;/a&gt; January 8&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7628736"&gt;Implementing Change Data Capture (CDC) in SQL Server 2008&lt;/a&gt;&amp;nbsp;January 9&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7628737"&gt;Working with the new DATE data type in SQL Server 2008&lt;/a&gt;&amp;nbsp;January 21&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7628738"&gt;Administering Servers by Using Declarative Management Framework (DMF) Policies&lt;/a&gt;&amp;nbsp;January 22&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7695051"&gt;Learn How to Build Occasionally Connected Applications&lt;/a&gt;&amp;nbsp;January 23&lt;br&gt;&lt;a href="http://go.microsoft.com/?linkid=7695052"&gt;Authoring Reports Using Microsoft SQL Server 2008 Reporting Services&lt;/a&gt;&amp;nbsp;January 24&lt;br&gt;&lt;a href="http://www.msreadiness.com/CourseDetail.aspx?id=8765"&gt;Business Intelligence Overview&lt;/a&gt;&amp;nbsp;January 25&lt;br&gt;&lt;a href="http://www.msreadiness.com/CourseDetail.aspx?id=8766"&gt;Reporting Services&lt;/a&gt;&amp;nbsp;January 28&lt;br&gt;&lt;a href="http://www.msreadiness.com/CourseDetail.aspx?id=8767"&gt;Data Warehousing&lt;/a&gt;&amp;nbsp;January 29&lt;br&gt;&lt;a href="http://www.msreadiness.com/CourseDetail.aspx?id=8768"&gt;Building a cube from scratch&lt;/a&gt;&amp;nbsp;January 30&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5077" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Скринкасты SQL Server 2008: Table valued parameters и Change Data Capture</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2008/01/02/_21043A04400438043D043A043004410442044B04_-SQL-Server-2008_3A00_-Table-valued-parameters-_3804_-Change-Data-Capture.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2008/01/02/_21043A04400438043D043A043004410442044B04_-SQL-Server-2008_3A00_-Table-valued-parameters-_3804_-Change-Data-Capture.aspx</id><published>2008-01-02T08:04:00Z</published><updated>2008-01-02T08:04:00Z</updated><content type="html">&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=361173"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=361173" class="lnk3"&gt;SQL Server 2008 - Table valued parameters&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;img src="http://dev.net.ua/photos/def1983/images/5063/original.aspx" border="0"&gt;&lt;br&gt;&lt;br&gt;If you have to insert more than one row of data in a Table, you end up
executing the insert statement / stored procedure as many times for
each row, with Table-valued parameters you can send multiple rows of
data to a single TSQL statement or stored procedure without creating
temp tables or doing multiple round trips.&lt;br&gt;Table-valued parameters are a new parameter type in SQL Server 2008 and are declared by using user-defined table types.&lt;br&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=368260"&gt;&lt;br&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=368260" class="lnk3"&gt;Change Data Capture SQL Server 2008&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=368260" class="lnk3"&gt;&lt;img src="http://dev.net.ua/photos/def1983/images/5064/original.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/strong&gt;CDC
or Change data capture is a new feature in SQL Server 2008, which is an
ability to record changes to table data into another table without
writing triggers or some other mechanism,&amp;nbsp;Change
data capture records the changes like insert, update, and delete to a
table in SQL server thus making the details of the changes available in
relational format.&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=5062" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server 2008" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Технические статьи: RAID Scaling Charts</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2007/12/21/Tech_5F00_art_5F00_RAID_5F00_Scaling_5F00_Charts.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2007/12/21/Tech_5F00_art_5F00_RAID_5F00_Scaling_5F00_Charts.aspx</id><published>2007-12-21T08:20:00Z</published><updated>2007-12-21T08:20:00Z</updated><content type="html">&lt;p&gt;&lt;b&gt;&lt;a href="http://www.tomshardware.com/2007/07/02/raid_scaling_charts/" target="_top"&gt;RAID Scaling Charts, Part 1: RAID Testing With 2-8 Drives&lt;br&gt;&lt;/a&gt;&lt;/b&gt;How do RAID arrays scale as you increase the number of hard drives they
contain? Part 1 of our RAID Charts project shows all the benchmark
results for RAID 0, RAID 1 and RAID 0+1 setups across two to eight disk
drives.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://www.tomshardware.com/2007/08/07/raid_scaling_charts/" target="_top"&gt;RAID Scaling Charts, Part 2: RAID 5 And RAID 6&lt;br&gt;&lt;/a&gt;&lt;/b&gt;We saw what RAID 0, RAID 1 and RAID 0+1 offer in Part 1 of our RAID Charts. Now, we put RAID 5 and RAID 6 to the test.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://www.tomshardware.com/2007/11/27/raid_scaling_charts/" target="_top"&gt;RAID Scaling Charts, Part 3: 4-128 kB Stripes Compared&lt;/a&gt;&lt;/b&gt;&lt;br&gt;In the first two parts of this series, we looked at setups running RAID
0, 1, 0+1, 5 and 6, with three to eight hard drives. In this final
article, we analyze performance comparisons at different stripe sizes
on RAID levels 0, 5 and 6.&lt;/p&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=4985" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="Hardware related" scheme="http://dev.net.ua/blogs/def1983/archive/tags/Hardware+related/default.aspx" /></entry><entry><title>Опубликован новый Best Practices Whitepaper: The Impact of Changing Collations and of Changing Data Types from Non-Unicode to Unicode</title><link rel="alternate" type="text/html" href="http://dev.net.ua/blogs/def1983/archive/2007/12/09/New-Best-Practices-Whitepaper-Published_3A00_-The-Impact-of-Changing-Collations-and-of-Changing-Data-Types-from-Non_2D00_Unicode-to-Unicode.aspx" /><id>http://dev.net.ua/blogs/def1983/archive/2007/12/09/New-Best-Practices-Whitepaper-Published_3A00_-The-Impact-of-Changing-Collations-and-of-Changing-Data-Types-from-Non_2D00_Unicode-to-Unicode.aspx</id><published>2007-12-09T17:34:00Z</published><updated>2007-12-09T17:34:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;С выходом
бизнеса на международный уровень, зачастую необходима поддержка многоязычных
строк в таблицах. Процесс изменения баз данных с целью внедрения Unicode Collation, а также влияние изменений на производительность
это некоторые из моментов, которые затронуты в опубликованном документе:&lt;/font&gt;&lt;span style="font-size:12pt;font-family:Verdana;"&gt;&lt;font face="Verdana" size="2"&gt;&lt;br&gt;&lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/SQL_bestpract_CollationChange.docx"&gt;The Impact of Changing Collations and of Changing Data Types from Non-Unicode to Unicode&lt;/a&gt;&lt;/font&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://dev.net.ua/aggbug.aspx?PostID=4869" width="1" height="1"&gt;</content><author><name>def1983</name><uri>http://dev.net.ua/members/def1983.aspx</uri></author><category term="SQL Server Articles" scheme="http://dev.net.ua/blogs/def1983/archive/tags/SQL+Server+Articles/default.aspx" /></entry></feed>