Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru) 158


Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 158 (06 октября 2007 г.)

Новым посетителям сайта

SQL Exercises Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 57-ти задач первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов, которые пригодятся на третьем рейтинговом этапе, который начинается после 138 задачи.

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


Новости сайта

§ Началось "народное голосование" в рамках Премии Рунета. Если вы считаете, что наш сайт заслуживает большей известности в рунете, проголосуйте за него. Для этого
- Пройдите по ссылке www.premiaruneta.ru/narod/vote/.
- Поставьте флажок напротив sql-ex.ru (ближе к концу списка).
- Поставьте флажок "Я согласен с правилами..." ниже списка участников.
- Нажмите кнопку Проголосовать!
Вы можете проголосовать сразу за нескольких участников.

§ Katy_Ekb решила первую задачу третьего этапа - 139-ю и вошла в двадцатку; показатели третьего этапа: баллов 3, время 0.114.

§ Новые лица в сотне или вернулись в нее:
Kos123 (задач 121, 17.711)
Ариам (120, 6.819)

§ Продвинулись в рейтинге:
Онуфрий Голохвастов (123, 114.061)
Madest (121, 45.388)
ba (121, 52.973)
Ded I (120, 7.279)

§ Число подписчиков - 3637

Число участников рейтинга - 11513

Число участников второго этапа - 1082

Сертифицировано на сайте - 187

Лучшие результаты (ТОР 20)

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Северюхин Ю.А. (Venser) 142 142 21 342 200 4.950 .655 14 19 Sep 2007 05 Oct 2007
2 Тарасов Д.Б. (Gavrila) 142 142 21 342 755 23.423 2.501 14 20 Sep 2007 05 Oct 2007
3 Солдатенков Ю.С. (SolYUtor) 142 142 21 342 490 17.853 2.695 14 20 Sep 2007 05 Oct 2007
4 Шептунов П.П. (Dzen) 142 128 21 342 279 8.186 3.499 14 02 Oct 2007 02 Oct 2007
5 Мурашкин И.В. (lepton) 142 142 21 342 544 15.800 5.539 14 18 Sep 2007 05 Oct 2007
6 Карасёва Н.В. (vlksm) 142 142 21 342 496 31.617 5.912 14 14 Sep 2007 05 Oct 2007
7 Мальцев А.В. (Палкин) 141 142 21 340 388 28.481 7.690 14 09 Sep 2007 01 Oct 2007
8 Бураков С.Г. (burakov58) 142 128 21 342 974 51.702 19.814 14 30 Sep 2007 30 Sep 2007
9 Голубин Р.С. (Roman S. Golubin) 142 142 21 342 761 59.419 34.203 14 18 Sep 2007 29 Sep 2007
10 Агапов В. (KERBEROS) 135 141 20 326 89 6.143 1.262 11 20 Nov 2006 27 Jul 2007
11 Кувалкин К.С. (Cyrilus) 139 141 20 334 1014 12.506 2.519 11 04 Sep 2007 05 Oct 2007
12 Зверев Д.Л. (dimzv) 135 141 20 326 1141 9.278 4.938 11 19 Dec 2006 22 Dec 2006
13 Войнов П.Е. (pаparome) 141 128 21 338 765 2.788 .049 10 28 Sep 2007 05 Oct 2007
14 Любченко В.А. (IAS56) 141 142 21 338 377 177.859 20.130 10 16 Sep 2007 28 Sep 2007
15 Васьков Е.В. (Johan) 138 140 21 332 402 12.733 11.402 7 25 Aug 2007 25 Aug 2007
16 Валуев Д.И. (Fiolent) 138 140 21 330 1476 117.100 62.302 4 19 Sep 2007 05 Oct 2007
17 Юлдашев М.Р. (Snowbear) 139 139 21 331 791 4.162 .000 3 17 Sep 2007 04 Oct 2007
18 Утёнков М.Н. (=Maxim=) 137 139 21 328 459 25.165 .036 3 05 Aug 2007 08 Sep 2007
19 Белогурова (Katy_Ekb) 139 139 21 331 132 5.004 .114 3 04 Oct 2007 04 Oct 2007
20 Креславский О.М. (Arcan) 139 139 21 331 227 10.109 .315 3 14 Sep 2007 05 Oct 2007

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Yakubova (Oxana) 47 47 92 17 109 1101 05 Oct 2007
2 >Smirnov D.A. (sm.dmitry) 42 42 78 26 104 1209 05 Oct 2007
3 >Левенков С.Н. (Cергей L) 42 42 79 0 79 1912 05 Oct 2007
4 >Аверин (avk_sql) 39 39 75 0 75 2049 05 Oct 2007
5 Кукушкин С. (serge77777) 38 39 72 1 73 2097 04 Oct 2007
6 >Боряшов С. (Slip) 36 36 69 0 69 2317 05 Oct 2007
7 >Гуськова Е. (guskova) 36 36 67 0 67 2421 05 Oct 2007
8 Костин М.Ю. (mishik) 34 34 63 3 66 2478 03 Oct 2007
9 bbman (bbman001) 31 31 55 9 64 2563 02 Oct 2007
10 >Деев А.В. (pick) 34 34 63 0 63 2629 05 Oct 2007
11 Фалалеев (falaleev) 33 33 60 0 60 2790 04 Oct 2007
12 >Багров Д.С. (nsk) 25 40 57 0 57 2061 05 Oct 2007
13 >Шумейко И.В. (jone) 30 30 56 0 56 3079 05 Oct 2007
14 >Володченко Е. (Orbie) 12 60 19 34 53 571 05 Oct 2007
15 Su Elfa (Su Elfa) 26 26 45 7 52 3406 01 Oct 2007
16 Gagnidze L.G. (King LIri) 25 25 43 9 52 3418 05 Oct 2007
17 Мелехин С.А. (Kegelban) 28 28 50 0 50 3587 05 Oct 2007
18 Поскотинова Е.С. (Pes) 16 29 38 10 48 2323 02 Oct 2007
19 Danishevsky B.N. (Staatsanwalt) 18 55 42 4 46 644 03 Oct 2007
20 Popov (Kalkin) 24 24 39 7 46 3920 04 Oct 2007
21 Gorchakova E.V. (Gorch) 13 36 32 11 43 1955 05 Oct 2007
22 >arto (artonext) 17 32 42 0 42 2823 05 Oct 2007
23 >otradnykh A.V. (Space) 15 29 37 5 42 2945 05 Oct 2007
24 >Малышев А.В. (Shakil) 22 36 36 5 41 2232 05 Oct 2007
25 Королёв Д. (DmitryK) 16 29 40 0 40 3266 03 Oct 2007
26 gagnidze L.G. (mefe liri) 24 24 40 0 40 4291 30 Sep 2007
27 Опенышев Г.Ю. (Greg_Asu) 24 24 40 0 40 4294 01 Oct 2007

