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

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


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

http://www.sql-ex.ru

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

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

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

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

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


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

§ Устав отвечать на одни и те же вопросы, ответ на которые содержится в FAQ, поместил ссылку на соответствующую статью FAQ (если она есть) на страницу с упражнениями. Эта ссылка появляется, когда решение дает правильный результат на основной базе, но не проходит на проверочной. Надеюсь, что это немного облегчит мой почтовый ящик, который уже не выдерживает нагрузки :-). Письма и впрямь исчезают, без шуток.

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

§ В очередной раз почистил базу от случайных посетилей. Критерии прежние:
- не были более года;
- решили менее 15 задач (SELECT + DML).
Итого в рейтинге стало на 650 человек меньше. Поэтому пусть вас не удивляет резкий скачок рейтинговых позиций в нижней части рейтинга.

§ Графомания продолжается :-). Вышла книжка по Access для начинающих. Надеюсь, что таких среди читателей рассылки нет :-). Обязуюсь в ближайшее время больше ничего не писать, а то ведь так и сайтом некогда заниматься будет :-).

§ Решив последнюю (138-ю) задачу закрепилась в десятке vlksm (задач 138, время 24.922). После решения новых задач второе и третье "призовые" места занимают Snowbear (138, 4.055) и lepton (138, 10.134). Четвертое место у Goapsy (138, 18.919).
Вернулись в десятку, хоть и не решив пока 138 задачу Dizil (137, 3.903) и ValdemarES (137, 7.850).

§ Новый человек в сотне - loki (101, 3.654).

§ Сохранили шансы попасть в ТОР 10:
=Maxim= (122, 16.190)
alex_v (113, 13.307)

§ Продолжили свое восхождение к вершине:
T! (116, 46.427)

Других движений в сотне замечено не было, но я не думаю, что это связано с временем отпусков. Скорее, многих притормозили новые задачи.

§ На этой неделе сертифицированы:
vlksm (A06010332) [BK] и (B06010332) [AR] (г.Пушкин, Россия)

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Войнов П.Е. (pаparome) 138 138 20 322 336 2.680 26 Jul 2006 04 Aug 2006
2 Юлдашев М.Р. (Snowbear) 138 138 20 322 376 4.055 29 Jul 2006 02 Aug 2006
3 Мурашкин И.В. (lepton) 138 138 20 322 127 10.134 28 Jul 2006 01 Aug 2006
4 Иванов А.Н. (Goapsy) 138 92 20 322 265 18.919 02 Aug 2006 03 Aug 2006
5 Голубин Р.С. (Roman S. Golubin) 138 138 20 322 342 21.138 26 Jul 2006 03 Aug 2006
6 Карасёва Н.В. (vlksm) 138 138 20 322 85 24.922 30 Jul 2006 03 Aug 2006
7 Кувалкин К.С. (Cyrilus) 137 138 20 320 610 9.768 27 Jul 2006 03 Aug 2006
8 Валуев Д.И. (Fiolent) 137 138 20 320 1057 49.244 27 Jul 2006 04 Aug 2006
9 Абашин П.И. (Dizil) 137 92 20 318 343 3.903 02 Aug 2006 02 Aug 2006
10 Самохвалов В. (ValdemarES) 137 92 20 318 258 7.850 02 Aug 2006 03 Aug 2006
11 Slobodcicov A.N. (Testo) 136 138 20 317 252 6.707 01 Jun 2006 03 Aug 2006
12 Kamaev V.M. (Heromantor) 136 138 20 317 128 9.044 14 Mar 2006 25 Mar 2006
13 Бураков С.Г. (burakov58) 136 138 20 317 419 17.381 24 Mar 2006 07 Apr 2006
14 Тарасов Д.Б. (Gavrila) 136 138 20 317 208 19.382 22 Mar 2006 04 Aug 2006
15 frenkental (a2010) 136 137 20 316 110 15.332 19 Jul 2006 26 Jul 2006
16 Зверев Д.Л. (dimzv) 135 137 20 313 869 3.272 22 Mar 2006 08 Jul 2006
17 Носков Н.В. (niko2) 135 137 20 313 274 8.452 06 Apr 2006 16 May 2006
18 Крижевич С.А. (yaff) 135 137 20 313 259 14.792 16 Mar 2006 05 May 2006
19 Держальцев В.А. (MadVet) 135 137 20 313 357 18.614 08 Apr 2006 30 Jul 2006
20 Зырин В.Е. (Vezyr) 135 137 20 313 63 20.590 17 Mar 2006 20 Jul 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Агеев А.В. (@Gav) 58 58 107 0 107 685 04 Aug 2006
2 >s (shkh) 56 56 102 2 104 755 04 Aug 2006
3 >Багманов И. (megay0rk) 41 41 68 9 77 1224 04 Aug 2006
4 >Markina A. (murkina) 45 45 73 2 75 1281 04 Aug 2006
5 >Тарисов Р. (Rishat) 35 35 63 9 72 1362 04 Aug 2006
6 Shablonova I. (irinka) 39 39 60 8 68 1445 04 Aug 2006
7 >Makarov R.V. (Roman1979) 40 40 66 1 67 1465 04 Aug 2006
8 >Крохмаль (dchar) 35 35 58 0 58 1740 04 Aug 2006
9 >Polevaya Y.I. (yuliaepam) 32 32 55 1 56 1815 04 Aug 2006
10 Кузьменко (KY3bMA) 30 30 55 0 55 1835 01 Aug 2006
11 Чудов Р.С. (M_mpx) 10 59 24 29 53 334 03 Aug 2006
12 Сухнев Д.А. (mz) 8 57 21 32 53 369 04 Aug 2006
13 Мокринский К.Е. (Marci) 22 22 31 17 48 2132 04 Aug 2006
14 Напорова С. (SNM) 22 30 47 0 47 1852 29 Jul 2006
15 Бугаков Ю.В. (Bugakov) 27 27 46 0 46 2188 03 Aug 2006
16 Чумбаева Е.А. (rina) 18 56 45 0 45 505 02 Aug 2006
17 Васьков Е.В. (Johan) 20 97 44 0 44 106 04 Aug 2006
18 Вербицкий Д.В. (Dmitry74) 10 56 27 17 44 440 04 Aug 2006
19 Миронов П. (pmiro) 23 38 44 0 44 1657 04 Aug 2006
20 Леферов А.А. (lef) 31 31 41 3 44 2254 01 Aug 2006
21 Ковалев В.А. (WaR_RioR) 18 54 33 8 41 691 04 Aug 2006
22 Савицкий И.С. (Sav007) 21 56 41 0 41 698 04 Aug 2006
23 >Акимушкин С.В. (Штык) 25 25 41 0 41 2366 04 Aug 2006
24 >Колосков А.А. (троль) 18 84 40 0 40 167 04 Aug 2006
25 >Рагойша В.И. (_temp) 25 25 40 0 40 2430 04 Aug 2006

