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

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


Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 95 (8 июля 2006 г.)

http://www.sql-ex.ru

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

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

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

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

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


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

§ Произвел компенсацию времени, связанную с недоступностью сайта на прошлой неделе.

§ Многочисленные нарекания по поводу формулировки задачи 52, наконец, дали результат :-). Спасибо GoshaS_29 и Shurgenz за новые формулировки.
Вернул с небольшими изменениями старую формулировку задачи 97, т.к. последняя редакция не вполне соответствовала проверочному решению.

§ В проверочной базе оказались "квадраты-однофамильцы", т.е. разные квадраты с одинаковыми именами. Вот к чему приводит копирование :-). Хотя нигде не сказано, что имена квадратов уникальны, и это не должно вызывать ошибок при правильном решении задач, все же исправил.

§ Новый человек в сотне:
Ocean (задач 102, время 23.869)

§ Сохранили шансы попасть в ТОР 10:
Shurgenz (135, 12.406)
a2010 (128, 10.176)
Ded I (128, 7.339)
=Maxim= (115, 5.773)
Если a2010 не потеряет темп, то в десятке впервые в истории может оказаться "подлинный" иностранец :-). Видимо, английские формулировки не так плохи.

§ Продолжили свое восхождение к вершине:
gps (136, 213.761)
vlksm (132, 19.791)
SoVa (123, 81.270)
silich (115, 52.830)
FanOfBeer (113, 60.178)
ba (110, 24.865)
Zhekaus (101, 152.535)