Изучаем SQL

Как выполнить восстановление из журнала транзакций в SQL Server (окончание, начало в вып.157)

Greg Robidoux (оригинал: How to restore from a transaction log in SQL Server )
Перевод Моисеенко С.И.

В дополнение к команде RESTORE, которая используется для восстановления резервных копий, есть другие команды RESTORE, которые позволят Вам увидеть содержание резервных файлов. Это команды RESTORE HEADERONLY и RESTORE FILELISTONLY.

RESTORE HEADERONLY

Эта команда позволяет Вам увидеть информацию заголовка резервной копии для всех наборов резервных копий на конкретном устройстве резервного копирования. Эта команда полезна, когда Вы работаете с многочисленными файлами или если Вы получаете файл резервной копии с сервера, которым не управляете. Чтобы определить, что находится в резервных файлах, Вы можете выполнить эту команду в Query Analyzer.

RESTORE FILELISTONLY

Эта команда позволяет Вам увидеть список файлов базы данных и журнала, содержащихся в наборе резервирования, в какой файловой группе они находятся, а также размер файлов данных и журналов. LogicalName и PhysicalName - ключевые элементы данных, которые используются в течение процесса восстановления.

 

RESTORE FILELISTONLY FROM DISK = 'C:\SQL\Backup\North.bak'

 

Имеется несколько опций, которые могут использоваться при восстановлении резервных копий, включая восстановление резервных копий журнала транзакций. Вот некоторые из этих опций:

NORECOVERY

Эта опция позволяет вам восстановить дополнительные файлы резервных копий. Вы можете использовать ее при восстановлении полной, дифференциальной резервной копии или резервной копии журнала транзакций.

 

RESTORE DATABASE NORTH
 FROM DISK = 'C:\SQL\Backup\North.bak'
 WITH NORECOVERY

 

RECOVERY

Это опция используется по умолчанию, если никакая опция не указана. Ее следует использовать на последней стадии восстановления. После ее использования Вы не можете уже восстановить дополнительные резервные копии; чтобы сделать это, Вы должны начать процесс восстановления с самого начала. Эта опция может использоваться при восстановлении полных, дифференциальных резервных копий или резервной копии журнала транзакций.

 

