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

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


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

SQL Exercises

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

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

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

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

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


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

§ Подправил формулировку задачи 94 в ответ на предложения maxifly, ValentinOS и 15th. Кроме того, несколько усилил проверку этой задачи.

§ Ennor Tiegael поделился на форуме неправильным решением к задаче 68. Добавил проверочных данных для блокировки подобных решений.
Проверьте свои решения.

§ SolYUtor дорешал новые задачи и вышел на первое место в рейтинге.

§ Новые люди в сотне:
Inuyasha (задач 120, время 1.516)

§ Venser, решив две задачи третьего этапа, вошел в десятку - 9 место.
Arcan подошел к третьему этапу (138, 9.617); пока место в 20-ке.

§ Продвинулись в рейтинге:
Botch (137, 19.911)
avk (137, 59.922)
IAS56 (137, 104.716)
marishkin (136, 15.074)
Dizil (135, 3.957)
Aladdin (134, 23.045)
Ocean (134, 46.504)
Дайнин (134, 111.962)
gps(133, 217.162)
15th (128, 12.638)
Fomichev (126, 13.031)
yuriy.rozhok (126, 17.247)
raul (125, 16.362)
Kamin (124, 51.022)
Lexus (121, 28.789)
Donald (120, 5.329)

§ На этой неделе сертифицированы:
Kamin (B07012532) [AR] (г.Киев, Украина)
yuriy.rozhok (B07013689) [AR] (г.Львов, Украина)

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Солдатенков Ю.С. (SolYUtor) 142 142 21 341 320 17.807 2.695 14 03 Apr 2007 06 Apr 2007
2 Мурашкин И.В. (lepton) 142 142 21 341 371 15.737 5.539 14 29 Mar 2007 06 Apr 2007
3 Карасёва Н.В. (vlksm) 142 142 21 341 328 31.344 5.912 14 30 Mar 2007 06 Apr 2007
4 Голубин Р.С. (Roman S. Golubin) 142 142 21 341 588 55.391 34.203 14 29 Mar 2007 06 Apr 2007
5 Агапов В. (KERBEROS) 138 141 20 330 89 6.163 1.262 11 20 Nov 2006 05 Apr 2007
6 Кувалкин К.С. (Cyrilus) 138 141 20 330 746 12.405 2.519 11 10 Dec 2006 06 Apr 2007
7 Зверев Д.Л. (dimzv) 138 141 20 330 1141 9.294 4.938 11 19 Dec 2006 22 Dec 2006
8 Войнов П.Е. (pаparome) 140 142 21 335 579 2.741 .049 10 26 Mar 2007 06 Apr 2007
9 Северюхин Ю.А. (Venser) 140 140 21 334 29 4.672 .414 7 01 Apr 2007 06 Apr 2007
10 Тарасов Д.Б. (Gavrila) 138 140 21 330 577 20.220 .513 7 26 Mar 2007 06 Apr 2007
11 Мальцев А.В. (Палкин) 140 141 21 334 224 27.657 7.373 7 29 Mar 2007 06 Apr 2007
12 Васьков Е.В. (Johan) 140 140 21 334 253 12.786 11.402 7 29 Mar 2007 05 Apr 2007
13 Валуев Д.И. (Fiolent) 136 140 20 323 1188 116.922 62.302 4 05 Dec 2006 26 Mar 2007
14 Юлдашев М.Р. (Snowbear) 137 139 20 324 614 4.106 .000 3 24 Mar 2007 05 Apr 2007
15 Держальцев В.А. (MadVet) 135 139 20 321 540 34.190 3.085 3 08 Oct 2006 19 Oct 2006
16 Палий С.А. (PS_Sergey) 136 139 20 322 212 15.704 4.188 3 01 Dec 2006 03 Dec 2006
17 Шептунов П.П. (PavelPS) 138 138 21 327 92 4.773 .000 0 29 Mar 2007 05 Apr 2007
18 Креславский О.М. (Arcan) 138 138 21 327 63 9.617 .000 0 03 Apr 2007 06 Apr 2007
19 Салимов Д.М. (Damirishe) 136 138 21 323 186 11.246 .000 0 26 Mar 2007 30 Mar 2007
20 Виноградов С.М. (Botch) 137 137 21 323 169 19.911 .000 0 31 Mar 2007 31 Mar 2007

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Юнусов Т.И. (A66att) 53 53 100 17 117 845 06 Apr 2007
2 Frolov A. (Andreas Frolov) 59 59 111 4 115 877 06 Apr 2007
3 >Левит Н. (Talya) 59 59 111 0 111 926 06 Apr 2007
4 Медведев А.В. (Durist) 33 57 72 34 106 494 05 Apr 2007
5 >Скочилов А. (modicus) 47 47 84 17 101 1124 06 Apr 2007
6 >Ильин А.В. (Антон В.) 39 39 74 9 83 1553 06 Apr 2007
7 >Домрачев В.В. (Fairo) 44 44 79 0 79 1664 06 Apr 2007
8 >Соловьев А.С. (AndreiS) 36 47 77 1 78 1441 06 Apr 2007
9 >Kim V. (VoFFka) 38 38 71 0 71 1904 06 Apr 2007
10 Модников А.В. (ALVLM) 36 36 68 3 71 1906 06 Apr 2007
11 Rysev (MGR) 36 36 67 0 67 2084 05 Apr 2007
12 >Ermakov S.A. (eras) 34 34 57 9 66 2121 06 Apr 2007
13 Ичаловский А.В. (ichalex) 28 28 49 17 66 2126 03 Apr 2007
14 Саницкий А.В. (Sania) 35 35 65 0 65 2149 04 Apr 2007
15 >Этезов Б.Б. (Bektour) 33 33 60 3 63 2239 06 Apr 2007
16 >Кучан Д.С. (Frey) 34 34 63 0 63 2240 06 Apr 2007
17 >Манухина О.В. (ov_100) 32 32 59 1 60 2383 06 Apr 2007
18 >Harutyunyan A. (ArkusH) 33 33 59 0 59 2421 06 Apr 2007
19 Церенова Р.В. (Ammira) 27 27 56 0 56 1532 04 Apr 2007
20 Слотюк (slotyuk) 19 19 46 9 55 2692 06 Apr 2007
21 >Solovjov M. (Or) 31 31 46 9 55 2712 06 Apr 2007
22 Оксенюк Б.П. (BiO) 11 66 20 34 54 402 06 Apr 2007
23 morozov (vins) 30 30 51 0 51 2953 03 Apr 2007
24 Косарев А.Л. (Aleon) 21 36 50 0 50 2096 05 Apr 2007
25 >Журавский О.В. (JetuS) 10 62 15 34 49 453 06 Apr 2007
26 >Суслов П.Н. (V-Art) 28 28 49 0 49 3059 06 Apr 2007
27 >Майстренко А.В. (avmlvm) 28 28 49 0 49 3060 06 Apr 2007
28 Толмачева (Umka-Kate) 28 28 49 0 49 3080 04 Apr 2007
29 Кирпиченкова И.И. (phoenix_noir) 27 28 48 0 48 3100 04 Apr 2007
30 >Шамарин И.С. (Tyr) 22 36 46 0 46 2335 06 Apr 2007
31 Курамшин (Кезя) 18 30 42 0 42 2728 04 Apr 2007
32 А О. (ol_ps) 17 27 42 0 42 2836 05 Apr 2007
33 Степанова А.М. (a_m_s) 24 24 37 5 42 3501 04 Apr 2007
34 >Лаптиев И.Л. (Xthysq) 19 77 41 0 41 281 06 Apr 2007
35 >31 (M_Anna) 15 54 35 6 41 735 06 Apr 2007