Изучаем SQL

По многочисленным просьбам посетителей сайта рассказать о том, как читать план выполнения запроса, и на что следует обращать внимание при оптимизации запросов, я собираюсь опубликовать наиболее информативные отрывки из перевода довольно объемной статьи. Вся статья будет выложена на www.sqlbooks.ru, как только получим разрешение от правообладателей оригинала.

Настройка операторов SQL на Microsoft SQL Server 2000

Kevin Kline, Claudia Fernandez, Quest Software, Inc. (оригинал: Tuning SQL Statements on Microsoft SQL Server 2000)
Перевод Живенко Н.

Методы настройки Microsoft

Microsoft предоставляет три основных способа настройки запросов:

- контроль операций чтения и записи при выполнении запроса с использованием SET STATISTICS IO;
- контроль времени выполнения запроса с использованием SET STATISTICS TIME;
- анализ плана выполнения запросов с использованием SET SHOWPLAN.

SET STATISTICS IO

Команда SET STATISTICS IO ON предписывает SQL Server предоставить отчет о реальной активности ввода-вывода при выполнении транзакций. Эта команда не может использоваться совместно с опцией SET NOEXEC ON, т.к. она имеет смысл только для контроля активности ввода-вывода команд, которые фактически выполняются. Как только опция включена, каждый запрос генерирует дополнительные выходные данные, которые содержат статистику ввода-вывода. Для отключения этой опции используется команда SET STATISTICS IO OFF.

Эти команды также работают в Sybase Adaptive Server, хотя некоторые результирующие множества могут выглядеть несколько иначе.

Например, следующий сценарий получает статистические данные об операциях ввода-вывода для простого запроса, подсчитывающего количество строк в таблице employees в базе данных northwind:

SET STATISTIC IO ON
GO
SELECT COUNT(*) FROM employees
GO
SET STATISTICS IO OFF
GO

Результаты:
-----------
2977
Table 'Employees'. Scan count 1, logical reads 53, physical reads 0, read-ahead reads 0.

Здесь Scant count показывает число выполненных сканирований. Logical reads - число страниц, считанных из кэша. Physical reads - число страниц считанных с диска. read-ahead reads обозначает число страниц, помещенных в кэш в ожидании будущего чтения.

Дополним наш анализ выполнением системной хранимой процедуры для получения статистических данных о размере таблицы.

sp_spaceused employees

Результаты:
name rows reserved data index_size unused
---------- ---- --------- ------- ----------- -------
Employees 2977 2008 KB 1504 KB 448 KB 56 KB

Что можно сказать, исходя из этой информации?

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

-Индексные страницы были, главным образом, обнаружены в кэше данных, поскольку значение physical reads равно 0. Этот запрос потому выполнился быстро, что другие запросы к таблице employees, выполненные прежде, уже кэшировали как таблицу, так и ее индекс. Скорость выполнения может измениться при других условиях.

-Microsoft не предоставил информации о какой-либо активности опережающего чтения. В данном случае страницы данных и индексные страницы уже находились в кэше. При сканировании большой таблицы опережающее чтение, вероятно, занесет в кэш необходимые страницы до того, как ваш запрос затребует их. Опережающее чтение включается автоматически, когда SQL Server определяет, что ваша транзакция считывает страницы из базы данных последовательно и может спрогнозировать, какая следующая страница потребуется. Фактически запускается отдельное соединение SQL Server, которое идет впереди вашего процесса и кэширует для него страницы данных. [Конфигурация и настройка параметров опережающего чтения выходит за пределы данной статьи.]

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

(Продолжение следует...)

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

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

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

Контакты

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

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

В избранное