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

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


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

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

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

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

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

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


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

 

§ Это повторный выпуск, т.к. предыдущий оказался искореженным и его невозможно читать.

§ В результате обсуждения с лидерами новой задачи (143-я) она была размещена под номером 135. В свою очередь старая задача #135 стала 62-ой. Прежняя 62-я теперь находится на первом этапе вместо 42-ой, которая появится в свое время на обучающем этапе.

§ Еще одна задача выставлена под номером 143 для обсуждения ее будущего местоположения. Автор задачи - inkerman. Надеюсь, что задача понравится, и это станет ему стимулом для разработки новых задач :-).

§ Gavrila закончил решение задач третьего этапа с результатом 2.501; это пока второй результат.
Три задачи третьего этапа решил на этой неделе burakov58 (139, 140, 142). В итоге 13 место в рейтинге.
До третьего этапа дошли inkerman (задач 139, время на втором этапе 5.634) и Inuyasha (138, 2.546).

§ Новые лица в сотне и вернувшиеся в нее:
Barsyk (131, 2.198)

§ Продвинулись в рейтинге:
Botch (136, 19.887)
avk (136, 59.913)
modicus (136, 8.058)
yuriy.rozhok (136, 17.822)
SoVa (131, 240.674)
Олег (125, 9.190)
-=ac=- (124, 43.751)
Онуфрий Голохвастов (123, 89.762)
maar (123, 48.370)
Shadow77 (121, 7.616)
lexaNRJ (120, 52.725)
FanOfBeer (120, 79.077)

§ На этой неделе сертифицированы:
DeadLock5 (A07014391) [BK] - г.Москва, Россия
Олег (A07021034 [BK] B07021034 [AR]) - г.Воронеж, Россия

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

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

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

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