Изучаем SQL

Лучшие методы: оптимизация индексов в SQL Server 2005

Stefano Demiliani (оригинал: Best practice when optimizing indexes on SQL Server 2005 )
Перевод Моисеенко С.И.

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

Я вижу каждый день, как многие администраторы баз данных планируют оптимизацию индексов посредством написанных скриптов T-SQL или через стандартный SQL Maintenance Plan, но они не подозревают, что фактически сам SQL Server 2005 позволяет Вам "настраивать" этот процесс.

SQL Server 2005 предлагает опцию (ONLINE = ON or OFF), чтобы помочь настроить производительность и требования параллелизма при создании или перестройке индекса. С новой возможностью Online Indexing (ONLINE=ON) Вы можете продолжать выполнять запросы и операции с таблицей, индекс которой перестраивается, в то время как автономная индексация (ONLINE=OFF) блокирует таблицу.

Важно помнить: онлайновое создание или перестройка индекса (ONLINE=ON), обеспечивая максимальный параллелизм, потребляет больше ресурсов и требует больше времени на выполнение!!

В помощь управлению временным пространством во время операций с индексом SQL Server предоставляет еще одну опцию: SORT_IN_TEMPDB. SQL Server использует временное хранилище для сортировки и других промежуточных задач во время создания или перестройки индекса. Для этого временного хранилища может использоваться пользовательская база данных или база данных TEMPDB.