RESTORE LOG NORTH
 FROM DISK = 'C:\SQL\Backup\North_Log.bak'
 WITH RECOVERY

 

STANDBY

Эта опция позволяет Вам перевести базу данных в режим "только для чтения", но это все же позволяет восстановить дополнительные журналы транзакций. Эта опция может использоваться при восстановлении полных, дифференциальных резервных копий или резервной копии журнала транзакций.

 

RESTORE LOG NORTH
   FROM DISK = 'C:\SQL\Backup\North_Log.bak'
    WITH STANDBY = 'c:\undo.ldf'

 

MOVE

Восстанавливая базы данных на другом сервере, Вам вероятно потребуется опция MOVE, если серверы не настроены точно так же. Выше я упоминал об использовании LogicalName и PhysicalName из команды RESTORE FILELISTONLY. Опция MOVE позволяет Вам перемещать физические файлы в другое место на вашем сервере. Вам потребуется использовать опцию MOVE для всех ваших восстановлений, включая Полное (Full), Дифференциальное (Differential) и Журнала Транзакций (Transaction Log).

 

RESTORE LOG NORTH
FROM DISK = 'C:\SQL\Backup\North_Log.bak'
 WITH RECOVERY,
MOVE 'Northwind_Data' TO 'c:\data\Northwind.mdf',
MOVE 'Northwind_Log' TO 'c:\data\Northwind _log.ldf'

 

В дополнение к выполнению полного восстановления журнала транзакций, SQL Server также предоставляет варианты остановиться в конкретный момент времени или на транзакционной метке. Если Вы знаете, когда или где возникла проблема с базой данных, то этот способ может восстановить транзакции вашей базы данных к конкретной точке до момента возникновения проблемы с базой данных, которую вы стараетесь избежать. Например, если бы кто-то удалил все записи из таблицы, то Вам возможно захочется возвратить вашу базу данных к точке, предшествовавшей этой операции.

STOPAT

Эта опция позволяет Вам повторить все зафиксированные транзакции, которые произошли до 31 декабря 2005; 0:00.

 

RESTORE LOG Northwind
 FROM DISK = 'C:\SQL\Backup\North_Log.bak'
    WITH RECOVERY,
 STOPAT = 'Dec 31, 2005 12:00 AM'

 

Следующие две команды позволяют Вам восстанавливать ваши транзакции, используя транзакционные метки, которые должны быть именованными транзакциями, используемыми в пределах вашего приложения. Если Вы не используете именованные транзакции, то эта опция не будет работать.

STOPATMARK

При помощи этой опции вы можете восстановить все зафиксированные транзакции, которые произошли вплоть до транзакционной метки Invoice1024.

 

RESTORE LOG Northwind
 FROM DISK = 'C:\SQL\Backup\North_Log.bak'
    WITH RECOVERY,
 STOPATMARK = 'Invoice1024'

 

STOPBEFOREMARK

Эта опция позволяет Вам повторить все зафиксированные транзакции, которые произошли до транзакционной метки Invoice1024.

 

RESTORE LOG Northwind
 FROM DISK = 'C:\SQL\Backup\North_Log.bak'
    WITH RECOVERY,
 STOPBEFOREMARK = 'Invoice1024'

 

Как вы могли увидеть, несколько вариантов восстановления могут быть использованы для всех ваших резервных файлов, при этом некоторые опции применимы только для резервных копий журнала транзакций. Не жалейте времени, чтобы изучить различные варианты и тогда Вы сможете предпочесть один вариант другому. Кроме того, удостоверьтесь, что Вы знаете, где хранятся ваши резервные копии, и старайтесь использовать соглашение об именовании, которое облегчит определение того, что находится в резервных файлах. RESTORE HEADERONLY и RESTORE FILELISTONLY - прекрасные инструменты, которые могут помочь Вам в этом, однако использование хорошего соглашения об именовании сделает этот шаг значительно быстрее и надежнее.

01.12.2006

Полезная информация

§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.

§ В продаже еще имеется книга SQL. Задачи и решения, посвященная анализу ошибок, допускаемых при решении задач первого этапа. На сайте издательства Питер можно сделать заказ и познакомиться с содержанием.

§ Желающих поспособствовать популяризации сайта прошу проголосовать/поставить закладку в социальных сетях:
del.icio.us
dzone.com
Digg.com
Reddit.com
stumbleupon.com

Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77@yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

В избранное