§ На этой неделе сертифицированы:
a2010 (B06009602) [AR] (ISRAEL, Ra'anana)

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Юлдашев М.Р. (Snowbear) 138 138 20 320 338 3.989 21 Jun 2006 07 Jul 2006
2 Кувалкин К.С. (Cyrilus) 138 138 20 320 484 5.460 23 Mar 2006 06 Jul 2006
3 Slobodcicov A.N. (Testo) 138 138 20 320 252 6.716 01 Jun 2006 23 Jun 2006
4 Kamaev V.M. (Heromantor) 138 138 20 320 128 9.066 14 Mar 2006 25 Mar 2006
5 Мурашкин И.В. (lepton) 138 138 20 320 81 9.919 12 Jun 2006 26 Jun 2006
6 Бураков С.Г. (burakov58) 138 138 20 320 419 17.395 24 Mar 2006 07 Apr 2006
7 Иванов А.Н. (Goapsy) 138 138 20 320 211 18.283 09 Jun 2006 09 Jun 2006
8 Тарасов Д.Б. (Gavrila) 138 138 20 320 208 19.424 22 Mar 2006 07 Jul 2006
9 Голубин Р.С. (Roman S. Golubin) 138 138 20 320 210 20.835 16 Mar 2006 07 Jul 2006
10 Валуев Д.И. (Fiolent) 138 138 20 320 971 48.000 02 May 2006 23 Jun 2006
11 Войнов П.Е. (pаparome) 137 137 20 316 203 1.769 15 Mar 2006 03 Jul 2006
12 Зверев Д.Л. (dimzv) 137 137 20 316 869 3.278 22 Mar 2006 04 Apr 2006
13 Абашин П.И. (Dizil) 137 137 20 316 203 3.776 15 Mar 2006 04 Jul 2006
14 Самохвалов В. (ValdemarES) 137 137 20 316 117 7.788 14 Mar 2006 03 Jul 2006
15 Носков Н.В. (niko2) 137 137 20 316 274 8.472 06 Apr 2006 16 May 2006
16 Крижевич С.А. (yaff) 137 137 20 316 259 14.801 16 Mar 2006 05 May 2006
17 Держальцев В.А. (MadVet) 137 137 20 316 357 18.639 08 Apr 2006 15 Apr 2006
18 Зырин В.Е. (Vezyr) 137 137 20 316 63 20.618 17 Mar 2006 20 Jun 2006
19 Страшников А.С. (EffEct) 137 137 20 316 305 59.972 16 Mar 2006 02 May 2006
20 Матвеева Ю.Б. (Julia_M) 137 137 20 316 137 68.931 24 Mar 2006 24 May 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 trapezund (krotov) 59 59 108 19 127 460 06 Jul 2006
2 M (ambh) 55 55 101 5 106 656 05 Jul 2006
3 >Machulenko (Sergey Machulenko) 40 63 79 3 82 543 07 Jul 2006
4 >Khanteev A.D. (ave) 39 39 70 9 79 1115 07 Jul 2006
5 >Афанасьев В.В. (TorroT) 42 42 69 0 69 1345 07 Jul 2006
6 >Солеников Д. (DAS) 36 36 65 0 65 1426 07 Jul 2006
7 Palin (mike2) 34 34 48 15 63 1468 04 Jul 2006
8 >Колпаков А. (АлександрI) 27 47 51 9 60 985 07 Jul 2006
9 Dick (Relanium) 39 39 59 0 59 1612 07 Jul 2006
10 Дельвер А.В. (Alexandr_Del) 28 28 49 0 49 1945 06 Jul 2006
11 Лаптев Г.А. (Goga_3040) 20 35 45 0 45 1518 06 Jul 2006
12 >Окунев Ю.А. (jkr) 21 41 41 3 44 1316 07 Jul 2006
13 Fisherman M.V. (Max-xaM) 21 27 40 3 43 1981 05 Jul 2006
14 Alaa A.H. (AlaaAstors) 25 25 40 0 40 2293 02 Jul 2006
15 >Katara (Maniz) 24 24 40 0 40 2301 07 Jul 2006
16 >Spagnola (spags) 27 27 38 0 38 2381 07 Jul 2006
17 Трофимов В.С. ((*V*)) 23 23 34 3 37 2461 06 Jul 2006
18 >Имаев Р. (nrg_fly) 24 24 37 0 37 2470 07 Jul 2006
19 drozd D.D. (droad1) 6 29 18 17 35 1352 06 Jul 2006
20 Фесик Р.В. (Jazzy) 21 21 30 5 35 2594 07 Jul 2006
21 Толочко П.В. (ais) 18 25 34 0 34 2233 03 Jul 2006
22 >Caldwell D.P. (War Eagle) 23 23 34 0 34 2655 07 Jul 2006
23 >Vinogradov V.S. (VinniE) 23 23 34 0 34 2703 07 Jul 2006
24 >Шойдокова А.А. (aida) 22 22 33 1 34 2710 07 Jul 2006
25 Юрченко (rosomaha) 15 59 33 0 33 641 07 Jul 2006
26 >G. S.V. (SERGYGY) 22 22 31 0 31 2907 07 Jul 2006
27 >Грабельников В.А. (loki) 10 69 21 9 30 234 07 Jul 2006
28 Пилипейко Т.А. (Nezabudka) 11 43 16 14 30 1037 07 Jul 2006

Изучаем SQL

Описание обработки тупиковых ситуаций (deadlock) в SQL Server

Microsoft Corp. (оригинал: Description of handling deadlock conditions in SQL Server)
Перевод Моисеенко С.И.

Аннотация

Тупик - это состояние, когда 2 (или больше) процесса пытаются обратиться к ресурсу, который заблокирован другим процессом. Поскольку каждый процесс запрашивает ресурс другого процесса, ни один из них не может быть завершен. Когда SQL Server обнаруживает тупик, он откатывает транзакцию, которая имеет наименьшую продолжительность обработки и возвращает в приложение сообщение об ошибке 1205. Сообщение об ошибке 1205 прерывает выполнение текущего пакета и откатывает текущую транзакцию.

Детали

В некоторых случаях состояние тупика будет вызывать команду библиотеки DB-Library (DB-Lib) типа dbsqlexec, dbsqlok или dbresults, чтобы вернуть FAIL (сбой). Программа всегда ответственна за проверку кодов возврата из каждой команды DB-Lib. Если одна из этих команд DB-Lib возвращает FAIL, программа должна отменить выполнение пакета, а не попытаться его продолжить. В некоторых случаях возможно продолжение выполнения последующих команд в пакете. Однако поскольку произошла тупиковая ситуация, и для команды, которая ее вызвала, был выполнен откат, последующие команды в пакете будут, вероятно, вызывать более серьезные ошибки, например, "объект не найден".

В других случаях состояние тупика не будет заставлять команду DB-Lib возвращать FAIL. Чтобы обработать такую ситуацию, программа должна проверить сообщение 1205 в обработчике сообщений и использовать функцию dbsetuserdata, чтобы сообщить об этом вашему приложению (пример может быть найден в Главе 4 " DB-Library Functions" справочника программиста С в пункте dbsetuserdata). Таким образом, программа должна проверять индикатор тупика после каждого вызова DB-Library и отменять выполнение пакета в случае обнаружения тупика.

Хотя может показаться необязательной отмена пакета после получения сообщения о тупике 1205, это необходимо, потому что сервер не всегда прерывает выполнение пакета в тупиковой ситуации. Если выполнение пакета не отменено, любая другая попытка принять новый пакет может привести к ошибке DB-Library 10038 "Results Pending" (задержка результатов).

Вы можете найти описание проблемы тупика и пример того, как обнаружить состояние тупика в Приложении E "Максимизирование согласованности и параллелизма" в "Справочнике программиста C" SQL Server для Windows NT

Применимо к

o Microsoft SQL Server 4.21a Standard Edition
o Microsoft SQL Server 2000 Standard Edition
o Microsoft SQL Server 2005 Standard Edition
o Microsoft SQL Server 2005 Developer Edition
o Microsoft SQL Server 2005 Enterprise Edition
o Microsoft SQL Server 2005 Express Edition
o Microsoft SQL Server 2005 Workgroup Edition

05/06/2006

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

§ Набрел на интересную программу, которая в QA и Management Studio упрощает ввод и украшает код. Скриншот можно посмотреть здесь. Там же можно и скачать (кажется 2.5 Мб). Бесплатна, но требуется регистрация.

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

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

Контакты

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

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

В избранное