Когда опция SORT_IN_TEMP оператора CREATE INDEX или ALTER INDEX установлена в значение OFF (принимается по умолчанию), для временного хранилища используется пользовательская база данных. Когда опция SORT_IN_TEMP включена (ON), временное хранилище будет находиться в базе данных TEMPDB.

Вот рекомендации для лучшей стратегии создания/перестройки индекса (непосредственно от Microsoft). Я рекомендую распечатать ее:

Убедитесь, что TEMPDB находится на дисковой подсистеме, которая обеспечивает достаточную пропускную способность ввода/вывода, и что TEMPDB является достаточно большой, чтобы предоставить временное пространство, которое потребуется для операции создания или восстановления индекса. По умолчанию TEMPDB создается в каталоге Data в папке, куда установлен SQL Server (например, C:\SQL2005\MSSQL.1\MSSQL\Data). При такой конфигурации в TEMPDB может не оказаться достаточно места для обеспечения адекватной пропускной способности ввода/вывода. Поэтому лучшим методом является перемещение TEMPDB на носитель с достаточным количеством свободного пространства и производительностью после установки SQL Server. Кроме того, имейте в виду, что база данных TEMPDB - это общий ресурс для всего экземпляра SQL Server. Вам следует учитывать активность всех пользовательских баз данных, которые могут использовать TEMPDB, при планировании действий с TEMPDB.

Чтобы достичь наименьшего времени на создание или перестройку индекса, используйте автономный режим (ONLINE=OFF). Однако это предотвращает любой доступ пользователей к данной таблице на все время создания или перестройки индекса.

Чтобы достичь наименьшего влияния на доступ пользователей к таблице, используйте опцию онлайн (ONLINE=ON). Однако такая операция онлайн занимает больше времени и использует большее пространство в TEMPDB по сравнению с автономной операцией.

Чтобы использовать наименьший объем памяти в TEMPDB во время перестройки кластерного индекса, используйте автономный вариант (ONLINE=OFF). Однако это повлияет на параллелизм, поскольку доступ к таблице предотвращается на все время перестройки индекса.

Чтобы использовать наименьшее количество памяти в TEMPDB во время перестройки некластерного индекса, используйте онлайновый режим (ONLINE=ON). Онлайновая перестройка также обеспечивает лучший параллелизм, но потребует большего времени на выполнение.

Если для таблицы имеются транзакции, которые выполняются параллельно с онлайновым созданием или перестройкой индекса, Вы должны планировать дополнительное место в TEMPDB для хранения версий.

16.02.2007

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

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

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

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

Контакты

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

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

В избранное