Лучшие результаты (ТОР 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 188 4.920 .655 14 07 Sep 2007 14 Sep 2007
2 Тарасов Д.Б. (Gavrila) 142 142 21 342 747 22.387 2.501 14 12 Sep 2007 14 Sep 2007
3 Солдатенков Ю.С. (SolYUtor) 142 142 21 342 477 17.800 2.695 14 07 Sep 2007 14 Sep 2007
4 Шептунов П.П. (Dzen) 142 142 21 342 257 8.138 3.499 14 10 Sep 2007 12 Sep 2007
5 Мурашкин И.В. (lepton) 141 142 21 341 499 15.725 5.539 14 04 Aug 2007 14 Sep 2007
6 Карасёва Н.В. (vlksm) 142 142 21 342 489 31.541 5.912 14 07 Sep 2007 14 Sep 2007
7 Мальцев А.В. (Палкин) 142 142 21 342 388 28.484 7.690 14 09 Sep 2007 11 Sep 2007
8 Голубин Р.С. (Roman S. Golubin) 142 142 21 342 750 55.389 34.203 14 07 Sep 2007 14 Sep 2007
9 Агапов В. (KERBEROS) 136 141 20 328 89 6.154 1.262 11 20 Nov 2006 27 Jul 2007
10 Кувалкин К.С. (Cyrilus) 140 141 20 336 1014 12.523 2.519 11 04 Sep 2007 14 Sep 2007
11 Зверев Д.Л. (dimzv) 136 141 20 328 1141 9.287 4.938 11 19 Dec 2006 22 Dec 2006
12 Войнов П.Е. (pаparome) 141 142 21 338 747 2.769 .049 10 10 Sep 2007 14 Sep 2007
13 Бураков С.Г. (burakov58) 141 142 21 338 957 34.467 4.901 10 13 Sep 2007 14 Sep 2007
14 Любченко В.А. (IAS56) 141 142 21 338 371 176.805 20.130 10 10 Sep 2007 10 Sep 2007
15 Васьков Е.В. (Johan) 139 140 21 334 402 12.746 11.402 7 25 Aug 2007 25 Aug 2007
16 >Креславский О.М. (Arcan) 140 143 21 333 227 10.116 .477 5 14 Sep 2007 14 Sep 2007
17 Валуев Д.И. (Fiolent) 138 140 20 329 1433 117.072 62.302 4 07 Aug 2007 14 Sep 2007
18 Юлдашев М.Р. (Snowbear) 139 139 21 331 782 4.128 .000 3 08 Sep 2007 13 Sep 2007
19 Утёнков М.Н. (=Maxim=) 138 139 21 330 459 25.173 .036 3 05 Aug 2007 08 Sep 2007
20 Держальцев В.А. (MadVet) 133 139 20 319 540 34.168 3.085 3 08 Oct 2006 19 Oct 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Воробей Д.И. (Algerd) 47 54 99 5 104 1077 13 Sep 2007
2 >Likutova O. (OlechkaL) 51 51 99 0 99 1362 14 Sep 2007
3 >Панасюк Е.Л. (IST_EP) 36 36 68 1 69 2280 14 Sep 2007
4 >Петренко А.М. (Andemon) 30 58 62 4 66 776 14 Sep 2007
5 Саянкин Д.А. (conor) 34 34 62 0 62 2626 14 Sep 2007
6 przemek (przemek) 26 26 47 9 56 3012 10 Sep 2007
7 iglbeat (iglbeat) 17 56 34 21 55 778 14 Sep 2007
8 >catthg C.C. (Catthg) 25 25 44 9 53 3285 14 Sep 2007
9 >Луценко А.О. (LutsenkoAO) 22 37 52 0 52 2046 14 Sep 2007
10 Dvoryashin M. (mixd) 27 61 51 0 51 553 09 Sep 2007
11 >Lomtadze (alekol) 27 29 51 0 51 3298 14 Sep 2007
12 >Ivanov P. (testsql) 14 14 16 34 50 3495 14 Sep 2007
13 Мацкевич (Hennadzi Mackevich) 28 28 50 0 50 3502 12 Sep 2007
14 >Sofronia A. (alexsof) 22 85 49 0 49 250 14 Sep 2007
15 >Гайн Б.П. (Hayn_B) 20 20 29 17 46 5660 14 Sep 2007
16 Zhivlyuk (Zhorra) 26 26 40 3 43 4000 12 Sep 2007
17 >Bordovskiy V. (smith) 13 46 31 10 41 1207 14 Sep 2007
18 >ksai (ksai) 18 39 41 0 41 2248 14 Sep 2007
19 >Khairova (Emi) 21 21 30 11 41 2534 14 Sep 2007
20 Dohnal P. (otik) 26 26 41 0 41 4133 13 Sep 2007

Изучаем SQL

Мониторинг системной информации с помощью трассировки по умолчанию в SQL Server 2005

Tim Chapman (оригинал: Monitor system information with SQL Server 2005's default trace )
Перевод Моисеенко С.И.

Иногда трудно диагностировать проблемы на вашем SQL Server после того, как они случились. Вот почему Вы должны использовать возможности трассировки по умолчанию (default trace) SQL Server 2005 для мониторинга определенных событий.

Трассировка по умолчанию: введение

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

Файлы трассировки создаются и поддерживаются в SQL Server посредством языка T-SQL. Возможно, вы уже знакомы с использованием SQL Server Profiler для диагностики проблем производительности. SQL Server Profiler является клиентским приложением, которое позволяет Вам посредством графического интерфейса настраивать и контролировать SQL Server с помощью одной или нескольких трассировок.

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

Файлы журнала трассировки перевернуты, позволяя Вам изучать историю данных трассировки. Эта трассировка достаточно легкая, т.е. она не использует слишком много ресурсов на вашем SQL Server; и она не перехватывает каждое событие, которое происходит на вашем сервере. Трассировка по умолчанию перехватывает следующую информацию: когда запускался и останавливался сервер, неудачные попытки подключения логина, когда создавались и удалялись объекты, когда файлы системного журнала увеличивались в размере и сжимались. Если Вам требуется перехватывать другую информацию, помимо той, что предоставляет вам трассировка по умолчанию, Вы можете настроить отдельную трассировку, чтобы собрать необходимые данные.

Как найти трассировку по умолчанию

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

Нижеприведенный скрипт вызывает табличнозначную системную функцию, которая возвращает данные для заданной трассировки, запущенной в базе данных, или информацию для всех исполняемых трассировок. Запрос, который я использую, возвратит все трассировки в системе.

 

SELECT *
 FROM fn_trace_getinfo(default)

 

Если в вашей системе в настоящее время запущена только одна трассировка по умолчанию, есть хороший шанс, что результирующий набор, возвращенный из вышеупомянутой функцией, будет похож на результирующий набор, который я получил на своей машине:

traceid      property      value  
     1             1          2
     1             2          C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\log_8.trc
     1             3          20
     1             4          NULL
     1             5          1

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

Просмотр данных в журнале

Имеется два варианта просмотра данных в лог-файле трассировки. Вы можете перейти в эту папку на сервере баз данных и щелкнуть на файле; это действие откроет файл трассировки в SQL Server Profiler, где вы и сможете просмотреть информацию. Там же Вы можете сохранить результаты в таблице или в документе XML.

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

 

SELECT *
 FROM fn_trace_gettable('C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGlog_8.trc',default)
 ORDER BY starttime

 

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

Что дальше?

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

13/08/2007

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

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

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

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

Контакты

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

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

В избранное